这才是值得你沸腾的东西 —— OceanBase
相信很多看过新闻的朋友已经知道了,阿里自研的 OceanBase 昨天打破了 Oracle 数据库在 TPC-C 基准测试中的记录,以超过 Oracle 数据库记录非常多的优势跃升为了世界第一。
相较于华为目前只是一个 PPT 发布状态的鸿蒙 OS,在笔者看来阿里的 OceanBase 才是真正值得让你沸腾的东西。不过沸腾归沸腾,对于这一项「世界第一」,新闻中的配图涵盖的信息是很简略的,在这个「世界第一」的背后,笔者个人认为有一些细节是我们不能忽略的,我们也应该理性去看待这样一个「第一」。
在计算机行业内,除了操作系统,数据库管理系统也是一大重要的基础设施,毕竟业务总是会涉及到数据,而数据则必须要用数据库存放,为了让数据变得更加容易管理,数据库是不可或缺的。
此前国内的数据库一直以来都是一个空白,直到大数据时代的到来,网络上的数据量激增,传统的数据库管理系统已经不能满足现有业务的需要,国内的厂商们便开始发力自研分布式的数据库,以承载业务中海量的数据。
到如今,国内的科技大厂、互联网大厂很多都有自己的一套数据库,例如腾讯的 TDSQL,华为的 GaussDB,以及这一次登上 TPC-C 基准测试榜首的阿里 OceanBase,这些早期都是这些企业内部的工具,在经过不断的迭代、打磨之后,它们也逐渐开始对外售卖。
然而,在这些产品中,目前为止只有阿里的 OceanBase 通过了严格的 TPC-C 测试。
TPC,国际事务处理性能委员会,它是一个中立的机构,制定了一系列的基准测试来衡量市面上数据库系统处理事务的性能,TPC-C 就是这一批基准测试中的一个。
TPC-C 主要考验的是数据库在线处理事务的性能,这一项基准测试是业内相当具有说服力的一项测试,能在这项测试中取得好成绩的数据库在业内的表现也必然是出色的。
不过需要说明的是,TPC-C 的测试不限制硬件,也就是说你能够用非常好的硬件去跑这项测试,从而得到一个非常好的测试结果,例如阿里这一次跑出来的结果就非常出色,其中有一大原因是阿里动用了非常强大的计算资源去跑这项测试。
从 TPC 的官网我们可以看到阿里这次测试的一些细节,阿里动用了足足 64 台搭载双路 Xeon Platinum 8163 的服务器去跑这一次的测试,相较于 Oracle 在 2009 年跑测试时用的服务器集群好了无数倍。
阿里的这一套跑测试用的集群拥有 2048 个核心,4096 个线程,所以数据不漂亮是不可能的,毕竟这一套系统的总价可是接近 4 个亿的,而 Oracle 当时跑测试用的系统总价仅 3000 多万美元,和阿里的这一套系统相比还是有一定差距的。
TPC-C 测试并不以性能为王,作为一个行业内强大的产品,光性能好是不行的,它还需要足够经济。所以在排行榜上我们可以清晰地看到每单位性能(TpmC)耗费的资金。就排行榜上的数据来看,以现在的汇率换算,阿里的 OceanBase 这一套测试系统虽然总价高于 Oracle 的测试系统很多,但是按单位性能算其实是更经济的,所以目前就这一项测试而言,横竖都是阿里的 OceanBase 稳坐第一。
然而,这个「第一」并非是严格意义上的第一,虽然我们在排行榜上看到阿里跑出的总性能是第一,但是我们不能忽略的是,Oracle 的第二,性能达到 3000 多万 TpmC 的记录,是他们在 2010 年跑出来的。
换句话说,Oracle 在这第一的位置上坐了 9 年,9 年来没人能够打破 Oracle 在 2010 年创下的记录。
前文笔者有提到过,TPC-C 测试并不限制硬件,而在这 9 年里,硬件不可能没有提升,9 年来 CPU 的性能早已是翻了很多倍,尤其是现在的 Xeon、EPYC 核心数越来越多的情况下。Oracle 的记录没能被打破并非是因为硬件层面的限制,没有什么硬件能够在性能上保持 9 年都不被超越。
所以 Oracle 能够稳坐这么多年的第一,全凭他们在软件层面的强悍,包括极佳的稳定性、优秀的性能与优化、底层技术上的领先等等,其中稳定性是非常重要的一条,这也是 Oracle 在金融行业备受欢迎且一直是处于「老大」地位的一大原因。
要知道并不是所有的数据库都能够跑过 TPC-C 测试,TPC-C 测试对数据库的稳定性有非常严格的要求。一款稳定的数据库软件应该要追求完全不发生违反数据库事务执行正确基本性质的错误,计算机科班的同学应该对这个非常熟悉,即 ACID(原子性、一致性、隔离性、持续性)。
对于很多高性能的分布式数据库,它们由于在联机协同处理事务的时候稳定性不够,导致它压根就没有办法通过测试产生结果。所以即使它做到了更强的性能,但是它也没有办法在 TPC-C 上上榜。
所以不论 OceanBase 的跑分结果如何,上了榜,OceanBase 已经超越了国内其他所有的数据库。
不过这并不代表着 OceanBase 超越了 Oracle,毕竟 Oracle 的记录是 9 年前他们使用 Oracle DataBase 11g R2 跑出来的,而这 9 年间,不单单是硬件性能有了大幅的提升,软件方面 Oracle 也在进步,所以如果 Oracle 在意这个测试的排行榜,愿意重新跑一次 TPC-C,那么第一的位置很有可能仍然还是 Oracle 的。
笔者比较希望 Oracle 受到这一次第一被抢的刺激而用最新的软件、更好的硬件去重跑 TPC-C,不论 Oracle 跑出来的结果怎么样,至少我们能够看到二者之间的差距。
OceanBase 早期还根本没有办法和 Oracle 进行竞争,在 OceanBase 还在开源的时候,它实际上是很粗糙的,据知乎上一些业内人士的描述,开源的 0.4 版本在很多功能上都还是缺失的。但随着阿里内部对 OceanBase 的迭代、重构、再迭代,经历了 1.0、2.0 等重要的大版本后,这个艰难的任务最终还是让开发团队们完成了。
在阿里内部,OceanBase 的应用是非常早的,早在 15 年阿里就开始把自己的业务切换到 OceanBase 上,由 OceanBase 承载淘宝等平台日常事务的处理。即使是流量高峰的双十一,阿里也让 OceanBase 来承载交易事务。
经过阿里内部如此多次的历练,OceanBase 不论是在性能还是在稳定性上必然是不会差的,现阶段我们日常使用的支付宝、淘宝等平台背后都是 OceanBase 在做后盾。
所以笔者在开头有提到,OceanBase 相较于那个目前还处于 PPT 发布的操作系统以及处于按揭开源、连官网上的 Demo 都有问题、没有办法实际使用的编译器来说才是更值得你去沸腾的东西,它确实是有真正的核心技术在里面,而且它早已应用在了与人们日常生活密切相关的服务中。
作为一款能够通过 TPC-C 测试的关系数据库,OceanBase 真的很不容易。笔者知道,虽然 OceanBase 很强,但肯定也还会有网友搬出 Oracle 19c 或者 Oracle 的结果是 10 年前的这些点来说事,但这并不影响 OceanBase 在业内的地位,也不影响像笔者这样支持它的人肯定它的成功。
不论如何,至少 OceanBase 能够和这一领域的王牌产品产生直接竞争了,而且这还是国内历史上以及全球这么多年来的独一款,就这一点来说,OceanBase 已经很强了,它确实也填上了国内数据库这一方面的窟窿。
所以,在文章的最后,笔者给 OceanBase 的开发团队点赞,能有这样一款数据库产品问世,真的太不容易了。