中国数据库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成为了支付宝的账务等数据库,这对整个金融行业具有里程碑意义。

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混合负载的功能和性能,为更多业务提供服务。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

github 访问慢,一键加速,完美访问

文章目录1. 下载dev-sidecar2. 安装3. 开机启动4. 安装证书5. 开启增强模式6. 重新启动dev-sidecar7. 测试验证1. 下载dev-sidecar https://gitee.com/docmirror/dev-sidecar/releases/v1.6.1 2. 安装 这里windows环境演示 双击安装 3. 开机启动 4. 安装证书 5. 开启增强…

给 AI 讲故事,如何教它脑补画面?

阿里妹导读:视觉想象力是人与生俱来的, AI 能否拥有类似的能力呢?比如:给出一段故事情节,如何让机器展开它的想象力,“脑补”出画面呢?看看阿里AI Labs 感知实验室的同学们如何解决这个问题。 …

产业数字化升级进入深化期,腾讯智慧出行释放“数字底座”核心能力

6月24日,腾讯智慧出行举办线上年度新品发布会。本次发布会以“创造出行新价值”为主题,发布了生态车联网产品TAI 3.0、全新一代自动驾驶虚拟仿真平台TAD Sim 2.0,以及汽车云数字营销解决方案、智慧交通解决方案,从深度和广度上展示…

MySQL与Redis的双写一致性解决方案

文章目录一、解决方案1.1 先更新缓存,再更新数据库1.2 先删除缓存,再更新数据库1.3 先更新数据库,再更新缓存二、总结一、解决方案 1.1 先更新缓存,再更新数据库 💣 问题: 数据库更新成功了,但是由于异常…

解密双十一小程序云背后毫秒级伸缩的Serverless计算平台:函数计算

自2017年第一批小程序上线以来,越来越多的移动端应用以小程序的形式呈现。小程序拥有触手可及、用完即走的优点,这大大减少了用户的使用负担,使小程序得到了广泛的传播。在阿里小程序也被广泛地应用在淘宝/支付宝/钉钉/高德等平台上&#xff…

RuoYi-Cloud 进阶篇_01( Seata 单机环境搭建)

文章目录一、部署单机 TC Server1. 下载Seata2. 解压缩3. 启动4. 监听日志5. 启动命令讲解一、部署单机 TC Server 1. 下载Seata 在https://github.com/seata/seata/releases 这里找到对应的版本软件包进行下载 注:单机模式只适用于学习或者本地测试阶段&#xf…

Logtail 混合模式:使用插件处理文件日志

作为一个服务百万机器的日志采集 agent,Logtail 目前已经提供了包括日志切分、日志解析(完整正则、JSON、分隔符)、日志过滤在内的常见处理功能,能够应对绝大多数场景的处理需求。但有些时候,由于应用的历史原因或是本…

腾讯车联发布TAI3.0:三步实现汽车智能进化,2个月快速上车

6月24日,“2020腾讯智慧出行新品发布会”在线上举行,全新升级的TAI3.0生态车联网正式亮相,并在新款哈弗F7上进行了真实驾车场景的功能展示。 据介绍,TAI3.0包含两个车载APP——腾讯随行和腾讯爱趣听,以及一个生态开放…

RuoYi-Cloud 进阶篇_02( Seata 高可用集群与 Nacos 注册中心整合)

文章目录二、安装步骤1. 创建数据库2. 修改配置文件3. 调整数据库驱动4. 修改配置中心二、 启动和验证2.1. 启动nacos2.2. 启动TC Server2.3. 启动第二个节点2.4. 验证高可用二、安装步骤 1. 创建数据库 创建名称为ry_seata的数据库,并初始化ry_seata_20210128.sql脚本 2.…

腾讯TAD Sim2.0领跑自动驾驶仿真市场 双擎驱动构建新一代仿真平台

随着自动驾驶领域硬件、算法等方面的快速发展,虚拟仿真技术在自动驾驶研发和测试领域的应用日渐广泛,成为自动驾驶量产应用的必备工具,城市智慧交通调度管理和相关法规制定的有力辅助。 在这片行业竞争新高地上,腾讯自动驾驶仿真…

RuoYi-Cloud 部署篇_03(windows环境 Oracle + nginx版本)

请参考RuoYi-Cloud 分布式部署_03(linux环境 Mysqlnginxredis版本)

为了实现在线库的复杂查询,你还在双写吗?

一、在线库不支持在线复杂查询 做在线业务的开发者经常会碰到这样的难题:在线数据库上面运行稍微复杂点的查询,在线业务就挂了!不管是单机数据库如MySQL、PG,还是分布式数据库,HBase、MongoDB、Cassandra都有这个问题…

JUC 中断线程的3种方式

文章目录介绍中断方式一中断方式二中断方式三源码解析总结介绍 三个方法: 1、public boolean isInterrupted()判断线程是否被中断,如果此线程已被中断,则为true ;否则false 。 2、public void interrupt()中断线程 3、public …

RuoYi-Cloud 进阶篇_04( Seata 高可用集群 AT模式 需求实战)

需求背景: 模拟下单场景:首先去在自己的本地创建一条下单记录,同时,还要去调用库存服务,执行减库存操作。 这里演示一个客户下订单的流程服务来为小伙伴们进一步了解一下分布式事务到底如何使用? 首先,我…

基于Tablestore多元索引打造亿量级店铺搜索系统

一、方案背景 对于一套GEO管理系统,其核心点与瓶颈在于数据库的存储性能与查询能力;一方面,存储服务需要应对海量数据的低延迟存、读,另一方面,存储服务也要提供高效的GEO多维度数据检索。表格存储(TableS…

Java中的序列化与反序列化机制

文章目录一、序列化的定义二、为什么需要序列化呢?三、如何序列化四、案列实现4.1、将对象序列化位二进制流4.2 将序列化后的二进制流反序列化为对象五、总结一、序列化的定义 💡 所谓的序列化就是将Java 中的对象转换成一种流的形式(二进制…

今天起,我们喝的百年牛奶要变了!

一天从一杯光明奶开始,是很多小伙伴的日常:牛奶下肚,醇厚、香甜的奶味仍余舌尖。如今,这家百年老字号正在不断焕发新能量。 今天,光明乳业与阿里云达成战略合作。双方将整合优质资源,形成聚合效应&#xf…

Spring 从入门到入土——AOP 就这么简单!| 原力计划

作者| 冢狐责编 | 夕颜出品 | CSDN博客什么是AOP?面向切面编程(Aspect Oriented Programming),通过预编译的方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点&#xff…

RuoYi-Cloud 进阶篇_03( Seata 高可用集群与 NacosConfig配置中心整合)

文章目录1. 创建文件config.txt2. 创建nacos-config.sh3. 配置导入nacos配置中心4. 配置验证1. 创建文件config.txt 在seata的安装文件夹下创建文件config.txt [rootnode2 ~]# cd /app/seata/seata-server-1.4.2/ [rootnode2 seata-server-1.4.2]# vim config.txt 说明&#…

基于 Tracing 数据的拓扑关系生成原理

背景 随着互联网架构的流行,越来越多的系统开始走向分布式化、微服务化。如何快速发现和定位分布式系统下的各类性能瓶颈成为了摆在开发者面前的难题。借助分布式追踪系统的调用链路还原能力,开发者可以完整地了解一次请求的执行过程和详细信息。但要真…