Oracle 的 TPC-C 记录,停留在 9 年前。当时用的是 11040 块 SSD(别惊讶,大家都是堆叠硬件),每块容量 24GB。当时单个 SSD 的 IOPS 最多能跑到几万。
蚂蚁金服的 OceanBase,用了 1632 块 NVMe SSD(204 个节点,每个节点 8 块),每块容量 1.8TB。现在单盘 IOPS 大约是几十万。没给出具体的型号,确切数字只能用行业平均值预估。
SSD 的容量其实在这里没有意义,就是用来数据存储。主要看 IOPS 的能力。NVMe SSD 因为采用了新的协议,有更低的时延(Latency),所以,吞吐能力更强。
TPC-C 这种测试,要跑 Transaction,IOPS 必然是瓶颈。粗略估算一下,OceanBase 所部署的设备,I/O 能力至少是 Oracle 两倍,因为不止是存储 I/O 的能力增强了,网络 I/O 的能力也增强了,网络延时更低。
TPC-C 跑出两倍来真的没什么奇怪,跑不出两倍才会奇怪。更别提摩尔定律了。
啥?摩尔定律,要提这个,就有意思了。简单一点,把 Oracle 当年测试的存储部分的成本,用来购买今天的存储硬件。几分之一的钱,就可以买到跟当年所用的存储一样的 IOPS 能力了。
然后你看,Oracle 9 年前的记录,每个 tpmC 成本 1.01 USD,当时美元人民币的汇率是 6.3 啊。9 年后,OceanBase 是 6.25 人民币/tpmC。这个指标其实挺惨淡的。
或者也可以说,蚂蚁金服开发的这个数据库,从 Total Cost of Ownership(总体拥有成本)上来说,并没有给自己省钱。当然,解决了自己业务场景的瓶颈,另当别论(那你咋不说还有人力开发投入呢)。
Oracle 如果要重新拿一个更好的记录,应该没有任何悬念,把 SSD 和 PCI-e 什么的换成最新的,数据库版本就用当年的老版本都没啥问题。
TPC-C 这个东西啊,SSD 没有商业应用之前,物理硬盘的时代,峰值也就是跑到百万的级别。得用 2000 多块硬盘。
后来为啥大家都对 TPC-C 不太积极了呢?并不是 Oracle 孤独求败了,主要是 SSD 成熟之后,I/O 几乎不是瓶颈了,宣传自己的硬件服务器性能有多好,忽悠不住客户了。而且,整个行业的计算架构都发生了变革。TPC-C 这个东西,过时了。
所以,厂商跑出来的记录真不具备可比性。或者说,具有很大的欺骗性。当然,商业公司愿意搞这个,也要考虑到一些其它因素,比如小团队或是个别技术负责人总要自己的业绩的嘛,搞点新闻,好在内部争取利益的嘛。
其实这种手法很常见,知道就可以了,别当真。做技术的,自己要有这个基本的判断能力。
咋说呢,就好比俩人跑百米,一个 9 年前创造了记录,但吃了一片儿兴奋剂。9 年后,随着科学技术的进步,另一个也破了记录,当然也吃了兴奋剂,还他妈的吃了两片儿。
注意这个比喻并不十分准确,甚至有点误导。即使有人会以为这是谁把尘封九年的百米校运会记录打破了,人家当年是在土路上跑出来的记录,可是,现在你在塑胶跑道上,还五六级顺风,跑出来一个新纪录,体育老师会认为这…得打点折扣吧。不能自己骗自己啊。
都挺扯的。
技术领域的事情,我认为还是应该踏实一点。