benwtrent commented on code in PR #13306:
URL: https://github.com/apache/lucene/pull/13306#discussion_r1574674149


##########
lucene/core/src/java/org/apache/lucene/search/LRUQueryCache.java:
##########
@@ -177,7 +180,6 @@ public boolean test(LeafReaderContext context) {
    * @lucene.experimental
    */
   protected void onHit(Object readerCoreKey, Query query) {
-    assert lock.isHeldByCurrentThread();

Review Comment:
   It seems to me that the accuracy `hitCount` and `missCount` is now broken 
with this structure.
   
   The volatile parameters can now be updated by more than one read-thread at a 
time, thus adding race conditions to their increments. 
   
   I do not think we want to add this level of uncertainty to cache statistics. 
   
   What happens to performance if you adjust `missCount` and `hitCount` to be 
`LongAdder` objects? This way the statistics are only locked when read, but 
still allows multiple lockless thread updates?



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

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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

Reply via email to