How does three-phase commit avoid blocking?

前端 未结 4 653
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-02-05 05:16

I am trying to understand how three-phase commit avoids blocking

Consider the following two failure scenarios:

Scenario 1: In phase 2 the coordinator sends preCo

4条回答
  •  醉酒成梦
    2021-02-05 05:49

    Three-phase commit isn't magic; it's just more resilient than two-phase commit. In particular, 3PC is resilient against single-point failure, but not all kinds of multiple-point failure. Both scenarios in the question posit two-point failures. In other words, the premise of the question is misguided; it's asking more of 3PC than it's capable of.

    For further reading, here's a sentence from the abstract of a paper on the subject, Analysis and Verification of Two-Phase Commit & Three-Phase Commit Protocols, by Muhammad Atif, to whet your appetite:

    We also apply our method to its “amended” variant, the Three-Phase Commit Protocol (3PC) and prove it to be erroneous for simultaneous site failures

    I found this paper to provide a foothold into the literature. There's no small amount of it on this subject, if you want to delve in.

提交回复
热议问题