数据库简史 | Oracle 的分布式数据库已经实现了超越吗?

广而告之 :2024 年数据技术嘉年华大会将于 4 月12-13 日在北京召开,春暖花开之际,数据库行业蓬勃发展之时,广邀天下豪杰,相聚北京,共论数据库技术发展的创新与未来。

注册:https://www.modb.pro/dtc2024 限时注册兑换码:EYGLE


Oracle 在 2024 年 3 月4 日由Juan Loaiza面向全球发布了自治分布式数据库产品(Oracle Globally Distributed Autonomous Database),其分布式数据库战略再次引发业界的关注。

分析师转引 Juan 在演讲中的表述:在分布式数据库方面,Oracle显然遥遥领先于竞争对手。

那么 Oracle 的分布式数据库策略是什么呢?Oracle 的分布式数据库真的已经实现了行业领先吗?

让我们从16 年前的一篇文章说起。2008年,Oracle 的一位技术专家发表了一篇演讲,题目是:Global Scale Web 2.0 Data Platforms Sharding with Oracle Database 。在这篇文章中,详尽地分析了各种分布式架构的优缺点,并指出,为了减少分片带来的复杂跨库查询的性能衰减,分布式的一种全量变体实现是,将每个分片通过复制建成N 个全量数据集

注:我上传了这篇文档 ,有兴趣的关注公众号回复 下载 可以找到链接)

大约在这篇文稿发布的 10 年之后,这篇文章的作者作为 Oracle Sharding 的产品负责人,在 2017 年发布了 Oracle 的分布式数据库解决方案,该方案的完整实现之一就包括"全量变体实现"。

这篇文章的作者就是 Wei Hu,他现在领导 Oracle 的高可用技术部门,向 Juan Loaiza 汇报。我在下图的总结中,概括了 Oracle 早期的思考。

分布式的架构实现主要有 3 种:中间件分布式、一体化分布式和原生分布式 。中间件分布式一般通过松耦合的外挂式中间件来完成架构搭建,一体化则更进一步,中间件演进为协调节点,形成一体化架构,但是这两者在存储上,都以分片架构为主。原生分布式则更进一步,通过基于分布式协议的同步机制实现原生化。

Oracle 在 3 月4 日发布的自治分布式数据库版本,是基于分片建构实现的。以下是这一架构的简图。Shard分片的高可用和安全可以通过 Data Guard 技术来实现。这种架构和 MySQL 的 Master-Slave 主从架构的分库分表解决方案完全相同。

Oracle的 Sharding 自 2017 年发布为时 7 年,因为 Oracle RAC 极强的Scale-Out集群扩展能力,导致 Sharding 在现实中的应用非常有限。那么现在,Oracle 是如何为这一架构找到现实的应用场景呢?

Oracle 为分布式定义的典型场景包括:支付处理、信用卡欺诈检测、个性化营销、移动消息、互联网基础设施和物联网(IoT)等

显然 Oracle 并未将传统的 OLTP 作为分布式的场景,新应用需求才是 Oracle 的主攻方向。尤其是基于数据主权(Data Sovereignty)的场景。当下从全球看,数据的疆域属性越来越明显和突出,通过数据分片将主权数据置于合规的不同区域,有利于简化用户的数据环境布局。以印度为例,法律规定当支付双方都属于印度实体,则数据必须位于印度。在这种场景下,Oracle 的解决方案提供了技术以外的现实意义。

Juan Loaiza 指出,Oracle 分布式数据库在 SQL 方面的强大优势让 Oracle 领先于竞争者。其他分布式数据库运行于 NoSQL 引擎之上,它们补齐 SQL 能力需要花费数年的时间。而 Oracle 在分区等方面的优势也是经年累月的,这些是用户更好使用分布式数据库的基础。

当然,在 Oracle 23c 中,Oracle 同样将分布式更进一步,实现了基于 Raft 复制的原生分布式解决方案:

我们已经看到 Oracle 数据库在分布式方向上,不足的,已经补齐;优势的,不断展开。Oracle 仍然在不断向前。那么中国分布式数据库的创新者,他们的最近进展又将如何?

阿里云 李飞飞、OceanBase 阳振坤、 GaussDB 苏光牛、TDSQL 王义成、GoldenDB 赵培 ,他们将在 2024 数据技术嘉年华大会发表 Keynote 主旨演讲,分享国产分布式数据库的创新飞跃。此外,PingCAP 戴涛、虚谷伟业明玉琢也将在分会场分享其分布式数据库产品。

其实从整体架构演进上,Oracle 走过的历程和国产分布式数据库异曲同工。例如阿里云的分布式数据库 PolarDB-X就是从基于 MySQL的 DRDS 方案逐步演进到云原生分布式数据库形态:

又例如华为云的 GaussDB 分布式数据库,也是由 PG-XC 出发,不断进化,演进为:"基于分布式数据库理论实现的分布式数据库。这条路线是根据分布式一致性协议做底层设计。原生分布式数据库将分布式存储、事务和计算结合在一起,数据由系统自动打散并存储多个副本,通过一致性协议保证多个副本和事务的一致性。"

OceanBase则是由原生分布式出发,其分布式数据库集群由三个子集群组成,构成基本的三副本数据存储架构,底层存储采用 Shared-Nothing 模式,每个数据节点都是对等的。日志信息同步采用 Multi-Paxos 分布式共识协议。我一直认为 OceanBase 的实现非常巧妙,和 Oracle 有很多异曲同工之处,Oracle 早期讨论的全量变体分布式实现也成为了其最终的选择。不过 Oracle 具有底层存储的技术优势,共享存储、一体机一直是其底层的有力支撑

最后让我们回到主题,Oracle的分布式已经实现超越了吗?在我看来,从技术上其实 Oracle 从未将分布式作为主力解决方案,它只是 Oracle 传统优势的一个有益补充;从销售上,挟 RDBMS 王者的优势,找到了更为明确的适用场景,Oracle 很容易在数百亿美元的营收中为分布式拓展 1 亿美元的小目标,这也就超越了多数独立的分布式数据库厂商

即便如此,Oracle Scale-Out 的执念从未改变,在分布式的架构上,你仍然可以用 Exadata 一体机进行单 Shard 的极致扩展。顺便说一句,云和恩墨的 zData X 一体机产品,可以支持通用数据库,实现极致的性能扩展,欢迎大家关注!

说英雄,谁是英雄,欢迎光临大会现场,一览中国数据库产业英姿飒爽!


云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

点个"在看"

你的喜欢会被看到❤

相关推荐
weixin_5318042440 分钟前
SQL优化技巧(如查询优化、索引优化)。分布式系统的基本概念及挑战(如数据一致性、服务发现、负载均衡)
数据库·sql·服务发现
一 乐1 小时前
考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)
java·数据库·学习·考研·微信·小程序·源码
一 乐1 小时前
租拼车平台|小区租拼车管理|基于java的小区租拼车管理信息系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·微信·notepad++·拼车
BillDev2 小时前
Oracle创建用户报错-ORA-65096: invalid common user or role name
数据库·oracle
szial2 小时前
深入理解SQL模糊查询中的特殊字符处理——以DB2为例
数据库·sql
jxxchallenger2 小时前
踩坑spring cloud gateway /actuator/gateway/refresh不生效
java·数据库·gateway
肥or胖2 小时前
【MySQL】索引
linux·数据库·mysql
Kiwi233332 小时前
产品经理-需求分析
数据库·产品经理·需求分析
读心悦3 小时前
修改 MySQL 数据库中的唯一键
数据库·mysql
qq_213157893 小时前
(c#)unity中sqlite多线程同时开启事务会导致非常慢
数据库·sqlite·c#