[prev in list] [next in list] [prev in thread] [next in thread]
List: lucene-dev
Subject: [jira] Commented: (LUCENE-1314) IndexReader.reopen(boolean force)
From: "Michael McCandless (JIRA)" <jira () apache ! org>
Date: 2008-06-29 9:51:45
Message-ID: 603629813.1214733105331.JavaMail.jira () brutus
[Download RAW message or body]
[ https://issues.apache.org/jira/browse/LUCENE-1314?page=com.atlassian.jira.plugin \
.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609072#action_12609072 ]
Michael McCandless commented on LUCENE-1314:
--------------------------------------------
bq. It is possible to have SegmentReader implement if deletes occur to an earlier \
IndexReader and a flush is tried it fails, rather than fail in a newer IndexReader \
like it would now. This would require keeping track of later IndexReaders which is \
something Ocean does outside of IndexReader.
I think this is tricky, since SegmentReader doesn't explicitly track whether there is \
a "cloned" reader out there. As things stand now, there is no such thing as a cloned \
reader, and so the only way that another SegmentReader is out there is if there have \
been commits to the index, in which case isCurrent() returns false and the old reader \
will not allow deletes to be performed. I suppose we could look at the refCount of \
the IndexReader: any reader that has been cloned and not yet closed will have a \
refCount > 1, whereas the last reader returned from a clone() call will have refCount \
1.
So unless we try to track this, when there are N clones out there, any one of them \
will be allowed to grab the write lock when a change (deletion or setNorm) is \
attempted, thus preventing all the other clones (and all readers open on previous \
commits) from making changes.
> IndexReader.reopen(boolean force)
> ---------------------------------
>
> Key: LUCENE-1314
> URL: https://issues.apache.org/jira/browse/LUCENE-1314
> Project: Lucene - Java
> Issue Type: New Feature
> Components: Index
> Affects Versions: 2.3.1
> Reporter: Jason Rutherglen
> Assignee: Michael McCandless
> Priority: Minor
> Attachments: lucene-1314.patch, lucene-1314.patch, lucene-1314.patch
>
>
> Based on discussion http://www.nabble.com/IndexReader.reopen-issue-td18070256.html. \
> The problem is reopen returns the same reader if there are no changes, so if docs \
> are deleted from the new reader, they are also reflected in the previous reader \
> which is not always desired behavior.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic