性能提升 10 倍,OceanBase 二次 TPC-C 测试结果公布

阿拉蕾aaa
 阿拉蕾aaa
发布于 2020年05月21日
收藏 16

时隔半年,蚂蚁金服的自研数据库 OceanBase 又去做了 TPC-C 测试。TPC 去年10月2日和今年5月20日公布的测试结果显示,OceanBase 都是榜单第一。性能方面,去年 OceanBase 的测试结果是6088万 tpmC,今年则是7.07亿 tpmC;TPC-C benchmark 价格也从¥6.25/tpmC 降低到¥3.98/tpmC。不过,一些数据库公司,如 Oracle 并未参与这两次测试。

测试结果

OceanBase 是一个支持海量数据的高性能分布式数据库系统,由淘宝核心系统研发部、运维、DBA、广告、应用研发等部门共同完成。2017年开始对外商用。

之所以在短时间内做两次测试,是因为 OceanBase 团队认为首次测试尚未充分发挥 OceanBase 分布式架构的真正实力,同时也希望二次测试可以体现其性价比优势。两次 TPC-C 测试采用的都是OceanBase 2.2版本的 Oracle 兼容模式,目前蚂蚁金服内部以及外部商业银行均有 Oracle 业务已经迁移到 OceanBase 的 Oracle 模式。

性能方面。二次测试使用了1557台84核 ECS i2d 服务器,一期仅有207台服务器参与测试。这也证明 OceanBase 软件的分布式处理能力提升,软件性能的提升最终使 tmpC 结果提升十倍以上。

其次,单 CPU 核性能也在提升。基于同样的 CPU 核,第一次 TPC-C 测试使用了20764=13,248个 vCPU(虚拟机 CPU)核,本次则使用了155784=130,788个 vCPU 核,CPU 核数不到第一次的10倍,但整体性能达到了第一次的11倍以上,其中还有机群规模提升所带来的更大损耗。 

得益于 OceanBase 软件单核性能的优化以及软件价格的优化,TPC-C benchmark 价格下降了¥2.27/tpmC。

OceanBase 团队透露,从测试收益来看,首先它满足了 OceanBase 自身对于性能测试的需求,结果具有公认的参考价值;其次,7亿 tpmC 证明了分布式数据库可以满足严格要求下的事务处理,意味着能够满足互联网、金融、电信、政府等关键领域的核心系统的事务处理需求。

TPC-C 测试

TPC 是国际事务处理性能委员会简称,该组织是一个负责制定性能测试基准的非盈利委员会,其制定的 TPC-C 测试可衡量数据库在线事务处理能力。

性能和性价比是TPC-C 测试的两个衡量。性能由 tpmC(transactions per minute,tpm)衡量,C 指 TPC 中的 C 基准程序,它的定义是每分钟内系统处理的新订单个数。性价比衡量数据库单位成本,以系统的总价格/tpmC 数值得出。

TPC-C 是开放的测试基准,这样即便是参与测试公司的硬件架构和数据库软件架构有所不同,只要符合其规范,都可以参与测试。同时,TPC-C 测试非常严谨,极大程度杜绝作弊:

首先,TPC-C 要求被测数据库必须满足数据库事务的 ACID,即原子性、一致性、隔离性和持久性,其中隔离性为可串行化隔离级别,持久性要求能够抵御任何单点故障等。这是对 OLTP 数据库的基本要求。

第二,TPC-C 规定被测数据库的性能(tpmC)与数据量成正比,事实上真实业务场景也是如此。TPC-C 测试的基本数据单元是仓库(warehouse),每个仓库的数据量通常在70MB 左右(与具体实现相关),TPC-C 要求终端用户在选择事务类型时,需要按照规定的比例选择五种事务,终端用户每个事务都有一定的输入时间(对每种事务分别固定)和一定范围的随机的思考时间(一个对数函数),根据这些要求,每个仓库所能获得的 tpmC 值的理论上限是12.86(假设数据库的响应时间为0)。

第三,TPC-C 要求被测数据库能够以平稳的性能长期地运行。测试时,去掉启动预热(ramp up)和结束降速(ramp down)时间后,被测数据库至少要性能平稳地(steady state)运行8小时,其中性能采集时段(不少于2小时)内的性能累积波动不得超过2%。

第四,TPC-C 要求被测数据库的写事务的结果必须在一定时间内数据落盘(指数据库数据,不是日志,事实上 redo log 在事务提交前就落盘了),对于具备 checkpoint 功能的数据库,checkpoint 的间隔不得超过30分钟,checkpoint 数据持久化的时间不得超过 checkpoint 间隔。

第五,业务定向优化(profile-directed optimization,PDO)可以提升软件的性能,TPC-C 也允许使用 PDO,但有一些限制,比如采用 PDO 优化的版本需要在客户使用,数据库厂家需要对 PDO 优化的版本提供技术支持等。为了避免可能出现的异议,OceanBase 没有使用 PDO。

TPC-C 的测试成本非常高。如 OceanBase 这次的测试,从 FDR 来看,根据标准要求公开的3年总持有成本中硬件成本就有约为6亿人民币,包括软硬件及服务在内的三年总成本为28亿人民币。OceanBase 团队表示,因为租用了阿里云公有云的 ECS 虚拟机,来替代物理服务器和存储,可以便利扩容/缩容,也节省了成本,“实际测试中我们只需要在阿里云上购买相应 ECS 资源很短的时间,远远低于之前榜单上其它厂商测试的花费”。

然而过高的成本等因素导致一些公司不再参与 TPC-C测试。Oracle 上次测试还是在2010年。当时,Oracle 公司的 SPARC T3-4 Supercluster以30 249 688 tmpC 创造了 TPC-C 性能测试的新纪录。

目标是集成 HTAP

OceanBase 团队正把更多精力投入到外部市场。未来,OceanBase 的产品目标之一是在一套引擎里同时支持 OLAP 和 OLTP,即 HTAP,“在走访客户的过程中我们发现,绝大部分业务既需要 OLTP 又需要 OLAP”。

HTAP 是混合 OLTP 和 OLAP 业务同时处理的系统,Garnter 公司在2014年提出。根据最新定义:混合负载(HTAP Hybrid Transactional/Analytical Processing)在保留原有在线交易功能的同时,也强调了数据库原生计算分析的能力。它被认为打破了事务处理和分析之间的“墙”,支持更多的信息和“实时业务”的决策。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:性能提升 10 倍,OceanBase 二次 TPC-C 测试结果公布
加载中

精彩评论

Artrener
Artrener
既然参与了主流的测试,说明是有真本事的,我个人是支持和佩服。无脑喷,喷来喷去,也没啥作用,还不如鼓励。
Open不Open
Open不Open
OceanBase 是 从 哪个 开源数据库 二次开发的?
薯粉1Q84
薯粉1Q84
:smile:亩产万斤
心若醉
不应该是同等配置去比性能吗:eye_roll:
chdya
chdya
只能说,看着很牛逼。如果带领大家一起玩,溜溜的,才是真牛逼。

最新评论(27

SudyX
SudyX
乌龟壳已经不屑于华山论剑了.
云人下天
为什么不直接堆CPU造超级计算机?而要研发?你以为简单的增加CPU就能实现了?
东方星痕
东方星痕
一堆人看起来没学过项目管理,也没用过分布式代码管理工具,更别说性能测试相关的了。。。
風雲劍客
風雲劍客
麻花藤出来走两步
乌龟壳
乌龟壳
总算力还不彻底,其实成本就足够衡量了,这里统计了单位成本
haitaosoft
haitaosoft
最有价值的不是绝对性能,而是扩展损耗率:大量机器参与集群之后为总性能折损,
例如100台算力80的机器得到3000的总算力,扩展损耗率 为5/8
二进制艺术
二进制艺术
这个是用什么语言写的?
ding465398889
ding465398889
阿里不就是要打破垄断嘛
slyang520
slyang520
你们数据量 不配用 这个☺️
返回顶部
顶部