欢送拜访 OceanBase 官网获取更多信息:https://www.oceanbase.com/


本文来自OceanBase社区分享,仅限交换探讨。作者介绍:刘强,就任于作业帮基础架构 DBA 团队,负责分布式数据库的摸索和应用,协同研发团队在公司外部推动分布式数据库在业务上的落地。

在作业帮刚上线OceanBase 4.0 时,我分享过作业帮的业务架构痛点。目前,作业帮是多云架构(阿里云、百度云、腾讯云),并同时应用 MySQL、Redis-Cluster、MongoDB、Elastisearch、TiDB 、OceanBase这几款数据库。出于高可用和降本需要,咱们决定将更多 MySQL业务场景用 OceanBase 代替,本文将和大家分享具体起因,以及OceanBase 4.0 与 MySQL5.7 的比照数据。

高可用双活架构计划降级需要

因为作业帮业务的多样性和复杂性,咱们对于分布式数据库的应用需要次要基于以下几个方面。

第一,在海量数据的状况下心愿缩小分库分表的复杂度,并解决单机存储瓶颈。

第二,对 I/O 密集型的 SQL 及 CPU 密集型的 SQL 来说,咱们心愿可能进步响应速度,缩小它在 MySQL 中对线上业务的影响。

第三,每个业务外部都须要业务人员频繁查问、录取线上数据,并有相应的报表服务以供下级 Leader 查看,而且大数据部门也会有报表需要接入线上数据,这对于线上 MySQL 来说难以撑持,在数据归档及汇总的状况下,也不足良好计划。

第四,因为MySQL的个性限度,咱们须要基于一个内部的高可用组件来实现 MySQL 的高可用架构,在多云环境下,网络环境绝对简单,这对高可用的稳定性提出了更高要求。如果局部业务的申请链路长或简单,跨云拜访会使业务相应耗时减少,影响用户体验。

因而,咱们须要摸索良好的双活架构计划,初步计划是基于 MySQL ,并引入 DTS 来实现双活架构。这种架构的复杂性及引入过程中 DTS 的异样或中断,对于数据的一致性有很大的挑战。同时在应用私有云的状况下,也心愿可能最大水平升高硬件的应用老本。

出于高可用和降本需要,咱们决定将更多 MySQL 的业务场景替换为 OceanBase,并对OceanBase 和 MySQL5.7 进行了多方面的比照。

OceanBase 4.0 比照 MySQL5.7

1、性能比照

咱们应用32C64GB的硬件规格别离对 OceanBase 和 MySQL 进行性能、CPU使用率、磁盘空间占用的测试。

首先,从图1可见,OceanBase性能显著超过 MySQL。

图1 OceanBase 和 MySQL 的性能比照

其次,从图2得悉,在雷同的并发环境下,OceanBase 的 CPU 使用率比 MySQL 低至多一倍以上。

图2 OceanBase 和 MySQL 的CPU使用率比照

另外,因为 OceanBase 数据压缩及编码的技术相较于 MySQL,可能节约 2/3 以上的磁盘空间,因而,综合上述三方面的比照后果,咱们认为 OceanBase 能为作业帮的降本增效提供极大帮忙。

在性能方面,咱们还测试了DDL的执行速度。对于耗时较长的 DDL,MySQL 会有补充延时问题,须要咱们援用额定的审核工具来管制它的提早,而 OceanBase 不存在延时问题。对于执行速度,MySQL 和 OceanBase 相差不大,这让咱们更加期待 OceanBase 4.1 的数据旁路导入性能,能够将 DDL 的执行速度大幅晋升。不过,咱们也发现了一些语法兼容性的问题,例如,OceanBase 对主键的操作语法不反对多个 DDL 合并执行,只能各自独自执行。

2、架构比照

除了降本增效的需要,高可用也是咱们在摸索双活架构中最看重的一方面。相较于 MySQL ,OceanBase 的高可用是有延长的,不须要额定的高可用组件,这有利于解决数据不统一的问题。再加上OceanBase 的日志具备多正本个性,可能反对在多机房或多城市灵便部署。OceanBase 还便于作业帮实现一些单元化的需要,咱们能够将业务单元内的 Leader 数据调度在某一个机房内,实现业务拜访的流量闭环,缩小跨域读写。

3、字符集比照

最初,咱们测试了字符集的反对水平。作业帮成立十年,咱们应用 MySQL 的场景和字符集品种都比拟多。OceanBase 4.0以后反对图3 中显示的几种字符集,在4.1版本中减少了对拉丁字符的反对。后续咱们也心愿 OceanBase 可能扩大字符集及校验集的反对品种。

图3 OceanBase 4.0反对的字符集

以上就是作业帮对 OceanBase 和 MySQL的次要比照数据。在将更多业务场景切换至 OceanBase 的过程中,咱们发现,在高可用双活架构计划之外, OceanBase 4.0 的HTAP和资源隔离能力也为咱们带来许多意外之喜。

低成本与低延时,更好地降本增效

OceanBase 是一个具备 HTAP 能力的原生分布式数据库,如何了解 HTAP?援用 OceanBase CTO 的一句话:HTAP 就是在高性能 OLTP 数据库的根底上扩大 OLAP 的能力,能很好反对实时剖析。

在作业帮的业务场景中,咱们 感触到 HTAP 的两大显著劣势:低成本和低延时。

低成本 :咱们心愿一套零碎能同时反对OLTP场景和OLAP场景,相比两套零碎领有更高的性价比。

低延时 :省去了繁琐费时的ETL过程,升高延时,更好反对实时剖析。

咱们晓得,在一套零碎同时实现OLTP和OLAP的能力,其中一项挑战是资源隔离,使业务之间互不影响。这便是OceanBase 带给咱们惊喜的中央。

对于外围业务来说,咱们心愿可能应用物理资源管理,比方行存正本服务 OLTP,列存正本服务 OLAP,这两种业务是不共享物理资源的,能够 做到相对的隔离 。 OceanBase 能够减少额定的只读正本,再通过配置 OBProxy 的 proxy_idc_name 实现读写拆散

图 4 为OceanBase 的物理资源隔离计划,基于只读正本,再减少逻辑机房的状况下,在 OBProxy 中配置逻辑机房的地位。所有 OLAP 的 只读流量都会录入只读正本中,防止与 OLTP 副争抢资源。

图4 OceanBase 的物理资源隔离计划

对于老本敏感的逻辑资源隔离,OceanBase 在同一租户内就可能实现 OLAP 和 OLTP 的物理资源共享,进而实现资源隔离。

对于逻辑隔离来说,首先 OceanBase 定义了一个大查问,默认将执行工夫超过 5 秒的申请断定为大查问,当大查问和短查问同时争抢 CPU 时,大查问会被升高优先级,待 CPU 资源短缺时再被挂起,咱们能够设置Large_query_worker_percentage 在同一租户内,大查问最多能够占用30%的用户线程数。在这种状况下,咱们能够无效隔离大查问对 OLTP 业务的影响,优先保障了 OLTP 业务的执行。

咱们应用了一些线上业务数据和 SQL 来比照 MySQL 和 OceanBase。在作业帮的业务场景中,一个大业务部门的报表须要多级 Leader甚至上百人频繁查看,因而,即便是 OLAP 类型的业务,QPS也能够达到几十甚至上百。咱们应用了60个并发去压测较简单的 SQL,通过图 5 能够看出,OceanBase 比 MySQL 最起码快了一倍以上。OceanBase 的CPU使用率也根本管制在25%以下。

图5 OceanBase 与 MySQL执行SQL耗时

在60个并发执行 OLAP 业务的同时,咱们也用256个并发去运行 Sysbench 工作,在 OLAP SQL 扫描量较大的状况下,咱们能够看到它的耗时呈现了一些抖动(见图6)。

图6 并发量256 运行 Sysbench 工作

以上就是作业帮对OceanBase 4.0 的摸索过程,目前,咱们曾经应用 OceanBase 半年了,总结出一些心得及倡议,供大家参考。

应用 OceanBase 的心得和倡议

首先,对于 OceanBase OCP 治理平台有如下几点倡议。

• 倡议减少 DDL 工作列表显示,须要在每一个租户下,能够看到有多少工作正在执行。

• 倡议减少 SQL 审核的性能,如果有业务正在从 MySQL 迁徙,能够尽快保障业务上线,缩小 DBA 工作,聚焦于对业务的落地。

• 在应用过程中咱们发现,每个租户下磁盘的使用量、数据库的大小及表的大小,这一部分数据的监控是缺失的,须要欠缺。

• 在集群中测试时,须要实时监控性能数据,比方 QPS 响应工夫、CPU 的使用率等,倡议在现有能力上再缩短提早。

其次,对 OceanBase 集群的一些问题,咱们也给出反馈,心愿得以晋升。

• DDL无奈实时查看工作的进度百分比,心愿后续能够减少该性能。

• 当初集群降级时须要确保每个租户的 leader 都汇集在单个 Zone 下,这样对于每个集群有上百个租户来说,操作会比拟繁琐,心愿能够优化。

• 对于大家在应用过程中须要留神大小写敏感的参数设置,一旦创立后业务上线不合理则无奈通过 SQL 语句进行批改,心愿优化。

• 倡议留神redo log 磁盘跟内存大小的配比,防止出现当磁盘空间还有富裕的时候,创立 redo log ,显示磁盘空间不够的问题。

最初,还有一些对于 OMS 数据迁徙平台的小倡议:目前存在的问题有三个,一是在数据迁徙过程中不反对新增 DB 的同步,对于数据归档或汇总的需要不敌对;二是 OpenAPI 凋谢的太少,不利于咱们外部平台的革新;三是 ghc 的长期表疏忽写法过于繁琐,须要每一个 DB 都写一个配。因为 OMS 数据迁徙是测试中罕用的性能,咱们心愿后续能有对立的配置,能够将 ghc 长期表对立过滤掉。


欢送拜访 OceanBase 官网获取更多信息:https://www.oceanbase.com/