[
https://issues.apache.org/jira/browse/LUCENE-1314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12610303#action_12610303
]
Jason Rutherglen commented on LUCENE-1314:
------------------------------------------
There are really only two options here and perhaps this API will work.
// true makes a copy of the data structure always, while false passes the
reference if the data structure is read only or makes a copy if it is
writeable.
IndexReader.getCopy(boolean normsWriteable, boolean deletesWriteable)
IndexReader.getCopyReadOnly() // defaults to getCopy(false, false)
Clone can be removed or default to getCopy(true, true). The current APIs
default to getCopy(true, true). It is good to make this explicit here so that
the deletedDocs or norms cannot be changed later when it is the clear intention
of the code. It is no different than RandomAccessFile(file, "r") and
RandomAccessFile(file, "rw")
Lucene is supposed to be designed for fast reads at the expense of writes, no?
This code in SegmentReader with the deletedDocs and norms synchronization goes
against that. I think it is important to figure out a solution to give users
the option of removing synchronization in SegmentReader, users who are willing
to give up a little bit in memory (norms or deletedDocs don't use very much
anyways).
> copy-on-write approach
Is the problem with isDeleted now. The
java.util.concurrent.CopyOnWriteArrayList for example uses a volatile list and
synchronized update methods. Which will not work because of JDK1.4.
> driver for checking on commit
Yes, it is more of an assertion, it can be performed in Ocean as well.
> 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,
> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]