分布式事务一致性:三阶段提交协议(3PC)

一、概念

三阶段提交协议是二阶段提交协议的改进版本。它通过超时机制解决了阻塞的问题,并把两个阶段增加为以下三个阶段。

  1. 询问阶段: 协调者询问参与者是否可以完成指令,参与者只需要回答是或者不是。
  2. 准备阶段: 如果询问阶段都返回是,那么协调者会像所有参与者发送预执行请求指令,然后参与者写redo和undo日志,执行操作但不提交。(与二阶段提交的准备阶段类似)
  3. 提交阶段: 如果每个参与者在准备阶段返回准备成功,则协调者向参与者发起提交指令,参与者提交事务,释放资源。如果任何参与者返回准备失败,则协调者发起中止指令,参与者执行undo日志回滚。

二、和2PC对比

  • 与二阶段提交协议相比优点:
    1. 增加了询问阶段,可以确保尽可能早的发现问题,比如无法执行操作,但是它并不能发现所有这种行为,只能减少。
    2. 在准备阶段后,协调者和参与者执行的任务中,都增加了超时机制,一旦超时,则协调者和参与者都会继续提交事务,默认为成功,这也是根据概率统计超时后为默认成功的正确性最大。
  • 三阶段提交协议的缺点:
    1. 一旦超时,系统仍然会发生不一致。只不过这种情况很少见。
    2. 实现复杂,性能较差。

三、总结

在互联网的高并发系统中,很少有会使用2PC和3PC的场景。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值