diff --git src/main/java/org/apache/hadoop/hbase/HRegionInfo.java src/main/java/org/apache/hadoop/hbase/HRegionInfo.java index 0536b6e..e3a890d 100644 --- src/main/java/org/apache/hadoop/hbase/HRegionInfo.java +++ src/main/java/org/apache/hadoop/hbase/HRegionInfo.java @@ -600,12 +600,12 @@ implements WritableComparable { * either .META. or -ROOT- */ public boolean isMetaTable() { - return Bytes.equals(tableName, HRegionInfo.FIRST_META_REGIONINFO.getTableName()); + return isRootRegion() || isMetaRegion(); } /** @return true if this region is a meta region */ public boolean isMetaRegion() { - return isMetaTable(); + return Bytes.equals(tableName, HRegionInfo.FIRST_META_REGIONINFO.getTableName()); } /** diff --git src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index f7ef653..a199e51 100644 --- src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -360,8 +360,7 @@ public class AssignmentManager extends ZooKeeperListener { // its a clean cluster startup, else its a failover. boolean regionsToProcess = false; for (Map.Entry e: this.regions.entrySet()) { - if (!e.getKey().isMetaRegion() - && !e.getKey().isRootRegion() + if (!e.getKey().isMetaTable() && e.getValue() != null) { LOG.debug("Found " + e + " out on cluster"); regionsToProcess = true; @@ -489,7 +488,7 @@ public class AssignmentManager extends ZooKeeperListener { // Just insert region into RIT // If this never updates the timeout will trigger new assignment - if (regionInfo.isMetaRegion() || regionInfo.isRootRegion()) { + if (regionInfo.isMetaTable()) { regionsInTransition.put(encodedRegionName, new RegionState( regionInfo, RegionState.State.OPENING, data.getStamp(), data .getOrigin())); @@ -1494,7 +1493,7 @@ public class AssignmentManager extends ZooKeeperListener { } private void debugLog(HRegionInfo region, String string) { - if (region.isMetaTable() || region.isRootRegion()) { + if (region.isMetaTable()) { LOG.info(string); } else { LOG.debug(string); diff --git src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java index 7987997..5bd1a47 100644 --- src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java +++ src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java @@ -144,7 +144,7 @@ public class OpenedRegionHandler extends EventHandler implements TotesHRegionInf } private void debugLog(HRegionInfo region, String string) { - if (region.isMetaTable() || region.isRootRegion()) { + if (region.isMetaTable()) { LOG.info(string); } else { LOG.debug(string); diff --git src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java index b5e7015..80cb7fd 100644 --- src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java +++ src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java @@ -1095,7 +1095,7 @@ public class HBaseFsck { throws IOException, KeeperException, InterruptedException { List metaRegions = Lists.newArrayList(); for (HbckInfo value : regionInfo.values()) { - if (value.metaEntry.isMetaTable()) { + if (value.metaEntry.isMetaRegion()) { metaRegions.add(value); } } @@ -1501,7 +1501,7 @@ public class HBaseFsck { private List filterOnlyMetaRegions(List regions) { List ret = Lists.newArrayList(); for (HRegionInfo hri : regions) { - if (hri.isMetaRegion() || hri.isRootRegion()) { + if (hri.isMetaTable()) { ret.add(hri); } } diff --git src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java index 43f8a50..a91e8c4 100644 --- src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java +++ src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java @@ -1096,7 +1096,7 @@ public class TestAdmin { HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TABLENAME); List onlineRegions = rs.getOnlineRegions(); for (HRegionInfo regionInfo : onlineRegions) { - if (!regionInfo.isMetaRegion() && !regionInfo.isRootRegion()) { + if (!regionInfo.isMetaTable()) { info = regionInfo; admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(), rs .getServerName().getServerName()); @@ -1117,7 +1117,7 @@ public class TestAdmin { HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TABLENAME); List onlineRegions = rs.getOnlineRegions(); for (HRegionInfo regionInfo : onlineRegions) { - if (!regionInfo.isMetaRegion() && !regionInfo.isRootRegion()) { + if (!regionInfo.isMetaTable()) { if (regionInfo.getRegionNameAsString().contains("TestHBACloseRegion1")) { info = regionInfo; admin.closeRegionWithEncodedRegionName("sample", rs.getServerName() @@ -1139,7 +1139,7 @@ public class TestAdmin { HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TABLENAME); List onlineRegions = rs.getOnlineRegions(); for (HRegionInfo regionInfo : onlineRegions) { - if (!regionInfo.isMetaRegion() && !regionInfo.isRootRegion()) { + if (!regionInfo.isMetaTable()) { if (regionInfo.getRegionNameAsString().contains("TestHBACloseRegion2")) { info = regionInfo; @@ -1170,7 +1170,7 @@ public class TestAdmin { try { List onlineRegions = rs.getOnlineRegions(); for (HRegionInfo regionInfo : onlineRegions) { - if (!regionInfo.isMetaRegion() && !regionInfo.isRootRegion()) { + if (!regionInfo.isMetaTable()) { if (regionInfo.getRegionNameAsString() .contains("TestHBACloseRegion3")) { admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(), @@ -1194,7 +1194,7 @@ public class TestAdmin { try { List onlineRegions = rs.getOnlineRegions(); for (HRegionInfo regionInfo : onlineRegions) { - if (!regionInfo.isMetaRegion() && !regionInfo.isRootRegion()) { + if (!regionInfo.isMetaTable()) { if (regionInfo.getRegionNameAsString() .contains("TestHBACloseRegionWhenServerNameIsEmpty")) { admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(), @@ -1217,7 +1217,7 @@ public class TestAdmin { List onlineRegions = rs.getOnlineRegions(); for (HRegionInfo regionInfo : onlineRegions) { - if (!regionInfo.isMetaRegion() && !regionInfo.isRootRegion()) { + if (!regionInfo.isMetaTable()) { if (regionInfo.getRegionNameAsString().contains("TestHBACloseRegion4")) { info = regionInfo; admin.closeRegionWithEncodedRegionName(regionInfo diff --git src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java index c01a6d4..cc48297 100644 --- src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java +++ src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java @@ -686,7 +686,7 @@ public class TestMasterObserver { int moveCnt = openRegions.size()/2; for (int i=0; i it = regions.iterator(); while (it.hasNext()) { HRegionInfo region = it.next(); - if (region.isMetaRegion() || region.isRootRegion()) { + if (region.isMetaTable()) { it.remove(); } } @@ -332,7 +332,7 @@ public class TestDistributedLogSplitting { HRegionServer hrs = rst.getRegionServer(); List hris = hrs.getOnlineRegions(); for (HRegionInfo hri : hris) { - if (hri.isMetaRegion() || hri.isRootRegion()) { + if (hri.isMetaTable()) { continue; } LOG.debug("adding data to rs = " + rst.getName() + diff --git src/test/java/org/apache/hadoop/hbase/master/TestOpenedRegionHandler.java src/test/java/org/apache/hadoop/hbase/master/TestOpenedRegionHandler.java index d7fcf1f..e1f98af 100644 --- src/test/java/org/apache/hadoop/hbase/master/TestOpenedRegionHandler.java +++ src/test/java/org/apache/hadoop/hbase/master/TestOpenedRegionHandler.java @@ -197,8 +197,7 @@ public class TestOpenedRegionHandler { HRegion region = null; while (iterator.hasNext()) { region = iterator.next(); - if (!region.getRegionInfo().isMetaRegion() - && !region.getRegionInfo().isRootRegion()) { + if (!region.getRegionInfo().isMetaTable()) { break; } } diff --git src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java index 477e772..baca241 100644 --- src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java +++ src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java @@ -113,4 +113,10 @@ public class TestHRegionInfo { } catch (IllegalArgumentException iae) { } } + + @Test + public void testMetaTables() { + assertTrue(HRegionInfo.ROOT_REGIONINFO.isMetaTable()); + assertTrue(HRegionInfo.FIRST_META_REGIONINFO.isMetaTable()); + } }