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.
They hear you and are working on it.
[0]: http://blog.mongodb.org/post/137788967/32-bit-limitations
What you linked to is a consequence of memory mapping. Mapping a single 2GB file in a 32 bit process will use up virtually all the address space and you couldn't map more than one at a time.
From 1 producer, it doesn't matter.
Though the point of mongo is to be webscale which implies to me many writers.
If there is a single high-volume data pump, for example machine generated data, will readers be affected by a continuous "fire hose" of incoming data?
That single producer caused wide-scale locking/hanging for all readers on the website and I had to manually stop the task during business hours because of that. Oy!