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

本文详细分析了2PC和3PC在分布式事务中遇到的故障情况,包括协调者正常、参与者宕机,协调者宕机、参与者正常以及两者都宕机的情况。针对各种情况,提出了引入超时机制、协调者备份和操作日志等解决策略。3PC通过增加一个阶段和超时自动提交,提高了服务可用性,但也可能带来数据不一致和延迟问题。
摘要由CSDN通过智能技术生成

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、付费专栏及课程。

余额充值