That's interesting. So it would be a very small change to add transactional (and even 2-phase commit) capabilities to the writer? What about deletes? Since they use the reader, would it still be possible to allow a 2-phase commit/abort on that?
I would very much like to have a 2-phase commit in Lucene in order to ensure that it is always in sync with my database. I always thought that I'd end up having to write custom code to store the Lucene index in the database, but maybe that wouldn't be necessary...? Scott > -----Original Message----- > From: Doug Cutting [mailto:[EMAIL PROTECTED]] > Sent: Thursday, June 27, 2002 10:36 AM > To: Lucene Users List > Subject: Re: Stress Testing Lucene > > > It's very hard to leave an index in a bad state. Updating the > "segments" file atomically updates the index. So the only way to > corrupt things is to only partly update the segments file. > But that too > is hard, since it's first written to a temporary file, which is then > renamed "segments". The only vulnerability I know if is that > in Java on > Win32 you can't atomically rename a file to something that already > exists, so Lucene has to first remove the old version. So if > you were > to crash between the time that the old version of "segments" > is removed > and the new version is moved into place, then the index would be > corrupt, because it would have no "segments" file. > > Doug