On Tuesday 11 March 2008 19:55:39 Michael McCandless wrote:
> Hi Daniel,
>
> 2.3 should be no different from 2.2 in that docIDs only "shift" when
> a merge of segments with deletions completes.
>
> Could it be the ConcurrentMergeScheduler?  Merges now run in the
> background by default and commit whenever they complete.  You can get
> back to the previous (blocking) behavior by using
> SerialMergeScheduler instead.

That was my first thought, but SerialMergeScheduler doesn't cause the problem.  
I've done a little more investigation since; it turns out that if I don't 
call optimize() then the problem doesn't occur.

Could it be that optimize(int,boolean) is storing the segments to optimise in 
a HashSet, which by its nature reorders the segments?

> If it's not that ... can you provide more details about how your
> applications is relying on docIDs?

As far as that, we assume that if there are N documents in the index then the 
next document ID will be N (we determine this before adding the document.)  
As we're only doing this in a single thread and we never delete documents, 
this was previously safe.

Daniel

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

Reply via email to