[ https://issues.apache.org/jira/browse/KAFKA-4677?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15847997#comment-15847997 ]
ASF GitHub Bot commented on KAFKA-4677: --------------------------------------- Github user asfgit closed the pull request at: https://github.com/apache/kafka/pull/2429 > Avoid unnecessary task movement across threads during rebalance > --------------------------------------------------------------- > > Key: KAFKA-4677 > URL: https://issues.apache.org/jira/browse/KAFKA-4677 > Project: Kafka > Issue Type: Bug > Components: streams > Affects Versions: 0.10.2.0 > Reporter: Damian Guy > Assignee: Damian Guy > Fix For: 0.10.3.0 > > > StreamPartitionAssigner tries to follow a sticky assignment policy to avoid > expensive task migration. Currently, it does this in a best-effort approach. > We could observe a case, for which tasks did migrate for no good reason, thus > we assume that the current implementation could be improved to be more sticky. > The concrete scenario is as follows: > assume we have topology with 3 tasks, A, B, C > assume we have 3 threads, each executing one task: 1-A, 2-B, 3-C > for some reason, thread 1 goes down and a rebalance gets triggered > thread 2 and 3 get their partitions revoked > sometimes (not sure what the exact condition for this is), the new assignment > flips the assignment for task B and C (task A is newly assigned to either > thread 2 or 3) > > possible new assignment 2(A,C) and 3-B > There is no obvious reason (like load-balancing) why the task assignment for > B and C does change to the other thread resulting in unnecessary task > migration. -- This message was sent by Atlassian JIRA (v6.3.15#6346)