简介

3PC 是对 2PC 协议的一个拓展,目的是解决 2PC 在 coordinator 失败,然后产生新的 coordinator 时产生的 block 问题。——即新的 coordinator 仅凭自己的信息无法确定集群当前的状态,必须等待(block
)所有其他节点返回。

假设:

  • 不能发生网络分区(network partition)

3PC 仅是一个理论,在实际生产中没有发现实际的应用

图解

image.png

缺点

  1. 网络延时,3PC 最少需要 3个RTT,这造成了处理一个事务会花费很长的时间。

    参考

    https://en.wikipedia.org/wiki/Three-phase_commit_protocol
    https://www.geeksforgeeks.org/three-phase-commit-protocol/
    https://courses.cs.vt.edu/~cs5204/fall00/distributedDBMS/sreenu/3pc.html