Thanks for the info on write.lock Otis,

>>If that is so, should there not be 'N' at delete/delete intersection?
I'm using the same IndexReader so, "no":
   public synchronized final void delete(int docNum)

>>The same goes for write/write intersection.  That should then be an 'N'
>>as well, no? 
Again, if using the same object (IndexWriter) there is some synchronization in 
the Lucene code to handle this:

  public final void addDocument(Document doc) throws IOException {
    DocumentWriter dw =
      new DocumentWriter(ramDirectory, analyzer, maxFieldLength);
    String segmentName = newSegmentName();
    dw.addDocument(segmentName, doc);
    synchronized (this) {
      segmentInfos.addElement(new SegmentInfo(segmentName, 1, ramDirectory));
      maybeMergeSegments();
    }
  }


I ran several concurrent threads in the test rig I originally posted without 
problems - looks like Lucene was handling these situations.

>>I'd hate to have a misleading and incorrect FAQ entry there.
Me too. Maybe the FAQ entry should have a footnote to explicitly state that 
the same reader/writer objects are being used by all threads.

Cheers
Mark


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

Reply via email to