【分布式事务】三阶段提交和二阶段提交的区别
·
思考:
为什么不直接在二阶段提交(2PC)的基础上增加默认提交的操作,而是引入三阶段提交(3PC)的预备阶段?
二阶段提交(2PC)的局限性:
2PC中,协调者必须收到所有参与者的明确“成功”消息后,才会通知提交;否则默认不提交,以保证数据一致性。
如果某个参与者因网络或故障未回复,协调者会默认中止事务,导致资源长时间锁定和系统阻塞。
为什么不能直接增加默认提交:
如果直接增加默认提交,可能会导致部分参与者提交成功,而异常参与者回滚,造成数据不一致。
2PC的目标是强一致性,默认提交会破坏这一目标。
三阶段提交(3PC)的作用:
3PC通过增加预备阶段(PreCommit),让参与者先进行自检,确保自己能成功执行后续操作。
预备阶段的作用是降低失败概率,确保在超时或网络异常时,参与者可以基于预备阶段的结果自行决定提交或回滚,减少阻塞时间。
3PC并没有根本解决2PC的问题,但通过预备阶段优化了系统的可用性和健壮性。
更多推荐

所有评论(0)