• mongodb的原子性(Atomicity)和事物 (Transactions)


     在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/

  • 相关阅读:
    线程同步(二)—— 条件变量
    线程同步(一)—— 互斥锁
    进程同步(四)—— 消息队列
    Nginx反向代理服务器的配置
    散列表(hash表)
    浅谈bitmap
    进程空间分配和堆栈大小
    拓扑排序
    归并排序
    快速排序
  • 原文地址:https://www.cnblogs.com/Kellana/p/5822468.html
Copyright © 2020-2023  润新知