cmu440(9) Distributed Concurrency Management 3

Three-Phase Commit

(1)

  1. 协调员和每个参与者的状态
  2. 满足以下两个条件:
    • 没有一个状态可以直接转换到COMMIT或ABORTED状态。
    • 没有哪个状态是不可能做出最终决定的,并且可以从这个状态转换到COMMIT状态。

(2)

cmu440(9) Distributed Concurrency Management 3_第1张图片
Three-Phase Commit

3PC – Resolution in case of failures

  1. 总是可以回到已知的状态
    • 如果任何参与者Q在INIT状态中:安全放弃。 这是因为只有在PRE COMMIT i中没有其他参与者的情况下,A才能在INIT中
    • 如果所有参与者都处于READY:Abort。 因为如果P已经崩溃并在以后恢复,那么P和其他人都不知道P可能恢复的状态。 如果P恢复到INIT,则中止是好的。 即使PRECOMMIT,放弃也可以。
      • 与2PC不同,坠毁的参与者可以恢复到COMMIT状态,而其他人则在READY状态。 在3PC中,如果操作进程处于READY状态,则其他崩溃进程不能恢复到除INIT,ABORT,PRECOMMIT之外的状态
    • 如果P可以联系的进程在PRECOMMIT中,那么可以安全地执行COMMIT

你可能感兴趣的:(cmu440(9) Distributed Concurrency Management 3)