什么时候2阶段提交阻塞,使其不再取得进展?
在这里假设协调员和4个参与者。
假设参与者P2在发送"vote-commit“消息后崩溃(即该消息被协调器成功接收),并且没有更多的失败,则协调器等待来自P2的”确认“,并在超时后继续向其发送”全局提交“。协调器被阻止;其他参与者未被阻止。
还有其他的情况吗?
发布于 2016-04-03 04:45:28
如果任何消息被延迟或丢弃,或者任何参与者在任何时候崩溃(停止响应),两阶段提交都不起作用。
2PC可能会以几种不同的方式失败。下面是我在使用Molly时发现的一些代码。
vote-commit消息之后、但在发送global-commit/global-abort之前崩溃。这意味着所有投票决定提交的客户端都在等待来自coordinator.global-commit消息,导致这些消息的接收者阻塞,等待他们可能永远不会收到的消息。响应
https://stackoverflow.com/questions/35685388
复制相似问题