In most cases, Lucene use MMapDirectory for reading and writing. And it uses mmap for reading, but not for writing. As in the comment of class MMapDirectory :
File-based Directory implementation that uses mmap for reading, and FSDirectory.FSIndexOutput for writing.
I'd like to know why. Is it because mmap write is not faster than traditional write?