lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael McCandless <>
Subject Re: Transaction support in Lucene
Date Tue, 14 Nov 2006 18:57:36 GMT
Rajesh parab wrote:

> I am talking about transaction support in Lucene only. If there is a failure during insert/update/delete
of document inside the index, there is no way to roll back the operation and this will keep
the index in in-consistent state.

OK, I see.  Then you should also look at Solr, which puts "Lucene
only" transactional semantics on top, in that you can do a bunch of
add/update/deletes to your index but only on calling "commit" are
these changes copied to a snapshot (using hard links in the
filesystem) and distributed to searchers.

Also, the lockless commits patch (not committed yet but I think

gets us closer to enabling transactions.  With that patch, every
commit from Lucene writes to a segments_N file (N increments on every
commit).  We keep only the last segments_N file.

But, with a small-ish change beyond that patch, which has been briefly
touched on the dev list & Jira, we could have Lucene keep more than
just the last segments_N file (and all segment files referenced by
them).  This would enable you to open a Lucene index explicitly at
prior commit point.  Then we could enable transactions over that by
recording the segments_N at which you began your transaction, not
deleting it, and then rolling back to it if any error had occurred.

This same approach could be used to make Lucene's "point in time"
searching explicit, and, work correctly on NFS.

I will open a Jira issue to start tracking these ideas ... but I think
it's a ways off before this would be available in a release.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message