加载中...

三阶段提交(Three-Phase Commit,3PC)由 Dale Skeen 提出,针对两阶段提交(2PC)中协调者崩溃导致参与者长期阻塞的问题,把提交过程拆为 CanCommit、PreCommit、DoCommit 三个阶段。
新增的 PreCommit 阶段让所有参与者在真正提交前先确认"大家都已准备好",参与者在超时未收到指令时可依据所处阶段自行提交或中止,从而实现非阻塞。
3PC 的非阻塞性依赖同步网络与故障可检测的假设,在存在网络分区时仍可能出现数据不一致,且多一轮消息带来额外延迟。因此工业界较少直接使用 3PC,而是转向基于共识的提交(如 Paxos Commit)、或用 TCC、Saga 等柔性事务方案替代。它更多作为教学中理解提交协议演进的重要一环。

登录 后参与讨论
暂无讨论,来发表第一条评论吧