Daniel Noll wrote:

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.

Oh, so you do not see the problem with SerialMergeScheduler but you do with ConcurrentMergeScheduler?

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

Hmmm ... optimize does record which segments need to be merged away in a HashSet. Then ConcurrentMergeScheduler will run the necessary merges (possibly several at once). But the merges are still done on "contiguous" segments, and when committed the newly merged segment replaces that range of segments. So I don't think this should be re- ordering documents. Can you try running with infoStream set such that you get the problem to occur and then post the resulting output?

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.

Oh, there are no deletions? Then this is very strange. Is it optimize that messes up the docIDs? Or, is it when you add docs after having done an optimize that the newly added docs are messed up?

Mike

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

Reply via email to