[ 
https://issues.apache.org/jira/browse/LUCENE-1720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12833845#action_12833845
 ] 

Shai Erera commented on LUCENE-1720:
------------------------------------

bq. most reader-wrappers would use this as a base class?

In my understanding it should be. I've started making this change, and 
TimeLimitingIndexReader does not need for example to override 
getUniqueTermCount or other such methods which are passed blindly to the 
wrapped reader. I think it makes sense to request that a wrapping reader should 
sub-class FilterIndexReader.

Of course, because of the semantics of the various reopen methods, it is not 
enough to provide one impl in FilterIndexReader and rely on that in 
sub-classes, because they need to wrap the reader with themselves as a new 
instance (I BTW found and fixed a bug in TimeLimitingIndexReader.reopen which 
returned the wrapped reopened instance if it wasn't changed, instead of 
itself). We can get over that by offering a protected 
getNewInstance(IndexReader) which will be overridden by sub-classes ...

> TimeLimitedIndexReader and associated utility class
> ---------------------------------------------------
>
>                 Key: LUCENE-1720
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1720
>             Project: Lucene - Java
>          Issue Type: New Feature
>          Components: Index
>            Reporter: Mark Harwood
>            Assignee: Mark Harwood
>            Priority: Minor
>         Attachments: ActivityTimedOutException.java, 
> ActivityTimeMonitor.java, ActivityTimeMonitor.java, ActivityTimeMonitor.java, 
> Lucene-1720.patch, Lucene-1720.patch, LUCENE-1720.patch, 
> TestTimeLimitedIndexReader.java, TestTimeLimitedIndexReader.java, 
> TimeLimitedIndexReader.java, TimeLimitedIndexReader.java
>
>
> An alternative to TimeLimitedCollector that has the following advantages:
> 1) Any reader activity can be time-limited rather than just single searches 
> e.g. the document retrieve phase.
> 2) Times out faster (i.e. runaway queries such as fuzzies detected quickly 
> before last "collect" stage of query processing)
> Uses new utility timeout class that is independent of IndexReader.
> Initial contribution includes a performance test class but not had time as 
> yet to work up a formal Junit test.
> TimeLimitedIndexReader is coded as JDK1.5 but can easily be undone.

-- 
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-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to