lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hoss Man (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-986) Refactor segmentInfos from IndexReader into its subclasses
Date Thu, 30 Aug 2007 06:14:32 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12523774
] 

Hoss Man commented on LUCENE-986:
---------------------------------

i rarely remember a week later what i was thinking when i wrote something, but i suspect that
when i suggested the DirectoryIndexReader i was assuming it would have everything directory/lock
related thta currently exists in the IndexReader base class (including the directoryOwner
boolean) ... in cases where there is a single Segment in a directory, there will be SegmentReader
with directoryOwner==true ... in the multi segment cases, the MultiSegmentReader will have
directoryOwner==true, and it's sub SegmentReaders will all have directoryOwner==false. ...

...the key point of DirectoryIndexReader being that any subclass *can* own a directory (and
automaticly inherits all the code for dealing with locks properly when it needs/wants to)
but doesn't always *have* to own the directory.  meanwhile MultiReader (and ParallelIndexReader
and FilteredIndexReader) make no attempt at owning a directory, and inherit no code for doing
so (or for dealing with the locking of such non existent directories)

I don't really know enough about the performance characteristics of SegmentReader vs a MultiSegmentReader
of one segment to have a sense of how possible/practical it would be to eliminate the need
for SegmentReader and replace it completely with MultiSegmentReader ... 

one hitch might be that SegmentReader.get is public, and in order to keep supporting it, SegmentReader
still needs to have/inherit the same segment info and directory owning/locking code that we
want to move out of IndexReader (so just putting it MultiSegmentReader won't fly unless we
kill that public method)

> Refactor segmentInfos from IndexReader into its subclasses
> ----------------------------------------------------------
>
>                 Key: LUCENE-986
>                 URL: https://issues.apache.org/jira/browse/LUCENE-986
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>            Reporter: Michael Busch
>            Assignee: Michael Busch
>            Priority: Minor
>             Fix For: 2.3
>
>
> References to segmentInfos in IndexReader cause different kinds of problems
> for subclasses of IndexReader, like e. g. MultiReader.
> Only subclasses of IndexReader that own the index directory, namely 
> SegmentReader and MultiSegmentReader, should have a SegmentInfos object
> and be able to access it.
> Further information:
> http://www.gossamer-threads.com/lists/lucene/java-dev/51808
> http://www.gossamer-threads.com/lists/lucene/java-user/52460
> A part of the refactoring work was already done in LUCENE-781

-- 
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


Mime
View raw message