美文网首页
分布式数据库

分布式数据库

作者: 飞哈飞 | 来源:发表于2021-11-14 11:16 被阅读0次

什么是分布式数据库

写多读少、低延时、海量并发、海量存储、高可靠性、关系型数据库。
强调写多读少,是因为写少读多的情况下运用多个备份就好了,用不着搞分布式数据库

架构风格

PXGC风格

以PostgreSQL为内核代表的架构风格,立足于传统单体数据库,增加协调节点,全局时钟,分片信息节点

代表产品

TBase ,GuassDB 300,AntDB,GoldenDB

架构示意图
image.png

NewSQL风格

存储基础是类似BigTable的分布式键值系统,最早不具备事务处理能力,Google Spanner后增加新的事务能力

代表产品

Spanner,CockroachDB,TiDB , YugabyteDB,OceanBase

架构示意图
image.png

分布式数据库的两个2PC改进模型

Precolator模型

第一阶段


image.png

第二阶段


image.png

NewSQL阵营应用,需要支持MVCC。
多个分片数据中,选择一条数据作为主锁记录,所有分片数据处理完后,直接提交这条主锁记录。
查询的时候如果bal.lock有值,会根据指针查找记录是否已提交。
为减少查询消耗,事务提交后,bal.lock值会有异步线程进行清除。

数据不一致

第二阶段只需要和一个节点进行操作,是原子性的。不需要像传统2PC,第二阶段和所有节点通信。

单点故障

1 异步线程在事务管理器宕机后会进行回滚
2 事务管理器本身会通过共识算法保存记录日志,一个节点宕机后,其他节点也会通过日志进行恢复操作

GoldenDB 一阶段提交

虽然名字叫“一阶段提交”,但 GoldenDB 的流程依然可以分为两个阶段。
第一阶段,GoldenDB 的协调节点接到事务后,在全局事务管理器(GTM)的全局事务列表中将事务标记成活跃的状态。这个标记过程是 GoldenDB 的主要改进点,实质是通过全局事务列表来申请资源,规避可能存在的事务竞争。这样的好处是避免了与所有参与者的通讯,也减少了很多无效的资源锁定动作。
第二阶段,协调节点把一个全局事务分拆成若干子事务,分配给对应的 MySQL 去执行。如果所有操作成功,协调者节点会将全局事务列表中的事务标记为结束,整个事务处理完成。如果失败,子事务在单机上自动回滚,而后反馈给协调者节点,后者向所有数据节点下发回滚指令。

相关文章

网友评论

      本文标题:分布式数据库

      本文链接:https://www.haomeiwen.com/subject/rxbgaltx.html