写点什么

中国数据库 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:46903

评论

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

细说Python Lambda函数的用法,建议收藏!

华为云开发者联盟

Python 函数 匿名 Lambda函数 表达式

女朋友问我:MySQL 事务与 MVCC 原理是怎样的?

一个优秀的废人

Java 数据库 事务隔离级别 事务 MVCC

这个GItHub上的Java项目开源了 2021最全的Java架构面试复习指南

比伯

Java 编程 架构 面试 程序人生

技术干货 | 基于MindSpore更好的理解Focal Loss

华为云开发者联盟

损失函数 mindspore Focal Loss 图像物体检测 采样

架构思维

无心

架构

泰山版震撼来袭!阿里巴巴Java面试参考权威指南四月版开源

Java架构追梦

Java 阿里巴巴 架构 面试

那些打不垮你的,终究使你更强大

小天同学

读书 励志 个人感悟 4月日更

深入剖析共识性算法 Raft

vivo互联网技术

复制 选举 分布式协调 Leader Follower

MySQL权限管理实战!

Simon

MySQL 权限管理

java数组打印的几种方式

Sakura

4月日更

回顾过去,展望未来,我在 InfoQ 写作平台的一周年!

JackTian

程序员 个人总结 4月日更 1 周年盛典 InfoQ 写作平台 1 周年

2021安擎昇腾AI服务器产品发布会在京成功举行

DT极客

华为云AI论文精读会2021第一期:高效语义分割模型Fast-SCNN分享

华为云开发者联盟

AI 华为云

app架构师,10天拿到字节跳动安卓岗位offer,好文推荐

欢喜学安卓

android 程序员 面试 移动开发

用WASM连接Rust与Python | Rust 学习笔记(三)

李大狗

Python rust 狗哥 Wasm

Ubuntu 20.04 快捷键整理

TroyLiu

Linux ubuntu 效率 操作系统 快捷键

面向K8s设计误区

阿里巴巴中间件

云计算 Kubernetes 容器 分布式

女朋友问我:什么是 MySQL 的全局锁、表锁、行锁?

一个优秀的废人

MySQL 数据库 锁机制 备份

[转] 程序员在工作中如何做好技术积累

小江

技术管理 架构师 自我思考 个人总结

CTO 说要接入实时音视频 SDK,我到底该批多少预算?

融云 RongCloud

五一高铁票难抢?用RPA机器人试试!

华为云开发者联盟

RPA

面试官关于线程池的这个问题把我问懵逼了。

why技术

面试 Jav 1 周年盛典

手把手教大家实现一个电子签名

麦洛

Java canvas

Flink中的状态编程

大数据技术指南

flink 4月日更

一文搞懂分布式锁的原理与实现

架构精进之路

分布式锁 4月日更

阿里P7手把手教你!系统学Android从零开始,内含福利

欢喜学安卓

android 程序员 面试 移动开发

新一代容器,安全容器kata-container实践

ilinux

Kubernetes 容器

专访阿里巴巴研究员吴翰清:白帽子的网络安全世界观

五分钟学大数据

网络安全 采访

【LeetCode】移除元素Java题解

Albert

算法 LeetCode 4月日更

重读《重构2》- 封装记录

顿晓

重构 4月日更

企业如何做数字化转型?想要资产状况及时把控,它的作用至关重要!

一只数据鲸鱼

数据挖掘 数字化 数据可视化 资产管理

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