性能提升 10 倍,OceanBase 二次 TPC-C 测试结果公布
时隔半年,蚂蚁金服的自研数据库 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)在保留原有在线交易功能的同时,也强调了数据库原生计算分析的能力。它被认为打破了事务处理和分析之间的“墙”,支持更多的信息和“实时业务”的决策。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python一切皆是对象,但这和内存管理有什么关系?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Python的内存管理机制 对于工程师而言,内存管理机制非常重要,是绕不过去的一环。如果你是Java工程师,面试的时候一定会问JVM。C++工程师也一定会问内存泄漏,同样我们想要深入学习Python,内存管理机制也是绕不过去的一环。 不过好在Python的内存管理机制相对来说比较简单,我们也不用特别深入其中的细节,简单做个了解即可。 Python内存管理机制的核心就是引用计数,在Python当中一切都是对象,对象通过引用来使用。 我们看到的是变量名,但是变量名指向了内存当中的一块对象。这种关系在Python当中称为引用,我们通过引用来操作对象。所以根据这点,引用计数很好理解,也就是说我们会对每一个对象进行统计所有指向它的指针的数量。如果一个对象引用计数为0,那么说明它没有任何引用指向它,也就是说它已经没有在使用了,这个时候,Python就会将这块内存收回。 简单来说引用计数原理就是这些,但我们稍微深入一点,来简单看看哪些场景会引起对象引用的变化。 引用计数的变化显然只有两种,一种是增加,...
- 下一篇
VMware在超大规模云兴起,将本地VMware应用迁入6大公有云
随着谷歌扩展Google Cloud VMware Engine,VMware继续在超大规模云中开疆扩土。 现在,VMware已经先后将其一体化的软件定义数据中心平台VMware Cloud Foundation陆续迁入了亚马逊AWS、阿里云、微软Azure、IBM、Oracle和谷歌。 如同VMware曾在在虚拟化市场占据统治地位一样,现在它正在超大规模云中正在兴起。 具体来说,这六家超大规模的公有云提供商在云中提供针对VMware的完整堆栈,以管理虚拟机和容器编排混合云平台。 堆栈包括了VMware Cloud Foundation中的虚拟化平台vSphere,集中管理应用vCenter,虚拟化存储软件vSAN,2-7层网络的NSX-T,云迁移工具HCX。 企业现在可以通过VMware Cloud on AWS,微软的Azure VMware Solution,Google Cloud VMware Engine,阿里云VMware服务,Oracle Cloud VMware解决方案,以及IBM Cloud for VMware解决方案将本地基于VMware应用迁移到公有云中。 通...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境