8 月 10 日,2022 OceanBase 年度发布会在京沪深三地同时召开,OceanBase 创始人兼首席科学家阳振坤在会上分享了《OceanBase 4.0 核心技术解读》的主题演讲,向大家分享了 4.0 的核心技术冲破——业内首个单机分布式一体化数据库,RTO 从 30 秒迈入 8 秒,进入真正的秒级容灾时代。
在发布会上阳振坤从 OceanBase 的 0.1 版本聊到明天的 4.0 公布,并表白了 12 年技术演进背地的思考。“从 2010 年 OceanBase 的第一个版本开始到明天,曾经过来 12 年多的工夫,咱们开发了好多的版本,能够说每一个版本都是整个 OceanBase 幻想的一次次迭代、一次次降级。” 阳振坤示意。
0.1 时代,准分布式
基线 + 增量、核心写 + 分布式读
0.5 时代,高可用
正式启用 Paxos 三正本
1.0 时代,迈过分布式门槛
解决分布式事务
2.0 时代,原生分布式
程度扩大、存储压缩,两次登顶 TPC-C 榜首
3.0 时代,Oracle 兼容 + 开源
走出蚂蚁团体
4.0 时代,单机分布式一体化
业内首个单机分布式一体化数据库,RTO<8s
以下为演讲实录:
从 0.1 到 4.0,十二年技术演进背地的思考
在 OceanBase 的 0.1 时代,咱们要解决淘宝收藏夹的问题,过后淘宝收藏夹面临着微小的业务压力,咱们在技术上采取了两个对应策略。
第一个策略是用了数据素来没有用过的构造——把数据分成基线和批改的增量,基线放硬盘,批改的增量放内存。 很多人对这个计划是质疑的,因为关系型数据库素来没有人这么做过,咱们直到现在也只找到这一个方法来解决收藏夹的问题。
明天看这个技术计划的确给咱们带来了很多挑战,因为传统的数据库是定长的页,它的执行只须要针对这一个对象,但 OceanBase 的基线是定长的数据块,它的批改内容在内存中是变长的,每次读都要做两者的交融。尽管给咱们的评估优化器带来了很大的艰难和挑战,但也给咱们带来了很大的收益和益处。
尤其是在明天,咱们想把交易和剖析在一个零碎上进行的话,已经大家都认为这件事是不可能的,所有零碎的列存都是批量更新,而交易的数据库都做到了实时更新,但 OceanBase 把这两者对立了——都能做到实时更新,就是因为咱们有基于内存的增量。
第二个策略是半分布式构造。 过后团队刚刚组建,人员的成长还须要过程,但业务却没有太多工夫期待。所以,咱们决定先采纳一个核心的写节点加上多个读节点,读是分布式的,写是集中式的。
2013 年,支付宝交易库和其余外围零碎决定从 IOE 降级至 OceanBase,过后面临最大的挑战就是数据的高可用、零碎的高可用。为此,咱们决定在关系型数据库上第一次采纳三正本架构,在三个正本当选两个正本,当两个正本达到统一,整个数据也就达到了统一。
也就是在这一年,咱们第一次在关系型数据库这个产业里提出 RPO=0,这是传统集中式数据库素来没有做到的;咱们第一次在整个数据库产业里做到并提出 RTO<30s,现在,RTO<30s 曾经成为中国数据库业界的规范。
2014 年,支付宝交易库上线的同时咱们开始了 1.0 的开发,因为 OceanBase 的 0.5 还是维持核心繁多的写节点,随着业务的倒退,瓶颈越来越突显。所以,从 2014 年到 2016 年整整两年的工夫,咱们绝大部分资源都投入到把“半分布式”变成“全分布式”,让各个点都能写入。这是一个很大的挑战,但当这个挑战解决后,咱们把支付宝的账务库在 2016 年后都逐渐迁到了 OceanBase,真正在关系型数据库里做到了多点写入。
2.0 时代是 OceanBase 迈过分布式门槛之后的又一次提高。因为 1.0 是咱们第一个真正的分布式版本,这在整个世界范畴内的关系型数据库里,也算是最晚期的版本,但它在性能性能方面有不少欠缺,所以在 2.0 进行了不少的欠缺。借助这个欠缺,咱们第一次登上了寰球数据库性能的基准测试榜首, 咱们第一次做了一个小规模测试,做到了 6000 万,是过后 Oracle 的 2 倍。几个月之后,咱们做了一次比拟大规模的测试,做到了 7 个亿,直到明天 TPC-C 榜首第一、第二还是 OceanBase。
2.0 之后,咱们逐渐开始走出阿里巴巴和蚂蚁团体,开始向全社会提供数据库服务。在 3.0 版本时,咱们进行了 TPC-H 的打榜,过后也以 1526 万 QphH 拿下第一。
因为之前的版本更多是在蚂蚁团体场景下优化的,面对的都是十分高配置的服务器,咱们走进去之后发现遇到的很多场景并不齐全是这样,还遇到了很多剖析上的需要。所以,咱们一方面在进行小型化的工作,为明天的 4.0 奠定根底;另一方面,咱们在逐渐减少剖析的能力,满足更多业务更多客户的需要。
OceanBase 4.0 小鱼诞生,单机分布式一体化时代到来
12 年成长磨炼和积攒,成就了明天的 OceanBase 4.0 小鱼,如同杨冰、韩富晟和大家展现的一样,4.0 咱们有了很多新的冲破。
明天我给大家展现两方面:第一,是咱们的单机一体化架构。 以前大家都晓得 OceanBase 是个分布式系统,咱们能够反对很多大型的高并发业务,在过来几年致力的根底上咱们可能反对从小型到中型到大型的各种业务。从咱们的理解来看,明天的 OceanBase 4.0 是业内首个把分布式跟单机做到一体化的。不只是树莓派,普普通通的个人电脑也将能流畅运行 OceanBase 4.0。
第二,咱们进一步实现了以前提出的指标。 2014 年初,咱们第一次在关系型数据库这个产业内提出了 RPO=0,就是没有数据损失,业务可能在 30 秒之内实现故障下主动复原,通过这几年的致力咱们在这一点上有了进一步的进步,咱们把机房故障级单机故障做到 8 秒。 F1 赛车最早更换轮胎的工夫是几分钟,有点像咱们数据库,前几年大家故障的工夫都是分钟计时甚至半个小时,通过几年的致力咱们能保障业务在 8 秒工夫内复原,给客户给业务提供更好的可用性。
MySQL 兼容能力进一步凋谢,社区版企业版等同性能
最初是开源,随着 OceanBase 4.0 的公布,咱们将做到企业版和社区版领有等同性能。除了多数治理能力和平安能力外,其余 MySQL 兼容能力都会开源、凋谢进去,心愿 OceanBase 可能给整个社会整个产业提供更大的能源。
过来 12 年的工夫里,OceanBase 的很多共事凭着酷爱、凭着幻想始终在数据库最根底的产业上奋斗前行。方才有嘉宾问咱们与其余的数据库最次要的差异是什么?我说最次要的差异是 OceanBase 数据库的每一行代码都是这些同学用他们的酷爱、用他们的幻想一行一行敲进去的。所以,咱们明天有能力解决大家应用过程中遇到的各种各样的问题,除了这些酷爱和幻想之外,咱们还有这么多合作伙伴、客户、用户的反对,置信 OceanBase 将来会有更大的倒退。谢谢大家!