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]
