• 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

  • 相关阅读:
    宝塔nginx配置
    宝塔apache配置
    公司代码规范
    发送短信倒计时
    js layui 分页脚本
    常用mysql
    win10子系统ubuntu下安装nodejs,并使用n管理版本
    Cocos Creator 热更新文件MD5计算和需要注意的问题
    android app 闪屏
    关于模板测试几个问题
  • 原文地址:https://www.cnblogs.com/peterleee/p/13438793.html
Copyright © 2020-2023  润新知