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

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

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


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

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

5d8f8f6999c8ba0090356d137ed2d731.jpeg

那么 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 早期的思考。

4c4667f7b3de91bb0502bf3694a43bf1.png

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

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

247e1489aefec1921563b61aaef8dd89.png

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

9662793df7bd5876a9d5e88d5e2048ba.png

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

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

c383e62dc43e7dedbfb9ed19011b74ee.png

edc73008692603638da8c21ad566e092.png

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

ffe415e3cb27907cd6648dd5155df380.png

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

4f297dace9808c8a8bbd40e1967c5c81.png

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

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

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

8a4ac4f1956e43be76aaac6c5da5d2f8.png

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

5f1147f9ab5dd08100b25335967add66.png

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

01ca544fb8f16a62f030e50aa9233888.jpeg

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

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

cedbcd2ecf62d7e98afa2fd267fe747b.png

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

e3c2a4dcf8fca9cb443405aed0af7f49.png


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

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

请备注:云和恩墨大讲堂

  点个“在看” 

你的喜欢会被看到❤

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 11:32:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 11:32:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 11:32:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 11:32:02       20 阅读

热门阅读

  1. Oracal执行计划解析

    2024-03-30 11:32:02       20 阅读
  2. tensorflow | onnx模型转pb

    2024-03-30 11:32:02       24 阅读
  3. MYSQL索引失效的情况

    2024-03-30 11:32:02       21 阅读
  4. 论STM32如何使用I2C协议

    2024-03-30 11:32:02       20 阅读
  5. BaseDao增删改查

    2024-03-30 11:32:02       30 阅读
  6. ORACLE-查询SQL执行次数

    2024-03-30 11:32:02       19 阅读
  7. SQL中添加数据的方式

    2024-03-30 11:32:02       16 阅读
  8. android——枚举enum

    2024-03-30 11:32:02       19 阅读
  9. OJ :1092 :素数表(函数专题)

    2024-03-30 11:32:02       16 阅读
  10. C++入门2.cout,cin

    2024-03-30 11:32:02       22 阅读
  11. 深入探索C++对象模型(二)

    2024-03-30 11:32:02       19 阅读