从3.0开始,OceanBase 正式步入第三代企业级分布式数据库序列。其实很多人不知道,今年6月,OceanBase 开源的版本能力并不弱于2020年双十一支付宝在线使用的版本。
集中式和分布式怎么选?是数据库选型中最让人纠结的问题。之所以纠结,是因为二者各有优势,却熊掌与鱼不能兼得。
比如:1、 不想分库分表,应用开发都要哭了……2、 业务发展特别快,数据库又要扩容了……3、 不知道哪些是AP哪些是TP,没办法把业务拆分出来……4、 大机挂了,只能等厂商恢复,不敢切流……5、 为什么备库不能提供服务?服务器白白浪费了……6、 分布式数据库部署了几十台服务器,性能还不如一套 Oracle RAC……7、 原先使用 Oracle,迁移到国内某数据库应用,改业务快崩溃了……8、 跑批的时候交易性能总是抖动……9、 多个部门使用一套数据库,互相干扰……
以上问题均来自真实的用户声音,这些需求从本质上来说,是用户既需要分布式可扩展、高可用的能力、也需要集中式的功能、性能及易用性。那么,有没有一个产品或者解决方案能解决以上所有问题?以前没有,但现在有了,那就是第三代企业级分布式数据库。
近日,在刚刚结束的 DTCC 2021大会上,OceanBase CTO 杨传辉(花名:日照)发表了《一体化架构的原生分布式数据库》的主题演讲,其中谈到一些新的概念,如一体化架构,第三代分布式数据库等,一些理念跟其它厂商有些不同。
OceanBase CTO 杨传辉(花名:日照)
什么是一体化架构?一体化架构的原生分布式数据库又跟我们所熟知的分布式数据库有什么不同?能解决哪些问题?
带着这些问题?笔者采访了杨传辉。
在杨传辉看来,分布式数据库迭代分为三个阶段:
第一代分布式存储系统(NoSQL):以牺牲SQL,牺牲事务一致性,牺牲企业级功能,从而获得可扩展、高性能的能力。
第二代分布式数据库(Scalable SQL):支持基本的SQL功能,往往牺牲单机性能和成本,延迟比较大,企业级功能支持不全。
第三代企业级分布式数据库(Scalable Enterprise DB):采用一体化的方式,功能和性能可以兼得。兼容SQL标准,支持丰富的企业级功能,追求单机性能。
从描述可以看出,一体化架构是第三代企业级分布式数据库的核心技术,那么什么是一体化?
杨传辉表示,所谓一体化包含了两层意思:“集中式与分布式的一体化融合”和“OLTP与OLAP一体化融合”。
OLTP 与 OLAP 的一体化融合,这并不是新概念,其实就是 HTAP,早期 E.F.Codd关系模型提出时,并不区分是做TP还是AP。Oracle 其实就是 HTAP 数据库,只不过 Oracle 只能处理小数据量的 HTAP,而不能做大数量。那么,后来为什么会分开?是因为随着数据越来越大越来越多,集中式数据库无法在一套系统里既处理TP又处理AP,所以,就进行了拆分,一个TP系统,一个AP系统,定期做同步。
现在为什么又要融合?杨传辉认为,天下大势合久必分,分久必合,分布式和云计算发展到一定程度,让(一套)系统的处理能力又变强了,基于用户简单化需求驱动的一体化融合,于是又有了把AP、TP合在一起的想法。2014年,Gartner 也提了这样一个概念,今天 HTAP 也成了数据库中的一种类型。
但集中式与分布式的一体化融合,这绝对是一个很新的概念,同时具备集中式和分布式系统的技术优势,这听起来就很香。
这种融合的好处是什么?杨传辉说,一体化融合下的数据库选型,不再需要一开始考虑容量问题,比如选 OceanBase,业务初期一台机器就可以先用起来,当业务迅速增长,系统出现能力不足就做扩展, OceanBase 能够做到一台机器使用时,即不用分布式时,性能、功能不损失。
总的来说,一体化融合对用户的好处是显而易见的,那就是好用且成本降低。
一体化架构,理论听起来很香,但做起来并不容易,否则就不会是一个新概念了。杨传辉说,这个架构非常难,里面都是坑。
OceanBase 为什么能做到别人做不到的事?杨传辉说,是脚踏实地,一体化架构没有捷径。OceanBase 坚持长期主义,坚持用十年、二十年的时间打造下一步分布式数据库。这里涉及三个理念:第一坚持完全自研,第二坚持原生分布式数据库,第三坚持核心场景。OceanBase 认为,想要做好下一代支持核心场景的原生分布式数据库一定需要自研。成立之初,OceanBase 选择走完全自研的路线,并不是因为预测到今天国产化、自主可控的趋势,完全是技术选择。
多次打榜TPC,既不是喜欢也不是为了炫耀,而是为了打磨产品和证明架构的可行性。杨传辉表示,因为 OceanBase 定位为下一代原生分布式数据库,所以,需要用集中式数据库最高、最苛刻的标准要求自己。那怎么证明 OceanBase 是强一致?TPC-C 是一种很好的方式,通过 TPC-C 测试,证明在分布式架构之下的也能具备强一致能力,这很重要,说明基于分布式架构实现 ACID,也能管理20万亿行这样的大规模数据,并且能做到完全无抖动,这是 TPC-C 的意义。而打榜TPC-H亦是如此,为的是证明 OceanBase 的 HTAP 能力。
OceanBase 通过了 TPC-C 测试证明了分布式数据库这条路的可能性,并证明了OceanBase 的扩展性、高可用的能力,防抖动能力是领先的。杨传辉表示,OceanBase 在单机性能和功能,还要向经典数据库学习,虽然证明了架构的可行性,但并不意味着我们现在就比原来的好,这里还有很长的一段路要走。
此次DTCC大会上,OceanBase 3.1.1开源版本正式发布,该版本进一步强化OceanBase 内核能力,提升易用性及开源能力。紧接着,云栖大会上,OceanBase 3.2商业版正式对外发布,数据分析性能提升6倍。
杨传辉指出,实际上 OceanBase 从3.0开始,就属于第三代分布式数据库,因为主体架构基本具备,但还需要不断追求单机性能极致,并做好兼容性功能和细节打磨。
OceanBase 开源是认真的,且货真价实的。杨传辉最后说,今年6月开源的版本能力不弱于去年支付宝双十一在线使用的版本。