[ https://issues.apache.org/jira/browse/HBASE-6721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14695050#comment-14695050 ]
Francis Liu commented on HBASE-6721: ------------------------------------ {quote} 1. Within the interface GroupInfoManager.java, I noticed that the function getGroupOfServer returns a GroupInfo object, but the function getGroupOfTable returns a String object. Was there a performance consideration or some other reason for returning a string? (It seems the API would be more consistent to return a GroupInfo object.) {quote} Yeah performance. I didn't want to have to gather the information to generate the GroupInfo object since most internal calls won't need it. The external api call is consistent tho. {quote} 2. For the function onlineRetainAssignment why are regions assigned to bogus so it ends up in RIT if a server is not available? (We would like to keep as few regions in RIT as possible in order to maximize our availability.) {quote} This guarantees isolation. Which is one of the key features of Region Server Groups. ie you don't want the reason that the region from one group to run out of live servers to affect the regions in another group. So worst case you affect the availability of the group and not the entire cluster. What's your use case for region server groups? {quote} 3. On the topic of onlineRetainAssignment, what is the objective for separating online and offline servers? I noticed that another balancer such as the StochasticLoadBalancer does not make such a distinction. {quote} Yes that's inherent in GroupBaseLoadBalancer. Stochastic only looks at what's online, while Group needs to look at which member servers are online. > 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: Francis Liu > Attachments: 6721-master-webUI.patch, HBASE-6721 > GroupBasedLoadBalancer Sequence Diagram.xml, HBASE-6721-DesigDoc.pdf, > HBASE-6721-DesigDoc.pdf, HBASE-6721-DesigDoc.pdf, HBASE-6721-DesigDoc.pdf, > HBASE-6721_10.patch, HBASE-6721_11.patch, HBASE-6721_8.patch, > HBASE-6721_9.patch, HBASE-6721_9.patch, HBASE-6721_94.patch, > HBASE-6721_94.patch, HBASE-6721_94_2.patch, HBASE-6721_94_3.patch, > HBASE-6721_94_3.patch, HBASE-6721_94_4.patch, HBASE-6721_94_5.patch, > HBASE-6721_94_6.patch, HBASE-6721_94_7.patch, HBASE-6721_98_1.patch, > HBASE-6721_trunk.patch, HBASE-6721_trunk.patch, HBASE-6721_trunk.patch, > HBASE-6721_trunk1.patch, HBASE-6721_trunk2.patch, balanceCluster Sequence > Diagram.svg, immediateAssignments Sequence Diagram.svg, randomAssignment > Sequence Diagram.svg, retainAssignment Sequence Diagram.svg, > roundRobinAssignment Sequence Diagram.svg > > > 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 was sent by Atlassian JIRA (v6.3.4#6332)