Dimitar Dimitrov created KAFKA-18583:
----------------------------------------

             Summary: Improve/fix 
KRaftMetadataCache.getPartitionReplicaEndpoints
                 Key: KAFKA-18583
                 URL: https://issues.apache.org/jira/browse/KAFKA-18583
             Project: Kafka
          Issue Type: Task
          Components: core
    Affects Versions: 3.8.1, 3.7.2, 3.9.0
            Reporter: Dimitar Dimitrov
            Assignee: Dimitar Dimitrov


The {{KRaftMetadataCache.getPartitionReplicaEndpoints}} method, called when a 
replica selector is being used (e.g. for Fetch From Follower), currently takes 
a single {{TopicPartition}} for which to calculate node endpoints per replica 
ID, but then goes on to process all the partitions of the topic. As a result it 
seems to both calculate endpoints which are not relevant for the given 
partition and to recalculate the relevant endpoints multiple times as replicas 
of many different partitions.

This could be very detrimental to performance if it touches topics with larger 
number of partitions.

Unlike its KRaft counterpart, {{ZkMetadataCache.getPartitionReplicaEndpoints}} 
seems to do the right thing, processing only the partition info of the given 
partition. Also the problem doesn't seem to be a recent regression - it looks 
like it was present in the original form of {{KRaftMetadataCache}} introduced 
more than 3 years ago.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to