[ https://issues.apache.org/jira/browse/HELIX-631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15531492#comment-15531492 ]
ASF GitHub Bot commented on HELIX-631: -------------------------------------- Github user lei-xia commented on a diff in the pull request: https://github.com/apache/helix/pull/52#discussion_r81051293 --- Diff: helix-core/src/main/java/org/apache/helix/controller/rebalancer/strategy/AutoRebalanceStrategy.java --- @@ -129,9 +129,8 @@ public ZNRecord computePartitionAssignment(final List<String> allNodes, final Li logger.info("orphan = " + _orphaned); } - moveNonPreferredReplicasToPreferred(); - assignOrphans(); + moveNonPreferredReplicasToPreferred(); --- End diff -- Because assignOrphans() will also assign some new partitions to non-preferred nodes. > AutoRebalanceStrategy does not work correctly all the time > ---------------------------------------------------------- > > Key: HELIX-631 > URL: https://issues.apache.org/jira/browse/HELIX-631 > Project: Apache Helix > Issue Type: Bug > Reporter: Subbu > Assignee: Lei Xia > > I have 16 partitions, 3 replicas each, and 4 instances to distribute these > on. The auto-rebalancer assigns only 2 replicas for one of the partitions. > Here is the code snippet to reproduce the problem > {code} > final String resourceName = "something"; > final List<String> instanceNames = null; // Initialize to 4 unique strings > final int nReplicas = 3; > List<String> partitions = new ArrayList<>(nPartitions); > for (int i = 0; i < nPartitions; i++) { > partitions.add(Integer.toString(i)); > } > LinkedHashMap<String, Integer> states = new LinkedHashMap<>(2); > states.put("OFFLINE", 0); > states.put("ONLINE", nReplicas); > AutoRebalanceStrategy strategy = new AutoRebalanceStrategy(resourceName, > partitions, states); > ZNRecord znRecord = strategy.computePartitionAssignment(instanceNames, > new HashMap<String, Map<String, String>>(0), instanceNames); > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)