二阶段提交

角色

  • 协调者(Coordinator) :<-> 负责组织事务的提交或回滚。
  • 参与者(Participants) :<-> 实际执行事务操作的数据库节点。

两个阶段 #card #depth-1

  • 表决阶段(准备阶段,Voting/Prepare Phase) #card

    • 协调者向所有参与者发送“准备提交事务”的请求。

    • 参与者本地执行事务并记录 redo/undo 日志,但不提交。

    • 各参与者返回“同意提交”或“中止”的表决结果给协调者。

  • 执行阶段(提交阶段,Commit Phase) #card

    • 如果协调者收到了所有参与者的“同意提交”,则向所有参与者发送“提交”命令,参与者正式提交并释放锁资源。

    • 如果有任何一个参与者投“中止”,则协调者向所有参与者发送“回滚”命令,参与者执行回滚并释放锁资源。

作者

Ryen Xiang

发布于

2026-01-31

更新于

2025-10-22

许可协议


网络回响

评论