Ahh good point. I agree it makes sense to make MMapDir's chunking user-controllable. Can you open an issue?
Mike On Mon, Jul 13, 2009 at 5:49 AM, Uwe Schindler<u...@thetaphi.de> wrote: >> On Sun, Jul 12, 2009 at 10:51 AM, eks dev<eks...@yahoo.co.uk> wrote: >> >> > MMapDirectory has support for chunking (Ineteger.MAX_VALUE) anyhow... >> maybe for such cases this threshold can become user settable. I will try >> to experiment with it (I am talking about MMapDirectory -> private final >> int MAX_BBUF = Integer.MAX_VALUE;) >> >> This chunking doesn't reduce virtual memory usage, because the buffers >> are all mapped up front on opening the IndexInput. >> >> It's only done because of a limitation of ByteBuffer (it uses int not >> long to address the values). > > The idea of chunking is because of address space fragmentation. If the Java > VM allocates or frees memory (e.g. when expanding the heap from Xms to Xmx), > the address space of the process gets fragmented. If the index is very > large, the byte buffer must fit in complete as one fragment into the address > space, which may easily fail when you only have 32 bit. > > If the file is mapped in different chunks, each chunk can be somewhere else > in address space (e.g., not only one 1 Gig junk is needed, there can be ten > 100 Meg junks at different places). > > Uwe > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org