在安全模式关闭的情况下,在什么情况下没有写入MongoDB数据库?

时间:2012-01-02 21:16:58

标签: mongodb

我在MongoDB数据库中关闭了安全模式,因为没有写入的数据绝对是100%的关键任务,并且插入速度的提高非常重要,但我真的更喜欢将所有数据写入数据库中。

我的理解是,在启用日记功能并关闭安全模式的情况下,如果服务器在收到写入请求和将数据输出到日志之间的100毫秒内崩溃,则数据可能会丢失。

如果数据成功写入日志,即使数据库由于负载过重而滞后,这是一个非常安全的选择,当数据库赶上并能够处理数据时,数据将最终存储在数据库中期刊里有什么?或者我对期刊的缺陷有什么了解?是否还有其他情况可能会丢失插入的数据?

如果我在另一个进程尝试读取文档之前将文档更新一小段时间会发生什么,但是还没有将更改提交到集合中?读取是否会阻塞直到插入完成?

1 个答案:

答案 0 :(得分:2)

  • 如果在与写入相同的连接上请求读取,则只有在插入完成后才会阻止读取。除非使用正确的getLastError,否则无法保证一旦写入数据,它将立即对其他连接可见。
  • 在日记之前处理数据并将其放入内存映射的数据区域。但是,它可能不像日记那样经常“闪烁”到磁盘上。这意味着即使负载很高,数据也应该最终更新并对其他连接可见。日记数据仅用于在mongod实例意外崩溃时恢复持久性。
  • 由于网络中断,磁盘损坏,索引重复等原因,您的数据可能会丢失。