zoukankan      html  css  js  c++  java
  • Mongo 锁的理解

    MongoDB 提供多粒度锁

    Global (MongoD 实例) – 所有的数据库上加锁

    Database – 锁定某个数据库

    Collection – 锁定某个集合

    Document – 锁定某个文档

    MongoDB 提供了四种锁

    • 意向共享锁(IS)表示事务意图在表中的单个行上设置共享锁。
    • 意向排他锁(IX)表明事务意图在表中的单个行上设置独占锁。
    • S 共享锁
    • X 排它锁

    意向锁有什么作用?

    mongo的资源层级结构:Global ->DB -> Collection -> Doc

    意向锁加在高层级的,当需要对Doc1加X锁,需要对DB和Collection加IX,IX,此时如果对Doc2加X锁,就需要获取DB和Collection的IX锁,IX是可以被多个事务获取的,再获取Doc2的X锁,这样就实现了并发修改,此时如果foreground创建索引(库级别的写锁),那个DB的IX锁如果没有释放完,是无法无获取DB的X锁的。

    意向锁为了高层级资源的隔离。

    Mongo锁直接的隔离关系

      IS   IX  S  X
     IS   yes  yes yes  no
     IX  yes  yes  no no
     S  yes  no  yes no
     X   no  no  no  no

  • 相关阅读:
    (copy) Shell Script to Check Linux System Health
    HTML5 笔记1
    成年后更想要人懂
    端午不过节
    兜兜转转还是往前了一小步
    五月下旬这些天
    立陶宛话剧观后感
    杯子
    你学过的东西总会在某个时候用到
    初识理财记
  • 原文地址:https://www.cnblogs.com/peterleee/p/13438793.html
Copyright © 2011-2022 走看看