[ https://issues.apache.org/jira/browse/KAFKA-17804?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17893352#comment-17893352 ]
kangning.li commented on KAFKA-17804: ------------------------------------- hello [~junrao] Currently, about the fetch purgatory, the logic of "make follower" is as follows: * CASE 1: If the current replica is follower, and the leader replica id does not change, indicate that current replica state is already correct and the become-follower steps can be skipped. * CASE 2: If not, it will trigger the purgatory check. In CASE 2: # If fetch from follower, it will check the "delay fetch purgatory" to make the request fail fast. # If fetch from consumer # If client configuration item "client.rack" is set, that means requests can be pulled from follower, the "delay fetch purgatory" will NOT be triggered # If not, that means requests must be pulled from leader, it will check the "delay fetch purgatory" to make the request fail fast So I think current logic is correct, maybe it doesn't need to be adjusted. WDYT ? :) > optimize ReplicaManager.completeDelayedOperationsWhenNotPartitionLeader > ----------------------------------------------------------------------- > > Key: KAFKA-17804 > URL: https://issues.apache.org/jira/browse/KAFKA-17804 > Project: Kafka > Issue Type: Improvement > Components: core > Reporter: Jun Rao > Assignee: kangning.li > Priority: Minor > > Currently, ReplicaManager.completeDelayedOperationsWhenNotPartitionLeader is > called when (1) a replica is removed from the broker and (2) a replica > becomes a follower replica and it checks the completion of multiple > purgatories. However, not all purgatories need to be checked in both > situations. For example, the fetch purgatory doesn't need to be checked in > case (2) since we support fetch from follower now. -- This message was sent by Atlassian Jira (v8.20.10#820010)