美文网首页
1.一致性协议之两阶段协议

1.一致性协议之两阶段协议

作者: 想做安徒生 | 来源:发表于2018-06-30 09:47 被阅读0次

1.提交请求
依次询问参与者是否可以执行请求,如果参与者执行事物操作、并完成写入redo、uodo日之后,全部回答yes,将进入下一个阶段提交事物;如果参与者没有成功执行事物,就反馈协调者No响应,表示事物不可以提交,将进入下一个阶段提回滚事物。通过这一阶段最终会产生事物是否可以提交的决断。


image.png

2.提交事务-分为两种情况
(1)提交事务-一阶段的结果是可以提交事务
依次发送commit命令给各个参与者,参与者全部顺利收到(这里可能出现网络问题导致参与者没收到)commit命令,全部执行成功后返回ack给协调者,事物完成

image.png

(2)回滚事务
当任意参与者执行阶段一反馈no给协调者或者协调者超时等待


image.png

则会执行阶段二的事物中断操作,开始回滚事务如图。回滚事务时参与者执行undo日志后,反馈事物回滚结果,收到所有ack消息后完成事物中断。

image.png

两阶段协议存在的问题:

(1)协调者的单点问题:协调者被重度依赖整个二阶段的过程中,一旦发生问题将不能自动回滚或者释放资源等等

(2)同步阻塞:参与者在必须等待其它参与者的执行,无法进行其他操作

(3)数据不一致:比如提交事务阶段 协调者异常,谁也不能保证所有参与者都执行完成事物

(4)过于保守:参与者与协调者之间出现网络异常时,只能依赖等待超时机制,没有完善的容错机制

相关文章

  • 1.一致性协议之两阶段协议

    1.提交请求依次询问参与者是否可以执行请求,如果参与者执行事物操作、并完成写入redo、uodo日之后,全部回答y...

  • zookeeper相关原理

    顺序一致性: zookeeper专门设计了zab协议作为其数据一致性协议,其原理由leader统一写入,使用两阶段...

  • 一致性协议之三阶段提交

    原文地址:《一致性协议之三阶段提交》 在上一篇文章《一致性协议之二阶段提交》中介绍了二阶段提交协议的设计和原理,也...

  • ZAB协议介绍2

    Zookeeper依赖ZAB协议来实现分布式数据的一致性,其中ZAB协议包括原子广播和崩溃恢复两个阶段。 基于该协...

  • 【算法】分布式一致性协议

    分布式一致性协议之NWR协议 https://zhuanlan.zhihu.com/p/389520114 分布式...

  • 05 一致性算法

    1 一致性协议概述 两阶段提交 two-phase commit (2PC) 三阶段提交 three-phase ...

  • ZAB协议详解

    1.什么是ZAB协议? 支持崩溃恢复的原子广播协议,主要用于实现数据一致性 ZAB 协议全称:Zookeeper ...

  • 一致性协议raft和Paxos

    raft一致性协议 透彻讲解raft协议选举过程 etcd 利用raft一致性协议 zookeeper使用Paxo...

  • JVM-003-MESI

    MESI 一、缓存一致性协议   缓存一致性协议有很多,不同的厂商使用的缓存一致性协议是不同的,其中intel使用...

  • 缓存一致性协议

    锁缓存行有一套协议叫做缓存一致性协议。缓存一致性协议有MSI、MESI、MOSI、Synapse、Firefly以...

网友评论

      本文标题:1.一致性协议之两阶段协议

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