You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by td...@apache.org on 2018/09/29 06:53:35 UTC
phoenix git commit: PHOENIX-4934 Make BaseTest.splitSystemCatalog
generic
Repository: phoenix
Updated Branches:
refs/heads/4.x-HBase-1.2 f4ebaff0d -> 5b04764b8
PHOENIX-4934 Make BaseTest.splitSystemCatalog generic
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/5b04764b
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/5b04764b
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/5b04764b
Branch: refs/heads/4.x-HBase-1.2
Commit: 5b04764b8648cd0c916bea51c6fd80688d610bfb
Parents: f4ebaff
Author: Thomas D'Silva <td...@apache.org>
Authored: Fri Sep 28 17:56:22 2018 -0700
Committer: Thomas D'Silva <td...@apache.org>
Committed: Fri Sep 28 17:56:56 2018 -0700
----------------------------------------------------------------------
.../java/org/apache/phoenix/query/BaseTest.java | 73 +++++++++-----------
1 file changed, 34 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/5b04764b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index 45b61c1..5ca247b 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -1804,36 +1804,14 @@ public abstract class BaseTest {
}
return false;
}
-
- /**
- * Splits SYSTEM.CATALOG into multiple regions based on the table or view names passed in.
- * Metadata for each table or view is moved to a separate region,
- * @param tenantToTableAndViewMap map from tenant to tables and views owned by the tenant
- */
- protected static void splitSystemCatalog(Map<String, List<String>> tenantToTableAndViewMap) throws Exception {
- List<byte[]> splitPoints = Lists.newArrayListWithExpectedSize(5);
- // add the rows keys of the table or view metadata rows
- Set<String> schemaNameSet=Sets.newHashSetWithExpectedSize(15);
- for (Entry<String, List<String>> entrySet : tenantToTableAndViewMap.entrySet()) {
- String tenantId = entrySet.getKey();
- for (String fullName : entrySet.getValue()) {
- String schemaName = SchemaUtil.getSchemaNameFromFullName(fullName);
- // we don't allow SYSTEM.CATALOG to split within a schema, so to ensure each table
- // or view is on a separate region they need to have a unique tenant and schema name
- assertTrue("Schema names of tables/view must be unique ", schemaNameSet.add(tenantId+"."+schemaName));
- String tableName = SchemaUtil.getTableNameFromFullName(fullName);
- splitPoints.add(
- SchemaUtil.getTableKey(tenantId, "".equals(schemaName) ? null : schemaName, tableName));
- }
- }
- Collections.sort(splitPoints, Bytes.BYTES_COMPARATOR);
-
+
+ protected static void splitTable(TableName fullTableName, List<byte[]> splitPoints) throws Exception {
HBaseAdmin admin =
driver.getConnectionQueryServices(getUrl(), TestUtil.TEST_PROPERTIES).getAdmin();
assertTrue("Needs at least two split points ", splitPoints.size() > 1);
assertTrue(
- "Number of split points should be less than or equal to the number of region servers ",
- splitPoints.size() <= NUM_SLAVES_BASE);
+ "Number of split points should be less than or equal to the number of region servers ",
+ splitPoints.size() <= NUM_SLAVES_BASE);
HBaseTestingUtility util = getUtility();
MiniHBaseCluster cluster = util.getHBaseCluster();
HMaster master = cluster.getMaster();
@@ -1848,7 +1826,7 @@ public abstract class BaseTest {
availableRegionServers.push(util.getHBaseCluster().getRegionServer(i).getServerName());
}
List<HRegionInfo> tableRegions =
- admin.getTableRegions(PhoenixDatabaseMetaData.SYSTEM_CATALOG_HBASE_TABLE_NAME);
+ admin.getTableRegions(fullTableName);
for (HRegionInfo hRegionInfo : tableRegions) {
// filter on regions we are interested in
if (regionContainsMetadataRows(hRegionInfo, splitPoints)) {
@@ -1858,15 +1836,6 @@ public abstract class BaseTest {
}
serverToRegionsList.get(serverName).add(hRegionInfo);
availableRegionServers.remove(serverName);
- // Scan scan = new Scan();
- // scan.setStartRow(hRegionInfo.getStartKey());
- // scan.setStopRow(hRegionInfo.getEndKey());
- // HTable primaryTable = new HTable(getUtility().getConfiguration(),
- // PhoenixDatabaseMetaData.SYSTEM_CATALOG_HBASE_TABLE_NAME);
- // ResultScanner resultScanner = primaryTable.getScanner(scan);
- // for (Result result : resultScanner) {
- // System.out.println(result);
- // }
}
}
assertTrue("No region servers available to move regions on to ", !availableRegionServers.isEmpty());
@@ -1878,10 +1847,10 @@ public abstract class BaseTest {
}
}
}
-
- // verify each region of SYSTEM.CATALOG is on its own region server
+
+ // verify each region is on its own region server
tableRegions =
- admin.getTableRegions(PhoenixDatabaseMetaData.SYSTEM_CATALOG_HBASE_TABLE_NAME);
+ admin.getTableRegions(fullTableName);
Set<ServerName> serverNames = Sets.newHashSet();
for (HRegionInfo hRegionInfo : tableRegions) {
// filter on regions we are interested in
@@ -1896,6 +1865,32 @@ public abstract class BaseTest {
}
}
}
+
+ /**
+ * Splits SYSTEM.CATALOG into multiple regions based on the table or view names passed in.
+ * Metadata for each table or view is moved to a separate region,
+ * @param tenantToTableAndViewMap map from tenant to tables and views owned by the tenant
+ */
+ protected static void splitSystemCatalog(Map<String, List<String>> tenantToTableAndViewMap) throws Exception {
+ List<byte[]> splitPoints = Lists.newArrayListWithExpectedSize(5);
+ // add the rows keys of the table or view metadata rows
+ Set<String> schemaNameSet=Sets.newHashSetWithExpectedSize(15);
+ for (Entry<String, List<String>> entrySet : tenantToTableAndViewMap.entrySet()) {
+ String tenantId = entrySet.getKey();
+ for (String fullName : entrySet.getValue()) {
+ String schemaName = SchemaUtil.getSchemaNameFromFullName(fullName);
+ // we don't allow SYSTEM.CATALOG to split within a schema, so to ensure each table
+ // or view is on a separate region they need to have a unique tenant and schema name
+ assertTrue("Schema names of tables/view must be unique ", schemaNameSet.add(tenantId+"."+schemaName));
+ String tableName = SchemaUtil.getTableNameFromFullName(fullName);
+ splitPoints.add(
+ SchemaUtil.getTableKey(tenantId, "".equals(schemaName) ? null : schemaName, tableName));
+ }
+ }
+ Collections.sort(splitPoints, Bytes.BYTES_COMPARATOR);
+
+ splitTable(PhoenixDatabaseMetaData.SYSTEM_CATALOG_HBASE_TABLE_NAME, splitPoints);
+ }
private static int getRegionServerIndex(MiniHBaseCluster cluster, ServerName serverName) {
// we have a small number of region servers, this should be fine for now.