首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB 3.0.4复制设置数据库级锁时插入,不能读取其他集合?

MongoDB 3.0.4复制设置数据库级锁时插入,不能读取其他集合?
EN

Stack Overflow用户
提问于 2016-01-08 14:38:20
回答 1查看 573关注 0票数 0

我有一个副本集,包括(一个主服务器、一个备用服务器和一个恢复服务器),我在主服务器上执行以下操作:

  1. 所有的写和读都是在主站和从主站执行的。
  2. 假设我们有一个由5个集合A、B、C、D和E组成的数据库
  3. 我们正在对集合A执行写(导入或上行),那么它会对其他集合产生影响吗?就像mongodb允许同时收集B和C的读操作一样?
  4. 或者它会对数据库级执行写锁,所以也会阻止其他的读操作?
  5. 列表项目我目前遇到的问题是,我正在写在集合A上,它会给其他数据库上执行的其他读取操作超时吗?

请举例说明一下,这样会有很大的帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-01-11 04:52:51

对于副本集,当mongodb写入主集合A上的集合时,它还将数据写入主集合的oplog,该oplog将数据同步到次要文件。在这里,oplog集合是local数据库的一部分。

因此,mongo必须同时锁定数据库(即,collection'的数据库和local数据库),以保持数据库的一致性,并确保写操作是原子操作,即,更新所有或不更新。

不同的mongoDB操作持有不同的锁变体。我建议您通过下面的链接,以便对锁定机制和并发性有很好的了解。

https://docs.mongodb.org/manual/faq/concurrency/#mgl-ref

您可以通过发出db.serverStatus().locks命令来检查锁的状态。它告诉你不同类型的锁,你的蒙神有包括oplog。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34679563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档