On Thu, May 28, 2009 at 4:59 PM, Yonik Seeley
<[email protected]> wrote:
> On Thu, May 28, 2009 at 4:18 PM, Michael McCandless
> <[email protected]> wrote:
>> Newly added docs are still free to make new segments, and be reopened,
>> while this warming is taking place.
>>
>> So, getReader() will wait for newly added/deleted docs to be flushed &
>> reopened, but will not wait for any running merges to complete (finish
>> writing the files & finish warming a SegmentReader on the resulting
>> merged segment).
>
> Oh, ok... perfect!  (but tricky ;-)

Yes, tricky!  But, nice that it can be done in a BG thread (as long as
you are using CMS).

However, the NRT turnaround time is still gated by the time to clone a
deleted docs BitVector, which is in proportion to the # docs in that
segment, if you are using deletions.  Likewise if you are setting
norms.  So for a large index this will become a sizable cost... we
need to somehow make a switch to transactional data structures that
incrementally copy-on-write eg one dirty block at a time.  There's an
issue open for this.

And we are iterating on LUCENE-1313 to hold recently flushed segments
in a RAMDir.

Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to