[
https://issues.apache.org/jira/browse/LUCENE-1329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael McCandless updated LUCENE-1329:
---------------------------------------
Attachment: LUCENE-1329.patch
I took a first cut at creating an explicit read only IndexReader
(attached), which is an alternative to the first patch here.
I added "boolean readOnly" to 3 of the IndexReader open methods, and
created ReadOnlySegmentReader and ReadOnlyMultiSegmentReader. The
classes are trivial -- they subclass the parent and just override
acquireWriteLock (to throw an exception) and isDeleted.
reopen() also preserves readOnly-ness, and I fixed merging to open readOnly
IndexReaders.
bq. We could safely do this for a deleting-reader by pre-allocating the
BitVector objects, thus eliminating the possibility of a thread seeing a
partially constructed object.
I didn't do this one yet ... it makes me a bit nervous because it
means that people who just do IndexReader.open on an index with no
deletions pay the RAM cost upfront of allocating the BitVector.
Really, I think we want to default IndexReader.open to be
readOnly=true (which we can't do until 3.0) at which point doing the
above seems safer since you'd have to go out of your way to open a
non-readOnly IndexReader.
> Remove synchronization in SegmentReader.isDeleted
> -------------------------------------------------
>
> Key: LUCENE-1329
> URL: https://issues.apache.org/jira/browse/LUCENE-1329
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Index
> Affects Versions: 2.3.1
> Reporter: Jason Rutherglen
> Priority: Trivial
> Attachments: LUCENE-1329.patch, lucene-1329.patch
>
>
> Removes SegmentReader.isDeleted synchronization by using a volatile
> deletedDocs variable on Java 1.5 platforms. On Java 1.4 platforms
> synchronization is limited to obtaining the deletedDocs reference.
--
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]