两阶段提交协议(2PC)
来源:互联网 发布:qt5.9连接mysql数据库 编辑:程序博客网 时间:2024/04/29 16:30
对于两阶段协议,只要学过《数据库基本原理》这本书的应该对这个名词比较熟悉,当时在本科的时候,学过这个协议,结果在后面却完全忘了这个协议,直到在后面《大数据存储》里面有一道关于两阶段协议的题后才引起了我对这个协议的了解。
两阶段协议分两个阶段,投票阶段和决定阶段:
(1)投票阶段
1. 协调者发送一个VOTE-REQ消息给所有的参与者
2. 当参与者接收到VOTE-REQ消息后,它会发送一个包含参与者投票结果的消息(YES或NO)给协调者作为响应。如果参与者投的是No,它会决定Abort事务并停止运行
(2)决定阶段
1. 协调者收集来自所有参与者的投票信息。如果所有的消息都是YES,同时协调者投的也是Yes,那么协调者就会决定进行Commit,并向所有参与者发送COMMIT消息。否则协调者就会决定进行Abort,并向所有投Yes的参与者发送ABORT消息(那些投No的参与者已经在第一阶段第2步中决定Abort了)。之后,对于这两种情况协调者都会停止运行
2. 每个投Yes的参与者等待来自协调者的COMMIT或ABORT消息。收到消息后执行相应动作然后停止运行。
这个协议看起来好像有点不近人情,只要有一人没有做出肯定的回复,整个动作就要被取消。
举个例子说明吧,上面的好像有点抽象:
假设一个寝室有四人:A、B、C、D,有一天室长A说明天大家一起去看电影吧。
B回复:好吧
C回复:行
但是此时D不在寝室,室长就发个短信给D,但是D一直没有看手机,直到会寝室才直到这件事,此时他却说,不好意思,我们明天有约。
室长,说那我们明天就不去吧,就这样看电影活动就被取消。
这就是两阶段协议,在分布式系统中的应用就是,只有全部的结果能通过才通过,这样的话就会保证数据的一致性。
- 两阶段提交协议(2PC)
- 2PC 两阶段提交协议
- 两阶段提交协议,分布式事务控制(2PC)
- 分布式协议之两阶段提交协议(2PC)和改进三阶段提交协议(3PC)
- 什么是两阶段提交协议 (2阶段提交协议)
- 什么是两阶段提交协议 (2阶段提交协议)
- 什么是两阶段提交协议 (2阶段提交协议)
- 两阶段提交(2PC)协议与XA事务处理
- 两阶段提交-2PC
- 两阶段提交-2PC
- 两阶段提交2PC
- 分布式事务、两阶段提交协议2PC、三阶提交协议3PC
- 两阶段提交协议(two phase commit protocol,2PC)
- 两阶段提交协议(two phase commit protocol,2PC)
- 两阶段提交协议(two phase commit protocol,2PC)
- 两阶段提交协议(two phase commit protocol,2PC)
- 两阶段提交协议(two phase commit protocol,2PC)
- 分布式锁:两阶段提交协议(two phase commit protocol,2PC)
- Intent系列1——启动另外一个Activity
- 统计难题(map)
- PHP设计模式——中介者模式
- java设计模式 ----工厂模式
- 冒泡排序 BubbleSort
- 两阶段提交协议(2PC)
- Servlet3.0在文件上传时遇到的错误及解决方法
- 得到联系人数据
- 那些面试时遇到的事儿
- java运行环境
- 开放模式识别和图像处理之旅
- java的四大特征
- css鼠标手型cursor
- gem5配置