我在两阶段提交协议中有一些查询,
1.第二阶段提交失败会怎么做?
2.如何保持容错?
提前致谢。
答案 0 :(得分:1)
来自Two-phase commit protocol的答案。
第二阶段提交失败会怎样做?
提交阶段失败的处理如下:
如果任何群组在提交请求阶段(或协调员的超时到期)中投票否:
- 协调员向所有群组发送回滚消息。
- 每个群组使用撤消日志撤消事务,并释放 交易期间持有的资源和锁。
- 每个队列 向协调员发送确认。
- 协调员撤消 收到所有确认后的交易。
醇>
如何保持容错?
在许多情况下,它没有,可能需要人为干预:
它对所有可能的故障配置都没有弹性,并且在极少数情况下需要用户(例如,系统管理员)干预来纠正结果。为了适应从故障中恢复(在大多数情况下是自动的),协议的参与者使用协议状态的记录。协议的恢复过程使用日志记录,这些日志记录通常生成缓慢但存在故障。存在许多协议变体,其主要区别在于记录策略和恢复机制。尽管通常意图不经常使用,但恢复程序构成了协议的很大一部分,因为协议会考虑并支持许多可能的故障情况。