随着互联网的爆发式增长,数据库作为 IT信息产业最重要最核心的部分,迎来了成长和发展的绝佳时机。如何把握机遇,迎接海量数据、通用高性能的挑战?国产自研分布式数据库 OceanBase,在国家内循环、新基建政策的引导下,发挥着强大的中国制造的技术魅力。
在互联网爆炸式增长对海量业务中数据库高并发、高性能的严苛要求下,数据库领域的标杆 OceanBase,以其高性能、可扩展、高可用以及低成本等特点,特别是阿里集团内部包含网商银行、支付宝等航母量级的数据库场景应用的成熟经验,保障了业务连续、稳定、高效运转,为用户创造更大价值。
2020 数据技术嘉年华上,北京奥星贝斯科技有限公司 CTO、OceanBase 数据库创始人阳振坤,接受了企业网的专访。他对 OceanBase 的发展历史进行了总结和回顾,全面诠释了数据库技术的发展历程,同时作为前沿的技术专家,也对未来数据库系统的发展趋势做了预测和展望。
北京奥星贝斯科技 CTO、OceanBase 数据库创始人阳振坤
数据库从诞生至今已有几十年的时间,但是市场格局变化不大,最早发展起来的数据库厂商长期占据着统治地位。由于数据库处在整个 IT 产业链最基础的位置,替换风险很大,但收益相比起来却小得多,因此非常难被替换。这也是为什么像 IBM、微软这样的后来者也难以取代 Oracle。这就导致了数据库变成一个门槛极高、强者恒强的领域。
然而,时代的发展往往会打破惯例。互联网的爆发式增长对数据库的高并发、大数据量提出了很高的要求,而传统关系型数据库难以满足,这就给 OceanBase 的问世创造了“天时”基础。加之阿里巴巴内部从淘宝到支付宝拥有大量使用数据库的场景,OceanBase 可以从不是特别关键的应用场景开始尝试,一步步地将数据库做到关键系统,这也是绝大多数互联网企业可以做数据库的优势——自带场景的“地利”条件。最后便是以阳振坤为代表的具备分布式技术背景的团队,在当时单机数据库已经走到尽头的情况下,以“人和”之势定下了走向分布式的路线。
就这样,打破传统数据库一统天下格局的 OceanBase 在一个千载难逢的机遇下应运而生,让国产自研关系型数据库崭露头角并推广使用,不断推动国产数据库技术快速发展和走向成熟。目前,OceanBase 已经在数十家商业银行上线运行。在简要回顾 OceanBase 十年的成长路时,阳振坤的自豪之情溢于言表。
其实在 OceanBase 立项之初时,关于“分布式”曾有一番热烈的讨论。随着业务的高速发展,海量数据激增,数据库面临着巨大的挑战和困境。大家常见的解决方法是拆库做分库分表,就是将原来一个数据库,根据业务的不同拆分成多个数据库,一个数据库放一个表,后期如果业务处理不了,再将一张表拆分成多个分表。要是业务量小,尚可满足业务需求,但是随着拆分到上千甚至上万个分表,这个事情就变得极其复杂且解决起来异常困难。因为每天每一个表都会进行无数次变更,这些变更需要做在所有的分片上,只要一个分片异常就需要回滚,就有概率出现回滚不成功,从而导致数据丢失或影响业务的连续性,给企业带来的损失将是不可弥补甚至不堪设想的。
能从根源上解决数据库发展的问题,最完善的解决方案是真正的分布式数据库。分库分表只能称为分布式系统,是分布式数据库吗?阳振坤笑了笑,“打个问号吧!”很多人都清楚事务的 ACID 特性,知道事务要满足原子性、一致性、隔离性和持久性,这是从数据库本身的角度来看。有人混淆分布式数据库的概念,把分库分表也叫分布式,但其实它不是分布式数据库,因为它是多个数据库而不是一个数据库。分库分表方案虽然可以解决一些问题,但也带来更多的挑战,更大的复杂性和更高的成本。
正因为如此,阳振坤的团队毅然决然地选择了最难走的一条路——做一款原生分布式关系数据库。这需要所有代码一行一行自己写,没有任何一行别人的代码,没有任何其他人的东西。另外,除了要满足事务和数据库里面的各种约束、各种一致性,还包含分布式事务处理、性能和响应时间,而最困难的是故障恢复,因为分布式环境下出故障是必然的,且故障率会随着节点的增加呈指数级增加。再有就是整个性能的稳定和分布式上的优化,单机上的优化器已经很难了,分布式优化器,尤其是做整个事务处理的优化器,挑战要大得多得多。回忆起 OceanBase 从初生到成长的过程,以及团队所攻克的一个又一个难关,阳振坤不禁感慨良多。
解决了从数据库本身的角度来做一款真正意义上的分布式数据库后,从业务的角度,客户对数据库其实有更高的要求。第一个要求是数据不能错,第二个要求是服务不能停,第三个要求是事务高并发处理能力。阳振坤补充道,全世界有非常多的数据库厂商,近年来也进入了国产数据库的繁荣时期,但是能真正把业务角度客户关注的这三点做到,并在实际生产中全面应用的其实少之又少。如今,OceanBase 已经可以做到水平扩展,不需要重新拆分业务,就可以在主库做交易处理,在备库做数据分析处理,甚至在未来可以在主库上同时完成交易和分析的处理。这一技术上的革新很好地克服了分库分表方案的弊端。阳振坤介绍道,OceanBase 跟分库分表最根本的区别在于分库分表是多个库,而原生分布式是不管有多少台机器仍是一个数据库。用户可以像使用一个传统商业数据库一样来使用它,这就很自然地应对了站在业务角度客户所关注的三方面要求。
数据库的成长发展离不开业务的打磨。OceanBase 今天有数以万计的服务器,昼夜运行在支付宝整个系统里,它从边缘系统到次重要系统最后引用到核心系统,一步步经过应用实践检验发展过来。OceanBase 在多年前就成功实现异地多活跨城应用,阳振坤分享道:OceanBase 异地的多活,跨几个城市的多活,具有很成熟的实践基础,因为支付宝的业务早就是国际型了。到目前为止,这个实际场景所带来的技术实现依然具有实践意义和参考价值,技术也是非常领先的。
如今的海量数据处理系统,不论是大数据系统还是数据仓库,都是分布式——原生分布式。再回过头来看关系型数据库,尤其是 OLTP 数据库,目前仍然是以单机/集中式为主。不是 OLTP 数据库不需要做分布式,而是分布式的OLTP数据库的研发异常艰难。但如同汽车终将代替马车:回想起150多年前,汽车刚刚被发明时,马车还是最主流的交通工具,当时在马路上优先通行的是马车,汽车也没有生态。而到了2020年的今天,作为主流交通工具的马车早已成为远古的过去,汽车早就成为了不可逆转的主流。所以,OceanBase 正在撰写数据库的现在,创造数据库的未来,值得期待。
关于 OceanBase 数据库
2010年,OceanBase 项目立项。
2011年,淘宝收藏夹上线。
2014年,支付宝交易库上线。
2015年,网商银行成立,OceanBase 成为全球首个应用在金融核心业务系统的分布式关系数据库。
2016年,OceanBase 1.0版本在支付宝账务系统上线,支撑12万笔/秒支付峰值。
2017年,支付宝首次把账务库在内的所有核心数据链路全部迁移到 OceanBase 上,创造4200万笔/秒数据库处理峰值纪录。
2017年,OceanBase 走出阿里对外商用,先后在南京银行等多家商业银行落地。
2019年,OceanBase 参加国际标准的数据库 TPC-C 基准性能测试,以6088万 tpmC 登顶 TPC-C 性能榜。
2020年,OceanBase 再次登顶 TPC-C 测试性能榜首,并创造了7.07亿 tpmC 的新纪录。
2020年,OceanBase 公司成立,以专注发展 OceanBase 数据库,向客户提供更专业服务。