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

Hudson commented on HBASE-18602:
--------------------------------

FAILURE: Integrated in Jenkins build HBase-2.0 #775 (See 
[https://builds.apache.org/job/HBase-2.0/775/])
HBASE-18602 rsgroup cleanup unassign code (chia7712: rev 
06ae2869e2fcd6ba764991b07e473e9268c6e9d0)
* (edit) 
hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java


> rsgroup cleanup unassign code
> -----------------------------
>
>                 Key: HBASE-18602
>                 URL: https://issues.apache.org/jira/browse/HBASE-18602
>             Project: HBase
>          Issue Type: Improvement
>          Components: rsgroup
>            Reporter: Wang, Xinglong
>            Assignee: Wang, Xinglong
>            Priority: Minor
>             Fix For: 2.0.0, 1.4.0, 1.5.0
>
>         Attachments: HBASE-18602-master-v1.patch, 
> HBASE-18602-master-v2.patch, HBASE-18602-master-v3.patch, 
> HBASE-18602-master-v3.patch, HBASE-18602-master-v3.patch, 
> HBASE-18602-master-v4.patch
>
>
> While walking through rsgroup code, I found that variable misplacedRegions 
> has never been added any element into. This makes the unassign region code is 
> not functional. And according to my test, it is actually unnecessary to do 
> that.
> RSGroupBasedLoadBalancer.java
> {code:java}
> private Map<ServerName, List<HRegionInfo>> correctAssignments(
>        Map<ServerName, List<HRegionInfo>> existingAssignments)
>   throws HBaseIOException{
>     Map<ServerName, List<HRegionInfo>> correctAssignments = new TreeMap<>();
>     List<HRegionInfo> misplacedRegions = new LinkedList<>();
>     correctAssignments.put(LoadBalancer.BOGUS_SERVER_NAME, new 
> LinkedList<>());
>     for (Map.Entry<ServerName, List<HRegionInfo>> assignments : 
> existingAssignments.entrySet()){
>       ServerName sName = assignments.getKey();
>       correctAssignments.put(sName, new LinkedList<>());
>       List<HRegionInfo> regions = assignments.getValue();
>       for (HRegionInfo region : regions) {
>         RSGroupInfo info = null;
>         try {
>           info = rsGroupInfoManager.getRSGroup(
>               rsGroupInfoManager.getRSGroupOfTable(region.getTable()));
>         } catch (IOException exp) {
>           LOG.debug("RSGroup information null for region of table " + 
> region.getTable(),
>               exp);
>         }
>         if ((info == null) || (!info.containsServer(sName.getAddress()))) {
>           correctAssignments.get(LoadBalancer.BOGUS_SERVER_NAME).add(region);
>         } else {
>           correctAssignments.get(sName).add(region);
>         }
>       }
>     }
>     //TODO bulk unassign?
>     //unassign misplaced regions, so that they are assigned to correct groups.
>     for(HRegionInfo info: misplacedRegions) {
>       try {
>         this.masterServices.getAssignmentManager().unassign(info);
>       } catch (IOException e) {
>         throw new HBaseIOException(e);
>       }
>     }
>     return correctAssignments;
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to