【发布时间】:2012-07-01 04:59:49
【问题描述】:
我正在阅读维基百科 (http://en.wikipedia.org/wiki/Three-phase_commit_protocol) 上的 3 阶段提交协议,我想到了一个 3PC 将失败的场景:
假设有两个参与者 A 和 B 以及一个协调者 C:
1)C 向 A 发送了 precommit 消息,在它向 B 发送 precommit 消息之前,A 和 C 同时失败。 2)事务现在重新启动,B 最终中止它,因为 A 没有回复。3)A 提交事务,因为它已经收到了 precommit 消息。
这不也是 2PC 原本应该解决的 2PC 问题吗? 3PC是如何解决问题的?我错过了什么。谢谢。
【问题讨论】: