helix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zhen Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HELIX-547) AutoRebalancer may not converge in some rare situation
Date Tue, 17 Mar 2015 21:45:39 GMT

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

Zhen Zhang updated HELIX-547:
-----------------------------
    Affects Version/s:     (was: 0.6.x)
                       0.6.4

> AutoRebalancer may not converge in some rare situation
> ------------------------------------------------------
>
>                 Key: HELIX-547
>                 URL: https://issues.apache.org/jira/browse/HELIX-547
>             Project: Apache Helix
>          Issue Type: Bug
>    Affects Versions: 0.6.4
>            Reporter: Zhen Zhang
>            Assignee: Zhen Zhang
>             Fix For: 0.6.5
>
>
> We discovered that AutoRebalancer may not converge to a stable mapping in some rare situation.
Assume we have a DB with 1024 partitions; using LeaderStandby state model; replica is 1; 6
nodes which are all alive. The current mapping is:
> {noformat}
> ...
> MyDB_873={localhost_5=LEADER}
> ...
> {noformat}
> Given:
> {noformat}
> allNodes=allLiveNodes={localhost_0, ..., localhost_5}
> stateCountMap: {LEADER=1, STANDBY=0}
> capacity: 2147483647
> {noformat}
> AutoRebalanceStrategy#computePartitionAssignment will output new mapping:
> {noformat}
> ...
> MyDB_873={localhost_1=LEADER}
> ...
> {noformat}
> Then Helix controller will send LEADER->STANDBY to localhost_5, and OFFLINE->STANDBY
to localhost_1, so next time when auto rebalancer is triggered, the current mapping becomes:
> {noformat}
> ...
> MyDB_873={localhost_5=STANDBY, localhost_1=STANDBY}
> ...
> {noformat}
> In this case, AutoRebalanceStrategy#computePartitionAssignment will output new mapping:
> {noformat}
> ...
> MyDB_873={localhost_5=LEADER}
> ...
> {noformat}
> Thus AutoRebalanceStrategy#computePartitionAssignment keeps assign localhost_1 and localhost_5
to MyDB_873 alternatively without converging to a stable mapping.



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

Mime
View raw message