OceanBase刷新世界纪录,支付宝再闯“无人区”-风君子博客

  一直以来,在信息技术最核心的三大件“芯片、操作系统、数据库”上,市场格局稳定,由英特尔、微软、甲骨文等科技巨头推动行业和技术发展。 

  老牌巨头优势巨大,但在中国这个爆发式增长需求的市场,技术亟待更新突破。于是,以阿里为代表的科技公司,开始从零研发,走上这条极其艰辛的自研技术创新之路。这其中,数据库领域尤为艰难,技术挑战大,研发成本和不确定性风险高,面临太多的困难挑战。 

  专注分布式关系数据库的 OceanBase 团队,甚至一度濒临解散。 

  而在 2020 年 5 月 20 日这天,作为支付宝完全自主研发的金融级分布式关系数据库,OceanBase 把名字赫然刻在了 TPC 组织的官网上,而紧随其后的记录还是自己(2019 年 10 月创造过新纪录)。 

OceanBase刷新世界纪录,支付宝再闯“无人区”-风君子博客

  这一次,OceanBase 再破世界记录,性能分数首次突破亿级大关达到 7.07 亿 tpmC,相比去年提升近 11 倍。(雷锋网注:tpmC 值在国内外被广泛用于衡量计算机系统的事务处理能力,为"每分钟内系统处理的新订单个数"的英文缩写) 

  这标志着 OceanBase 成为全球最快数据库,实现了数据库这一基础技术的革命性突破,也是自研技术对世界 IT 技术作出的重要贡献。 

  OceanBase 突破背后,一路艰辛,没有捷径。 

  一年二刷 TPC-C 榜单,OceanBase 颠覆了什么? 

  首先认识 TPC。TPC 是由数十家会员公司创建的非盈利组织,成立于 1988 年,总部设在美国,图灵奖得主 Jim Gray 是奠基人。 

  TPC-C 是全球最具公信力的联机交易处理数据库的功能与性能结合的测试标准,金融、电信、政府等关键领域的客户一般参照 TPC-C 结果来衡量各个数据库厂商的事务处理能力。通俗来讲,TPC-C 测试是对于商业数据库想要证明自身实力的一个硬性门槛,被誉为“数据库领域的世界杯”。 

  但是一直以来,TPC-C 榜单都是老牌巨头在竞争,尤其是 Oracle、微软和 IBM 为首的数据库厂商和硬件厂商长期霸榜。 

  因为通过测试,确实太难了。无论是数据库从业者还是高校教师,都梦想着排进这个榜单。 

  诞生于 2010 年的 OceanBase 最初是用在支付宝上,它又被称为“超级会计师”,可以在一秒内同时记数万笔帐,并且不出一点错。经过长时间积累,2019 年 10 月,OceanBase 一举打破 Oracle“垄断”9 年之久的 TPC-C 评测的世界纪录,tpmC 高达 6088 万之后,自研数据库首次在世界舞台上有了自己的声量。 

OceanBase刷新世界纪录,支付宝再闯“无人区”-风君子博客

  支付宝 OceanBase 再次登顶 TPC-C 榜单

  而此次通过最新测试,OceanBase 成为唯一超千个节点并通过 TPC-C 测试的分布式数据库,成绩较去年更胜一筹。更重磅的是,其性能分数首次突破亿级大关达到 7.07 亿 tpmC,相比去年提升近 11 倍。 

  从关系数据库的角度看,在这么大体量下,通过测试已经非常困难,保持系统性能更加困难。1500 多个数据库节点,5000 多万个仓库以及对应数量的客户端,并进行 8 个多小时的持续压测,对整个系统是极大的考验。 

  而我们之所以说 OceanBase 实现了突破和颠覆,关键就在于其采用了新一代分布式设计技术,颠覆了传统数据库集中式处理技术架构。 

  如何理解? 

  一般而言,传统数据库只能通过提升单机性能来提升整体性能,难以满足市场持续扩张的数据处理需求。OceanBase 通过分布式扩展集群实现扩展能力的大幅提升,并通过分布式选举技术、事务技术充分保证业务场景的一致性,实现整体性能的数量级提升。 

  在本次测试时,数据库机器规模扩大到 1557 台且单机仓库数增长到 3.6 万,总数据规模达到了近 6PB,最大单表扫描数据总行数超过 20 万亿行(TPC-H 最大的测试是 100TB)。 

  除了性能优势,在兼容性上,OceanBase 较传统数据库也有创新,其可高度兼容 Oracle 和 Mysql,支持一键快速迁移,并提供云上的完整生态服务,解决了授权费用贵、硬件成本高、架构与运维复杂、迁移难度大等传统数据库难题。 

  用 10 年,OceanBase 做到别人做不到的事 

  蚂蚁金服高级研究员、OceanBase 创始人阳振坤始终认为:

“直到今天,生产系统中没有一个商业数据库有分布式,除了 OceanBase,这是我们做到了别人做不到的事。” 

  纵观当今全球数据库应用情况,关系数据库依然是主流,而集中式系统依然大行其道,甲骨文、IBM、微软源源不断从中获得收入。 

  此前,分布式数据库长期存在于理论中并没有在生产中实现,虽然成本可以降低,但缺点亦十分突出:普通 PC 机单个来看都达不到金融级别的稳定性,如果其中一台机器罢工,容易产生多米诺骨牌效应般的坍塌效应(这个短板被视为世界级难题)。 

  而 OceanBase 解决分布式数据库稳定性的方式之一,是将每一份数据同时备份三份,存放在三台不同的机器上。其原理是,一台 PC 机出故障的概率如果是千分之一,两台同时坏的概率可能就是百万分之一,三台同时坏的概率则是十亿分之一。 

  早年,在阿里的众多业务中,无论是淘宝还是支付宝,集中式的关系数据库都扮演着十分关键的角色,不可能摆脱它。但是,市面上的商业数据库在高扩展、高并发和低成本上远远无法满足淘宝和支付宝的高成长速度,且遇到业务激增时 IOE 投资要放大几百倍甚至几千倍。 

  “谁都买不起了”。阿里势必需要考虑切换轨道——在 2009 年启动“去 IOE”。“去 IOE”工程的战略价值何在?一般被认为有三点:架构灵活支撑业务飞速发展;基础工程技术和人才的积累;大幅降低成本。 

  在数据库领域,尽管彼时市面上非关系数据库竞相涌入,开源数据库局限性比较大,两者对巨头的关系数据库的冲击可以用蚍蜉撼树来形容——阿里决定走自研关系数据库的道路。 

  尽管“自研”策略备受争议,遇到各种反对,但一旦江河解冻,就会势如劈竹,无法阻挡。OceanBase 冲在了最前面,做起了先锋。2010 年 5 月,阿里邀请阳振坤加盟淘宝,由此拉开了 OceanBase 的自主研发之路。

OceanBase刷新世界纪录,支付宝再闯“无人区”-风君子博客

  • 2010 年:创始人阳振坤加入阿里巴巴,OceanBase 正式立项;

  • 2014 年:OceanBase 0.5 版本发布,替代 Oracle 在支付宝交易系统上线,负担“双十一”10% 流量;

  • 2015 年:网商银行成立,OceanBase 成为全球首个应用于金融核心业务系统的分布式关系数据库;

  • 2016 年:OceanBase 1.0 版本在支付宝账务系统上线,支撑 12 万笔 / 秒支付峰值;

  • 2017 年:支付宝首次把所有核心数据链路搬到 OceanBase 上。同年,OceanBase 在多家商业银行上线;

  • 2019 年:OceanBase 获得 TPC-C 基准测试排名榜首;

  • 2020 年:OceanBase 以 7.07 亿 tpmC 的成绩打破去年 TPC-C 基准测试纪录。

  据了解,OceanBase 早年第一个客户是淘宝收藏夹。 

  当时的淘宝收藏夹业务高速发展,数据库访问量飞快增长,服务器数量需要翻一倍甚至几倍才能应对业务需求。阳振坤主动提出可以用 OceanBase,把服务器的数量降低一个数量级。 

OceanBase刷新世界纪录,支付宝再闯“无人区”-风君子博客

  很多年前 OceanBase 团队的一张合影 

  在淘宝收藏夹吃完 OceanBase 这只螃蟹后,确实取得了不错的效果,也由此,OceanBase 在内部获得了更多信任。但由于找不到更多愿意使用的业务,阳振坤和他的伙伴们经历了一段低谷期,用高德总裁刘振飞(2009 年组建淘宝技术保障部)的话来说,回想起来当时都是折磨、痛苦和眼泪,今天说起来可以算是传奇和笑话了。 

  OceanBase 团队在 2012 年走到了最困难的时候,数度濒临解散。 

  2012 年底,集团把 OceanBase 整个团队调到了支付宝。支付宝属于金融领域,面临的数据库挑战会比其他业务更大,这相当于给了 OceanBase 团队一次从头开始的机会。 

  2013 年夏天,支付宝开始“去 IOE”,希望能够把 Oracle 数据库换掉。阳振坤主动向当时的蚂蚁金服 CTO 程立推荐了 OceanBase,并得到了认可。此后 OceanBase 在阿里内部得到更多场景试炼,并逐步做到核心系统。 

  从“小我”到融入“海洋” 

  从濒临解散到浴火重生,OceanBase 走了快十年,它用了漫长的旅途进入了“无主之地”(自研分布式关系数据库),没有前人走过;它解决了自研信息技术三大软肋(芯片、操作系统、数据库)之一的数据库难题,完全自主研发、安全可控。 

  它已经向所有人证明了通用的分布式关系数据库是能够做成的,而且能真正应用在生产系统中。 

  当我们从头来看阳振坤跟 OceanBase 团队定下的策略,不得不感叹想法的“超前”:走标准化!做一个通用的关系数据库产品!他们不仅仅要在公司内部使用它,还要实现外部商用——这带来的挑战就是投入更多人力和时间,以满足市面上所有功能需求。 

  这就像“OceanBase”这个名字的寓意一样:从一开始就立志做一个像海洋一样的海量数据库,征途就是星辰大海。 

  大音希声大象无形,走向通用走向标准化,这件酷酷的事,支付宝做到了,而且把整个 TPC-C 测试变成了一种普惠的测试,为今后更广泛应用打下基础。 

  当然,OceanBase 早已经走出淘宝和支付宝的处女地,更多企业愿意拥抱它。

OceanBase刷新世界纪录,支付宝再闯“无人区”-风君子博客

  目前 OceanBase 已服务大量金融、电信等行业企业,如建设银行、南京银行、西安银行、人保健康险、苏州银行、广东农信、网商银行等多家商业银行和保险机构。全球前四名的支付平台,两家的核心系统都在使用 OceanBase 数据库。 

  回首过往,之所以 OceanBase 能做成,能从当年的淘宝收藏夹走到支付宝,走进今天金融场景甚至更多领域,不仅是阿里,也是时代给了它一个好的发展机会。可以说,其高光有着行业和时代的必然性。 

  今天,阿里巴巴/支付宝内部有数以万计的数据库,总有一些业务由于数据量和自身业务需求等因素,可以先试用自研技术,再一步步地将数据库做到关键系统。就是遵循这样的逻辑,加之敢冒风险的勇气,OceanBase 乃至阿里的云计算业务都能在阿里自然而然“长出来”,造就一段经典商业案例。 

OceanBase刷新世界纪录,支付宝再闯“无人区”-风君子博客

  踩在过去的肩膀上,迎接未来的数据爆发,OceanBase 会摘到更丰盛的果实。让中国数据库技术服务全球,是 OceanBase 的初心,相信 OceanBase 未来会在更大海洋中发挥价值,与人类共享科技成果。