msn-tldr opened a new pull request, #15493:
URL: https://github.com/apache/kafka/pull/15493

   NOTE this cherry-picks https://github.com/apache/kafka/pull/14522 into 3.7
   
   As this [JIRA](https://issues.apache.org/jira/browse/KAFKA-16226) explains, 
there is increased synchronization between application-thread, and the 
background thread as the background thread started to synchronized methods 
Metadata.currentLeader() in [original 
PR](https://github.com/apache/kafka/pull/14384). So this PR does the following 
changes
   1. Changes background thread, i.e. RecordAccumulator's partitionReady(), and 
drainBatchesForOneNode(), to not use `Metadata.currentLeader()`. Instead rely 
on `MetadataCache` that is immutable. So access to it is unsynchronized.
   2.  This PR repurposes `MetadataCache` as an immutable snapshot of Metadata. 
This is a wrapper around public `Cluster`. `MetadataCache`'s API/functionality 
should be extended for internal client usage Vs public `Cluster`. For example, 
this PR adds `MetadataCache.leaderEpochFor()`
   3. Rename `MetadataCache` to `MetadataSnapshot` to make it explicit its 
immutable.
   
   **Note both `Cluster` and `MetadataCache` are not syncronized, hence reduce 
synchronization from the hot path for high partition counts.**
   
   Reviewers: Jason Gustafson <ja...@confluent.io>
   
   *More detailed description of your change,
   if necessary. The PR title and PR message become
   the squashed commit message, so use a separate
   comment to ping reviewers.*
   
   *Summary of testing strategy (including rationale)
   for the feature or bug fix. Unit and/or integration
   tests are expected for any behaviour change and
   system tests should be considered for larger changes.*
   
   ### 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