0
点赞
收藏
分享

微信扫一扫

从头开始学分库分表-------二阶段提交协议


两阶段提交协议

2PC两阶段提交协议

        两阶段提交有两个角色,第一个角色是:【事务管理器】。第二个角色是:【数据库事务参与者】。          

        准备阶段(prepare):【事务管理器】在第一阶段发起消息,每个【数据库事务参与者】在本地执行事务

候事务没有提交

        提交阶段(commit): (1)如果【事务管理器】接收到了每个【数据库事务参与者】的返回了success的消息的时候

让所有【数据库事务参与者】提交事务。

任意【数据库事务参与者】返回了超时或者失败的消息给事务管理器的时候

事务回滚的消息。

                                       

                                        

从头开始学分库分表-------二阶段提交协议_数据库事务

缺点

        (1)如果有任意一个【数据库事务参与者】处于超时或者阻塞状态,那么其它所有【数据库事务参与者】必须阻塞。这个会导致整体数据库性能大大降低。

        (2)如果【事务管理器】宕机或者崩溃,那么所有【数据库事务参与者】都很可能进入无限时等待的状态。

参考文章:​​两阶段提交(2PC)​​

举报

相关推荐

0 条评论