sgup432 opened a new pull request, #15558:
URL: https://github.com/apache/lucene/pull/15558

   ### Description
   
   Related issue - https://github.com/apache/lucene/issues/14222
   
   Major changes:
   
   - Divided the cache into partitions(16 by default and configurable). With 
each partition having its own read/write lock to improve concurrency.
   - Change the cache <key, value> structure from `Map<Segment, Map<Query, 
DocIdSet>>` to `Map<<Query, Segment>, DocIdSet>`. This was done so that a cache 
key is efficiently mapped to a specific partition.
   - Cache clean up of stale keys(segment, queries) now happen in 
asynchronously in the background. Users have a way to pass a scheduledExceutor 
which can be used to run the background maintenance work.
   - Made putIfAbsent(), and get() public so that they can be overridden if 
necessary. Also to help benchmark these in isolation for performance
   - Added JMH benchmark. With zipf/uniform distribution and 
put/get/invalidation tested.
   <!--
   If this is your first contribution to Lucene, please make sure you have 
reviewed the contribution guide.
   https://github.com/apache/lucene/blob/main/CONTRIBUTING.md
   -->
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to