Hi Otis

The only way to continually use the same IndexReader would be to use a
stateful session bean (frowned upon by J2EE Container writers), and then
we'd see the same problem cross-machine - remember that the indexes that we
use are stored once, not replicated across the four servers.

We'll come up with a fix ourselves.

I thought that it might be a good candidate for Lucene 2 as the FSDirectory
code is horrible and non-J2EE compliant.

Is there any place for making suggestions for future development tasks?
I've seen the Lucene 2 whiteboard and wondered how the items on the list
were derived.

Cheers

Pete Lewis


----- Original Message ----- 
From: "Otis Gospodnetic" <[EMAIL PROTECTED]>
To: "Lucene Developers List" <[EMAIL PROTECTED]>
Sent: Tuesday, September 14, 2004 12:11 PM
Subject: Re: Lock handling and Lucene 1.9 / 2.0


> It sounds like this is the source of your problem.  Reuse those
> IndexReaders or IndexSearchers and you'll avoid the waits you are
> talking about, as Christoph already pointed out.  How you implement the
> logic for caching IndexReaders/Searchers is up to you.
>
> Otis
> P.S.
> It sounds like you took the time to figure out how some of the Lucene
> internals work.  The best way to persuade -dev list subscribers that
> doing something one way is better than doing it the current way is by
> providing a clean diff against CVS HEAD, attached to an entry in
> Bugzilla.  There are now several active Lucene developers and
> contributors who will look at your suggestion and apply the patch, if
> it improves the code.
>
>
>
> --- Pete Lewis <[EMAIL PROTECTED]> wrote:
>
> > Hi Christoph
> >
> > We are in a cluster running under Bea Weblogic.
> >
> > We have a static API to the search component from the portlets.
> >
> > We therefore need to open an indexreader per request.
> >
> > Cheers
> > Pete
> >
> > ----- Original Message ----- 
> > From: "Christoph Goller" <[EMAIL PROTECTED]>
> > To: "Lucene Developers List" <[EMAIL PROTECTED]>
> > Sent: Tuesday, September 14, 2004 10:55 AM
> > Subject: Re: Lock handling and Lucene 1.9 / 2.0
> >
> >
> > > Pete Lewis wrote:
> > > > Hi Christoph
> > > >
> > > > If we stand back a second and ask why we have commit locks when
> > searching?
> > > >
> > > > The answer comes down to handling the FSDirectory - where the
> > methods
> > used
> > > > are not j2ee compliant.
> > > >
> > > > We could open another can of worms and say why does the
> > indexreader
> > delete -
> > > > but I won't go into that argument again here.....
> > > >
> > > > The bottom line is that we need the ability to search without
> > waiting on
> > a
> > > > commit lock.
> > >
> > > You have this ability already !!!!!!!!!!!!!!!!!!!!!!!!!
> > >
> > > The FSDirectory is where the problems lie.  We could hack the
> > > > code to make it work for our particular application; however what
> > I've
> > been
> > > > trying to get across is the need to have a method that will give
> > users
> > the
> > > > capability to just search (not delete) without waiting upon the
> > commit
> > lock,
> > > > that will be j2ee compliant, and that will be appropriate
> > clustered
> > > > implementations - and that this should be a candidate for Lucene
> > 1.9 /
> > 2.0.
> > > >
> > > > You say that it shouldn't take long to wait.  A 1 sec spin lock
> > per
> > index
> > > > per process is an eternity when trying to scale for potentially
> > thousands of
> > > > users.
> > >
> > > I have to admit that I am not an expert in j2ee compliancy. But I
> > would
> > like
> > > to learn about it. If a database (I consder Lucene as a database)
> > really
> > has
> > > to be initialized for every read-access, than there is a problem
> > with j2ee
> > > compliancy. I cannot believe that this is really true.
> > >
> > > LET ME STATE AGAIN: You should not open a new IndexReader for every
> > > search/query. If you do so you definitely have a performance
> > problem
> > > independently from synchronization!!!!!!!!! Opening an IndexReader
> > is
> > > much more expensive than any individual query/search.
> > >
> > > You need a commit.lock for opening an IndexReader not because
> > IndexReader
> > > has delete functionality. You need it because if there is some
> > process
> > > writing to your index, your index may be in an inconsistent state.
> > An
> > existing
> > > commit.lock indicates such an inconsistent state. Therefore, every
> > writer
> > needs
> > > a commit.lock while committing, and every reader needs a
> > commit.lock while
> > > opening an index.
> > >
> > > Christoph
> > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


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

Reply via email to