java-user@lucene.apache.org
[Top] [All Lists]

Re: 2 phase commit with external data

Subject: Re: 2 phase commit with external data
From: Peter Keegan
Date: Fri, 6 Nov 2009 11:22:05 -0500
>Can you use IndexWriter.getReader() to get the reader for step 2
Yes - perfect! I didn't think that would be different than refreshing or
recreating an IndexReader.

I don't need to keep the old commit alive. The goal is to keep the external
file in synch with the index, so a separate searcher process will see
consistent data. By postponing both commits, the window where they are out
of synch is very small (2 file renames). I record the Lucene index version
in the external file for checking synchcronization.

Thanks,
Peter


On Fri, Nov 6, 2009 at 11:02 AM, Michael McCandless <
lucene@xxxxxxxxxxxxxxxxxx> wrote:

> Can you use IndexWriter.getReader() to get the reader for step 2?
>
> Failing that, you could simply commit the change, but use a deletion
> policy that keeps the old commit alive.  Then open a normal reader and
> read whatever you need for step 2, and commit the external file.  If
> an error happens and you need to rollback you can simply open a new
> IndexWriter on the old commit point -- this lets you rollback even if
> the commit has already happened.
>
> Mike
>
> On Fri, Nov 6, 2009 at 10:59 AM, Peter Keegan <peterlkeegan@xxxxxxxxx>
> wrote:
> > I'm trying to use a two phase commit involving a Lucene index and an
> > external file derived from the index.
> > Here are the steps:
> >
> > 1. prepare commit on Lucene index
> > 2. prepare commit on external file
> > 3. commit Lucene index
> > 4. commit external file
> >
> > Step 2 requires an IndexReader with access to the 'prepared' Lucene
> index,
> > but I don't see any methods for this. Is there a way to read the prepared
> > index? I really only need access to a stored field. I'm using Lucene-2.9
> >
> > Thanks,
> > Peter
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@xxxxxxxxxxxxxxxxx
> For additional commands, e-mail: java-user-help@xxxxxxxxxxxxxxxxx
>
>
<Prev in Thread] Current Thread [Next in Thread>