中国数据库OceanBase登顶之路

柴进
• 阅读 2121

今年天猫双11当天,OceanBase数据库再次刷新数据库处理峰值,达6100万次/秒,创造了新的世界纪录。

在此之前一个月,据权威机构国际事务处理性能委员会TPC披露:蚂蚁金服的分布式关系数据库OceanBase,打破美国甲骨文公司保持了9年的世界纪录,成为首个登陆该榜单的中国数据库系统。

  中国数据库OceanBase登顶之路

作为全球首个应用在金融核心系统的分布式关系数据库,蚂蚁金服OceanBase的出现,是金融科技发展过程中极为重要的一步。

事实上,蚂蚁金服OceanBase“登顶”之路绝非易事,却又是理想主义使然!正如马云所讲,“我不懂技术,但是我尊重技术。”

九年积淀缩影,一切从零开始

2008年,阿里巴巴集团首席架构师王坚提出“去IOE”,即摆脱业务系统对IBM小型机、Oracle数据库以及EMC存储的过度依赖。2009年开始,阿里举全公司之力投入到云计算的研发和使用中,随后在阳振坤带领下启动了OceanBase分布式关系数据库项目。

从2011年双11到2019年双11,自主研发的OceanBase数据库,以远低于传统商业数据库的成本,更高的可用性,一次次地刷新世界纪录,打破了核心数据库长期被传统商业数据库垄断的格局。

2017年,OceanBase数据库迈出了商业化关键的第一步,为南京银行“鑫云+”互金开放平台提供金融级分布式关系数据库服务。此后,OceanBase不仅在西安银行、广东农信、人保健康险、招商证券、苏州银行、常熟农商行等金融机构的生产系统中投入运行,并且还出口到了印度和美国等地,为当地的支付业务提供数据库服务。

数据库的前世今生,蚂蚁金服自主研发之路

以前,在以IOE为代表的传统IT环境中,Oracle数据库的地位根深蒂固。2008年王坚博士成为阿里集团首席架构师,他意识到IOE架构对于阿里长期运营成本的影响以及对未来业务发展的制约,不仅提出了“去IOE”的想法,还有力地推动了自研数据库OceanBase的发展。

从2009年开始的双11,每年产生和处理的数据量都在爆发式增长,如果一直采用Oracle数据库的话,运营成本将是天价。另一方面,为传统IT环境而设计的Oracle数据库,并没有考虑到互联网的大规模、高并发、大容量等新兴需求。为此,阿里巴巴/蚂蚁金服开始走上了自主研发的道路,从头开始重新设计一个完完全全自主研发的数据库产品——OceanBase。

本质上来看,OceanBase与Oracle一样都是关系型数据库,但Oracle是针对传统业务场景而形成的集中式数据库,而OceanBase则是面向高并发、大数据环境而诞生的分布式关系数据库。由于是完全分布式架构,OceanBase工作时,把原来集中存储和处理的数据分散到不同的机器上进行,系统的存储和计算能力都可以通过增加或减少机器而实现水平伸缩,克服了传统数据库集中式系统无法水平伸缩的窘境。

从第一行代码起步到今天超过百万行代码,支撑双11的超高峰值以及蚂蚁金服的全面业务,OceanBase可以说是一个划时代的数据库产品。正如蚂蚁金服资深技术专家陈萌萌所言,“真正用分布式架构解决像蚂蚁金服这么大规模事务性需求的分布式数据库,目前只有OceanBase。”

复杂业务场景锤炼出来的分布式数据库!差点“夭折”的OceanBase

由于数据库的稳定性、正确性、高可用、高性能等苛刻要求,自主研发数据库需要的是行业背景和企业实践,这也是为什么中国大多数企业、高校和科研机构无法在数据库研发上取得突破性进展的原因之一。

幸运的是,OceanBase赶上了千载难逢的“天时”和“地利”的机遇。“天时”是当时互联网的高并发带来的数据库的并发访问和数据量的百倍、千倍的增加,而传统数据库固有的集中式系统无法具备这种扩展能力。“地利”则是阿里巴巴/蚂蚁金服自有庞大的业务和数据库需求,这不仅使得OceanBase有足够的经济价值,更为OceanBase的成长提供了良好的土壤和养分。

  中国数据库OceanBase登顶之路

事实上,OceanBase研发路上也几经“夭折”。因MySQL就能满足淘宝大部分业务需求导致OceanBase团队面临解散,因业务系统改造量巨大导致OceanBase几个月都无法上线……所面临种种的困境,都因得到了王坚、彭蕾、程立、刘振飞等阿里巴巴/蚂蚁金服众多高管鼎力支持才化险为夷。

摘下皇冠上的明珠

从2010立项开始算起,OceanBase用了7年多的时间才在蚂蚁金服取代Oracle成为了支付宝的账务等数据库,这对整个金融行业具有里程碑意义。

2014年双11,OceanBase仅处理10%的交易数据链;2015年双11,OceanBase处理100%交易数据链和50%支付数据链;2016年双11,全部交易数据链和支付数据链以及30%花呗账务运行在OceanBase上;2017年双11,包括整个账务库在内的全部核心系统都100%运行在OceanBase上;2019年双11,OceanBase再次刷新了数据库处理峰值的世界纪录,达到6100万次/秒。

  中国数据库OceanBase登顶之路

区别于传统集中式数据库,OceanBase的根本特征是分布式架构,基于普通的PC服务器构建的满足金融级高可靠性以及数据一致性的数据库系统。事实上,OceanBase也被称为原生的分布式关系型数据库,其把所有与高可靠性及数据一致性相关的问题在数据库内核层面就解决掉,使得OceanBase真正具备高度集成、整体交付、对业务少侵入甚至无侵入的商业数据库特征,同时也真正克服了单纯依赖分库分表的分层设计中所缺失的全局一致及跨库查询等缺陷。

通过原生的分布式数据库设计以及PAXOS协议等,OceanBase实现了高可用、强一致、易用性、高性能、可扩展以及低成本。原先一台高端服务器动辄几十万、几百万,而OceanBase仅用几千元至几万元的PC服务器即可。蚂蚁金服高级研究员阳振坤表示,“OceanBase的性价比已经达到了现有商业数据库的5倍~6倍以上,未来还将更高。”

OceanBase进入商业化新时代

从2017年开始,OceanBase跟随整个蚂蚁金服的金融科技开放,开始了向传统金融赋能的实践过程。同年OceanBase在南京银行上线,为南京银行“鑫云+”互联网金融开放平台提供金融级分布式关系数据库服务,迈出了商用的关键一步。随后,西安银行、广东农信、人保健康险、招商证券、苏州银行、常熟农商行等也在生产系统中使用OceanBase。

  中国数据库OceanBase登顶之路

今天,针对企业普遍迫切需要的高性能交易处理+大容量商业智能的混合负载需求,OceanBase分布式关系数据库将充分发挥自身水平扩展能力的优势,进一步完善和优化OLTP+OLAP混合负载的功能和性能,为更多业务提供服务。

想要了解更多?
扫描下方二维码关注11月19日“蚂蚁金服双11背后的技术:巅峰洞见·聚焦金融新技术”发布会直播。

  中国数据库OceanBase登顶之路

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
双十一预售活动分析
2022年双十一促销活动已经开始,大家应该都提前开始关注今年双十一活动的时间表了吧?2022年10月24日晚8:00天猫双11预售时间,第一波销售时间10月31日晚8:0,第二波销售时间11月10日晚8:00;天猫双11的优惠力度是跨店每满30050
Stella981 Stella981
4年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
4年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
柴进
柴进
Lv1
还将两行泪,遥寄海西头。
文章
3
粉丝
0
获赞
0