mikemccand commented on a change in pull request #815: LUCENE-8213: Introduce 
Asynchronous Caching in LRUQueryCache
URL: https://github.com/apache/lucene-solr/pull/815#discussion_r328208409
 
 

 ##########
 File path: lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java
 ##########
 @@ -813,8 +881,28 @@ public BulkScorer bulkScorer(LeafReaderContext context) 
throws IOException {
 
       if (docIdSet == null) {
         if (policy.shouldCache(in.getQuery())) {
-          docIdSet = cache(context);
-          putIfAbsent(in.getQuery(), docIdSet, cacheHelper);
+          boolean performSynchronousCaching = !(executor != null);
+          // If asynchronous caching is requested, perform the same and return
+          // the uncached iterator
+          if (!performSynchronousCaching) {
+            try {
+              cacheAsynchronously(context, cacheHelper);
+            } catch (RejectedExecutionException e) {
 
 Review comment:
   Hmm, can you shrink-wrap this exception handling?  I.e., handle it down in 
`cacheAsynchronously` where we ask the executor to execute the task, instead of 
up here?
   
   Maybe then return a `boolean` from `cacheAsynchronously` to know (here) if 
caller should then cache synchronously ...

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to