[
https://issues.apache.org/jira/browse/HBASE-6721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16022288#comment-16022288
]
chenxu commented on HBASE-6721:
-------------------------------
{code:title=RSGroupBasedLoadBalancer.roundRobinAssignment|borderStyle=solid}
...
for(String groupKey : regionMap.keySet()) {
if (regionMap.get(groupKey).size() > 0) {
Map<ServerName, List<HRegionInfo>> result =
this.internalBalancer.roundRobinAssignment(
regionMap.get(groupKey),
serverMap.get(groupKey));
if(result != null) {
assignments.putAll(result);
}
}
}
...
{code}
if two group both has BOGUS_SERVER_NAME, assignments.putAll may be not right
{code:title=RSGroupBasedLoadBalancer.randomAssignment|borderStyle=solid}
public ServerName randomAssignment(HRegionInfo region,
List<ServerName> servers) throws HBaseIOException {
ListMultimap<String,HRegionInfo> regionMap = LinkedListMultimap.create();
ListMultimap<String,ServerName> serverMap = LinkedListMultimap.create();
generateGroupMaps(Lists.newArrayList(region), servers, regionMap, serverMap);
List<ServerName> filteredServers =
serverMap.get(regionMap.keySet().iterator().next());
return this.internalBalancer.randomAssignment(region, filteredServers);
}
{code}
if internalBalancer.randomAssignment return BOGUS_SERVER_NAME, how does AM work?
I think we shoud return null instead of BOGUS_SERVER_NAME
> RegionServer Group based Assignment
> -----------------------------------
>
> Key: HBASE-6721
> URL: https://issues.apache.org/jira/browse/HBASE-6721
> Project: HBase
> Issue Type: New Feature
> Components: regionserver
> Reporter: Francis Liu
> Assignee: Francis Liu
> Labels: hbase-6721
> Fix For: 2.0.0
>
> Attachments: 6721-master-webUI.patch, balanceCluster Sequence
> Diagram.svg, HBASE-6721_0.98_2.patch, HBASE-6721_10.patch,
> HBASE-6721_11.patch, HBASE-6721_12.patch, HBASE-6721_13.patch,
> HBASE-6721_14.patch, HBASE-6721_15.patch, HBASE-6721_8.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_94.patch, HBASE-6721_94.patch,
> HBASE-6721_98_1.patch, HBASE-6721_98_2.patch, HBASE-6721_9.patch,
> HBASE-6721_9.patch, HBASE-6721-DesigDoc.pdf, HBASE-6721-DesigDoc.pdf,
> HBASE-6721-DesigDoc.pdf, HBASE-6721-DesigDoc.pdf, HBASE-6721
> GroupBasedLoadBalancer Sequence Diagram.xml,
> HBASE-6721_hbase-6721_addendum.patch, HBASE-6721_trunk1.patch,
> HBASE-6721_trunk2.patch, HBASE-6721_trunk.patch, HBASE-6721_trunk.patch,
> HBASE-6721_trunk.patch, hbase-6721-v15-branch-1.1.patch,
> hbase-6721-v16.patch, hbase-6721-v17.patch, hbase-6721-v18.patch,
> hbase-6721-v19.patch, hbase-6721-v20.patch, hbase-6721-v21.patch,
> hbase-6721-v22.patch, hbase-6721-v23.patch, hbase-6721-v25.patch,
> hbase-6721-v26_draft1.patch, hbase-6721-v26.patch, hbase-6721-v27.patch,
> hbase-6721-v27.patch, hbase-6721-v27.patch.txt, hbase-6721-v28.patch,
> hbase-6721-v28.patch, hbase-6721-v29.patch, 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.15#6346)