讲师专访丨蚂蚁金服庆涛:国产数据库OceanBase和分布式数据核心技术

编者按:数据库在每个人的生活里无处不在,不管是通讯、交通、金融行业,亦或是每天大家都在接触的互联 ,所有这些业务的背后都是数据库在支撑。

我国的数据库软件产业发展已有数十年,相继经历了技术跟踪期、创新发展期,最终进入到近十年间的产品成熟期,如雨后春笋一般涌现出大量的数据库产品,这里不再一一列举。谈起国产自研数据库,不得不提的是OceanBase——完全由阿里巴巴和蚂蚁金服自主研发、全球首个应用于金融核心业务的分布式关系数据库。

OceanBase创始于2010年6月,在过去的9年时间里承载了阿里巴巴和蚂蚁金服许多的艰难使命:核心链路去O、支撑双11,业内流传较多的是2014年的双11,OceanBase创始人阳振坤老师对当时视察的蚂蚁金服董事长的彭蕾说了这样一句话:“你看我们窗子都已经打开了,如果等会出问题,我们就准备从这跳下去。”2017年后,随着蚂蚁金服的开放战略,OceanBase也开始进入了商业化的进程。

6月27日,「DTC 2019数据库技术实战线上峰会」邀请了OceanBase技术专家庆涛,请他和我们聊一聊数据库的那些事,以及从Oracle/MySQL到OceanBase的入门秘籍。

蚂蚁OceanBase技术专家:梅庆

在正式分享之前,云和恩墨对庆涛老师进行了一次较为深度的专访,以期大家认识讲师和初步认识OceanBase,并了解背后的一些故事,初探国产数据库OceanBase的发展历程及架构演进,及其未来的规划,以下为正文。

01

数据库行业资深老炮寄情阿里8年

DTC:您从事数据库行业已经十几年了,可否从技术角度回顾下自己的职业经历strong>

庆涛:我毕业后从事企业软件开发,接触了Oracle和SQL Server数据库,对数据库优化非常感兴趣就来到阿里巴巴B2B从事Oracle开发DBA。三年后集团团队调整后支持阿里旺旺MySQL去O业务,随后支持阿里云数据库MySQL和SQLServer。中间离开阿里2年,15年开始支持天猫业务(分布式MySQL),17年从事集团数据库产品和解决方案的对外输出,18年开始从事蚂蚁OceanBase数据库产品和解决方案对外输出。

DTC:始于2010年阿里主张的“去IOE”(IBM小型机、Oracle数据库和EMC存储设备)成为现象级事件,虽然现在鲜有提及,当初您做了哪些事情以及对您带来了哪些改变strong>

庆涛:早期主要是跟团队一起探索MySQL的变更和规模化运维,主要是分布式MySQL的高可用切换和性能诊断方面的。

DTC:您在阿里8年,经历了很多角色的转变,从起初在阿里B2B从事与Oracle相关的开发DBA、后来又加入到“去IOE”运动中,接着支持RDS MySQL和SQLServer,现在是OceanBase技术专家,您在期间是如何调整的新技术的学习您有什么心得和体会可分享strong>

庆涛:各个数据库功能虽然有些不一样,但运维的方法思路是一样的。此外底层的原理也有相通,可以举一反三融会贯通。我觉得能让我一直适应这个变化的关键是对数据库运维和性能诊断技术的喜欢。对于新技术的学习我倾向于先从原理上学习

DTC:目前,您主要从事OceanBase对外输出的解决方案设计和技术推广工作,这段时间您认为对您最大的挑战是什么strong>

庆涛:由于OceanBase对外商用的时间还不长,还在逐步建立自己的技术 群和生态,目前最大的挑战是让传统数据库的业务开发和运维理解OceanBase的优势和使用方法。

DTC:您是技术出身,您觉得技术人员要如何提升对业务的敏锐度strong>

庆涛:个人觉得先熟悉业务数据库,熟悉每个SQL及其背后的业务意义,熟悉数据库性能变化后的业务因素。然后尽可能的介入业务数据库架构设计、业务性能诊断,探索业务压力和数据库资源及性能的关系。

DTC:您能否推荐一些对您影响较大的一本书或一些人。

02

9年OceanBase的发展里程碑事件

及架构特点

DTC:OceanBase作为国产自研数据库的一员,它是一款怎样的数据库分布式数据库wSQL数据库经历了哪些里程碑式的事件。

庆涛:OceanBase定位是通用的分布式关系型企业数据库。虽然诞生于阿里巴巴和蚂蚁金服的业务场景,但并不仅仅是为电商和金融定制的数据库。OceanBase是原生的分布式数据库,其高可用、弹性伸缩和负载均衡能力有着独特的优势。OceanBase通常被归类为NewSQL数据库,以兼容MySQL和Oracle为目标。

OceanBase的里程碑事件:

OceanBase起源自2010年。最早的时候,它并不是一个全功能的SQL数据库。起源的时候其实还是一个分布式的存储系统,主要的目标是支持淘宝里收藏夹的应用。

淘宝收藏夹是一个海量数据量、非常高访问请求的一个应用。随着淘宝用户量和淘宝商品量的不断增长,这个系统仍然运行在OceanBase上。而且经历了这么多年的沉淀,已经为淘宝收藏夹提供了非常完善的一个支撑能力,这实际上是一个很重要的里程碑

当核心的分布式的数据存储能力和数据访问能力得到了基本的保障之后,OceanBase产品其实也在一步步增强和优化。

支持收藏夹业务的时候,OceanBase还是在阿里集团,后续随着业务的发展,我们在蚂蚁金服看到了更多的发展机会,所以后来集团决定把OceanBase的产品转到蚂蚁金服持续的发展。

从OceanBase0.5版本开始,我们开始尝试在核心交易系统里让OceanBase发挥作用。在2014年,OceanBase在“双十一“的业务中承担了10%的流量。经过了这些初步的验证,我们后续逐步地优化和加强了这部分的技术能力。

到2015年、2016年的时候,支付宝上的所有核心交易的核心链路,已经100%完全承载在OceanBase上了。这之后OceanBase已经成长为一个非常全面,有强支撑能力,而且通过了极限考验的一个数据库产品。这也是一个里程碑

作为一个互联 银行, 商银行的业务形态有着非常突出的特色。当 商银行正式开业的时候,它的所有的核心业务系统已经100%承载在OceanBase之上。这也再一次证明了OceanBase在实际业务场景下的支撑能力。

在这之后,从2016年、2017年开始,OceanBase开始对外商用,也有越来越多的企业级客户愿意选择相信OceanBase,包括南京银行、苏州银行、人保财险等。在这些客户选择OceanBase后,其实在它们的互联 的系统里OceanBase已经发挥了非常重要的作用。这算是第三个里程碑

DTC:OceanBase于2010年发V 0.1-v0.3、201年V 0.4、2014年V 0.5、2016年闭源从1.0开始重构;2018年发布V 2.0,OceanBase数据库系统整体架构是怎样的怎样的特点strong>

庆涛:OceanBase 1.0之前的版本架构上分为多个角色:主控服务器Rootserver、更新服务器Update Server、基线服务器Chunkserver以及合并服务器Mergeserver。系统内部按照时间将数据分为基线数据和增量数据,基线数据是只读的,修改都是产生增量数据,系统内部定期将基线数据和增量数据合并。1.0之后版本重构,架构上服务器只有一个角色OBServer,其内部会包含一个SQL引擎和存储引擎(负责存储基线数据和增量书),整个集群还有一台服务器会有总控服务。整个架构更清爽,服务器角色都平等,配置统一。

2.0版本发布后在全局一致性快照上有突破,同时逐步兼容Oracle常用功能。

DTC:OceanBase在发展过程中应对了哪些业务挑战的架构产生了怎样的演进strong>

庆涛:最大的挑战就是在海量的数据和并发访问下还要保证正确性、高性能和高可用。OceanBase从0.4版本就开始在核心业务里替换Oracle,成功后后面为了继续扩大成果,从OceanBase 1.0开始架构做了一次大的重构,目前到2.x版本,架构大体未变,相关功能细节得到业务打磨更加完善和稳定。

DTC:在过去的十多年里,蚂蚁在整个基础数据库架构上一共经历了三代升级,第一代架构构建在IOE基础之上,第二代是Oracle和EMC商业存储,加上蚂蚁自身的分布式中间件,第三代是由OceanBase为代表的金融级云数据库和分布式中间件所构成。数据库架构升级并非易事,可否从兼容性、迁移成本、性能、稳定性、数据质量等角度,就第三代而言,谈一谈OceanBase的是如何做的strong>

庆涛:兼容性方面业务需要做比较大的妥协。比如说去除对Oracle存储过程的依赖、避免多个大表之间的表连接、减少统计类查询等。使得OceanBase早期可以专注短平快的事务的性能、稳定性等。

数据迁移方面主要得益于相关中间件产品。比如说数据迁移服务DRC、数据校验服务AMG等。架构上还实现了在线迁移、灰度验证以及回滚机制等。

高可用方面一方面是OceanBase自身可靠性很高,故障切换时做到自动切换和不丢数据,另外一方面是蚂蚁业务架构根据业务特点设计相应的业务FO库(Failover),用于数据库服务性能下降或中断时,业务快速弹性切换到FO库,从而更快恢复服务。

DTC:结合您多年的工作经验,您认为OceanBase的优劣势是什么strong>

庆涛:OceanBase运维方面的优势是在数据库内部提供极致的弹性伸缩能力和高可用能力,还有跨地域部署多副本并保证强一致和随时切换的能力。这些为用户做数据库两地三中心(或三地五中心)的容灾和多活建设提供了极大的便利。

OceanBase吸引开发的地方就是自身也提供透明的水平拆分能力(即分区),兼容MySQL和Oracle常用功能。如果业务非常关注数据的安全性和性能,OceanBase是一个很好的选择。

OceanBase的缺点也有。目前主要是复杂的多表关联查询性能还不够好,此外存储过程、Package等还不具备生产环境使用能力。

DTC:OceanBase在生产数据方面有哪些别致的表现strong>

庆涛:主要是下面三个方面:

  • 高可用:OceanBase节点故障后,只是该节点局部数据访问中断,此后迅速切换恢复且保证不丢数据。RPO等于0,RTO在30s以内。此外,即使在三地五中心架构下,也可以随时做机房间的数据库容灾演练。

  • 可线性扩展:单集群的最大存储容量超过2PB,单集群最大机器规模超过100台。在双十一前后,可以快速在线针对大量集群做弹性扩容和缩容。

  • 高性能:单张表最大容量突破3200亿行,并且大表之间可以连接访问(淘宝收藏夹业务)。蚂蚁双11所有OceanBase集群处理峰值高达4200万/秒,每秒交易峰值24w/秒。(2017年数据)。

DTC:目前您主要从事OceanBase对外输出的解决方案设计,可否分享下OceanBase走向商业化数据库产品的历程strong>

庆涛:OceanBase商业化到目前已经快两年了,一开始我们选择的是以银行为代表的金融行业,主要是面向中小客户,和蚂蚁金融科技整体方案一起,做基于云平台的输出;后来随着产品本身的不断成熟,我们也开始做面向头部客户的独立软件输出。到今天为止,我们已经在四大行,股份制行,头部的城商行、农商行,农信系统等都落地了许多案例。除了银行之外,我们在包括保险、证券等泛金融行业也取得了一些成绩,目前我们正在做面向非金行业头部客户的突破。

DTC:您认为互联 时代下企业级数据库面临着怎样的业务挑战strong>

庆涛:性能要求会越来越高、资源的弹性伸缩要求也会变多。部分业务还有异地容灾或多活的需求。

DTC:OceanBase用在了哪些业务场景分享一些特别的案例strong>

庆涛:支付宝的会员、账务、交易、支付等跟交易有关的业务全部在OceanBase上。非金行业一个有代表性的案例即淘宝收藏夹业务也是跑在OceanBase上,淘宝收藏夹业务从0.3版本就一直使用OceanBase,集群规模最大曾经超过100台。这个业务特点就是数据量非常大(几百亿),收藏大表关联商品大表查询。

DTC:OceanBase也有自己的数据库集群管控平台OceanBase云平台,该平台的架构及组成是怎样的strong>

庆涛:OceanBase云平台由运维链路、监控链路、诊断链路、数据链路、高可用链路、基础设施等若干子系统组成。每个子系统又切分成数十个甚至上百个小服务,服务间弱依赖.

看了OB的方方面面

名庆涛的直播课吧!

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8956 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月20日
下一篇 2019年5月20日

相关推荐