写点什么

中国数据库 OceanBase 登顶之路

  • 2019-11-26
  • 本文字数:2618 字

    阅读完需:约 9 分钟

中国数据库OceanBase登顶之路

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


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


作为全球首个应用在金融核心系统的分布式关系数据库,蚂蚁金服 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 研发路上也几经“夭折”。因 MySQL 就能满足淘宝大部分业务需求导致 OceanBase 团队面临解散,因业务系统改造量巨大导致 OceanBase 几个月都无法上线……所面临种种的困境,都因得到了王坚、彭蕾、程立、刘振飞等阿里巴巴/蚂蚁金服众多高管鼎力支持才化险为夷。

摘下皇冠上的明珠

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


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


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


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

OceanBase 进入商业化新时代

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


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


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/6mUEhJ80Au95mFTqHLR4jw


2019-11-26 13:46833

评论

发布
暂无评论
发现更多内容

区块链技术发展需加强核心技术自主创新

CECBC

区块链技术

【薪火计划】01 - 好与坏

AR7

管理

C++的智能指针你了解吗?

良知犹存

c++

架构师训练营 - 第四周课后练习

joshuamai

架构师训练营 - 第四周学习总结

joshuamai

架构师训练营第四周作业

李日盛

架构

Scala-语法特性(一):类型和变量定义

正向成长

scala

用eBPF/bcc分析系统性能的一个简单案例

AI乔治

Java 编程 架构 大前端

大招落地:MySQL 插入更新死锁源码分析

AI乔治

Java MySQL 编程 架构

Flutter 开发从 0 到 1(二)框架与网络

吴小龙同学

flutter ios android 跨平台

Maven 入门

少平

Java

线上排障技巧 | 动态修改LOGGER级别

AI乔治

Java 编程 架构 JVM

Flutter 开发从 0 到 1(一)需求与准备

吴小龙同学

flutter ios android 跨平台

【得物技术】机器学习在图形验证码识别上的应用

得物技术

学习 算法 测试 图像识别 验证码

“双11”正成为区块链场景应用“练兵场”

CECBC

大数据

架构师训练营第1期 - week08 - 作业

lucian

极客大学架构师训练营

极客大学 - 架构师培训 -ch3 作业

bing5tui3

极客大学架构师训练营

如何正确的关闭线程池

Rayjun

Java 线程池

极客时间 - 架构师一期 - 第八周作业

_

极客大学架构师训练营 第八周作业

iOS底层系统小结

shirley

ios

Maven 进阶

少平

16张图带你彻底搞懂基数排序

Java架构师迁哥

杂谈

落曦

java是如何调用native方法?hotspot源码分析必会技能

诸葛小猿

Java jdk JVM jni hotspot

数字货币是数字经济发展基石

CECBC

数字货币

fastJson与一起堆内存溢出'血案'

AI乔治

Java 架构 JVM Fastjson 内存溢出

ARTS Week14

丽子

这篇 MySQL 索引和 B+Tree 讲的太通俗易懂!

MySQL 面试 数据库事务 索引结构

上海与鲲鹏的数字共鸣

脑极体

架构师训练营第 1 期 - 第 8 周课后练习

Anyou Liu

极客大学架构师训练营

我用 Python 找出了删除我微信的所有人并将他们自动化删除了

Python小二

Python 微信

中国数据库OceanBase登顶之路_文化 & 方法_Geek_cb7643_InfoQ精选文章