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

Allen Wang commented on KAFKA-2106:
-----------------------------------

I am curious in the following code why there is a restriction that partitions 
should have no more than 3 replicas and every partition has the same number or 
replicas. It is possible that different topic has different number of replicas 
given different requirement of availability.

{code}
  def filterValidTopicAssignment() = {
    val groupedByTopic = allTopicsAssignment.groupBy(tp => tp._1.topic)
    /**
     * check replicas:
     * replicas amount should be more than 0 and less than 3
     * all partitions should have the same amount of replicas
     *
     */
    var validTopicAssignment = groupedByTopic.filter(
      t => {
        t._2.head._2.size > 0 && t._2.head._2.size < 3 && t._2.values.map(seq 
=> seq.length).toSet.size == 1
      }
    )

    if(includeTopicSet.size != 0) {
      validTopicAssignment = validTopicAssignment.filter(topicInfo => 
includeTopicSet.contains(topicInfo._1))
    }

    if(excludeTopicSet.size != 0) {
      validTopicAssignment = validTopicAssignment.filter(topicInfo => (! 
excludeTopicSet.contains(topicInfo._1)))
    }

    validTopicAssignment
  }
{code}

> Partition balance tool between borkers
> --------------------------------------
>
>                 Key: KAFKA-2106
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2106
>             Project: Kafka
>          Issue Type: New Feature
>          Components: admin
>    Affects Versions: 0.8.3
>            Reporter: chenshangan
>         Attachments: KAFKA-2106.3, KAFKA-2106.patch, KAFKA-2106.patch.2
>
>
> The default partition assignment algorithm can work well in a static kafka 
> cluster(number of brokers seldom change). Actually, in production env, number 
> of brokers is always increasing according to the business data. When new 
> brokers added to the cluster, it's better to provide a tool that can help to 
> move existing data to new brokers. Currently, users need to choose topic or 
> partitions manually and use the Reassign Partitions Tool 
> (kafka-reassign-partitions.sh) to achieve the goal. It's a time-consuming 
> task when there's a lot of topics in the cluster.



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

Reply via email to