This is an automated email from the ASF dual-hosted git repository. larsh pushed a commit to branch 4.x-HBase-1.5 in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/4.x-HBase-1.5 by this push: new 69da33b PHOENIX-5367 HashJoin*IndexITs and SortMergeJoin*IndexITs are slow. 69da33b is described below commit 69da33b601d5232dc29ff6915889ff29d6fa6cbe Author: Lars Hofhansl <la...@apache.org> AuthorDate: Tue Jun 25 09:27:58 2019 -0700 PHOENIX-5367 HashJoin*IndexITs and SortMergeJoin*IndexITs are slow. --- .../apache/phoenix/end2end/join/BaseJoinIT.java | 22 +++++++++++++++------- .../end2end/join/HashJoinGlobalIndexIT.java | 18 ++++++++++++++++++ .../phoenix/end2end/join/HashJoinLocalIndexIT.java | 19 +++++++++++++++++++ .../phoenix/end2end/join/HashJoinNoIndexIT.java | 18 ++++++++++++++++++ .../end2end/join/SortMergeJoinGlobalIndexIT.java | 18 ++++++++++++++++++ .../end2end/join/SortMergeJoinLocalIndexIT.java | 17 +++++++++++++++++ .../end2end/join/SortMergeJoinNoIndexIT.java | 18 ++++++++++++++++++ 7 files changed, 123 insertions(+), 7 deletions(-) diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/BaseJoinIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/BaseJoinIT.java index 4d4660c..adfc5e0 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/BaseJoinIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/BaseJoinIT.java @@ -100,7 +100,7 @@ public abstract class BaseJoinIT extends ParallelStatsDisabledIT { } protected String seqName; - protected String schemaName; + private String schemaName; protected final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); protected final String[] plans; private final String[] indexDDL; @@ -116,11 +116,19 @@ public abstract class BaseJoinIT extends ParallelStatsDisabledIT { this.plans = new String[0]; } + protected String getSchemaName() { + return schemaName; + } + + protected Map<String,String> getTableNameMap() { + return virtualNameToRealNameMap; + } + protected String getTableName(Connection conn, String virtualName) throws Exception { - String realName = virtualNameToRealNameMap.get(virtualName); + String realName = getTableNameMap().get(virtualName); if (realName == null) { - realName = SchemaUtil.getTableName(schemaName, generateUniqueName()); - virtualNameToRealNameMap.put(virtualName, realName); + realName = SchemaUtil.getTableName(getSchemaName(), generateUniqueName()); + getTableNameMap().put(virtualName, realName); createTable(conn, virtualName, realName); initValues(conn, virtualName, realName); createIndexes(conn, virtualName, realName); @@ -154,16 +162,16 @@ public abstract class BaseJoinIT extends ParallelStatsDisabledIT { } private String translateToVirtualPlan(String actualPlan) { - int size = virtualNameToRealNameMap.size(); + int size = getTableNameMap().size(); String[] virtualNames = new String[size+1]; String[] realNames = new String[size+1]; int count = 0; - for (Map.Entry<String, String>entry : virtualNameToRealNameMap.entrySet()) { + for (Map.Entry<String, String>entry : getTableNameMap().entrySet()) { virtualNames[count] = entry.getKey(); realNames[count] = entry.getValue(); count++; } - realNames[count] = schemaName; + realNames[count] = getSchemaName(); virtualNames[count]= JOIN_SCHEMA; String convertedPlan = StringUtil.replace(actualPlan, realNames, virtualNames); return convertedPlan; diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinGlobalIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinGlobalIndexIT.java index a725be7..3e72888 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinGlobalIndexIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinGlobalIndexIT.java @@ -19,13 +19,31 @@ package org.apache.phoenix.end2end.join; import java.util.Collection; import java.util.List; +import java.util.Map; import org.junit.runners.Parameterized.Parameters; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; public class HashJoinGlobalIndexIT extends HashJoinIT { + private static final Map<String,String> virtualNameToRealNameMap = Maps.newHashMap(); + private static final String schemaName = "S_" + generateUniqueName(); + + @Override + protected String getSchemaName() { + // run all tests in a single schema + return schemaName; + } + + @Override + protected Map<String,String> getTableNameMap() { + // cache across tests, so that tables and + // indexes are not recreated each time + return virtualNameToRealNameMap; + } + public HashJoinGlobalIndexIT(String[] indexDDL, String[] plans) { super(indexDDL, plans); } diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinLocalIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinLocalIndexIT.java index 59ddce9..a65452a 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinLocalIndexIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinLocalIndexIT.java @@ -28,6 +28,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Properties; import org.apache.phoenix.util.PropertiesUtil; @@ -38,9 +39,27 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; @RunWith(Parameterized.class) public class HashJoinLocalIndexIT extends HashJoinIT { + + private static final Map<String,String> virtualNameToRealNameMap = Maps.newHashMap(); + private static final String schemaName = "S_" + generateUniqueName(); + + @Override + protected String getSchemaName() { + // run all tests in a single schema + return schemaName; + } + + @Override + protected Map<String,String> getTableNameMap() { + // cache across tests, so that tables and + // indexes are not recreated each time + return virtualNameToRealNameMap; + } + public HashJoinLocalIndexIT(String[] indexDDL, String[] plans) { super(indexDDL, plans); diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinNoIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinNoIndexIT.java index 3bbcaf2..6911aa3 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinNoIndexIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/HashJoinNoIndexIT.java @@ -19,13 +19,31 @@ package org.apache.phoenix.end2end.join; import java.util.Collection; import java.util.List; +import java.util.Map; import org.junit.runners.Parameterized.Parameters; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; public class HashJoinNoIndexIT extends HashJoinIT { + private static final Map<String,String> virtualNameToRealNameMap = Maps.newHashMap(); + private static final String schemaName = "S_" + generateUniqueName(); + + @Override + protected String getSchemaName() { + // run all tests in a single schema + return schemaName; + } + + @Override + protected Map<String,String> getTableNameMap() { + // cache across tests, so that tables and + // indexes are not recreated each time + return virtualNameToRealNameMap; + } + public HashJoinNoIndexIT(String[] indexDDL, String[] plans) { super(indexDDL, plans); } diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinGlobalIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinGlobalIndexIT.java index 297f970..d002a2e 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinGlobalIndexIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinGlobalIndexIT.java @@ -19,13 +19,31 @@ package org.apache.phoenix.end2end.join; import java.util.Collection; import java.util.List; +import java.util.Map; import org.junit.runners.Parameterized.Parameters; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; public class SortMergeJoinGlobalIndexIT extends SortMergeJoinIT { + private static final Map<String,String> virtualNameToRealNameMap = Maps.newHashMap(); + private static final String schemaName = "S_" + generateUniqueName(); + + @Override + protected String getSchemaName() { + // run all tests in a single schema + return schemaName; + } + + @Override + protected Map<String,String> getTableNameMap() { + // cache across tests, so that tables and + // indexes are not recreated each time + return virtualNameToRealNameMap; + } + public SortMergeJoinGlobalIndexIT(String[] indexDDL, String[] plans) { super(indexDDL, plans); } diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinLocalIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinLocalIndexIT.java index 5e5708a..9fc33b1 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinLocalIndexIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinLocalIndexIT.java @@ -19,12 +19,29 @@ package org.apache.phoenix.end2end.join; import java.util.Collection; import java.util.List; +import java.util.Map; import org.junit.runners.Parameterized.Parameters; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; public class SortMergeJoinLocalIndexIT extends SortMergeJoinIT { + private static final Map<String,String> virtualNameToRealNameMap = Maps.newHashMap(); + private static final String schemaName = "S_" + generateUniqueName(); + + @Override + protected String getSchemaName() { + // run all tests in a single schema + return schemaName; + } + + @Override + protected Map<String,String> getTableNameMap() { + // cache across tests, so that tables and + // indexes are not recreated each time + return virtualNameToRealNameMap; + } public SortMergeJoinLocalIndexIT(String[] indexDDL, String[] plans) { super(indexDDL, plans); diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinNoIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinNoIndexIT.java index 6f04729..8a1a603 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinNoIndexIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinNoIndexIT.java @@ -19,13 +19,31 @@ package org.apache.phoenix.end2end.join; import java.util.Collection; import java.util.List; +import java.util.Map; import org.junit.runners.Parameterized.Parameters; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; public class SortMergeJoinNoIndexIT extends SortMergeJoinIT { + private static final Map<String,String> virtualNameToRealNameMap = Maps.newHashMap(); + private static final String schemaName = "S_" + generateUniqueName(); + + @Override + protected String getSchemaName() { + // run all tests in a single schema + return schemaName; + } + + @Override + protected Map<String,String> getTableNameMap() { + // cache across tests, so that tables and + // indexes are not recreated each time + return virtualNameToRealNameMap; + } + public SortMergeJoinNoIndexIT(String[] indexDDL, String[] plans) { super(indexDDL, plans); }