hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6721) RegionServer Group based Assignment
Date Sun, 11 Nov 2012 21:47:13 GMT

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

Ted Yu commented on HBASE-6721:
-------------------------------

I went over GroupBasedLoadBalancer.
In correctAssignments():
{code}
+        }catch(IOException exp){
+          LOG.debug("Group information null for region of table " + region.getTableNameAsString(),
+              exp);
+        }
+        if ((info == null) || (!info.containsServer(sName.getHostAndPort()))) {
{code}
If groupManager.getGroup() fails to return group information, it is likely the exception would
occur multiple times inside the loop. We should distinguish this from the case of !info.containsServer(sName.getHostAndPort()).
Meaning, in case of exception, we don't conclude that the regions are misplaced.

In roundRobinAssignment():
{code}
+              regionGroup.get(groupKey), getServerToAssign(info, servers)));
{code}
Rename getServerToAssign() -> getServersToAssign()
{code}
+          assignments.put(ServerName.parseServerName("127.0.0.1:1"),regions);
{code}
The above statement would be executed many times. Consider creating a singleton for ServerName.parseServerName("127.0.0.1:1").
{code}
+      throw new IllegalStateException("Failed to access group store", e);
{code}
The above would cause master to exit, right ? If you don't want to change the signature of
roundRobinAssignment(), consider returning null.
{code}
+        if(nulled.size() > 0) {
{code}
style: insert space between if and (.

offlineRetainAssignment() contains only one method call. Consider merging it into retainAssignment().
{code}
+    //chances are most are not, then we just use balance to correct
{code}
'are not': not correct or not incorrect ? Please clarify. It would be nice to end each line
of comment with a period.
{code}
+      ListMultimap<String, HRegionInfo> rGroup = ArrayListMultimap.create();
{code}
Would groupToRegionMap be better name for the above variable ?
                
> RegionServer Group based Assignment
> -----------------------------------
>
>                 Key: HBASE-6721
>                 URL: https://issues.apache.org/jira/browse/HBASE-6721
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Francis Liu
>            Assignee: Vandana Ayyalasomayajula
>             Fix For: 0.96.0
>
>         Attachments: HBASE-6721_94_2.patch, HBASE-6721_94_3.patch, HBASE-6721_94_3.patch,
HBASE-6721_94.patch, HBASE-6721_94.patch, HBASE-6721-DesigDoc.pdf
>
>
> In multi-tenant deployments of HBase, it is likely that a RegionServer will be serving
out regions from a number of different tables owned by various client applications. Being
able to group a subset of running RegionServers and assign specific tables to it, provides
a client application a level of isolation and resource allocation.
> The proposal essentially is to have an AssignmentManager which is aware of RegionServer
groups and assigns tables to region servers based on groupings. Load balancing will occur
on a per group basis as well. 
> This is essentially a simplification of the approach taken in HBASE-4120. See attached
document.

--
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

Mime
View raw message