Enable IndexReader to merge tail segments on demand, in RAM, when opening
-------------------------------------------------------------------------

                 Key: LUCENE-983
                 URL: https://issues.apache.org/jira/browse/LUCENE-983
             Project: Lucene - Java
          Issue Type: Improvement
          Components: Index
            Reporter: Michael McCandless
            Assignee: Michael McCandless
            Priority: Minor
             Fix For: 2.3


Spinoff from LUCENE-845.

In LUCENE-845, the IndexWriter must pay a high cost (O(N^2) merge
cost) for keeping the number of segments "always small" in the case
where flushes of very small segments (1 doc as worst case) happen
frequently.  This happens in "low latency" applications.

This is because IndexWriter must be ready "at every moment" for an
IndexReader to open the index.

But, if we allow IndexReader to use some RAM (give it a RAM buffer) to
load the long tail of small segments into a RAMDirectory, and then
merge them (in RAM), this allows IndexReader to still have good
performance on the index without IndexWriter paying this high merge
cost.  This effectively allows us to optimize the tail segments "on
demand" when a reader needs to use them.

When we combine this with LUCENE-743 (efficient "re-open" of a reader)
then we should be able to efficiently handle low latency applications.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to