grcevski opened a new pull request #596:
URL: https://github.com/apache/lucene/pull/596


   # Description
   
   To support building long-lived readers without IndexReader to delegate 
caching to, it would be beneficial to refactor 
SoftDeletesDirectoryReaderWrapper, such that its caching behaviour 
(DelegatingCacheHelper) is moved into the superclass FilterDirectoryReader.
   
   With this change, external implementations of such readers, e.g. 
[LazySoftDeletesDirectoryReaderWrapper in 
Elasticsearch](https://github.com/elastic/elasticsearch/blob/master/server/src/main/java/org/apache/lucene/index/LazySoftDeletesDirectoryReaderWrapper.java)
 could properly modularize their codebase and remove split packages.
   
   # Solution
   
   The solution proposed here moves the delegating CacheHelper implementation 
from SoftDeletesDirectoryReaderWrapper to the superclass, so that it can be 
used by other subclasses.
   
   An alternative approach could possibly be a new public class specialization 
of the FilterDirectoryReader, which brings in the DelegatingCacheHelper class 
and enforces the caching behaviour.
   
   # Tests
   
   I added the following unit tests for the moved DelegatingCacheHelper class:
   - Tests that ensure the DelegatingCacheHelper is using unique CacheKey
   - Tests that ensure that, when the onClose listener is invoked on the 
delegate, the correct CacheKey is used to invalidate the cache.
   
   # Checklist
   
   Please review the following and check all that apply:
   
   - [X] I have reviewed the guidelines for [How to 
Contribute](https://wiki.apache.org/lucene/HowToContribute) and my code 
conforms to the standards described there to the best of my ability.
   - [X] I have created a Jira issue and added the issue ID to my pull request 
title.
   - [X] I have given Lucene maintainers 
[access](https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork)
 to contribute to my PR branch. (optional but recommended)
   - [X] I have developed this patch against the `main` branch.
   - [X] I have run `./gradlew check`.
   - [X] I have added tests for my changes.
   


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