kamalcph commented on code in PR #20706:
URL: https://github.com/apache/kafka/pull/20706#discussion_r2434544374
##########
core/src/main/scala/kafka/server/ReplicaManager.scala:
##########
@@ -1636,7 +1636,7 @@ class ReplicaManager(val config: KafkaConfig,
/**
* Process all remote fetches by creating async read tasks and handling them
in DelayedRemoteFetch collectively.
*/
- private def processRemoteFetches(remoteFetchInfos:
util.HashMap[TopicIdPartition, RemoteStorageFetchInfo],
+ private def processRemoteFetches(remoteFetchInfos:
util.LinkedHashMap[TopicIdPartition, RemoteStorageFetchInfo],
Review Comment:
1. Processing the partitions in the same order as client sent might address
starvation issues if any.
2. Also, if we want to introduce a dynamic broker config to switch between
single vs multi fetch to reduce the remote calls then the partitions need to be
processed in the same order.
### Case when single fetch is preferable than multi-fetch
When prefetch is not enabled and topic message-size is higher than the
consumer `max.partition.fetch.bytes`, then only first partition result gets
served. For rest of the partitions, we read the batch header, then fail-fast
but the number of remote read calls might be high.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]