我们正在使用3PC(三阶段承诺)进行分布式事务。有4个节点,A,B,C,D,其中A是协调员。
现在的问题是:康复后C会做些什么?根据{{3}},C将在失败转换后提交恢复,而不是像D那样中止。不会导致状态不一致吗?或者C有一些机制来检测处于中止状态的事务吗?
答案 0 :(得分:0)
我认为关于B节点行为的问题有一个错误的假设吗?如果B在移动到准备状态之前崩溃,那么它将在重启后等待状态,并将被中止。
我希望C节点将被中止,因为协调员将命令它执行此操作。我认为这将类似于2PC。它由协调员定期检查丢失的节点是否再次可用。当C重新启动时,协调器可以看到它并推送节点以便回滚,因为将重新发送中止消息。