[ 
https://issues.apache.org/jira/browse/KAFKA-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14361424#comment-14361424
 ] 

Joel Koshy commented on KAFKA-2019:
-----------------------------------

When the round-robin assignor was done, I think we had considered this as well 
- although it has been a while I cannot remember all the details, but I think 
it did not actually do consistently well in simulations:
https://issues.apache.org/jira/browse/KAFKA-687?focusedCommentId=14077480&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14077480

This is a minor change, but potentially backwards incompatible. i.e., if you 
were to roll out this change to a few consumer instances running in production 
under a consumer group, they would run into rebalance failures (since the 
global assignment results will be different between the instances that have 
been upgraded and the ones that are not).

> RoundRobinAssignor clusters by consumer
> ---------------------------------------
>
>                 Key: KAFKA-2019
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2019
>             Project: Kafka
>          Issue Type: Bug
>          Components: consumer
>            Reporter: Joseph Holsten
>            Assignee: Neha Narkhede
>            Priority: Minor
>         Attachments: 0001-sort-consumer-thread-ids-by-hashcode.patch, 
> KAFKA-2019.patch
>
>
> When rolling out a change today, I noticed that some of my consumers are 
> "greedy", taking far more partitions than others.
> The cause is that the RoundRobinAssignor is using a list of ConsumerThreadIds 
> sorted by toString, which is {{ "%s-%d".format(consumer, threadId)}}. This 
> causes each consumer's threads to be adjacent to each other.
> One possible fix would be to define ConsumerThreadId.hashCode, and sort by 
> that.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to