1PC, 2PC, 3PC

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1PC, 2PC, 3PC相关的知识,希望对你有一定的参考价值。

1PC,one phase commit,一阶段提交

这个就是普通的事务了,只涉及到单个数据源

应用直接与数据源通信,先begin一个事务,然后要么commit,要么rollback

 

2PC,two phase commit,二阶段提交

用于解决分布式事务,涉及到多个数据源的事务

需要有TM(Transaction Managers,事务管理器,直接与应用通信)与RM(Resource Manager,资源管理器,也就是各个数据源)共同参与

第一阶段:TM要求各个相关的RM准备好相关的资源(各个RM都开启了1PC事务,并处于只差COMMIT/ROLLBACK的状态),RM向TM返回自己的状态:成功/失败

第二阶段:TM收到各个RM的反馈,如果全部成功,说明事务可以被正确执行,于是向所有RM发送COMMIT命令;如果有RM失败,则向所有RM发送ROLLBACK命令,将整个事务回滚

存在的问题:

 

 

3PC,three phase commit,三阶段提交

对2PC的改进

 

 

参考资料

real-difference-between-one-phase-and-two-phase-xa-commit

以上是关于1PC, 2PC, 3PC的主要内容,如果未能解决你的问题,请参考以下文章

2PC和3PC

分布式事务--XA2PC3PC

2PC,3PC,Paxos,Raft,ISR

深入理解分布式系统的2PC和3PC

分布式理论系列2PC 到 3PC 到 Paxos 到 Raft 到 Zab

2pc事务提交协议