From d723115058f01ee7851d3b652b10cf8eb8b2cf3b Mon Sep 17 00:00:00 2001 From: Devaraj Das Date: Wed, 12 Mar 2014 22:31:18 +0000 Subject: [PATCH 20/45] HBASE-10729. Enable table doesn't balance out replicas evenly if the replicas were unassigned earlier git-svn-id: https://svn.apache.org/repos/asf/hbase/branches/hbase-10070@1576964 13f79535-47bb-0310-9956-ffa450edef68 --- .../hadoop/hbase/master/handler/EnableTableHandler.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java index 52b6c9a..5e90232 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java @@ -201,10 +201,15 @@ public class EnableTableHandler extends EventHandler { // need to potentially create some regions for the replicas List unrecordedReplicas = AssignmentManager.replicaRegionsNotRecordedInMeta( new HashSet(regionsToAssign.keySet()), services); - for (HRegionInfo h : unrecordedReplicas) { - regionsToAssign.put(h, - this.assignmentManager.getBalancer().randomAssignment(h, - serverManager.getOnlineServersList())); + Map> srvToUnassignedRegs = + this.assignmentManager.getBalancer().roundRobinAssignment(unrecordedReplicas, + serverManager.getOnlineServersList()); + if (srvToUnassignedRegs != null) { + for (Map.Entry> entry : srvToUnassignedRegs.entrySet()) { + for (HRegionInfo h : entry.getValue()) { + regionsToAssign.put(h, entry.getKey()); + } + } } } int regionsCount = regionsToAssign.size(); -- 2.0.0