暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【AntDB数据库】核心功能之分布式事务

Jess 2022-09-24
431

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

2PC在AntDB中的实现如下:
image20220523121907817.png

图示: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。通过这样就能实现两个或多个节点,同时成功或同时失败。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论