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