Ditching mmap will not be that easy, cause most of the speed and simplicity of Mongo comes from using mmap.
Ditching mmap will not be that easy, cause most of the speed and simplicity of Mongo comes from using mmap.
Unfortunately, a central requirement of a write ahead log is that the data pages must not get written before the WAL. If that were to occur, and there were a crash, the system wouldn't know that it had to undo the changes to the data pages, leaving you with corrupt data. mmap generally doesn't provide the ability to pin your dirty pages in memory - they're subject to getting flushed any time the system is under memory pressure - so it makes logging a lot more complicated to get right.
http://blog.mongodb.org/post/33700094220/how-mongodbs-journa...
For a tool like Redis, it's fairly easy for me to accept the limitation that my data size can't exceed available RAM.
But for an indexed document store with full-text query capabilities, it's a lot harder to for me to accept that limitation.
You do have to be able to keep your indexes in RAM, but that's much less limiting.