You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "manpreet singh (JIRA)" <ji...@apache.org> on 2015/06/11 06:34:01 UTC

[jira] [Commented] (KAFKA-1792) change behavior of --generate to produce assignment config with fair replica distribution and minimal number of reassignments

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

manpreet singh commented on KAFKA-1792:
---------------------------------------

Integrated the patch and tested this new optimized reassignment of partitions. Working great!
I was wondering when generating or executing the plan if there's a way to fairly allocate leaders for each partition over the given broker-list.
I think as part of fair replica distribution over brokers we would also like to balance out the count of leaders over each broker to avoid overloading of one broker over the other. 
As of now for after re-partitioning the leader distribution doesn't seem to be balanced after running the above patch. 
Any suggestions on this? 

> change behavior of --generate to produce assignment config with fair replica distribution and minimal number of reassignments
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-1792
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1792
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: tools
>            Reporter: Dmitry Pekar
>            Assignee: Dmitry Pekar
>             Fix For: 0.8.3
>
>         Attachments: KAFKA-1792.patch, KAFKA-1792_2014-12-03_19:24:56.patch, KAFKA-1792_2014-12-08_13:42:43.patch, KAFKA-1792_2014-12-19_16:48:12.patch, KAFKA-1792_2015-01-14_12:54:52.patch, KAFKA-1792_2015-01-27_19:09:27.patch, KAFKA-1792_2015-02-13_21:07:06.patch, KAFKA-1792_2015-02-26_16:58:23.patch, generate_alg_tests.txt, rebalance_use_cases.txt
>
>
> Current implementation produces fair replica distribution between specified list of brokers. Unfortunately, it doesn't take
> into account current replica assignment.
> So if we have, for instance, 3 brokers id=[0..2] and are going to add fourth broker id=3, 
> generate will create an assignment config which will redistribute replicas fairly across brokers [0..3] 
> in the same way as those partitions were created from scratch. It will not take into consideration current replica 
> assignment and accordingly will not try to minimize number of replica moves between brokers.
> As proposed by [~charmalloc] this should be improved. New output of improved --generate algorithm should suite following requirements:
> - fairness of replica distribution - every broker will have R or R+1 replicas assigned;
> - minimum of reassignments - number of replica moves between brokers will be minimal;
> Example.
> Consider following replica distribution per brokers [0..3] (we just added brokers 2 and 3):
> - broker - 0, 1, 2, 3 
> - replicas - 7, 6, 0, 0
> The new algorithm will produce following assignment:
> - broker - 0, 1, 2, 3 
> - replicas - 4, 3, 3, 3
> - moves - -3, -3, +3, +3
> It will be fair and number of moves will be 6, which is minimal for specified initial distribution.
> The scope of this issue is:
> - design an algorithm matching the above requirements;
> - implement this algorithm and unit tests;
> - test it manually using different initial assignments;



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