美文网首页
分布式系统-6-两阶段提交

分布式系统-6-两阶段提交

作者: 王谙然 | 来源:发表于2017-01-06 15:06 被阅读108次

上节知识准备:Raft

前面我们聊到单个集群的一致性算法,今天我们来聊聊多集群分布式事务算法:两阶段提交。这个算法主要保证了事务的原子性,即各个集群的操作要全做,要么全不做。

可将多个集群视为参与者,引入第三方协调者,由协调者收集各个参与者对某个操作的预执行情况,然后决定要通知各个参与者 commit 还是 rollback。

所以所谓的两阶段是指准备阶段和执行阶段,举个例子,首先A将成为该活动的协调者,B、C和D将成为该活动的参与者。准备阶段:A发邮件给B、C和,提出下周三去爬山,问是否同意。那么此时A需要等待B、C和D的回复。B、C和D分别查看自己的日程安排表。B、C发现自己在当日没有活动安排,则发邮件告诉A他们同意下周三去爬长城。由于某种原因,D白天没有查看邮件。那么此时A、B和C均需要等待。到晚上的时候,D发现了A的邮件,然后查看日程安排,发现下周三当天已经有别的安排,那么D回复A说活动取消吧。此时A收到了所有活动参与者的邮件,并且A发现D下周三不能去爬山。那么A将发邮件通知B、C和D,下周三爬长城活动取消。此时B、C回复A“太可惜了”,D回复A“不好意思”。至此该事务终止。

但是这其中要面临的故障有:

  1. 事务参与者发生故障。给每个事务设置一个超时时间,如果某个事务参与者一直不响应,到达超时时间后整个事务失败。

  2. 协调者发生故障。协调者需要将事务相关信息记录到操作日志并同步到备用协调者,假如协调者发生故障,备用协调者可以接替它完成后续的工作。如果没有备用协调者,协调者又发生了永久性故障,事务参与者将无法完成事务而一直等待下去。

相关文章

  • 分布式系统-6-两阶段提交

    上节知识准备:Raft 前面我们聊到单个集群的一致性算法,今天我们来聊聊多集群分布式事务算法:两阶段提交。这个算法...

  • 分布式事务

    对分布式事务及两阶段提交、三阶段提交的理解 关于分布式事务、两阶段提交协议、三阶提交协议

  • 分布式事务

    XA分布式事务协议 - 两阶段提交 & 三阶段提交 两阶段提交 两阶段提交存在的缺点 三阶段提交

  • 分布式事务

    目录 简介 单一分布式事务与嵌套分布式事务 原子提交协议两阶段提交协议嵌套事务的两阶段提交协议 分布式事务的并发控...

  • 二阶段提交 vs 三阶段提交

    分布式事务使用最多的是二阶段提交以及其变种,了解其优缺点可以帮助决定在分布式系统上是否采用事务 二阶段提交(2PC...

  • 分布式事务:2PC、3PC协议

    两阶段提交协议-2PC 两阶段提交协议(2PC):是一种原子承诺协议,一种分布式算法,它协调参与分布式事务的所有应...

  • 分布式事务的实现方式

    1、二阶段提交(2PC) 二阶段提交(2PC)是分布式事务中最强大的事务类型之一,二阶段提交就是分两个阶段提交,第...

  • 分布式事务一致性

    两阶段提交协议 两阶段提交协议(Two-phase Commit,2PC)经常被用来实现分布式事务。一般分为协调器...

  • 分布式事务解决方案——2PC

    分布式事务解决方案 2PC即两阶段提交协议,是将整个事务流程分为两个阶段,P是指准备阶段,C是指提交阶段。 1. ...

  • 分布式事务之两阶段提交(2PC)

    两阶段提交(2PC) 是 Oracle Tuxedo 系统提出的 XA 分布式事务协议的其中一种实现方式。 一、关...

网友评论

      本文标题:分布式系统-6-两阶段提交

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