You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2014/02/11 02:34:19 UTC

[jira] [Updated] (HBASE-10351) LoadBalancer changes for supporting region replicas

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

Enis Soztutar updated HBASE-10351:
----------------------------------

    Attachment: hbase-10351_v0.patch

Review board is down again. Attaching v0 patch here instead. 

This patch builds on top of HBASE-10350, and includes changes from [~devaraj] and myself for load balancer to enforce region replica placement. 

In short, HBASE-10350 enables table creation with region replicas, but won't have any region placement enforcement. This patch, adds co-location constraints to the LB, so that it does a best effort job to not place replicas of the same region in same hosts / racks. 

The overview of changes are: 
 - BaseLoadBalancer.Cluster is aware of hosts and racks for servers
 - BaseLoadBalancer.Cluster is aware of regions per host / rack
 - BaseLoadBalancer.Cluster keeps track of region replicas for co-location enforcement
 - BaseLoadBalancer.Cluster can be constructed with unassigned regions as well. Some refactoring (Action, etc) for better abstractions etc. 
 - BaseLoadBalancer.retainAssignments(), etc now construct a Cluster object and use the methods there to ensure co-location constraint. This is a first step in unifying the way we do balance() and table creation, retainAssignment() etc. We can continue with this in other jiras (not part of HBASE-10070). 
 - StochasticLoadBalancer has (high) costs for host/rack replica co-locations and candidate generator for ensuring optimum plan generation. By the way of these cost functions, the LB can satisfy that replicas are not co-located as long as there are enough servers / rack left. If not, it will still do assignment (soft constraint) 
 - Bunch of tests to ensure region placement (and speed of balance() run)



> LoadBalancer changes for supporting region replicas
> ---------------------------------------------------
>
>                 Key: HBASE-10351
>                 URL: https://issues.apache.org/jira/browse/HBASE-10351
>             Project: HBase
>          Issue Type: Sub-task
>          Components: master
>    Affects Versions: 0.99.0
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>         Attachments: hbase-10351_v0.patch
>
>
> LoadBalancer has to be aware of and enforce placement of region replicas so that the replicas are not co-hosted in the same server, host or rack. This will ensure that the region is highly available during process / host / rack failover. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)