You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by "Kanak Biscuitwala (JIRA)" <ji...@apache.org> on 2013/08/02 19:27:49 UTC

[jira] [Comment Edited] (HELIX-151) Auto rebalance doesn't assign some replicas when other nodes could make room

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

Kanak Biscuitwala edited comment on HELIX-151 at 8/2/13 5:26 PM:
-----------------------------------------------------------------

The fix is attached.

As the description states, there are two types of nodes: donors and acceptors. A donor has a free unit of capacity because it was assigned ceiling capacity while the acceptor is full because it was assigned floor capacity, but could otherwise accept the replica. Thus, a unit of capacity is moved from the donor to the acceptor and the replica is assigned to the acceptor.

Code review: https://reviews.apache.org/r/13209
                
      was (Author: kanak):
    The fix is attached.

As the description states, there are two types of nodes: donors and acceptors. A donor has a free unit of capacity because it was assigned ceiling capacity while the acceptor is full because it was assigned floor capacity, but could otherwise accept the replica. Thus, a unit of capacity is moved from the donor to the acceptor and the replica is assigned to the acceptor.
                  
> Auto rebalance doesn't assign some replicas when other nodes could make room
> ----------------------------------------------------------------------------
>
>                 Key: HELIX-151
>                 URL: https://issues.apache.org/jira/browse/HELIX-151
>             Project: Apache Helix
>          Issue Type: Bug
>          Components: helix-core
>            Reporter: Kanak Biscuitwala
>            Assignee: Kanak Biscuitwala
>            Priority: Minor
>         Attachments: 0001-HELIX-151-Allow-nodes-using-floor-capacity-to-steal-.patch
>
>
> The current auto-rebalancer tries to evenly distribute replicas across nodes by dividing the number of replicas by number of nodes, and then assigning the floor as a capacity to some nodes and the ceiling as a capacity to other nodes. Right now, nodes 0..k are assigned the ceiling and k+1..n are assigned the floor. Given existing assignments, an orphaned partition could be assigned to a node in the second set if that node had an extra slot, and there's at least one node in the first set with available capacity, then the latter node should be able to "donate" a unit of capacity to the former node.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira