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]