本文选自 InfoQ《中国卓越技术团队访谈录》(2022 年第四季),此次采访,心愿可能将 OceanBase 具备创新性的技术演进历程展示在读者背后,让开发者和业内人士更加深刻理解与 OceanBase 数据库无关的所有。
根底软件是个须要漫长工夫积攒才有可能积淀出后果的畛域。作为三大根底软件之一的数据库技术,没有十年以上的深耕和积攒,很难在巨头林立的国内市场砸出水花。
我国数据库技术绝对于欧美国家起步较晚,大概始于七十年代中期。1977 年 11 月,由中国科技大学在黄山主办了第一次数据库技术研讨会,标记着中国数据库软件产业进入了技术跟踪期,其后经验了三十多年的倒退,中国数据库软件产业相继经验了强势垄断期、翻新发展期,最终进入了目前的产品成熟期。
OceanBase 六年演进历史
2009 年,淘宝发动了“双十一购物节”流动,使得刹时数据呈爆炸式增长,传统单机数据库很难应酬峰值时的海量数据,这也就有了 OceanBase 诞生的土壤。
2014 年,OceanBase 数据库的自研工作获得了肯定功效,研发团队将支付宝交易业务中 10% 的任务量迁徙到了 OceanBase 上,这是整个外围业务应用 OceanBase 迈出的第一步。对于业内来说,也是外围业务应用国产数据库的一个 0 的冲破。
2016 年,OceanBase 数据库公布了架构从新设计后的 1.0 版本,反对了分布式事务,晋升了高并发写业务中的扩大,同时实现了多租户架构,这个整体架构连续至今。同时,到 年“双 11”时,支付宝全副外围库的业务流量 100% 运行在 OceanBase 数据库上,包含交易、领取、会员和最重要的账务库。
至此,阿里巴巴实现了数据库自在。
2017 年,OceanBase 数据库开始试点内部业务,胜利利用于南京银行。
2018 年,OceanBase 数据库公布 2.0 版本,开始反对 Oracle 兼容模式。这一个性升高利用革新适配老本,在内部客户中疾速推广开来。
到了 2019 年,OceanBase 数据库 2.2 版本加入代表 OLTP 数据库最权威的 TPC-C 评测,以 6088 万 tpmC 的问题备受瞩目。随后,在 2020 年,又以 7.07 亿 tpmC 刷新纪录。OceanBase 数据库是第一个也是截止目前惟一一个上榜 TPC-C 的中国数据库产品。
2021 年,OceanBase 数据库 3.0 版本基于全新的向量化执行引擎,在 TPC-H 30000GB 的评测中以 1526 万 QphH 的问题刷新了评测榜单。这标记着 OceanBase 数据库一套引擎解决 AP 和 TP 混合负载的能力获得了基础性的冲破。
在 2021 年一个非凡的日子——六一儿童节,OceanBase 数据库发表全面开源。
通过多年的倒退,在 8 月举办的 2022 OceanBase 年度发布会上,版本代号为“小鱼”的 OceanBase 4.0 正式公布,这是业内首个单机分布式一体化数据库,它实现了单机部署并兼顾分布式架构的扩展性与集中式架构的性能劣势,不仅一举冲破了分布式数据库单机性能的瓶颈,实现了单机性能赶超集中式数据库的行业历史性“逾越”。
OceanBase CTO 杨传辉在承受 InfoQ 采访时示意:“OceanBase 4.0 版本的公布,是咱们对分布式数据库该怎么演进的一个从新思考。咱们在这个版本上引入了一个一体化构造的理念,外围的指标是为了让这个产品可能通用,可能规模化地去反对大中小企业对数据库各种各样的需要,可能很好地适配在云环境中。从用户角度讲,4.0 版本与以往最大的不同在于它突破了分布式只能反对大企业、大体量数据的思维定式,让它也可能利用到中小企业中。”
步入 4.0,架构实现了第三次降级
随着大数据、5G 和 AI 的倒退,目前市场上的许多数据库产品曾经非常成熟。就拿单机数据库来说,如果数据量不是特地大,性能较好的单机数据库足以应酬。
然而,当数据库数量变大当前,一些产品的毛病就裸露进去了:他们尽管采纳了可扩大、灵便伸缩的分布式架构,但有些却连 SQL 都不反对;还有些尽管反对一部分 SQL 性能,也反对一些分布式的能力,然而这些 SQL 在设计时都就义掉了某些单机性能,用户在面临数据库选型时就会选入困扰——没有一款数据库交融了集中式和分布式的双重技术劣势。
所以在迭代 4.0 版本时,OceanBase 研发团队瞄定了这样一个用户需要痛点, 首次采纳了单机一体化架构,在保障数据库可扩大、高可用的分布式个性后还不会就义集中数据库的劣势。
在此之前,简直没有产品可能做到在分布式的状况下还能保障单机性能足够好且可能实现小规模部署、灵便易用,这些都不是过来分布式数据库谋求的指标。而当初通过动静的日志流,把集中式日志流的劣势和分布式的扩展性的劣势交融到一个计划里,最终造成了的单机分布式一体化架构的解决方案。
从最后的 1.0 演进到 4.0 版本,OceanBase 在架构上实现了第三次降级。最早的 OceanBase 0.5 采纳的是单写多读的架构,到了 2016 年左右,蚂蚁团体次要外围业务就都用上了 OceanBase 数据库,于是 OceanBase 进行了第二次架构降级,齐全采纳了分布式架构。再到 2022 年,研发团队将架构进行了第三次降级,也就是当初的单机分布式一体化架构,每次架构降级都耗时六年左右的工夫。
杨传辉坦言,“每次版本的迭代,比技术自身更难的环节是做决策。如何均衡老本和收益之间的关系,也是要思考的问题,咱们可能预想到所面临的技术挑战是十分大的。不过,咱们对它的前景也是很乐观的,如果做这件事的收益足够大,大到甚至可能颠覆整个数据库行业的时候,咱们就违心去试一试。”
作为 OceanBase 高级研发总监的韩富晟,在这一点上深有体会。韩富晟示意:“咱们决定做这件事件因为咱们认为单机分布式一体化架构会是将来数据库倒退的一个方向,因为它真正能解决客户的痛点。做了这样一个大的改革,对 OceanBase 本人来说也是一个颠覆,咱们有 80% 的基层研发人员都投入到了 4.0 版本的迭代中。为此咱们重写了底层架构,包含重写了存储模块、事务模块等,通过一系列重写保障了单机性能上的劣势。”
下一代分布式数据库是什么样?
只管在架构上进行了三次调整,但自 1.0 版本公布以来,OceanBase 走分布式架构这条路的信心从未波动过。
最近几年,分布式数据库在国内倒退较快。一方面,技术的倒退还是由业务和需要驱动的,丰盛的数据库利用场景,新一代信息技术与实体经济的深度交融,这些变动都给数据处理和存储的次要核心技术带来了前所未有的倒退时机。数据规模和数据应用复杂程度的晋升,使得老旧的数据库模式面对当下许多利用场景时变得力不从心,分布式数据库成为了很多企业的必然选择。
杨传辉称:“对于很多企业而言,分布式数据库就好比当初的电动汽车。当电动汽车产业刚刚起步时,它的市占率是很小的,然而在通过了几年的倒退后,咱们能够看到,越来越多人在购车时会优先选择电动汽车而不再是燃油车。分布式数据库也是这样,将来分布式会成为一种能力,蕴含在每一代新型数据库外面,回顾过去也能够发现,集中式数据库都是老一代数据库,而新兴的数据库都是面向云的、分布式的架构,它们更加弹性、更加灵便。分布式就犹如电动汽车的引擎或者叫电池,将来企业做数据库选型时,只有抉择的是新一代数据库,那么都绕不开分布式。”
分布式数据库最外围解决的问题是什么?
数据库自身是一个极其宏大的系统软件,它之所以能成为一个十分大的市场,就是因为它解决了企业业务中大大小小、外围的、边缘的不同业务场景的各种各样的需要。如果一款数据库都能很好的满足企业的各种需要,那么企业也违心在数据库上投入更多老本,让企业的数据管理和应用更有效率。
归根结底,分布式数据库的实质还是数据库,它的存在就是要去解决理论业务场景里的各种解决数据的需要,包含首先要在同一个零碎里去做交易解决和剖析查问提供更有效率的后果赋能业务端;其次是扩大,解决研发团队按需扩容、不须要依照业务波峰额定筹备硬件资源的问题;而后是高可用问题,集中式数据库的零碎可用性很大水平构建在牢靠硬件的根底上,分布式架构将高可用问题转变为软件解决。
与其他软件如何适配?
企业在部署数据库时,除了要思考分布式数据库自身的问题外,还要留神其与其余根底软件适配性。
韩富晟提到,在 OceanBase 与其他软件适配过程中,遇到的最大挑战之一是多外围扩展性。目前很多企业采纳的是以 ARM 外围为主的架构,与 x86 的外围相比,ARM 的单核心的解决能力会绝对弱一些,须要更多的外围来去撑持更多的解决能力,这个时候就须要数据库具备更好地去适应 CPU 多外围扩展性方面的能力。此外,一些企业有硬件替换的需要时,比方硬盘、机器的交换机、CPU 等,OceanBase 的容灾能力也能帮忙企业把这过程中呈现的故障屏蔽掉,让企业顺利完成替换。
解决了分布式数据库本身问题以及适配工作后,是否意味着分布式数据库曾经成为了支流数据库?对于这个话题,过来几年争议度还是比拟大的。但随着公众对分布式的接受程度和诉求越来越强后,这些争议的声音逐步弱了下来,并且分布式数据库本身也在朝着越来越实用、易用的方向演进。
据杨传辉判断,将来的分布式数据库将向三个方向演技:第一,从架构上来看,单机分布式一体化架构将是大势所趋。分布式数据库会成为一个相似电动车的电池这样的一个核心技术缓缓利用到整个数据库的畛域,而不只局限在大数据这样的细分场景中;第二个方向是混合负载 HTAP,也就是在做好 TP 的同时也会把一些偏实时性的 AP 放到同一个场景里去;第三个方向是多云。将来的数据库肯定会越来越往云上倒退,云数据库会越来越中立。
数据库选型时要思考哪些因素?
即使咱们看到了分布式数据库在市场上备受追捧的现状,但企业在面临数据库选型时仍然会在上百款数据库产品中摇摆不定。到底什么样的数据库是对业务有所助益的?分布式数据库选型能够从哪几个方面进行思考?
在数据库选型过程中,首先最重要的考量因素就是它的稳定性和成熟度。因为数据库自身是一个性能繁多又极为简单的零碎,它的稳定性须要去理论业务场景中打磨和验证的,不成熟的产品,无论是软件还是硬件对于企业业务迁徙的影响都是很大的。
其次,是产品的兜底能力。企业自身的业务也要倒退、变动,在这个过程中,肯定要有预防所有危险的能力。对于底层零碎或根底软件来说,兜底能力就是不论遇到任何问题和异样,都能疾速定位问题并解决问题,所以这背地肯定要有一个技术过硬的团队来撑持。
第三,要评估这款数据库是否代表着先进技术的倒退方向,是否可能继续迭代和改良,只有适应技术潮流的技术产品能力走得更远,更有发展前景。
最初,要掂量这款数据库的一些具体性能,到理论业务场景中去测一测便可通晓。
耐不住寂寞,打磨不出好的数据库产品
在数据库选型过程中,要思考数据库的稳定性和成熟度,还要看产品的兜底能力。而归根结底,这些技术能力的背地,还是要看到底是怎么一群人在撑持着这款产品。
在问及 OceanBase 在招聘工程师时,最看重他们的什么品质时,杨传辉坦言,是他们对一件事件的急躁和保持。
数据库作为一款根底软件,其研发周期和艰难水平相较于应用软件要漫长和艰难得多。尽管近些年来互联网的衰亡让手机操作系统 Android、IOS 也在疾速演进,但也基本上是一年多才会公布一个版本,绝对于 App 十几天、个把月就出一个新版本,还是要慢得多。
更多的技术,其演进过程都是十分漫长的。比方 IPv6,上个世纪开始,人们就开始焦虑 IPv4 地址会用完,但直到明天,还只是小规模在利用。HTTP 从 1.0 走到 2.0 也破费了快 10 年的工夫,可见,做这些根底软件的研发,并不是那么容易,而从事根底软件研发的工程师们,也要耐得住寂寞,能力终有播种。
杨传辉示意:“在招聘时,咱们比拟关注应聘者对计算机基础知识的把握、他们的学习能力,而不是他们的行业教训。从技术的角度来看,咱们不怕一个人没有教训,因为他只有来到 OceanBase 团队,他会和这个行业里顶尖的数据库人才共事,能很快地跟着团队成长起来。此外,我还会特地关注他们是否真正有急躁能沉下心来钻研一件事,也就是要能耐得住寂寞,这个是进入 OceanBase 的必选项。那种只想疾速取得成功、急于求成的人,我必定不会要。因为这些人在 OceanBase 是没有方法获得他们想要的问题的。能耐得住寂寞,阐明他至多对这件事件是有保持,有信念感的。这样他能在做这样一个世界级的技术我的项目外面播种更多快感。在 OceanBase 团队外部,很多人陪着 OceanBase 走过了十几年,如果不是情怀使然,很多人都留不下来。”
采访嘉宾介绍
杨传辉,花名日照,现任蚂蚁团体企业级分布式关系数据库 OceanBase CTO。2010 年作为开创成员之一退出 OceanBase 团队,主导了 OceanBase 历次架构设计和技术研发,从无到有实现 OceanBase 在蚂蚁团体全面落地。同时,他也主导了两次 OceanBase TPC-C 测试并突破世界纪录,著有专著《大规模分布式存储系统:原理与实际》。目前,杨传辉率领 OceanBase 技术团队致力于打造更加凋谢、灵便、高效、易用的下一代企业级分布式数据库。
韩富晟,花名颜然,OceanBase 开创成员 & 资深研发总监,负责 OceanBase 分布式架构与高可用架构的设计与实现,主导了 OceanBase 4.0 版本架构降级,致力于将分布式数据库技术带到更多应用场景,更好撑持海量数据的解决需要。