【51CTO.com原创稿件】今年国庆期间,除了看到阅兵式上国产自研的枪械和飞机,还有一个振奋人心的消息:10月2日,国际事务处理性能委员会(TPC)官网披露,中国蚂蚁金服自主研发的金融级分布式关系型数据库OceanBase,在TPC-C基准测试中,打破了由美国公司Oracle保持了9年之久的世界纪录,成为首个登顶该榜单的中国数据库产品,连中国工程院院士都给予了高度评价。
TPC-C基准测试按性能排名前十位
在这则消息被刷爆朋友圈后,笔者内心也是十分的激动,毕竟看到了我们国产自主研发的数据库终于可以和世界顶级产品相媲美。不过,激动过后还要理性看待。究竟蚂蚁金服的OceanBase究竟有多厉害呢?让我们先了解下TPC-C基准测试后,再来评价。
什么是TPC?
TPC( Transaction Processing Performance Council ),事务处理性能委员会,是由数10家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,它的功能是制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并管理测试结果的发布。
TPC不给出基准程序的代码,而只是给出基准程序的标准规范(Standard Specification)。任何厂家或其它测试者都可以根据规范,最优地构造出自己的系统(测试平台和测试程序)。为保证测试结果的客观性,被测试者(通常是厂家)必须提交给TPC一套完整的报告(Full Disclosure Report),包括被测系统的详细配置、分类价格和包含五年维护费用在内的总价格。该报告必须由TPC授权的审核员核实(TPC本身并不做审计),现在全球只有几个审核员,全部在美国。
什么是TPC-C基准测试?
TPC-C是在线事务处理(OLTP)基准测试,TPC-C测试规范经过两年的研制,于1992年7月发布。
TPC基准测试的目标是定义一组可以在任何事务处理系统上运行的功能要求,而与硬件或操作系统无关。然后由测试发起人提交证明其已满足所有要求的证据(以完整披露报告的形式)。这种方法允许任何使用“专有”或“开放”系统的供应商实施TPC基准。TPC基准测试与其他基准测试的不同之处还在于,TPC基准测试是根据实际生产应用程序和环境建模的,而不是独立的计算机测试,后者可能无法评估关键性能因素,如用户界面,通信,磁盘I/O,数据存储,备份和恢复。
基准模型
作为OLTP系统基准,TPC-C模拟了一个完整的环境,在该环境中,大量的终端操作员针对数据库执行事务。基准以订单输入环境的主要活动(交易)为中心。这些交易包括输入和交付订单,记录付款,检查订单状态以及监视仓库中的库存水平。但是,值得注意的是,TPC-C并不是要指定如何最好地实施订单输入系统。虽然基准描述了批发供应商的活动,但TPC-C不仅限于任何特定业务领域的活动,而是代表任何必须管理,销售或分销产品或服务的行业。
在TPC-C业务模型中,批发零件供应商(以下简称为公司)在多个仓库机器关联的销售区之外运营。TPC基准旨在随着公司的扩展和新仓库的建立而扩展。但是,在扩展基准时必须保持某些一致的要求。
公司拥有若干个分布在不同区域的商品仓库,每个仓库负责为10个销售区供货,每个销售区为3000个客户提供服务,每个客户平均一个订单有10项产品,每个仓库都要维护公司销售的100000个商品的库存记录。但实际上,一个仓库可能不会满足所有订单中的所有产品,因此,TPC-C基准测试要求所有订单的近10%必须由公司的另一个仓库提供货物。
该系统需要处理的交易为以下几种:
New-Order:客户输入一笔新的订货交易;
Payment:更新客户账户余额以反映其支付状况;
Delivery:发货(模拟批处理交易);
Order-Status:查询客户最近交易的状态;
Stock-Level:查询仓库库存状况,以便能够及时补货。
对于前四种类型的交易,要求响应时间在5秒以内;对于库存状况查询交易,要求响应时间在20秒以内。
测试指标
TPC-C的测试结果主要有两个指标:
·性能(tpmC)
TPC-C基准测试的性能由TPC-C吞吐率衡量,单位是tpmC。tpm是transactions per minute的简称;C指TPC中的C基准程序。性能指标描述了系统在执行Payment、Order-status、Delivery、Stock-Level这四种交易的同时,每分钟可以处理多少个New-Order交易。所有交易的响应时间必须满足TPC-C测试规范的要求。
TPC-C测试规范的要求
值得注意的是,tpmC反应的是C/S整体系统的性能,它与系统的服务器和客户机的性能都有关系,也就是说,同样的服务器配置不同的客户端将会影响tpmC值。
·性价比(Price/tpmC)
即测试系统价格(指在美国的报价)与流量指标的比值。TPC-C 基准测试中的价格是包括计算软硬件价格以及三年服务价格,除了操作系统、数据库、存储、服务器等软硬件以外,还包括针对TPC-C场景开发的应用系统,以及测试使用的电脑。
蚂蚁金服OceanBase的过人之处
OceanBase项目于2016年立项,第一个用户是淘宝收藏夹。2013年7月,淘宝广告系统使用的Oracle数据库下线,也是整个淘宝最后一个Oracle数据库。2014年,蚂蚁金服开展交易去O项目,即核心交易从Oracle迁移到OceanBase,在交易去O后,蚂蚁金服将所有核心业务迁移到OceanBase。2015年,OceanBase成功上线网商银行,成为全球首个应用在金融核心业务系统的分布式关系数据库。2016年,OceanBase替换了支付宝核心的账务系统中的Oracle数据库。2017年,支付宝首次把账务库在内的所有核心数据链路搬到OceanBase上,并在双十一创造了4200万次/秒数据库处理峰值的全新纪录。
TPC-C基准测试-蚂蚁金服和Oracle使用的软硬件环境信息对比图
对比蚂蚁金服OceanBase与9年前Oracle的基准测试结果可以看出,蚂蚁金服花费了当年甲骨文测试总成本的近1.5倍,达到了后者当年测试结果性能的两倍。
对于此次蚂蚁金服OceanBase的成功打榜,有质疑榜单中的时效性。在TPC-C的测试结果排名页面有句话,所有灰色背景的测试结果,由于软硬件升级的原因而过期,测试结果有效期为3年。也就是说,此时在性能排名前50里,只有蚂蚁金服是有效的,其他公司因为太久没有参与测试,以前的测试结果全部过期。
虽然,九年时间里,软硬件技术快速发展,但是,国产自研数据库能够成功打榜数据库OLTP测试领域的权威标准TPC-C,也证明了我国的技术实力也在逐渐赶超。
值得注意的是,蚂蚁金服OceanBase通过TPC-C基准测试,是基于阿里云的ECS云服务器,总共使用了 204 台 ECS i2 云服务器,成本取决于测试时间,因此蚂蚁金服OceanBase这次TPC-C基准测试的硬件成本占到总成本近18%,而Oracle的硬件成本则占总成本的76%。蚂蚁金服OceanBase的价格则因为软件定价则相对较高。
如何理性看待
TPC-C基准测试虽然可以反映出系统性能的优良,但是企业为了测试打榜而搭建的软硬件系统,肯定是经过充分优化过的。这里的系统包括主机、外设(如硬盘或RAID)、主机端操作系统、数据库软件、客户端计算机及其操作系统、数据库软件和网络连接等等。因此,性能数据说明的是系统的整体性能,而不能是单一产品的。用户在选择时,还需要根据自己企业的业务特点、实际的系统、考量标准等多重因素来进行选择,不应盲目的根据榜单中的tpmC值一概而论。
此外,大多数基准程序都是在美国制订的,而中国企业与美国的运作方式不一样,因此,中国企业的应用是否符合TPC-C基准测试中的批发商业务模型?事务请求是否与标准中的比例近似?所以,在某些情况下,tpmC值仅仅就是参考值。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】