特稿 | OceanBase 连破纪录:蚂蚁技术人的砥砺前行

摘要转载自 「阿里技术」 ( mp.weixin.qq.com ) By 阿里技术

预计阅读时间 0 分钟(共 0 个字, 0 张图片, 0 个链接)

阿里妹导读:2019 年 8 月,阿里巴巴自研分布式关系数据库 OceanBase 圆满通过 TPC-C 测试,超越老牌数据库巨头 Oracle,登顶世界第一。2020 年 5 月,OceanBase 再次登顶,将自己的纪录刷新了 11 倍。这两张漂亮的成绩单来自于 OceanBase 诞生至今走过的十年艰辛之路,这背后既有前辈元老的筚路蓝缕,也有无数蚂蚁技术人的砥砺前行,薪火相传。


文末福利:OceanBase 资料汇总。


2019 年 8 月,那条性能曲线平稳地出现在了杭州蚂蚁总部的大屏幕上。

第一次 TPC-C 测试圆满结束后,团队成员欢呼雀跃,沉浸在登顶世界第一、超越老牌数据库巨头 Oracle 的喜悦当中。当时没有人会想到,这个刚刚崭露头角的自研分布式关系数据库 OceanBase,会在半年之后将自己的纪录再度刷新 11 倍。


登顶世界第一后,对 OceanBase 的质疑也接踵而来:

有人说,Oracle 的数据是 9 年前测的,它的硬件提升早已今非昔比;还有人指出,2013 年 Oracle 单台工作站跑分达到 800 万,而它最多可将 27 台工作站联在一起组成集群。换句话说,Oracle 有实力跑出数千万甚至上亿的分数。

团队心里憋着一股气。OceanBase 创始人阳振坤皱起眉头,说道:“再测一次吧。”

2020 年 5 月,OceanBase 第二次参加 TPC-C 跑分测试,最终成绩达到了 7.07 亿 tpmC,新创造的纪录是去年的 11.6 倍。相比于去年的兴师动众,杭州、北京两个团队昼夜攻坚,第二次测试就显得轻车熟路、高歌猛进。用 OceanBase 技术专家曹晖的话说,这是因为“该踩的坑都已经踩过了”。

如今的盛况,在十年前简直是一种奢望,OceanBase 这个由阿里自研的分布式数据库,刚起步时可说是举步维艰。2010 年,阳振坤刚刚提出独立开发数据库的设想时,几乎所有人都提出了质疑:“到底行不行?”

数据库是企业的命脉,尤其是金融机构的数据库,出一点问题就意味着巨大的损失。谁也不敢冒着风险使用不成熟的技术。

就在这样无人问津的窘境中,OceanBase 从无到有,一点一点艰难地扎根和生长。从最初唯一的业务是淘宝收藏夹,到 2017 年双十一承载包括整个支付宝账务库在内的核心系统,年轻的 OceanBase 逐渐成为阿里业务的一大支柱。2019 年,这个诞生 9 年多的数据库首次参加了全球事务处理性能委员会组织的 OLTP 数据库权威测试 TPC-C,以 6088 万 tpmC 的数据傲立世界之巅。

再到 2020 年 5 月,这个纪录又被自己打破。

“第一次感觉不可思议,第二次就在意料之中了。”谈及短短 8 个月内的两次“高光时刻”,曹晖复述了自己从激动到平静的心路历程,“第二次测试的准备时间比较久,模拟的时间也足够,不可预知性就会小很多。”

千帆过尽,只余从容。OceanBase 的两度登顶之路,从惊险刺激到闲庭信步,离不开背后这些蚂蚁技术人的倾力支撑。

01  “这不是一个人能干成的事儿”

谈及 OceanBase 的第一次测试,曹晖仍然心有余悸。

“预审计前的那段时间是最困难的,真的快熬不住了。”曹晖告诉我们,从 8 月 1 日第一次上 200 台服务器集群开始,TPC-C 项目组几乎有两周的时间不眠不休。甚至在审计抵达杭州之后,OceanBase 的压测曲线还是不满足要求。组员白天和审计员沟通,晚上通宵排查问题,“每个人都在超负荷运转”。

从调研阶段的存储空间摸底,到攻坚阶段的性能优化,再到后来操作压测集群、与审计员沟通和修改测试脚本……身为 TPC-C 项目的核心技术人员,曹晖肩上的担子不比任何人轻松。压力最大的那段时间,他直到每天早上五六点钟才离开公司。

逢山开路,遇水搭桥,在首次登顶世界冠军后,团队成员终于摸清了 TPC-C 严格测试流程中的那些坑。时隔半年,面对阳振坤定下的“小目标”,曹晖不怕了,他的心态很从容:“必须要做到,也能够做到。”

压测、修改、优化,一切按部就班。结果出来的那一刻,他的感受更接近于“释然”,好像心里的一块石头落地。

耀眼的成绩背后,是一群齐心协力攻坚的战友。说到自己所在的 OceanBase 团队,曹晖用了“朴实”这个词来形容。这和他给人留下的第一印象相一致:朴实、耿直、稳重,不大会说漂亮话,唯有在涉及技术的话题上,他才打开了话匣子滔滔不绝。

“数据库是一个底层的软件,如果你太浮躁,就没办法静下心来做一个基础软件的内核开发。”回顾 OceanBase 艰难的诞生史,这句话并不难理解:自研数据库需要投入极大的人力和心力,而在短时间内根本看不到回报,相比之下,购买第三方数据库无疑是更省时省力的选择。在 OceanBase 立项之初,阿里内部曾经爆发过极大的矛盾,许多员工都不理解为什么要自研数据库,在他们看来,这无异于舍近求远,引火烧身。

这条路有多难走,辉煌背后有多少苦难,OceanBase 团队的同学们冷暖自知。

“这不是一个人能干成的事儿。”曹晖说。

刘浩(OceanBase 技术专家)参与了两次 TPC-C 项目,“在过去一年多的时间里,有幸和这么一个强悍的团队一起参与了 OceanBase 两次登顶 TPC-C 的全过程。TPC-C 登顶不仅仅是 OceanBase 每一位同学努力后的成果,也离不开很多兄弟团队的支持和协助。” 

这两次 TPC-C 测试交出的漂亮成绩单来自于 OceanBase 诞生至今走过的十年艰辛之路。这背后既有前辈元老的筚路蓝缕,也有无数蚂蚁技术人的薪火相传。

02  “特别纯粹的技术人”

“这是一个 Impossible Mission(不可能的任务)。”

这是 OceanBase 高级技术专家赵裕众在刚看到 OceanBase 的性能曲线时,脑海里蹦出来的第一个念头。要在 TPC-C 测试中超过世界纪录保持者 Oracle,彼时的 OceanBase 性能还有很大差距。

但团队 Leader 阳振坤很乐观:“我们的目标是服务全世界!”

服务全世界,做一个世界领先的分布式数据库,这个宏大的愿景从 2013 年赵裕众加入团队时起就鼓舞着他,也一路支撑着他度过那些难熬的时光——当然也包括初次参加 TPC-C 测试时,攻坚组成员把自己关在项目室里,南北两地同步,没日没夜地闭关加班。

问题大把大把地涌现,头发也大把大把地掉,项目室墙上画的性能曲线飞速上涨,几乎每星期都会出现一个陡峭的提升。TPC-C 审计员来到杭州,项目组只来得及请他吃了顿盒饭,然后又马不停蹄地投入到性能优化工作中去。

TPC-C 审计员与 OceanBase 项目组部分同学合影

终于,当那条压测曲线平稳地出现在屏幕上时,所有人都松了口气。

第一次看到成绩时,赵裕众难以抑制心中的激动,OceanBase 的测试数据达到了 Oracle 的两倍,这项尘封 9 年的世界纪录被阿里人打破了。相较之下,第二次 TPC-C 测试的成绩虽然更惊人,他的反应反而比较平淡,经历过一次 Impossible Mission,他已经知道了自家数据库的优势所在。

“架构上来说,分布式具有更好的扩展性。”赵裕众告诉我们,“单机数据库无论硬件怎么提升,性能都是有极限的,而分布式数据库的扩展性可以说是无限的。”

也正是得益于自身的分布式架构,OceanBase 能把所有与高可靠性和数据一致性相关的问题在数据库内核层面解决,这使得 OceanBase 真正具备了高度集成、整体交付、对业务少侵入甚至无侵入的商业数据库特征。通过原生的分布式设计以及 PAXOS 协议等,OceanBase 实现了强一致、高可用、高性能,以及天然的高度可扩展性——这体现在第二次 TPC-C 测试中,所需的人力和优化工作相比去年有了显著的减少。

OceanBase 团队在这场世界级的争夺战中立下了汗马功劳。赵裕众感慨:“这是一群特别纯粹的技术人。”

在数据库这条赛道上,这群纯粹的家伙始终在追求梦想,追求卓越。阳振坤口中“做一个世界领先的数据库”,也正是每一个 OceanBase 团队成员心怀的信念。

03  “只有阿里这样的公司才能做到”

我们问成肖君(OceanBase 资深测试开发专家),在 OceanBase 参与的两次 TPC-C 测试中,哪个时刻让他最有成就感。这名加入 OceanBase 团队八年的老兵不假思索地说,是第一次在 TPC-C 官网上看到测试结果时,他急不可耐地把消息转发到了自己的校友群。

群里艳羡的声音此起彼伏,也不乏遗憾的慨叹:“我们在学校里是做不出这样的成果的,只有阿里这样的公司才能做到!”

成肖君告诉我们,登上 TPC-C 的排行榜是每一个数据库从业者的梦想。作为全球最具公信力的联机交易处理(OLTP)数据库测试标准,TPC-C 测试是一款商业数据库向业界证明实力最直接的硬指标。在此之前,TPC-C 的榜单长期被 Oracle、IBM 等外国厂商垄断,从未出现过中国自研品牌的身影。

“学校里有些老师,一辈子的梦想就是排进这个榜单。”成肖君说。

而梦想实现的道路势必艰辛。TPC-C 测试需要模拟真实的交易环境,测试工具必须严格按照 TPC 委员会发布的标准搭建,光是技术文档就长达 100 多页,再加上 Oracle 占领榜单巅峰已有 9 年之久,要达成梦想谈何容易。

测试成绩在官网公开之前,OceanBase 团队眼中“看到的全是问题”,直到审计员抵达杭州的前一周,成肖君还在忙于突破测试开发方面的重重阻碍。火烧眉毛的他给阳振坤打电话:“审计员的行程能不能推迟一下?再给我一两个星期吧!”

度过沮丧和焦虑,度过实现梦想的惊喜,成肖君的心态也跟 OceanBase 团队的许多人一样趋向平静。看到 7.07 亿次 tpmC 的最新成绩,他笑言:已经没有当初那种震撼感了。

“以前在 OLTP(联机事务处理)这个领域,国内从来没有数据库上榜,那时候(我们夺冠)是一个开创性的工作。”成肖君坦言,“而从去年的测试报告里,懂的人其实已经能够看出 OceanBase 的优势了。”言下之意,分布式架构成就了 OceanBase,第二次 TPC-C 测试无非让这个优势展现得更加清晰。

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

谈及团队,他脱口而出的第一个词是“另类”:

“OceanBase 这个团队挺‘另类’的,整体的技术氛围非常好。”成肖君言谈间既有戏谑,也有珍视,“现在要找到这样一个能够长期沉下来、专心做事情,并且把它做精、做深、做长远的团队,是非常难的。”

04  远航

未来,OceanBase 还将走向何方?

“以前是跑一百米,现在是跑完一百米的基础上,再跑一万米。”OceanBase 资深技术专家庄明强这么比喻。

两次漂亮的 TPC-C 测试,不仅给团队成员吃下了定心丸,也铺平了 OceanBase 向外部发展的道路。成肖君给现在的 OceanBase 打 70 分:“目前已经及格了,下一步我们还要提升易用性,让企业用更便宜的价格更容易地使用到它,服务到更多的外部客户。”

走向外部,航向远海,让更多企业享受到技术的便利。在啃下 TPC-C 测试这块硬骨头之后,团队要做的事情还有很多。

我们问曹晖,加入 OceanBase 团队为他带来了哪些变化?曹晖回答:主要是做事的态度变了。“我们团队的氛围是脚踏实地,做事的态度很严谨,从来不会想着走捷径,而是真正地、彻底地、从根本上解决问题。我以前往往会投机取巧,想一些更 trick(技巧性)的方法去绕过测试标准,只是为了测试而测试。”

像这样“应试型”的优化方式也曾摆在 OceanBase 团队眼前,但早在第一次参加 TPC-C 测试时,曹晖在冥冥中就有一种预感:“如果我们真的做了这些事,就绝对过不了测试。”

这个朴实、纯粹又“另类”的团队,不懂绕路,不玩 trick,只懂得全身心扑上去解决问题。难关太多,就锁在项目室里昼夜调试、攻坚克难;人员规模不够,就拉上蚂蚁的多个兄弟团队一起加班。今年 2 月,TPC-C 项目组获得了蚂蚁集团年度大奖 Super Ma,颁奖词盛赞他们创造了“中国科技的骄傲”。几位披荆斩棘的主将站在一起,他们曾在最艰难的时刻并肩战斗,终于在万众欢呼声中捧起金杯。

如今,战场初定,风波敉平,昔日的艰苦和忙碌都被抛在脑后。OceanBase 起锚,航向新的海域。



OceanBase 资料汇总


技术解读、业务架构

会议直播、专题分享


这份汇总全方面整理了 OceanBase 相关资料,不管是业务负责人、技术负责人、一线数据库运维、其他开发人员还是分布式数据库开发者,都能从这些资料里找到感兴趣的东西。


识别下方二维码,或点击文末“阅读原文”立即查看:





推荐阅读


   十年磨一剑:从 2009 启动“去 IOE”工程到  2019 年 OceanBase 拿下 TPC-C 世界第一


   OceanBase 如何获得 TPC-C 测试第 1 名?


   优秀工程师必备的一项技能,你解锁了吗?



关注「阿里技术」
把握前沿技术脉搏



戳我,查看 OceanBase 资料大全。
more_vert