Mongodb事务模拟
来源:互联网 发布:java重写的作用 编辑:程序博客网 时间:2024/06/04 16:56
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,事务至此完成。
0 0
- Mongodb事务模拟
- MongoDB中的主从事务
- 关于MongoDB事务
- MongoDB支持事务吗
- 关于mongodb如何实现事务
- 事务对象模拟(sql)
- 手动模拟Spring管理事务
- spring事务及原理模拟
- MongoDB 操作手册CRUD 事务 两步提交
- MongoDB是如何实现事务的ACID?
- MongoDB两阶段提交实现事务
- MongoDB是如何实现事务的ACID?
- 解析MongoDB存储引擎WiredTiger:事务实现
- sqlserver 2008实现的转账事务模拟
- Java模拟银行转账(操作事务)
- 模拟SQL Server的事务锁
- 五个解决方案让MongoDB拥有RDBMS的鲁棒性事务
- 五个解决方案让MongoDB拥有RDBMS的鲁棒性事务
- OBJ-C类的继承和派生学习笔记
- OBJ-C组合模式学习笔记
- OBJ-C @property和@synthesize关键字学习笔记
- OBJ-C实例变量修饰符;私有变量;私有方法;description;多态;点语法学习笔记
- mongodb副本集的配置及node.js的使用
- Mongodb事务模拟
- shader回顾02 --- 固定管线编程基础
- 为什么Java中1000==1000为false而100==100为true?
- 项目记录38--tolua 股市网络爬虫软件解析json,html
- 易經大意 421_440
- 使用wpa_supplicant中犯的小错误
- 欢迎使用CSDN-markdown编辑器
- Xsolla与GPay合作,全面开通土耳其市场
- Object-C高级编程读书笔记(6)—— GCD的一些函数