1、3pc比2pc多了一个can commit 阶段,减少了不必要的资源浪费。因为2pc在第一阶段会占用资源,而3pc在这个阶段不占用资源,只是校验下SQL,如果不能执行,就直接返回,减少了资源占用
2、引入了超时机制。同时在协调者和参与者都引入了超时机制。
2pc:只有协调者有超时机制,超时后,发送指令回滚。
3pc:协调者和参与者都有超时机制
协调者超时:can commit,pre commit中,如果收不到参与者的反馈,则协调者向参与者发送中断指令。
参与者超时:pre commit阶段,参与者进行中断;do commit阶段,参与者进行提交。