You only have to create the deletion policy (merging uses it).

Mike

On Wed, Jan 20, 2010 at 11:27 AM, Sertic Mirko, Bedag
<mirko.ser...@bedag.ch> wrote:
> Ok, so does the merging go thru the IndexDeletionPolicy, or do I have to deal 
> with the MergePolicy to take care of merging?
>
> Regards
> Mirko
>
> -----Ursprüngliche Nachricht-----
> Von: Michael McCandless [mailto:luc...@mikemccandless.com]
> Gesendet: Mittwoch, 20. Januar 2010 17:12
> An: java-user@lucene.apache.org
> Betreff: Re: NFS, Stale File Handle Problem and my thoughts....
>
> Yes, normal merging will cause this problem as well.
>
> Generally you should always use IndexReader.reopen -- it gives much
> better reopen speed, less resources used, less GC, etc.
>
> Mike
>
> On Wed, Jan 20, 2010 at 10:49 AM, Sertic Mirko, Bedag
> <mirko.ser...@bedag.ch> wrote:
>> Mike
>>
>> Thank you so much for your feedback!
>>
>> Will the new IndexDeletionPolicy also be considered when segments are 
>> merged? Does merging also affect the NFS problem?
>>
>> Should I use IndexReader.reOpen() or just create a new IndexReader?
>>
>> Thanks in advance
>> Mirko
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Michael McCandless [mailto:luc...@mikemccandless.com]
>> Gesendet: Mittwoch, 20. Januar 2010 16:14
>> An: java-user@lucene.apache.org
>> Betreff: Re: NFS, Stale File Handle Problem and my thoughts....
>>
>> Right, it's only machine A that needs the deletion policy.  All
>> read-only machines just reopen on their schedule (or you can use some
>> communication means a Shai describes to have lower latency reopen
>> after the writer commits).
>>
>> Also realize that doing searching over NFS does not usually give very
>> good performance... (though I've heard that mounting read-only can
>> improve performance).
>>
>> Mike
>>
>> On Wed, Jan 20, 2010 at 9:05 AM, Sertic Mirko, Bedag
>> <mirko.ser...@bedag.ch> wrote:
>>> Hi Mike
>>>
>>> Thank you for your feedback!
>>>
>>> So I would need the following setup:
>>>
>>> a) Machine A with custom IndexDeletionPolicy and single IndexReader instance
>>> b) Machine B with custom IndexDeletionPolicy and single IndexReader instance
>>> c) Machine A and B periodically check if the index needs to be reopened, at 
>>> least at 12 o'clock
>>> d) Machine A runs an Index update and optimization at 8 o'clock, using the 
>>> IndexDeletionPolicy. The IndexDeletionPolicy keeps track of the files to be 
>>> deleted.
>>> e) On Machine A, the no longer needed files are taken from the 
>>> IndexDeletionPolicy, and deleted at 12:30. At this point the files to be 
>>> deleted should no longer be required by any IndexReader and can be safely 
>>> deleted.
>>>
>>> So the IndexDeletionPolicy should be a kind of Singleton, and in fact would 
>>> only be needed on Machine A, as only here index modifications are made. 
>>> Machine B has read only access.
>>>
>>> Would this be a valid setup? The only limitation is there is only ONE 
>>> IndexWriter box, and multiple IndexReader boxes. Based on our requirements, 
>>> this should fix very well. I really want to avoid some kind of index 
>>> replication between the boxes...
>>>
>>> Regards
>>> Mirko
>>>
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Michael McCandless [mailto:luc...@mikemccandless.com]
>>> Gesendet: Mittwoch, 20. Januar 2010 14:45
>>> An: java-user@lucene.apache.org
>>> Betreff: Re: NFS, Stale File Handle Problem and my thoughts....
>>>
>>> Right, you just need to make a custom IndexDeletionPolicy.  NFS makes
>>> no effort to protect deletion of still-open files.
>>>
>>> A simple approach is one that only deletes a commit if it's more than
>>> XXX minutes/hours old, such that XXX is set higher than the frequency
>>> that IndexReaders are guaranteed to have reopened.
>>>
>>> The TestDeletionPolicy unit test in Lucene's sources has the
>>> ExperiationTimeDeletionPolicy that you can use (but scrutinize!).
>>>
>>> Another alternative is to simply reopen the reader whenever you hit
>>> Stale file handle (think of it as NFS's means of notifying you that
>>> your reader is no longer current ;) ).  But, if reopen time is
>>> potentially long for your app, it's no good to make queries pay that
>>> cost and the deletion policy is better.
>>>
>>> Mike
>>>
>>> On Wed, Jan 20, 2010 at 8:29 AM, Sertic Mirko, Bedag
>>> <mirko.ser...@bedag.ch> wrote:
>>>> h...@all
>>>>
>>>>
>>>>
>>>> We are using Lucene 2.4.1 on Debian Linux with 2 boxes. The index is
>>>> stored on a common NFS share. Every box has a single IndexReader
>>>> instance, and one Box has an IndexWriter instance, adding new documents
>>>> or deleting existing documents at a given point in time. After adding or
>>>> deleting the documents, a IndexWriter.optimize() is called. Every box
>>>> checks periodically with IndexReader.isCurrent if the index needs to be
>>>> reopened.
>>>>
>>>>
>>>>
>>>> Now, we are encountering a "Stale file handle" error on box b after the
>>>> index was modified and optimized by box a.
>>>>
>>>>
>>>>
>>>> As far as i understand the problem with NFS is that box b tries to
>>>> open/access a file that was deleted by box a on the NFS share.
>>>>
>>>>
>>>>
>>>> The question is now, when are files deleted? Does only the index
>>>> optimization delete files, or can files be deleted just by adding or
>>>> removing documents from an existing index?
>>>>
>>>>
>>>>
>>>> I now that there might be a better setup with Lucene and index
>>>> replication, but this is an existing application and we cannot change
>>>> the architecture now. So what would be the best solution?
>>>>
>>>>
>>>>
>>>> Can I just "change" the way Lucene deletes files? I think that just
>>>> renaming no longer needed files would be good on NFS. After every
>>>> IndexReader has reopened the index, the renamed files can be safely
>>>> deleted, as they are definitely no longer needed. Where would be the
>>>> hook point? I heard something about IndexDeletionPolicy....
>>>>
>>>>
>>>>
>>>> Thanks in advance!
>>>>
>>>>
>>>>
>>>> Mirko
>>>>
>>>>
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> 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
>>
>>
>
> ---------------------------------------------------------------------
> 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
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to