journaling 是如何工作的? 将MongoDB的数据文件,journal 文件表示如下: MongoDB journaling 工作原理 启动 mongod,数据文件映射到共享视图 . MongoDB journaling 工作原理 这时候内存依然依靠文件做后盾: 内存中的变化,操作系统刷新到底层文件. 这是MongoDB在没有journaling时候的工作方式: 操作系统每60秒将内存中的变化刷新到文件. 然而, 启用 journaling时, mongod 会再做一次映射, 映射到私有视图. 附带的, 启用journalling mongod使用的虚拟内存将会翻倍. MongoDB journaling 工作原理 注意到私有视图没有映射到数据文件, 所以操作系统不能将任何改变刷新到磁盘. 现在写数据时, mongod 写到私有视图. MongoDB journaling 工作原理 mongod 然后将数据的变化写到 journal 文件,并加上文件变化的一些描述.私有视图刷新到journal的是100ms.默认情况下,journal刷新到磁盘的周期是每100ms. MongoDB journaling 工作原理 journal 将关于变化的描述追加到文件 MongoDB journaling 工作原理 这时候, 写是安全的. 如果 mongod 崩溃,journal可以重放变化, 虽然还没有写到数据文件 journal 将在共享视图上重放变化. MongoDB journaling 工作原理 然后, mongod 将共享视图 重新映射到私有视图. 这样防止私有视图太"脏"(有许多变化从共享视图刷新). MongoDB journaling 工作原理 最后, 与其它的相比,以很慢的速度, 共享视图将刷新到磁盘. 默认情况下,mongod 请求操作系统每60秒刷新一次. MongoDB journaling 工作原理 参考:http://www.kchodorow.com/blog/2012/10/04/how-mongodbs-journaling-works/

转载于:https://my.oschina.net/766/blog/211151

相关文章:

  • 2021-05-25
  • 2022-01-06
  • 2022-12-23
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-01
  • 2021-06-13
  • 2022-02-15
  • 2022-01-12
  • 2022-12-23
  • 2021-06-14
相关资源
相似解决方案