引子
两个多月前的一则消息刷爆朋友圈:阿里数据库OceanBase刷新尘封九年的世界纪录并赢得冠军。那这个数据库的世界纪录TPC-C到底是啥?
要说TPC-C,得先了解一下TPC。 TPC即国际事务处理性能委员会(TPC,Transaction Processing Performance Council),这是个啥东东呢?实际上就是国际的手机评测机构,不对,是计算机系统评测机构,是非营利行业组织。可以简单理解为其职责是发布企业级数据库评测榜单并制定榜单的测试标准、流程和规范。它成立于1988年,总部设在美国。TPC目前(2020年1月1日)总共有13个大类的榜单,主要关注性能跟性价比。TPC榜单考核了最真实、最核心的东西,极大的杜绝了作弊,相当于数据库领域的“世界杯”。
TPC包括会员,准会员,专业附属企业、审计员组成。其会员单位为全球20几家公司。
## 源起
与 20 世纪 60 年代和 70 年代主导行业的批量计算模型相反,20 世纪 80 年代初,该行业开始了一场随着时间推移而加速的竞赛:最终用户业务交易的自动化,这种自动化趋势波及到几乎所有业务领域,从杂货店到加油站。,这种新的在线计算模型对职员和消费者而言要求相对简单,就可以直接更新交易系的在线数据库。因此在线交易行业诞生了,这个行业现在代表着数十亿美元的年销售额。
那么谁的IT系统性能好,就意味着巨大的经济利益。但各种性能评测鱼龙混杂,比如IBM提出的TP1跟图灵奖 获得者Jim Gray提出的DebitCredit 。Omri Serlin受够了。1988 年 8 月 10 日,他 成功忽悠/说服了八家公司成立交易处理绩效委员会 (TPC)。
TPC-C是TPC发布的最重要标准,因为它主要评测的是在线交易型应用系统的性能。通俗地讲,所谓在线交易型数据库(OLTP)指的是普通却很重要的核心业务系统,如12306的卖火车票的系统,美团叫外卖的下单系统等。与OLTP系统对应的是OLAP系统,可以通俗地理解为报表系统,比如中移动的报表系统,专门帮用户统计话费或者帮移动统计每个月的综合利润等。当然现在又增加了大数据相关的标准。一般来讲,报表早一点迟一点出来关系不大;但我下单了,半天完不成交易就影响做生意赚钱了。另外OLTP也是OLAP的基础,所以业界对在线交易型数据库更加看重,因此TPC-C相对而言最重要。这次阿里拿下的就是TPC-C这个榜单的冠军。2006年,国务院发布的《国家中长期科学和技术发展规划纲要(2006-2020年)》首提“核高基”概念,其中“基”指的就是以数据库、操作系统、中间件等核心的基础软件产品。金融、电信、政府等关键领域的客户一般参照 TPC-C 结果来衡量各个数据库厂商的事务处理能力。
## 科学性
TPC-C非常科学也很高明地对软硬件架构不做限定.
被评测的软硬件系统要求在公开市场上能买到
那么TPC-C有多专业、多严格呢?简单举两个例子:
TPC-C模拟真实世界业务系统的情况,这个系统你可以认为是一个简化版的卖咖啡的瑞幸手机App。TPC-C有5种事务:订单创建、订单支付,订单查询、订单发货跟库存查询。各种事务都有规定的比例,其中订单支付不低于43%,订单查询、订单发货和库存查询均不能低于4%,其余为订单创建(不高于45%)。订单创建里面有1%订单是要回滚的。最多15件商品,平均10件商品。模型是以一个仓库为单位,每个仓库有10个销售点/仓库,每个销售点服务3000个顾客。模拟某一个顾客到销售点买东西,买的东西可能是3件,可能是12件,因为买的东西不一定都在本地仓库里有,所以每件商品假设有1%概率在其它仓库,每个订单创建的事务如果在分布式系统里有10%的概率是分布式的事务。还有订单支付里面有15%概率不在本地仓库支付,要到异地仓库支付,也变成分布式事务。tpmC值是订单创建事务每分钟执行的数量。最后主要考核tpmC跟性价比。
整个应用系统和数据库都要公开,你用什么机器,机器配置是什么,包括价格都要公开。杠精,不对,是挑战者可以从公开市场上买到。大到功能、数据一致性和容灾能力,小到测试过程中使用过的鼠标键盘价格,都需要严格披露。
另外TPC-C主要是个性能评测,为了杜绝厂商纯粹堆硬件,就这方面设有专门的考查指标,就是系统软硬件、包括技术支持服务在内的3年总成本分摊到每个tpmC的价格。
## 客观
要求被测试系统出具完整的评测披露报告,将相关信息公开以便公众审视
评测结果要求TPC专员专人审计
评测结果有60天的面向公众的公示期,无异议后才生效
另外也绝对不会因为经济利益影响榜单成绩
## 国际性
任何人联系TPC即可参与评测
因其国际性、专业性、严格、客观,经过多年时间检验后成为业界最权威的榜单。
早在1993年4月,位于马萨诸塞州的咨询公司Standish集团指控Oracle在其数据库软件中增加了一个特殊的选项(离散交易),其唯一目的是夸大Oracle的TPC-A评测结果。TPC随之更新的评测标准。Oracle在1994年10月前撤回了所有结果。
2009年9月29日,TPC公开发文谴责Oracle对TPC-C评测结果的虚假宣传
但Oracle仍留留在 TPC组织内。它无疑是TPC最大的获益者,其数据库带动关联产品及服务让其成为全球数据库领域的王者。
可以看得出Oracle一直野心勃勃,但最终却也胜出。
TPC榜单带来的利益异常巨大,引得各路英雄你争我夺。因为评测需要的软硬件投资巨大,所以TPC的评测门槛相当高,动辄几百上千万、甚至上亿美金,只有几个大玩家在那里玩。Oracle、DB2、Microsoft SQL Server在过去的几十年中你来我往。一般认为Oracle排第一,DB2第二,微软SQL Server排第三。可以看得出来微软一直不愿安于现状,频繁挑战。SAP/Sybase,塔塔是挑战者。截止2020年1月2日,包括单机跟集群的一起,总共TPC-C有378条记录。可以看到Microsoft SQL Server是多么想挑战Oracle跟DB2数据库的地位!评测结果分布如下:
TPC与中国
塔塔成绩虽然很差,但是人家好歹敢参加,而且一下子有7条记录上榜,其上榜的主要原因其实是因为其它记录过期了。请容许我先笑一会儿。
在阿里巴巴之前,没有一家公司上榜。这次阿里一举夺魁,确实可喜可贺!
技术创新
阿里的OceanBase是全球第一款参与评测的分布式数据库,通过这次严格的测试验证了分布式关系型数据库的技术可行性。
同样因为分布式技术,也使得采用普通机器存储关键数据成为可能;因为不是专门的设备而是云主机,可方便采用租用的方式,这大大降低了存储成本跟测试成本。TPC-C要求的是整个系统软硬件加技术支持3年的总体成本来计算,这次OceanBase只租用了3个月的阿里云,总的测试硬件成本:3.8亿×18%÷36(3年折算成月份)×3=570万人民币。Oracle的测试硬件花了30,249,688×6(汇率)*65%=1.18亿,约是20.7倍。Oracle测试的硬件当然以后可以用在其它方面,但测试之前你得掏钱买。
同样因为这次是全球首次分布式数据库参与TPC-C评测,TPC借此机会明确并完善了TPC-C的评测标准、评测方法。
阿里为国产数据库冲击榜单趟出了一条道,同时开源了此次测试的工具及相关文档、数据,并共享了此次评测的平台,这极大降低了各厂商参加TPC-C评测的软硬件成本,大大降低了门槛。
TCP会员、准会员(截至至2020年1月1日)如下
想了解数据库领域的“世界杯”TPC-C,看完这一篇就够了
目前阿里巴巴,联想跟华为三家中国公司是会员,中国信通院是准会员。人数不少,就是登榜记录少了点,期待在阿里巴巴的带领之下,来年更多中国公司上榜。
关注我,每周分享数据相关干货!