在mongodb中,单个的写操作保持原子性是在单个的document 上。

$isolated operator

$isolated 一个写操作多个documents 的时候可以防止和其他进程交织,一旦写操作修改第一个文档,直到些操作完成或者出错,不会有一个client 看到这个改变。$isolated不能工作在 sharded clusters. $isolated 没有事件回滚机制,即时在操作过程中报错,已经修改的不会出现回滚.

db.foo.update( { status : "A" , $isolated : 1 }, { $inc : { count : 1 } }, { multi: true } )

如果咩有$isolated 更新多个documents的时候,会和其他操作进程的交织。 mongodb 的 $isolated 的用法官网详见:https://docs.mongodb.com/manual/reference/operator/update/isolated/#up._S_isolated

mongodb 没有事物 官网给出的事物是(two-phase commit ) 是利用在写操作的过程中,单个的document 的原子性来模拟事物,觉得不怎么好用,详见官网:https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/

转载于:https://www.cnblogs.com/Kellana/p/5822468.html

mongodb的原子性(Atomicity)和事物 (Transactions)相关推荐

  1. ACID 原子性Atomicity,一致性Consistency,隔离性Isolation,持久性Durability

    原子性Atomicity 指事务必须是一个原子的操作序列单元.事务中包含的各项操作在一次执行过程中,只允许出现以下两种状态之一 .全部成功执行. · 全部不执行. 任何一项操作失败都将导致整个事务失败 ...

  2. Java并发编程实践笔记之——原子性(Atomicity)

    竞态条件(Race Condition) ++count这个操作是紧凑的语法,但并非原子的,包含了三个独立的操作(读取-修改-写入) 由于不恰当的执行时序而出现不正确的结果(或者说计算结果的正确性取决 ...

  3. 《Java Concurrency in Practice》之原子性(Atomicity)

    假定有两个操作A和B,如果从执行A的线程来看,当另一个线程执行B时,要么将B全部执行完,要么完全不执行B,那么A和B对彼此来说是原子的.原子操作是指,对于访问同一个状态的所有操作(包括该操作本身)来说 ...

  4. mysql中怎么表示100美元_MySQL 事物,美国服务器

    在理解事物之前,接触数据库系统的其他高级特性还言之过早.事物就是一组原子性的SQL查询,或者说一个独立的工作单元.如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询.如果其中有 ...

  5. mysql行级视图与列级视图_[数据库]--DML、DDL、TCL语言

    DML语言(数据操作语言) 1.插入语句insert 语法1: insert into 表名(列名...) values(值...) 注意: 1.插入的值的字段必须和值匹配 2.插入的值的类型必须和字 ...

  6. MySQL复习笔记(三)

    6.事物(Transaction)★★★★★ (1).基础知识: 事务是由一步或几步数据库操作序列组成的逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行.程序和事务是两个不同的概念.一般而言,一 ...

  7. orcal入门,这一章足够

    一:orcal 和mysql不同之处 1:dual表的使用 ​ mysql:查看数据不是在于某一张表的时候 直接使用select语句 ​ 举例:select 1+1; ​ orcal:查看数据不是在于 ...

  8. 事物与持久化_跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现...

    提到MySQL的事物,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关. 而事务的ACID(即原子性Atomicity.一致性Consiste ...

  9. mongodb一致性协议_mongo的怎么保持事物的一致性-问答-阿里云开发者社区-阿里云...

    http://docs.mongoing.com/manual-zh/tutorial/perform-two-phase-commits.html 要么操作全都执行,要么都不执行,不能执行一半,改了 ...

最新文章

  1. 澳洲森林火灾蔓延数学建模,基于元胞自动机模拟多模式下火灾蔓延(附部分源码)
  2. 提升树算法总结(一)
  3. 冰豹lua驱动设置_卡宴?卡宴!——冰豹ROCCAT Kain 120 AIMO开箱
  4. 金三银四大厂面经总结,淘汰了80%的Java面试者
  5. hashcode的作用_【09期】说说hashCode() 和 equals() 之间的关系?
  6. Hashtable 数据遍历的几种方式
  7. java getselecteditem_java – 为什么JComboBox上的getSelectedItem()不是通用的?
  8. php codesniffer,PHP 系列:代码规范之 Code Sniffer
  9. 正则化和正则化的思想
  10. VSCode查看gltf文件(glTF Tools插件)
  11. C# “贝格尔”编排法
  12. Oracle数据库的dblink连接
  13. 禁止小红伞(Avira AntiVir)弹出广告
  14. 修改yolov5的输入图像尺寸为指定尺寸
  15. java 邮箱找回密码_【JavaWeb】通过邮件找回密码
  16. 常用的国外遥感卫星网站
  17. Leetcode-Mysql题目及知识点总结(597. 好友申请 I:总体通过率)
  18. kaldi:计算词错率(WER)
  19. 上位机与PLC 通讯源码 上位机与三菱PLC,西门子PLC通讯
  20. db2关闭下一句sql的日志_分析DB2活动日志满的原因及解决DB2日志满方法与避免方案...

热门文章

  1. [中秋特别定制版本]绝美登录页面搭配[登录数据存储到服务器](服务器宝塔数据库开通+短信服务开通+后端redis验证码缓存)
  2. 一博科技通过注册:年营收7亿拟募资8亿 汤昌茂等人控制85%股权
  3. 如何查看电脑内存条型号
  4. js常见的几种页面刷新方法
  5. 项目调研丨以太坊再质押项目EigenLayer白皮书四大看点(内附完整版中文白皮书)
  6. 如何解决移动硬盘打不开的问题
  7. postgresql内存参数
  8. 外部表不是预期的格式
  9. python分布式存储系统_基于Python的分布式文件共享系统的实现
  10. Numpy中ndarray的常见操作