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]
