[
https://issues.apache.org/jira/browse/LUCENE-1516?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Rutherglen updated LUCENE-1516:
-------------------------------------
Attachment: LUCENE-1516.patch
- Added segmentReaders, segmentReaderClone to MergePolicy.OneMerge
- mergeFinish decRefs the OneMerge.segmentReaders
- _mergeInit clones segmentreaders
- commitMergedDeletes uses OneMerge.segmentReaders instead of loading
bitvectors from the directory
- testAddIndexesAndDoDeletesThreads fails with 20 less documents (80 vs 100)
(an index that was supposed to be added isn't showing up)
- Getting exceptions from org.apache.lucene.TestSnapshotDeletionPolicy, such as:
{code}
Caused by: java.io.IOException: read past EOF
[junit] at
org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:135)
[junit] at
org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:92)
[junit] at
org.apache.lucene.store.IndexOutput.copyBytes(IndexOutput.java:172)
[junit] at
org.apache.lucene.index.TermVectorsWriter.addRawDocuments(TermVectorsWriter.java:185)
[junit] at
org.apache.lucene.index.SegmentMerger.mergeVectors(SegmentMerger.java:447)
[junit] at
org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:145)
[junit] at
org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4823)
[junit] at
org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4408)
[junit] at
org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:218)
[junit] at
org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:274)
{code}
> Integrate IndexReader with IndexWriter
> ---------------------------------------
>
> Key: LUCENE-1516
> URL: https://issues.apache.org/jira/browse/LUCENE-1516
> Project: Lucene - Java
> Issue Type: Improvement
> Affects Versions: 2.4
> Reporter: Jason Rutherglen
> Assignee: Michael McCandless
> Priority: Minor
> Fix For: 2.9
>
> Attachments: LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch,
> LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch,
> LUCENE-1516.patch, LUCENE-1516.patch
>
> Original Estimate: 672h
> Remaining Estimate: 672h
>
> The current problem is an IndexReader and IndexWriter cannot be open
> at the same time and perform updates as they both require a write
> lock to the index. While methods such as IW.deleteDocuments enables
> deleting from IW, methods such as IR.deleteDocument(int doc) and
> norms updating are not available from IW. This limits the
> capabilities of performing updates to the index dynamically or in
> realtime without closing the IW and opening an IR, deleting or
> updating norms, flushing, then opening the IW again, a process which
> can be detrimental to realtime updates.
> This patch will expose an IndexWriter.getReader method that returns
> the currently flushed state of the index as a class that implements
> IndexReader. The new IR implementation will differ from existing IR
> implementations such as MultiSegmentReader in that flushing will
> synchronize updates with IW in part by sharing the write lock. All
> methods of IR will be usable including reopen and clone.
--
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]