哇哈哈,Journaling其实不能算是新功能了,总在之前的版本中就已经出现,但官方说法是还在测试中,不能保证稳定性,不过在2.0中终于被正名,虽然说服务器也不是那么容易崩溃,但是更好的补救方法总是让人兴奋的呀,嘿嘿。
简单地说,mongo的所有数据操作会先放在内存中,再一一执行,一旦机子挂掉,那些还在内存里来不及执行的数据就会丢失,而 Journaling记录的是每一次操作进入内存时的动作,比如说插入一条数据的过程是:一条插入操作进入内存->在内存中等待完成->在数据库中真正完成,那Journaling就会在“一条插入操作进入内存”时就将其记录下来,Journaling就像一本真正的日志,它会产生一个确实存在的文件,所以一旦向服务器发送了一条请求,就会立马被记在这个文件中,即使当机了,内存中的东西都丢失了,这个文件里还是清清楚楚地记着的,mongo 再按照这本日志来进行恢复就行了。
需要注意的是,开启了Journaling功能后,操作会由Journaling来定时提交到数据库进行完成,而这个定时的长度可以由用户自己定义,范围是2到300毫秒,如果不设置,则默认为100毫秒。
现在手头没有linux机子了,回头有了再完整地记录一下喽:P
原文链接:http://www.cnblogs.com/sasafly/archive/2011/10/07/2200639.html