Mongodb锁机制
来源:互联网 发布:小米远程协作软件 编辑:程序博客网 时间:2024/05/17 07:30
Mongodb锁机制
Mongodb使用读写锁来允许很多用户同时去读一个资源,比如数据库或者集合。读采用的是共享锁,写采用的是排它锁。
对于大部分的读写操作,WiredTiger使用的都是乐观锁,在全局、数据库、集合级别,WiredTiger使用的是意向锁。当引擎探测到两个操作之间发生了冲突,将会产生一个写冲突,mongodb将会重新执行操作。只有如删除集合等操作需要排它锁。
查看lock情况
如果查看在Mongod实例中的lock情况,可以使用如下方式:
1. db.serverStatus
2. db.currentOp
3. mongotop
4. mongostat
5. locks集合
读写是否会造成锁
在长时间的读写操作,如查询、更新或者删除,mongodb同样会产生锁。比如在很多条件下的多个文档的更新会产生锁。下面这些操作将会锁住db:
全局锁
在一些admin的命令中,排它锁会在某一段时间内锁住整个数据库。所以最好在离线下执行。如下会使用全局锁
- createIndex
- repairDatabase
- copyDatabase
- compact
短时间内锁住db的操作有:
- auth
- 所有写到副本集primary的写操作,将会同时锁住local数据库,其中local数据库主要存放的是副本集的配置信息,oplog信息,这些信息是存在本地的,不会同步到其它的节点,即当该节点发生了故障所有的数据都将会丢失,所以不要讲数据放在local数据库中,同样的,在admin中如果存放定义的集合,它是不支持集合锁的,将会锁住整个db,直接影响性能
分片的同步
在一个分片集群中,锁会应用到单个分片中,而不是整个集群。也即每个Mongod实例在shard集群中是独立的,拥有自己的Lock,在某个mongod中的操作不会阻塞其它的shard。
副本集的同步
在副本集的情况下,mongodb向主节点写入数据,同样会写到oplog中,会lock住primary,对于从节点,数据以batch方式写入,并且向不同的从节点写入是以并行的方式进行。
0 0
- MongoDB锁机制 2.2
- Mongodb锁机制
- mongodb sharding 机制
- mongoDB安全认证机制
- Mongodb Journaling 机制
- MongoDB 索引建立机制
- MongoDB 并发机制
- MongoDB 修改认证机制
- 【MongoDB】MongoDB数据库之海量存储机制
- 【基础】MongoDB的Caching机制
- Mongodb写入安全机制--GetLastError
- Mongodb写入安全机制--GetLastError
- Mongodb GetLastError写入安全机制
- 启用MONGODB的权限机制
- Mongodb写入安全机制--GetLastError
- MongoDB的写安全机制
- mongodb复制集内部机制(mongodb bully算法)
- MongoDB集群的冗余机制(Replication)
- tensorflow中的tf.nn这类函数
- 1.Java类加载机制
- Windows 2012 配置VPN服务器教程
- ViewPage+frament不预加载下一个Frament数据解决办法
- 艺术编程-技术之声第十期
- Mongodb锁机制
- Maven
- Eclipse 修改项目名称
- ORM、eclipselink、hibernet、jpa的关系
- 深度学习:几个重要的数学概念
- 关于AD pcb布局中的一些技巧-敷铜
- 登录记住用户名的两种java解决方式
- Android中RecycleView的使用详解
- 房地产 “大数据时代” 商业智能深掘数据价值