Thanks Mike. I'm pretty sure about our mechanism to control one JVM opening the index for write, but bugs can always be discovered. That's why we used NativeFSLockFactory - because even if the JVM is killed, the lock file should be removed. So if we do find the lock, it's fishy (Siamese or not). But if I use SimpleFSLockFactory and find the lock, it will be harder for me to tell if it's because of JVM kill, or because there is a bug and another IndexWriter opens the index for write.
I think I'll go w/ NoLockFactory then ... Shai On Wed, Dec 2, 2009 at 3:45 PM, Michael McCandless < luc...@mikemccandless.com> wrote: > Currently the sole usage of the LockFactory within Lucene is for the > write.lock, ie, to prevent more than one writer (= IndexWriter, or, > IndexReader trying to do deletions or set norms) from being open on > the index at once. > > If your app has external mechanisms that can ensure, without fail, > that only one writer will be open at once, then NoLockFactory is > perfectly safe. > > But you have to be certain: one slipup will quickly corrupt the index. > IndexWriters are like the male Siamese fighting fish (betta fish) -- > they will fight to the death [of the index]! > > Mike > > On Wed, Dec 2, 2009 at 8:24 AM, Shai Erera <ser...@gmail.com> wrote: > > I have multiple JVMs on different machines accessing the shared file > system. > > I don't really have multiple IndexWriters on the same JVM, I asked this > just > > out of curiosity. > > > > So I don't understand from your reply if it's safe to use NoLockFactory, > or > > I should use SimpleFSLockFactory and unlock if needed? > > > > Shai > > > > On Wed, Dec 2, 2009 at 3:03 PM, Uwe Schindler <u...@thetaphi.de> wrote: > > > >> Hi Shai, > >> > >> > have other uses as well? What about multiple IndexWriters from the > same > >> > JVM? > >> > >> This also needs a lock. But if it is guaranteed to only have one JVM > >> accessing the index, you can use an in-JVM-Locking mechanism which is > >> provided by > >> > >> > http://lucene.apache.org/java/3_0_0/api/all/org/apache/lucene/store/SingleIn > >> stanceLockFactory.html< > http://lucene.apache.org/java/3_0_0/api/all/org/apache/lucene/store/SingleIn%0AstanceLockFactory.html > > > >> > >> > If NoLockFactory is not safe, then we can move to SimpleFSLockFactory, > >> and > >> > since we can guarantee by other means that only one IndexWriter > attempts > >> > to > >> > write to the index, we can IndexWriter.unlock(Dir) if the lock exists. > >> > >> If you can guarantee that you only have *one* JVM and there may be > multiple > >> IndexWriters, use above solution. > >> > >> Uwe > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > >> For additional commands, e-mail: java-user-h...@lucene.apache.org > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > >