From 72ba78667c12ebefc3a9c6d2fbd07aec593f7ac6 Mon Sep 17 00:00:00 2001 From: Devaraj Das Date: Thu, 13 Mar 2014 23:37:25 +0000 Subject: [PATCH 24/45] HBASE-10743. Replica map update is problematic in RegionStates git-svn-id: https://svn.apache.org/repos/asf/hbase/branches/hbase-10070@1577384 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/hadoop/hbase/master/RegionStates.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java index 8bb2b11..490de82 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java @@ -404,6 +404,7 @@ public class RegionStates { if (!serverName.equals(oldServerName)) { LOG.info("Onlined " + hri.getShortNameToLog() + " on " + serverName); addToServerHoldings(serverName, hri); + addToReplicaMapping(hri); if (oldServerName != null) { LOG.info("Offlined " + hri.getShortNameToLog() + " from " + oldServerName); removeFromServerHoldings(oldServerName, hri); @@ -419,7 +420,9 @@ public class RegionStates { serverHoldings.put(serverName, regions); } regions.add(hri); + } + private void addToReplicaMapping(HRegionInfo hri) { HRegionInfo defaultReplica = RegionReplicaUtil.getRegionInfoForDefaultReplica(hri); Set replicas = defaultReplicaToOtherReplicas.get(defaultReplica); @@ -436,6 +439,9 @@ public class RegionStates { if (oldRegions.isEmpty()) { serverHoldings.remove(serverName); } + } + + private void removeFromReplicaMapping(HRegionInfo hri) { HRegionInfo defaultReplica = RegionReplicaUtil.getRegionInfoForDefaultReplica(hri); Set replicas = defaultReplicaToOtherReplicas.get(defaultReplica); if (replicas != null) { @@ -525,6 +531,7 @@ public class RegionStates { if (oldServerName != null && serverHoldings.containsKey(oldServerName)) { LOG.info("Offlined " + hri.getShortNameToLog() + " from " + oldServerName); removeFromServerHoldings(oldServerName, hri); + removeFromReplicaMapping(hri); } } } -- 2.0.0