二阶段提交和三阶段提交区别

46 阅读1分钟

1、3pc比2pc多了一个can commit 阶段,减少了不必要的资源浪费。因为2pc在第一阶段会占用资源,而3pc在这个阶段不占用资源,只是校验下SQL,如果不能执行,就直接返回,减少了资源占用

2、引入了超时机制。同时在协调者和参与者都引入了超时机制。

2pc:只有协调者有超时机制,超时后,发送指令回滚。

3pc:协调者和参与者都有超时机制

协调者超时:can commit,pre commit中,如果收不到参与者的反馈,则协调者向参与者发送中断指令。

参与者超时:pre commit阶段,参与者进行中断;do commit阶段,参与者进行提交。