You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by la...@apache.org on 2019/06/29 00:00:56 UTC
[phoenix] branch 4.x-HBase-1.3 updated: PHOENIX-5371
SystemCatalogCreationOnConnectionIT is slow.
This is an automated email from the ASF dual-hosted git repository.
larsh pushed a commit to branch 4.x-HBase-1.3
in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/4.x-HBase-1.3 by this push:
new 3429860 PHOENIX-5371 SystemCatalogCreationOnConnectionIT is slow.
3429860 is described below
commit 342986026186e29ca0b67ce526a8feaea3a59f01
Author: Lars Hofhansl <la...@apache.org>
AuthorDate: Fri Jun 28 17:01:26 2019 -0700
PHOENIX-5371 SystemCatalogCreationOnConnectionIT is slow.
---
.../SystemCatalogCreationOnConnectionIT.java | 95 ++++++++--------------
1 file changed, 32 insertions(+), 63 deletions(-)
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SystemCatalogCreationOnConnectionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SystemCatalogCreationOnConnectionIT.java
index 7a5f80c..9f12d39 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SystemCatalogCreationOnConnectionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SystemCatalogCreationOnConnectionIT.java
@@ -188,23 +188,6 @@ public class SystemCatalogCreationOnConnectionIT {
/********************* Testing SYSTEM.CATALOG/SYSTEM:CATALOG creation/upgrade behavior for subsequent connections *********************/
- // Conditions: server-side namespace mapping is enabled, the first connection to the server will create unmapped
- // SYSTEM tables i.e. SYSTEM\..*, the second connection has client-side namespace mapping enabled and
- // system table to system namespace mapping enabled
- // Expected: We will migrate all SYSTEM\..* tables to the SYSTEM namespace
- @Test
- public void testMigrateToSystemNamespace() throws Exception {
- SystemCatalogCreationOnConnectionIT.PhoenixSysCatCreationTestingDriver driver =
- firstConnectionNSMappingServerEnabledClientEnabledMappingDisabled();
- driver.resetCQS();
- // Setting this to true to effect migration of SYSTEM tables to the SYSTEM namespace
- Properties clientProps = getClientProperties(true, true);
- driver.getConnectionQueryServices(getJdbcUrl(), clientProps);
- hbaseTables = getHBaseTables();
- assertEquals(PHOENIX_NAMESPACE_MAPPED_SYSTEM_TABLES, hbaseTables);
- assertEquals(1, countUpgradeAttempts);
- }
-
// Conditions: server-side namespace mapping is enabled, the first connection to the server will create all namespace
// mapped SYSTEM tables i.e. SYSTEM:.*, the SYSTEM:CATALOG timestamp at creation is purposefully set to be <
// MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP. The subsequent connection has client-side namespace mapping enabled
@@ -260,22 +243,6 @@ public class SystemCatalogCreationOnConnectionIT {
}
}
- // Conditions: server-side namespace mapping is enabled, the first connection to the server will create only SYSTEM.CATALOG,
- // the second connection has client-side namespace mapping enabled
- // Expected: We will migrate SYSTEM.CATALOG to SYSTEM namespace and create all other SYSTEM:.* tables
- @Test
- public void testMigrateSysCatCreateOthers() throws Exception {
- SystemCatalogCreationOnConnectionIT.PhoenixSysCatCreationTestingDriver driver =
- firstConnectionNSMappingServerEnabledClientDisabled();
- driver.resetCQS();
- Properties clientProps = getClientProperties(true, true);
- driver.getConnectionQueryServices(getJdbcUrl(), clientProps);
- hbaseTables = getHBaseTables();
- assertEquals(PHOENIX_NAMESPACE_MAPPED_SYSTEM_TABLES, hbaseTables);
- // SYSTEM.CATALOG migration to the SYSTEM namespace is counted as an upgrade
- assertEquals(1, countUpgradeAttempts);
- }
-
// Conditions: server-side namespace mapping is enabled, the first connection to the server will create unmapped SYSTEM
// tables SYSTEM\..* whose timestamp at creation is purposefully set to be < MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP.
// The second connection has client-side namespace mapping enabled and system table to system namespace mapping enabled
@@ -318,8 +285,11 @@ public class SystemCatalogCreationOnConnectionIT {
// Conditions: server-side namespace mapping is enabled, the first connection to the server will create only SYSTEM.CATALOG,
// the second connection has client-side namespace mapping disabled
// Expected: Throw Inconsistent namespace mapping exception when you check client-server compatibility
+ //
+ // A third connection has client-side namespace mapping enabled
+ // Expected: We will migrate SYSTEM.CATALOG to SYSTEM namespace and create all other SYSTEM:.* tables
@Test
- public void testUnmappedSysCatExistsInconsistentNSMappingFails() throws Exception {
+ public void testUnmappedSysCat() throws Exception {
SystemCatalogCreationOnConnectionIT.PhoenixSysCatCreationTestingDriver driver =
firstConnectionNSMappingServerEnabledClientDisabled();
driver.resetCQS();
@@ -334,13 +304,24 @@ public class SystemCatalogCreationOnConnectionIT {
assertTrue(hbaseTables.contains(PHOENIX_SYSTEM_CATALOG));
assertTrue(hbaseTables.size() == 1);
assertEquals(0, countUpgradeAttempts);
+
+ driver.resetCQS();
+ clientProps = getClientProperties(true, true);
+ driver.getConnectionQueryServices(getJdbcUrl(), clientProps);
+ hbaseTables = getHBaseTables();
+ assertEquals(PHOENIX_NAMESPACE_MAPPED_SYSTEM_TABLES, hbaseTables);
+ // SYSTEM.CATALOG migration to the SYSTEM namespace is counted as an upgrade
+ assertEquals(1, countUpgradeAttempts);
}
// Conditions: server-side namespace mapping is disabled, the first connection to the server will create all unmapped
// SYSTEM tables i.e. SYSTEM\..*, the second connection has client-side namespace mapping enabled
// Expected: Throw Inconsistent namespace mapping exception when you check client-server compatibility
+ //
+ // Then another connection has client-side namespace mapping disabled
+ // Expected: All SYSTEM\..* tables exist and no upgrade is required
@Test
- public void testSysTablesExistInconsistentNSMappingFails() throws Exception {
+ public void testSysTablesExistNSMappingDisabled() throws Exception {
SystemCatalogCreationOnConnectionIT.PhoenixSysCatCreationTestingDriver driver =
firstConnectionNSMappingServerDisabledClientDisabled();
driver.resetCQS();
@@ -354,17 +335,27 @@ public class SystemCatalogCreationOnConnectionIT {
hbaseTables = getHBaseTables();
assertEquals(PHOENIX_SYSTEM_TABLES, hbaseTables);
assertEquals(0, countUpgradeAttempts);
+
+ driver.resetCQS();
+ clientProps = getClientProperties(false, false);
+ driver.getConnectionQueryServices(getJdbcUrl(), clientProps);
+ hbaseTables = getHBaseTables();
+ assertEquals(PHOENIX_SYSTEM_TABLES, hbaseTables);
+ assertEquals(0, countUpgradeAttempts);
}
// Conditions: server-side namespace mapping is disabled, the first connection to the server will create only SYSTEM:CATALOG
- // and the second connection has client-side namespace mapping enabled
- // Expected: Throw Inconsistent namespace mapping exception when you check client-server compatibility
+ // and the second connection has client-side namespace mapping disabled
+ // Expected: The second connection should fail with Inconsistent namespace mapping exception
+ //
+ // A third connection has client-side namespace mapping enabled
+ // Expected: The third connection should fail with Inconsistent namespace mapping exception
@Test
- public void testMappedSysCatExistsInconsistentNSMappingFails() throws Exception {
+ public void testClientNSMappingDisabledConnectionFails() throws Exception {
SystemCatalogCreationOnConnectionIT.PhoenixSysCatCreationTestingDriver driver =
firstConnectionNSMappingServerDisabledClientEnabled();
driver.resetCQS();
- Properties clientProps = getClientProperties(true, true);
+ Properties clientProps = getClientProperties(false, false);
try{
driver.getConnectionQueryServices(getJdbcUrl(), clientProps);
fail("Client should not be able to connect to cluster with inconsistent client-server namespace mapping properties");
@@ -375,32 +366,10 @@ public class SystemCatalogCreationOnConnectionIT {
assertTrue(hbaseTables.contains(PHOENIX_NAMESPACE_MAPPED_SYSTEM_CATALOG));
assertTrue(hbaseTables.size() == 1);
assertEquals(0, countUpgradeAttempts);
- }
- // Conditions: server-side namespace mapping is disabled, the first connection to the server will create all SYSTEM\..*
- // tables and the second connection has client-side namespace mapping disabled
- // Expected: All SYSTEM\..* tables exist and no upgrade is required
- @Test
- public void testNSMappingDisabledNoUpgradeRequired() throws Exception {
- SystemCatalogCreationOnConnectionIT.PhoenixSysCatCreationTestingDriver driver =
- firstConnectionNSMappingServerDisabledClientDisabled();
+ // now try a client with ns mapping enabled
driver.resetCQS();
- Properties clientProps = getClientProperties(false, false);
- driver.getConnectionQueryServices(getJdbcUrl(), clientProps);
- hbaseTables = getHBaseTables();
- assertEquals(PHOENIX_SYSTEM_TABLES, hbaseTables);
- assertEquals(0, countUpgradeAttempts);
- }
-
- // Conditions: server-side namespace mapping is disabled, the first connection to the server will create only SYSTEM:CATALOG
- // and the second connection has client-side namespace mapping disabled
- // Expected: The second connection should fail with Inconsistent namespace mapping exception
- @Test
- public void testClientNSMappingDisabledConnectionFails() throws Exception {
- SystemCatalogCreationOnConnectionIT.PhoenixSysCatCreationTestingDriver driver =
- firstConnectionNSMappingServerDisabledClientEnabled();
- driver.resetCQS();
- Properties clientProps = getClientProperties(false, false);
+ clientProps = getClientProperties(true, true);
try{
driver.getConnectionQueryServices(getJdbcUrl(), clientProps);
fail("Client should not be able to connect to cluster with inconsistent client-server namespace mapping properties");