二阶段提交

角色

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

两个阶段 #card

  • 表决阶段(准备阶段,Voting/Prepare Phase) #card
    • 协调者向所有参与者发送“准备提交事务”的请求。
    • 参与者本地执行事务并记录 redo/undo 日志,但不提交。
    • 各参与者返回“同意提交”或“中止”的表决结果给协调者。
  • 执行阶段(提交阶段,Commit Phase) #card
    • 如果协调者收到了所有参与者的“同意提交”,则向所有参与者发送“提交”命令,参与者正式提交并释放锁资源。
    • 如果有任何一个参与者投“中止”,则协调者向所有参与者发送“回滚”命令,参与者执行回滚并释放锁资源。

网络回响

作者

Ryen Xiang

发布于

2025-10-13

更新于

2026-02-17

许可协议


评论