Remove write access from SegmentReader and possibly move to separate class or 
IndexWriter/BufferedDeletes/...
-------------------------------------------------------------------------------------------------------------

                 Key: LUCENE-3631
                 URL: https://issues.apache.org/jira/browse/LUCENE-3631
             Project: Lucene - Java
          Issue Type: Task
          Components: core/index
    Affects Versions: 4.0
            Reporter: Uwe Schindler


After LUCENE-3606 is finished, there are some TODOs:

SegmentReader still contains (package-private) all delete logic including crazy 
copyOnWrite for validDocs Bits. It would be good, if SegmentReader itsself 
could be read-only like all other IndexReaders.

There are two possibilities to do this:
# the simple one: Subclass SegmentReader and make a RWSegmentReader that is 
only used by IndexWriter/BufferedDeletes/... DirectoryReader will only use the 
read-only SegmentReader. This would move all TODOs to a separate class. It's 
reopen/clone method would always create a RO-SegmentReader (for NRT).
# Remove all write and commit stuff from SegmentReader completely and move it 
to IndexWriter's readerPool (it must be in readerPool as deletions need a 
not-changing view on an index snapshot).

Unfortunately the code is so complicated and I have no real experience in those 
internals of IndexWriter so I did not want to do it with LUCENE-3606, I just 
separated the code in SegmentReader and marked with TODO. Maybe Mike McCandless 
can help :-)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

Reply via email to