1.Base基础/3.Icon图标/操作/search备份
1.Base基础/3.Icon图标/操作/search备份
EN
文档
AntDB简介
系统架构
核心功能
核心概念
最佳实践
参考指南
  • 文档首页 /
  • 系统架构 /
  • 核心功能 /
  • 分布式事务

分布式事务

更新时间:2024-05-14 11:46:03

AntDB使用2PC来保证(Two-Phase Commit, 2PC)来实现分布式事务。2PC分两个阶段:第一阶段,协调者询问参与者事务是否可以执行,参与者回复同意(本地执行成功),回复取消(本地执行失败)。第二阶段,协调者根据第一阶段的投票结果进行决策,当且仅当所有的参与者同意提交事务时才能提交,否则回滚。

2PC在AntDB中的实现如下:

image-20220523121907817

图示:AntDB数据库2PC实现过程图

(1)CN1从GTM请求并获得,集群全局SnapShot。

(2)CN1从GTM请求并获取,集群全局唯一TransactionID 事务号100。

(3)CN1到DN1上对用户A减去50元。同时到DN2上对B用户加上50元。

(4)CN1分别操作A和B用户的数据成功后,需要提交该事务。两阶段的第一阶段,分别到DN1和DN2 预提交。即prepare Transaction T100。

(5)DN1和DN2都能预提交成功并且返回成功ACK。

(6)CN1本地结束事务号100。

(7)CN1分别到DN1和DN2上进行两阶段的第二阶段,真正的提交T100。

(8)DN1和DN2提交成功并且返回ACK。

如果第5步,任何一个节点返回预提交失败,第6,7 分别需要本地rollback,和两阶段第二阶段rollback prepared T100。通过这样就能实现两个或多个节点,同时成功或同时失败。

问题反馈