码迷,mamicode.com
首页 > 其他好文 > 详细

分布式事务(第04篇)分布式事务解决方法-3PC

时间:2020-03-04 09:46:38      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:次数   分布式事务   流程   解决   undo   就是   工作流   日志   完成   

一 什么三阶段提交协议(3PC)

3PC是2PC的改进版本。主要有以下改进:

  • 增加了一个询问阶段,询问阶段可以确保尽可能早的发现无法执行操作而需要中止的行为,但是它并不能发现所有的这种行为,只会减少这种情况的发生。
  • 增加了等待超时的处理逻辑,如果在询问阶段等待超时,则自动中止;如果在准备阶段之后等待超时,则自动提交。这也是根据概率统计上的正确性最大。

二 3PC工作流程

  1. 询问阶段:协调者询问参与者是否可以完成指令,协调者只需要回答是还是不是,而不需要做真正的操作,这个阶段参与者在等待超时后会自动中止。
  2. 准备阶段:如果在询问阶段所有的参与者都返回可以执行操作,协调者向参与者发送预执行请求,然后参与者写 redo 和 undo 日志,锁定资源,执行操作,但是不提交操作;如果在询问阶段任何参与者返回不能执行操作的结果,则协调者向参与者发送中止请求,这里的逻辑与两阶段提交协议的的准备阶段是相似的,这个阶段参与者在等待超时后会自动提交。
  3. 提交阶段:如果每个参与者在准备阶段返回准备成功,也就是预留资源和执行操作成功,协调者向参与者发起提交指令,参与者提交资源变更的事务,释放锁定的资源;如果任何一个参与者返回准备失败,也就是预留资源或者执行操作失败,协调者向参与者发起中止指令,参与者取消已经变更的事务,执行 undo 日志,释放锁定的资源,这里的逻辑与两阶段提交协议的提交阶段一致。

图例:
技术图片

三 3PC并不是优于2PC

3PC优点

  • 询问阶段可以确保尽可能早的发现无法执行操作而需要中止的行为。
  • 避免了资源被无限锁定的情况。

3PC缺点

  • 增加了系统的复杂度,增加了参与者和协调者之间的通信次数。

四 3PC具体的实现框架

我也没找到......找到再补充吧

分布式事务(第04篇)分布式事务解决方法-3PC

标签:次数   分布式事务   流程   解决   undo   就是   工作流   日志   完成   

原文地址:https://www.cnblogs.com/NEWHOM/p/12406313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!