0
什么时候可能2阶段提交块,以便它不再进步?什么时候可能2阶段提交没有进展?
假设协调员和4位参与者在这里。
假设参与者P2在发送“投票 - 提交”消息后立即崩溃(即协调员成功接收到该消息)并且没有进一步失败,则协调器等待来自P2的“确认”,并继续发送“全局提交“后超时。协调员被阻止;其他参与者不被阻止。
有没有其他的情况?
什么时候可能2阶段提交块,以便它不再进步?什么时候可能2阶段提交没有进展?
假设协调员和4位参与者在这里。
假设参与者P2在发送“投票 - 提交”消息后立即崩溃(即协调员成功接收到该消息)并且没有进一步失败,则协调器等待来自P2的“确认”,并继续发送“全局提交“后超时。协调员被阻止;其他参与者不被阻止。
有没有其他的情况?
如果任何消息被延迟或丢失,或任何参与者随时崩溃(停止响应),则2阶段落实不起作用。
2PC可以有几种不同的方式失败。这里有一些我发现使用Molly。
vote-commit
消息之后崩溃,但是在发送global-commit
/global-abort
之前。这意味着所有投票提交的客户都等待协调员的回应。global-commit
消息,导致这些消息的收件人被阻止,从而等待他们可能永远不会收到的消息。