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

Atri Sharma commented on LUCENE-8213:
-------------------------------------

[~jpountz] Good catch, My understanding was that the cache was always per 
segment, so just using the query as a cache key should be fine. Thanks for 
highlighting this issue.

Should I revert this commit?

 

Would using the incoming LeafReaderContext's top level ord + the query's key as 
the key in inFlightAsyncLoadQueries suffice to ensure that segments get their 
independent space in the cache?

 

RE: Thread#sleep, I agree that it is not a pretty pattern. Maybe replacing a 
CountDownLatch will work?

> Cache costly subqueries asynchronously
> --------------------------------------
>
>                 Key: LUCENE-8213
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8213
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: core/query/scoring
>    Affects Versions: 7.2.1
>            Reporter: Amir Hadadi
>            Priority: Minor
>              Labels: performance
>          Time Spent: 9h 40m
>  Remaining Estimate: 0h
>
> IndexOrDocValuesQuery allows to combine costly range queries with a selective 
> lead iterator in an optimized way. However, the range query at some point 
> gets cached by a querying thread in LRUQueryCache, which negates the 
> optimization of IndexOrDocValuesQuery for that specific query.
> It would be nice to see an asynchronous caching implementation in such cases, 
> so that queries involving IndexOrDocValuesQuery would have consistent 
> performance characteristics.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to