引子
两个多月前的一则消息刷爆朋友圈: 阿里数据库 OceanBase 刷新尘封九年的世界纪录并赢得冠军. 那这个数据库的世界纪录 TPC-C 到底是啥?
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 年, G 务院发布的《国家中长期科学和技术发展规划纲要(2006-2020 年)》首提 "核高基" 概念, 其中 "基" 指的就是以数据库, 操作系统, 中间件等核心的基础软件产品. 金融, 电信, Z 府等关键领域的客户一般参照 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 即可参与评测
因其国际性, 专业性, 严格, 客观, 经过多年时间检验后成为业界最权威的榜单.
Oracle 与 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 榜单带来的利益异常巨大, 引得各路英雄你争我夺. 因为评测需要的软硬件投资巨大, 所以 TPC 的评测门槛相当高, 动辄几百上千万, 甚至上亿美金, 只有几个大玩家在那里玩. 大佬们不是想通过这个榜单卖软件就是想卖硬件. Oracle,DB2,Microsoft SQL Server 在过去的几十年中你来我往. 一般认为 Oracle 排第一, DB2 第二, 微软 SQL Server 排第三. 可以看得出来微软一直不愿安于现状, 频繁挑战. 可以看到 Microsoft SQL Server 是多么想挑战 Oracle 跟 DB2 数据库的地位! SAP/Sybase, 塔塔是挑战者. 截止 2020 年 1 月 2 日, 包括单机跟集群的一起, 总共 TPC-C 有 378 条记录. 评测结果分布如下:
来源: http://www.bubuko.com/infodetail-3367377.html