`

Mongodb事务模拟

 
阅读更多
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的强事务解决方案.pdf

    "MongoDB的强事务解决方案" MongoDB是一个流行的NoSQL数据库管理系统,它提供了强的事务解决方案,以满足现代化应用程序的需求。本文档将详细介绍MongoDB的强事务解决方案,包括ACID事务、事务补偿设计模式、...

    MongoDB TPCC事务性能基准测试.pdf

    MongoDB TPCC事务性能基准测试.pdf

    Mongodb事务介绍与最佳实践.pptx

    Mongodb事务介绍与最佳实践.pptx

    mongoDB 4.0事务回滚的辛酸历程探究

    部署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中文API及分布式分片实例详解。

    MongoDB TPCC事务性能基准测试.pptx

    MongoDB TPCC事务性能基准测试.pptx

    MongoDB内核源码分布式事务介绍.pdf

    MongoDB内核源码分布式事务介绍 分布式事务是现代数据库系统中的一大挑战,MongoDB 作为Modern Database,需要解决分布式事务问题。本文将介绍MongoDB 内核源码分布式事务的技术创新和实现原理。 MongoDB 的高层...

    MySQL与MongoDB多文档事务支持对比分析.docx

    MySQL与MongoDB多文档事务支持对比分析.docx

    Data-Simulate:Java为MongoDB随机模拟数据

    数据模拟 Java为MongoDB随机模拟数据 免责声明 此程序仅用于测试目的。 不要将其与生产数据结合使用,因为我无法保证其安全性。 该计划专为 adswithfriends.com 量身定制。

    14、MongoDB存储原理&多文档事务详解-ev.rar

    14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_...

    MongoDB期末考试测试题

    内容概括:提供了一份MongoDB期末考试测试题的文档,用于帮助同学复习MongoDB相关知识和技能。 适用人群:适用于需要复习MongoDB知识的同学,尤其是准备参加期末考试的学生。 使用场景及目标:该文档可以用作学生...

    MongoDB图形化管理工具 MongoDB Compass

    MongoDB图形化管理工具 MongoDB Compass

    MongoDB笔记.docx

    一、MongoDB简介 3 二、MongoDB结构 3 二、MongoDB 数据库关系型(这里并不是值关系型数据库的关系) 3 1、MongoDB一对一关系型 3 2、MongoDB一对多关系型 4 3、MongoDB多对多关系型 4 三、创建数据库(mongodb_test...

    Linux安装mongodb客户端

    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...

    Centos7下安装MongoDB

    安装MongoDB需要安装mongodb-org元数据包,该包包含四个组件包:mongodb-org-server、mongodb-org-mongos、mongodb-org-shell、mongodb-org-tools。 在Centos7下安装MongoDB可以通过epel-release的yum源来安装,...

    如何安装MongoDB 如何使用MongoDB

    本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...

    MongoDB应用设计模式

    资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...

    MongoDB之conf配置文件详解

    MongoDB之conf配置文件详解 MongoDB的配置文件是服务器的核心组件之一,它控制着MongoDB服务器的各种设置和行为。在本文中,我们将详细介绍MongoDB的配置文件的各个部分,并解释每个设置的作用和意义。 一、数据库...

    MongoDB数据库两阶段提交实现事务的方法详解

    主要介绍了MongoDB数据库两阶段提交实现事务的方法,结合实例形式详细分析了MongoDB数据库事务提交、回滚、撤销等操作的原理、实现方法及相关操作注意事项,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics