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

  • 相关阅读:
    Kafka架构概述
    Logstash使用进阶篇
    Logstash使用快速入门
    Ubuntu环境部署Logstash实战案例
    Nginx代理Kibana并实现登录认证实战案例
    Ubuntu环境部署Kibana实战案例
    Idea打包JAR包图解
    Wormhole部署实战案例
    编译Wormhole实战篇
    Wormhole的核心概念
  • 原文地址:https://www.cnblogs.com/peterleee/p/13438793.html
Copyright © 2011-2022 走看看