vcrfxia opened a new pull request, #13142:
URL: https://github.com/apache/kafka/pull/13142

   This PR refactors how the list of open iterators for RocksDB stores is 
managed. Prior to this PR, the `openIterators` list was passed into the 
constructor for the iterators themselves, allowing `RocksDbIterator.close()` to 
remove the iterator from the `openIterators` list. After this PR, the iterators 
themselves will not know about lists of open iterators. Instead, a generic 
close callback is exposed, and it's the responsibility of the store that 
creates a new iterator to set the callback on the iterator, to ensure that 
closing an iterator removes the iterator from the list of open iterators.
   
   This refactor is desirable because it enables more flexible iterator 
lifecycle management. Building on top of this, RocksDBStore is updated with an 
option to allow the user (i.e., the caller of methods such as `range()` and 
`prefixScan()` which return iterators) to pass a custom `openIterators` list 
for the new iterator to be stored in. This will allow for a new Segments 
implementation where multiple Segments can share the same RocksDBStore 
instance, while having each Segment manage its own open iterators. (See 
<follow-up PR link TBD> for more.)
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   


-- 
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: jira-unsubscr...@kafka.apache.org

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

Reply via email to