helix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Subbu (JIRA)" <j...@apache.org>
Subject [jira] [Reopened] (HELIX-631) AutoRebalanceStrategy does not work correctly all the time
Date Sat, 08 Apr 2017 14:41:41 GMT

     [ https://issues.apache.org/jira/browse/HELIX-631?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Subbu reopened HELIX-631:
-------------------------

The bug is not fully fixed. It does not work for this combination, for example. It assigns
only 2 replicas for partition 9. I tested it with helix-0.6.7. 
{code}
    final String resourceName = "something";
    final List<String> instanceNames = null; // Initialize to 6 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, instanceNames,
new HashMap<String, Map<String, String>>(0), new ClusterDataCache());
{code}

> 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
>             Fix For: 0.6.6
>
>
> 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.15#6346)

Mime
View raw message