MongoDb更新原子性

时间:2012-09-15 12:38:35

标签: mongodb atomicity

我与朋友讨论了MongoDb和它的原子性,我想知道他是否正确.. 有人告诉我,MongoDb在更新期间会进行两次原子操作:

  • 它正在删除现有文档(第一次原子操作);
  • 并插入一个新的(第二次原子操作)。

这意味着在一小部分时间内,文档是空的。

即使这对我来说听起来似乎不合理,但有人确切知道这是真的还是不正确?

非常感谢您的回复,如果有人可以指出一些在线文档来阅读它,我将不胜感激。

编辑:拼写

1 个答案:

答案 0 :(得分:1)

对于所有变异操作,MongoDB使用全局写锁(2.2之前的每个服务器和2.2中的每个数据库)。这意味着无论更新的实现细节如何,从客户端的角度来看它们都是原子的。全局写锁定保证没有其他客户端可以看到对单个文档的部分更新。

这里有关于MongoDB全局写锁的文档:http://www.mongodb.org/display/DOCS/How+does+concurrency+work