作者:yangdigital
链接:https://www.zhihu.com/question/349062591/answer/845605352
来源:知乎
著作权归作者所有。

阿里的OceanBase我关注了很多年,这次在TPC-C测试中霸榜确实是中国技术圈可喜可贺之事,在此要向阳老师致敬,阳老师坚持了这么多年的自主数据库研发,终于快要到了收获期!
要知道TPC-C这个测试,自从07年之后,只有IBM和Oracle这两个财大气粗的全栈公司在参与,2010年Oracle公司在堆砌昂贵的硬件霸榜之后,9年内再无挑战者,这次蚂蚁金服的出手,一次性把世界纪录提升了一倍,毫无疑问,这是中国数据库技术领域正在快速发展的一个标志性事件。
我看到朋友圈里有不少关于这次测试的槽点:
一是9年里硬件性能提升了很多,但Oceanbase的测试,在CPU core数增加了一倍的情况下,cpu单核性能也提升巨大的同时,比起老旧的Oracle 11.2, 测试性能也只提升了一倍。所以Oceanbase不过尔尔。我觉得这种说法当然有道理,OceanBase 并没有超越Oracle Database,要知道Oracle是当今数据库之王,它在数据库领域里的地位几乎是苹果在手机界的地位,虽然它的市场占有率没有达到绝对垄断地位,但它的利润,恐怕比其他所有数据库厂商的利润总和还要多的多,它技术的领先性,系统的稳定性,广泛的生态联盟,企业客户的数量和质量,远不是其他数据库厂商可比的。短期内根本看不到哪家厂商能在该领域超过Oracle, 蚂蚁金服的Oceanbase目前也超越不了,是太正常不过了。
但不超过Oracle,并不意味着OceanBase这次测试没有亮点,可以说Oracle Database的单机性能一定是世界最强,OceanBase的单机性能确实是比不过Oracle。但Oracle的问题是集群性能,Oracle的RAC集群是Share everything架构的,这种架构的缺陷是系统性能的增加随着节点数的增加而递减,因此Oracle Database并不具备良好的水平扩展性,当然Oracle通过ExaData的Storage server技术,来解决了存储系统的水平扩展的问题,但计算能力的水平扩展问题,并没有得到解决,只能算部分解决(Smartscan)。而OceanBase生来就是分布式系统,采用Share nothing架构,这种架构的优点是系统的水平扩展性非常好,远远超越Share everything架构。理论上系统的性能可以随着节点数的增长而接近线性增长。不过分布式数据库也有巨大的问题,就是分布式事务处理始终影响着系统性能。但这次OceanBase的TPC-C测试,用了200多个数据库节点跑出了世界纪录,回应了那些关系型数据库的无法水平扩展,分布式事务性能不行,无法用于企业关键应用的质疑。从这点上来说,OceanBase的这次挑战TPC-C世界纪录的成功意义重大,可以说是继Google Spanner对外正式发布以来,分布式关系型数据库取得的最具意义的成功。
朋友圈里的吐槽的第二个重要点的是3.8亿的测试费,这点其实是误解,OceanBase的说明文档里,3.8亿是跑出这个性能指标的系统整体软硬件,3年的总体拥有成本,而且硬件成本是用阿里云的i2.16xlarge和C5.16xlarge的虚拟机实例的3年租金成本,其中不但包含了服务器硬件本身的成本,还包含了服务器托管的巨大成本。
另外OceanBase这次测试及准备工作,全部是用阿里云的虚拟机实例跑的,历时半年多(据阳老师本人口述),而且测试准备期内并不是每天都需要跑200多个数据库实例和60多个客户端实例,很多时候只需要少量的虚拟机实例就可以开展调优和测试工作,只有到真正要挑战记录时,才需要全实例开启。因此这次测试所花费的实际成本,大概和3.8亿这个数字有数量级的缩减,这其实体现的是云计算的优势,按需使用,随时伸缩,比过去测试里必须采购所有硬件的传统方式成本低太多了。
说了很多了,更多有关OceanBase的技术细节,我也不太了解,只能等待知乎大神们继续科普了。
我最后总结几点这次OceanBase取得TPC-C测试世界纪录的意义:
1、证明了关系型数据库也可以水平扩展,分布式关系型数据库完全可以满足性能要求最严苛的OLTP关键应用。而OceanBase是世界最领先的分布式关系型数据库之一。
2、证明了公有云也可以满足性能要求最严苛的OLTP关键应用。包括金融,电信,能源等大型传统行业应用。
3、中国的阿里巴巴集团拥有着世界一流的数据库技术,有技术能力也有财力在IT领域挑战世界巨头。
在咖啡馆等人时手机匆匆打的,错漏之处,请各位知友海涵。
个人公众号:jianrong-notes





