1、创建事务表,添加一条记录,如果成功,执行第2步,如果失败,则事务失败。
2、将该事务的ID标志加在要执行事务的一批数据上,并添加状态字段:待插入状态。然后执行批量写操作。如果成功,则执行第3步,如果失败,则执行第6步。
3、update mult 待插入状态 -> 成功状态。
如果成功,执行第4步。如果失败,执行第6步。
4、删除事务表当前批次事务数据。如果成功,执行第5步,如果失败执行第6步。
5、事务提交成功。
6、执行3次清道夫程序,如果成功则事务回滚成功,如果失败,则交由清道夫守护程序再定时执行。
1)mult删除该事务批次状态为“待插入状态”的数据
2)删除事务表事务记录。
注:写操作时无论是C U D,均为新增一条记录,并将version+1,取记录永远取version最新的数据。此处实现有一定逻辑,非本文重点,清道夫守护线程也非本文重点,均不再熬述。
-------------
•第1步:先记录一条事务记录,将要修改的多行记录的修改值写到里面,并设置其状态为init(如果这时候操作中断,那么在重新启动时,会判断到它处于init状态,从而将其保存的多行修改操作应用到具体的行上)。
•第2步:然后更新具体要修改的行,将刚才写的事务记录的标识写到它的tran字段中。
•第3步:将事务记录的状态从init变成pending(如果在这时候操作中断,那么在重新启动时,会判断到它的状态是pending,这时查看其所有对应的多条要修改的记录,如果其tran值不为空,那么就进行第4步;如果值为空,说明第4步已经执行过了,直接将其状态从pending变成 commited就行)。
•第4步:将需要修改的多条记录的相应值加以修改,并且unset掉之前的tran字段。
•第5步:将事务记录那一条的状态从pending变成commited,事务至此完成。
原文来自
http://jdkleo.iteye.com/blog/2009974
分享到:
相关推荐
MongoDB TPCC事务性能基准测试.pdf
MongoDB的强事务解决方案.pdf
Mongodb事务介绍与最佳实践.pptx
部署mongodb事务回滚 1.准备工作 升级mongodb至4.0.0 $ brew upgrade mongodb 升级或安装mongodb.js v3.1.0 以上 $ npm i mongodb --save-dev 坑 升级完上述后,db.js里连接mongo时, 会警告,让你在connect...
mongodb中文API及分布式分片实例详解。
MongoDB TPCC事务性能基准测试.pptx
MySQL与MongoDB多文档事务支持对比分析.docx
数据模拟 Java为MongoDB随机模拟数据 免责声明 此程序仅用于测试目的。 不要将其与生产数据结合使用,因为我无法保证其安全性。 该计划专为 adswithfriends.com 量身定制。
MongoDB内核源码分布式事务介绍.pdf
14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_...
一、MongoDB简介 3 二、MongoDB结构 3 二、MongoDB 数据库关系型(这里并不是值关系型数据库的关系) 3 1、MongoDB一对一关系型 3 2、MongoDB一对多关系型 4 3、MongoDB多对多关系型 4 三、创建数据库(mongodb_test...
sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo 写入: [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpg...
MongoDB图形化管理工具 MongoDB Compass
本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...
资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...
主要介绍了MongoDB数据库两阶段提交实现事务的方法,结合实例形式详细分析了MongoDB数据库事务提交、回滚、撤销等操作的原理、实现方法及相关操作注意事项,需要的朋友可以参考下
mongodb 事务tldr; 支持 (!) .findAndModify node.js 中 mongodb 事务概念的证明。用法 $ git clone git@github.com:rusintez/mongodb-transactions.git mt$ cd mt$ npm install$ node index.js应用程序接口 var ...
MongoDB 学习PPT
【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT...