两阶段提交协议的增强被称为三阶段提交协议.
第一阶段:检查sql.
对比二阶段提交来说,我不动手去做,就不会占用资源了,从现实场景理解,我连接数据库如何确保我已经连接,我可以先测试一下,然后测通了不连接数据库,确保正常即可.
第二阶段:所有的事物参与者都返回自己的结论,开始占用数据库资源执行sql.
和二阶段提交的第一阶段差不多,区别是服务会自动放弃,当超过一定时间没有收到协调者的信息之后.
第三阶段:基于第二阶段的结果,当第二阶段都是yes的时候,那么就会直接提交,完成事务,如果第二阶段出错了,那么就会进行全局回滚.