2012-09-15 56 views
2

我有一个关于MongoDB的朋友讨论,它的原子,我想知道,如果他是正确的.. 有人告诉我,说MongoDB的过程中更新做两个原子操作:MongoDB的更新原子

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

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

即使这听起来对我来说似乎不合理,有谁知道肯定如果这是真的或不真实?

非常感谢您的答复,并希望如果有人能指出一些在线文档来阅读它。

编辑:拼写

+0

有一个文档替换更新为非原子会相当令人吃惊。你的朋友可以指出任何证据吗? – JohnnyHK

回答

1

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

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