数据库简史 | 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 一体机产品,可以支持通用数据库,实现极致的性能扩展,欢迎大家关注!

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


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

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

请备注:云和恩墨大讲堂

点个"在看"

你的喜欢会被看到❤

相关推荐
倔强的石头_17 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
初次攀爬者4 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏5 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐5 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再5 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip