2PC和3PC中故障情况分析

2PC故障情况分析

1. 协调者正常,参与者宕机

  • 发生在第二阶段:无论协调者发起的是提交还是终止,那宕机的参与者在重启之后,都将执行对应操作,不存在不一致情况。
  • 发生在第一阶段:由于协调者无法收集到所有参与者的反馈,会陷入阻塞情况。

解决办法:引入超时机制。

  • 超过指定时间未收到反馈,事务失败,向所有节点发送终止事务请求。
  • 宕机的节点启动后,收到终止事务请求,该事务失败。

小结

简单来说,由于协调者没挂,无论参与者是否宕机,都可以从协调者这里获取正确的状态。

2. 协调者宕机,参与者正常

无论处于哪个阶段,由于协调者宕机,无法发送提交请求,所有处于执行了操作但是未提交状态的参与者都会陷入阻塞情况。

解决办法:引入协调者备份,同时协调者需记录操作日志。

  • 当检测到协调者宕机一段时间后,协调者备份取代协调者,并读取操作日志,向所有参与者询问状态。
  • 如果存在commit或者abort,则对所有节点执行对应的操作。(是不会存在既有commit和abort的情况的)
  • 如果只有prepare和未执行,可以继续完成该事务,也可以终止该事务。最终的状态是一致的。

小结

由于参与者正常,引入协调者备份和

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值