[ 
https://issues.apache.org/jira/browse/SOLR-374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12622430#action_12622430
 ] 

Yonik Seeley commented on SOLR-374:
-----------------------------------

You've involved yourself in one of the more complicated methods in Solr ;-)

- Latest patch has a new race condition: _searcher.incref() may be called after 
a final _searcher.decref() closes the searcher/reader.
- we shouldn't need to check if _searcher==null or not... there may be 
searchers open that have not yet been registered.
- if the reader from the *newest* searcher is equal to it's reopen, you return 
the registered searcher (which may actually be different from the newest 
searcher)
- returning a RefCounted<SolrIndexSearcher> immediately can expose it before it 
was supposed to be used (before warming has completed, etc)
- returning a RefCounted<SolrIndexSearcher> is not always the right thing to do 
- it depends on the parameters to the function.

There are really two different optimizations here:
1) call IndexReader.reopen() and share parts of the most recently opened 
IndexReader
2) if the IndexReader didn't change, avoid going through warming, autowarming, 
etc and just reuse the same searcher




> use IndexReader.reopen
> ----------------------
>
>                 Key: SOLR-374
>                 URL: https://issues.apache.org/jira/browse/SOLR-374
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Yonik Seeley
>         Attachments: SOLR-374.patch, SOLR-374.patch
>
>
> Take advantage of  IndexReader.reopen(): LUCENE-743

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to