Doug Cutting wrote:
> Doug Cutting wrote:
> > Yes.  On 32-bit systems with indexes larger than 1GB or so, memory
> > mapping is impractical, so synchronization is required around shared
> > file handles (using Java's classic i/o APIs, w/o pread).  The
> > non-compound format, with more files, has fewer synchronization
> > bottlenecks.  One could of course achieve the same improvements in
other
> > ways, e.g., by pooling multiple IndexReaders per index, but in straight

> > A-to-B comparisons, folks see better throughput with non-compound
> > indexes for multi-threaded applications.
>
> On second thought, a good fix for this might be to simply convert
> FSDirectory to use nio's pread support, eliminating file handle
> synchronization even when mmap isn't used.

Comparing the two for a small index (100,000 docs of the Reuters
collection, index size 170MB) showed no evident search performance
advantage for non-compound. For 300 parallel searches with traversing of
docs compound was faster. But this is a small index, not in the 1GB range,
and search was fast anyhow.

I think it would make sense to first verify the advantage of nio over io in
this multi-reading scenario with a synthetic scenario.

Also, if nio proves to be faster in this scenario, it might make sense to
keep current FSDirectory, and just add FSDirectoryNio implementation.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to