lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Ganyo <>
Subject Re: Directory implementation using NIO
Date Mon, 07 Jul 2003 20:05:18 GMT
Wonderful!  I can't wait to try this.  I'll try to provide some 
comparisons as I get to it, but I'd love to hear from anyone else that 
tries this...


Francesco Bellomi wrote:

>I developed a Directory implementation that accesses an index stored on the
>filesystem using memory-mapped files (as provided by the NIO API, introduced
>in Java 1.4).
>You can download the complied jar and the source from here:
>Basically there are 3 new classes: NIODirectory, NIOInputStream and
>NIOOutputStream. They are heavily based on FSDirectory, FSInputStream and
>NIOInputStram provides memory-mapped access to files. It does not rely on
>Lucene InputStream's caching feature, since direct access to the
>memory-mapped file should be faster. Also, cloned stream with independent
>positions are implemented using NIO buffer duplication (a buffer duplicate
>holds the same content but has its own position), and so the implementation
>logic is much simpler than FSInputStream's.
>Some methods of Directory have been overridden to replace the caching
>feature. Some of then were final in Directory, so I have used a slightly
>modified version of (BTW, I wonder why so many methods in
>Lucene are made final...)
>These classes only works with the recently released Java 1.4.2. This is due
>to the fact that buffers connected with memory-mapped files could not be
>programmatically unmapped in previous releases, (they were unmapped only
>through finalization) and actively mapped files cannot be deleted. These
>issue are partially resolved with 1.4.2.
>NIOOutputStream is the same as FSOutputStream; I don't know any way to take
>advantege of NIO for writing indexes (memory mapped buffers have a static
>size, so they are not useful if your file is growing).
>I don't have a benchmarking suite for Lucene, so I can't accurately evaluate
>the speed of this implementation. I tested it on a small application I am
>developing and it seems to work well, but I think my test are not
>significative. Of course only the searching feature is expected to be
>faster, since the index writing is unchanged.
>Francesco Bellomi
>"Use truth to show illusion,
>and illusion to show truth."
>To unsubscribe, e-mail:
>For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message