破世界纪录的国产数据库OceanBase,如今入选了国际顶会VLDB 2022(2)

简介: 破世界纪录的国产数据库OceanBase,如今入选了国际顶会VLDB 2022

作为一个分布式数据库,在 TPC-C 这个原本为集中式数据库而设的基准上取得如此成绩,OceanBase 团队遇到并解决了以下四个挑战。

第一个挑战是基准规范的持久性要求。测试时,OceanBase 数据库系统在商用硬件上运行,选择了具有 3 个区域部署的单个 Region。每个 Paxos 组由 3 个副本组成,即全能型副本、数据型副本和日志型副本。相较于使用 3 个全能型副本,这种配置将 MemTable 使用的 RAM 减少 2/3,将基线数据使用的存储减少 1/3。此外,通过消除数据型副本和日志型副本上重做的 redo log,某些 CPU 周期也得以缩短。

第二个挑战是关于生成基准测试初始数据的耗时过程。考虑到每个仓库(TPC-C 的基本数据单元)的行数(499,000+)、每个 OceanBase 节点的仓库数(共计55,944,000 和 36,000)以及所需数据量,基础测试的初始数据生成任务非常繁重。

为了缩短初始数据生成时间,OceanBase 集群首先配置为 1 个副本,而不是 3 个副本和 no-logging。另外,在初始数据生成期间通过单个事务将数千个行批量插入数据库。所有初始数据插入后,OceanBase 被重新配置为 3 个副本,即全能型副本、数据型副本和日志型副本,然后分区得以自动重新复制和重新平衡。No-logging 也被关闭,并且系统在完成上述重新复制、重新平衡以及主要压缩后准备好进行测试。

第三个挑战是 ITEM 表。由于 ITEM 表在 TPC-C 基准上被事务频繁地访问,因此应该在每个 OceanBase 节点上进行复制,以避免远程访问并保证性能。此外,对于 ITEM 表上的任何事务而言,都必须满足 ACID 属性。因此,ITEM 表被配置为了一个同步复制表。

第四个挑战是根据 TPC-C 基准规范,基准测试测量间隔期间累积性能吞吐量的变化不应超过 2%。对于 OceanBase 而言,它有几个后台操作,比如次要压缩、 混合压缩 (将几个次要压缩合并为一个)以及将次要压缩从全能型副本复制到数据型副本。所有后台操作的 CPU 线性池得到保留以将性能吞吐量变化降至最低。

此外,MemTable 大小的上限应该选得足够小,以便在 RAM 被新事务耗尽之前完成次要压缩。它还必须足够大以利用每个节点 RAM 并产生最少的次要压缩。最后,8 小时基准测试测量间隔期间的性能吞吐量累积变化小于 1%。

详细性能结果

使用上述配置,TPC-C 基准测试分别在 3、9、27、81、243、510 和 1554 台服务器的 OceanBase 集群上运行,测试间隔为 8 小时。结果如下图 8 所示,tpmC 性能分数随着数据节点的增加呈线性上升,具有高度扩展性,在 1554 台服务器上运行时超过 7.07 亿,这一新的世界纪录相较 2019 年 10 月 OceanBase 自己创造的 6088 万 tpmC 提升了近 11 倍。


新订单(New-Order)响应时间如下图 10 所示。图 10(a) 报告了新订单事务类型的最大、90%、平均和最小响应时间曲线图,后三项数值基本重合。最小响应时间为 103 ms,平均和 90% 响应时间接近,最小与最大差距分别为 5ms 和 33ms。图 10(b) 展示了新订单响应时间分布,其中绝大多数新订单事务在 20ms 内完成。


从新订单的角度,我们可以发现 OceanBase 具有很强的可扩展性。原因在于:1)无状态 OBProxy 的透明转发大大减少了分布式事务,并优化了本地事务;2)OceanBase 2PC 加速了分布式事务处理;3)存储过程加速了事务执行;4)优化的 LSM-tree 减少了事务写入操作;5)非常高效的快速 SQL 参数化有助于 OLTP 短查询场景。

支付(Payment)响应时间如下图 11 所示。图 11(a) 报告支付事务类型的最小、平均、90% 和最大响应时间曲线图,前三项数值重合。最小平均响应时间为 110ms(3 个节点),最大平均响应时间为 123ms(1554个节点);最小 90% 响应时间为 114ms(3个节点),最大 90%响应时间为 154ms(1554个节点)。图 11(b) 展示了具有 1554 个节点的支付响应时间分布。


订单状态(Order-Status)响应时间如下图 12 所示。图 12(a) 报告了订单状态事务类型的最大、90%、平均和最小响应时间曲线图,后三项数值大致重合。最小和最大平均响应时间分别为 107ms 和 117ms,最小和最大 90% 响应时间分别为 109ms 和 141ms。图 12(b) 展示了具有 1554 个节点的订单状态响应时间分布。


配送(Delivery)响应时间如下图 13 所示。图 13(a) 报告 事务类型的 90%、最大、最小和平均响应时间曲线图,其中 90% 响应时间大于平均响应时间。对于第 3、9、27、81、243 和 510 个节点,最小和最大平均响应时间分别为 17ms 和 19ms,而最小和最大 90% 响应时间分别为 22ms 和 27ms。图 13(b) 展示了具有 1554 个节点的交付响应时间分布。


存货水平(Stock-Level)响应时间如下图 14 所示。图 14(a) 报告存货水平事务类型的最大、90%、平均和最小响应时间曲线图,后三项数值基本重合。90% 的响应时间大于平均响应时间。最小和最大平均响应时间分别为 109ms(3 个节点)和 120ms(1554 个节点),最小和最大 90% 响应时间分别为 114ms(3 个节点)和 152ms(1554 个节点)。图 14(b) 展示了具有 1554 个节点的存货水平响应时间分布。


中国数据库未来:在不断突破中前行

在短短十余年的发展历程中,OceanBase 经历了多次产品定位和技术创新升级。

这一期间,OceanBase 成为全球唯一在 TPC-C 和 TPC-H 测试(用于评测数据库的分析型查询能力)上都刷新了世界纪录的分布式数据库。


从 OceanBase 的技术理念角度看,首先确保的是稳定可靠。例如,OceanBase 系统内部有一个数据校验机制,自动对多个副本之间进行实时的事务一致性校验和定期的基线数据一致性校验,为了实现该校验功能,会牺牲一些性能,且对存储格式的设计方案有一定约束,但 OceanBase 认为这是必须的,是数据库最基本最朴素的第一原则。

OceanBase 的分区技术使其非常重要的分布式能力之一,能够解决大表的容量问题和高并发访问时的性能问题。分区是指按照用户指定的一定规则,将表分成更小、更易于管理的部分,例如二级分区和基于虚拟列的分区。与分片相比,分区的好处有很多,比如访问 OceanBase 数据库的应用逻辑上只需访问一张表或一个索引、分区对应用程序完全透明且不会影响它们的业务逻辑、访问分区表不需要修改 SQL 语句等。

从分布式 NoSQL 存储系统到分布式 NewSQL 关系数据库系统,OceanBase 还总结了以下实践经验:1)应用层不应使用数据库系统作为键值存储系统,应依赖数据库的高级特性;2)存储过程对于OLTP应用还是有很大价值的;3)对于使用分布式数据库的应用程序,由于分布式系统网络和节点的故障率较高,每个事务和每个 SQL 都应该设置一个超时时间,如果应用程序设置了超时,数据库可能会在许多失败情况下重试以提高健壮性,无限超时时间在复杂情况下可能会导致逻辑死锁,不利于整体容灾。

从 2019 年 10 月首次荣登TPC-C性能榜首,到 2020 年 6 月再破世界纪录,OceanBase 让中国数据库拥有了挑战甚至战胜 Oracle、MySQL 等国外主流数据库的底气。

2021 年 6 月,OceanBase 宣布开源,开放 300 万行核心代码,允许所有社区参与者对代码进行自由修改、使用和引用。OceanBase 社区也同时上线。目前,开发者在开源社区能够完整使用 OceanBase 数据库内核。

当然,作为一个以通用数据库为定位的数据库产品,OceanBase 还有需要完善的地方,接下来也会遇到各种挑战,但在 TPC-C 性能这件事情上,OceanBase 已经不用试图证明什么。

本次通过论文的方式,将 OceanBase 的技术突破及创新向学界和工业界分享,成为 VLDB 2022 分布式数据库领域全球唯一获得可复现认可徽章(Artifact Available Badge)的工业论文,OceanBase 已经为数据库产业提供了有价值的新的思考。我们衷心期待 OceanBase 发展出一个与 MySQL、PostgreSQL 同等规模的一体化数据库产品和社区。

相关文章
|
3月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
311 0
|
19天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
58 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
1月前
|
存储 分布式计算 数据库
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
|
1月前
|
SQL 存储 人工智能
OceanBase CTO杨传辉谈AI时代下数据库技术的创新演进路径!
在「DATA+AI」见解论坛上,OceanBase CTO杨传辉先生分享了AI与数据库技术融合的最新进展。他探讨了AI如何助力数据库技术演进,并介绍了OceanBase一体化数据库的创新。OceanBase通过单机分布式一体化架构,实现了从小规模到大规模的无缝扩展,具备高可用性和高效的数据处理能力。此外,OceanBase还实现了交易处理、分析和AI的一体化,大幅提升了系统的灵活性和性能。杨传辉强调,OceanBase的目标是成为一套能满足80%工作负载需求的系统,推动AI技术在各行各业的广泛应用。关注我们,深入了解AI与大数据的未来!
|
3月前
|
关系型数据库 分布式数据库 数据库
安全可靠的国产自研数据库PolarDB V2.0,让数据库开发像“搭积木”一样简单!
安全可靠的国产自研数据库PolarDB V2.0,让数据库开发像“搭积木”一样简单!
安全可靠的国产自研数据库PolarDB V2.0,让数据库开发像“搭积木”一样简单!
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
国产数据库的发展趋势是什么?
【8月更文挑战第26天】国产数据库的发展趋势是什么?
100 15
|
3月前
|
Oracle 关系型数据库 MySQL
OceanBase 与传统数据库的对比
【8月更文第31天】随着云计算和大数据技术的发展,分布式数据库因其高扩展性、高可用性和高性能而逐渐成为企业和开发者关注的焦点。在众多分布式数据库解决方案中,OceanBase作为一个由阿里巴巴集团自主研发的分布式数据库系统,以其独特的架构设计和卓越的性能表现脱颖而出。本文将深入探讨OceanBase与其他常见关系型数据库管理系统(如MySQL、Oracle)之间的关键差异,并通过具体的代码示例来展示这些差异。
255 1
|
3月前
|
存储 运维 Cloud Native
核心系统转型问题之阿里云数据库在国际市场的布局情况咋样
核心系统转型问题之阿里云数据库在国际市场的布局情况咋样
|
3月前
|
关系型数据库 OLAP 分布式数据库
揭秘Polardb与OceanBase:从OLTP到OLAP,你的业务选对数据库了吗?热点技术对比,激发你的选择好奇心!
【8月更文挑战第22天】在数据库领域,阿里巴巴的Polardb与OceanBase各具特色。Polardb采用共享存储架构,分离计算与存储,适配高并发OLTP场景,如电商交易;OceanBase利用灵活的分布式架构,优化数据分布与处理,擅长OLAP分析及大规模数据管理。选择时需考量业务特性——Polardb适合事务密集型应用,而OceanBase则为数据分析提供强大支持。
958 2
|
3月前
|
存储 SQL 算法
【OceanBase】惊天大反转!启动时真的会占用95%磁盘空间?别怕!揭秘真相+实用调整技巧,手把手教你如何优雅地管理磁盘空间,让你的数据库从此告别“吃土”模式!
【8月更文挑战第15天】OceanBase是一款高性能分布式数据库,启动时并不会默认占用95%磁盘空间,这是一种误解。其设计注重资源管理,可根据业务需求动态调整空间使用。通过设置`max_disk_usage`等参数、优化表设计、定期清理数据及启用压缩等功能,可有效控制磁盘占用,确保高效利用存储资源。
81 1