首批通过分布式安全可靠测评,为关键业务系统打造
两阶段提交
更新时间:2026-05-12 14:32:59
OceanBase 数据库实现了原生的两阶段提交协议,保证分布式事务的原子性。
两阶段提交协议中包含两种角色,协调者(Coordinator)和参与者(Participant)。协调者负责整个协议的推进,使得多个参与者最终达到一致的决议。参与者响应协调者的请求,根据协调者的请求完成 prepare 操作及 commit/abort 操作。
分布式事务提交流程
传统和 OceanBase 数据库两阶段提交的流程如下图所示。

PREPARE 阶段
协调者:协调者向所有的参与者发起 prepare request
参与者:参与者收到 prepare request 之后,决定是否可以提交,如果可以则持久化 prepare log 并且向协调者返回 prepare 成功,否则返回 prepare 失败。
COMMIT阶段
协调者:协调者收齐所有参与者的 prepare ack 之后,进入 COMMIT 状态,向用户返回事务 commit 成功,然后向所有参与者发送事务 commit request。
参与者:参与者收到 commit request 之后释放资源解行锁,然后提交 commit log,日志持久化完成之后给协调者回复 commit ok 消息,最后释放事务上下文并退出。