蚂蚁金服的数据库据说又跑出来新纪录了,打破外国数据库(Oracle)垄断了,扬眉吐气了。
去年用了 207 个数据库节点,每个配备 8 块 SSD,这一次用了 1557 个节点,每个配了 4 块容量更大 IOPS 更好的 SSD。看起来,上次 I/O 配置并不太合理,瓶颈还是最终压在了 SSD 上,这一次可以更优化了一些。
也不是没有亮点,每 tpmC 成本降低了不少。上次 6.25 人民币,现在是 3.98 人民币。
仔细一看系统总成本(Total System Cost),超过 28 亿人民币。上一次破了 Oracle 9 年前的记录,系统总成本是 3.8 亿人民币。希望我没看错数字分隔。
穷人谁能玩得起啊?只要你有足够多的钱,弄足够牛逼的硬件,都可以跑个不错的结果出来。Google、亚马逊只要愿意花钱,也都可以出来炫耀一下。
要我说,如果要数据库软件牛的话,每家都用固定的硬件,比如给你个同款同配置的 MacBook Pro 笔记本当服务器,然后你跑吧,跑出越高分越牛。
以下内容写于 2019 年 10 月:
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 年后,随着科学技术的进步,另一个也破了记录,当然也吃了兴奋剂,还他妈的吃了两片儿。
注意这个比喻并不十分准确,甚至有点误导。即使有人会以为这是谁把尘封九年的百米校运会记录打破了,人家当年是在土路上跑出来的记录,可是,现在你在塑胶跑道上,还五六级顺风,跑出来一个新纪录,体育老师会认为这…得打点折扣吧。不能自己骗自己啊。
都挺扯的。
技术领域的事情,我认为还是应该踏实一点。