[16/50] [abbrv] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/28ba1eae Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/28ba1eae Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/28ba1eae Branch: refs/heads/master-cdh5.7 Commit: 28ba1eaeac8fd29ff3872f6d14604813a89b3a6e Parents: 93bf0d0 Author: Hongbin MaAuthored: Thu Dec 1 11:35:34 2016 +0800 Committer: Hongbin Ma Committed: Thu Dec 1 11:46:00 2016 +0800 -- .../java/org/apache/kylin/common/KylinConfigBase.java | 12 .../main/java/org/apache/kylin/cube/model/CubeDesc.java | 6 +- 2 files changed, 13 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/28ba1eae/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index 766c04d..3c10826 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -79,7 +79,7 @@ abstract public class KylinConfigBase implements Serializable { protected KylinConfigBase(Properties props, boolean force) { this.properties = force ? props : BCC.check(props); } - + final protected String getOptional(String prop) { return getOptional(prop, null); } @@ -161,7 +161,7 @@ abstract public class KylinConfigBase implements Serializable { public boolean isDevEnv() { return "DEV".equals(getOptional("kylin.env", "DEV")); } - + public String getDeployEnv() { return getOptional("kylin.env", "DEV"); } @@ -211,7 +211,7 @@ abstract public class KylinConfigBase implements Serializable { public Map getCubeCustomMeasureTypes() { return getPropertiesByPrefix("kylin.metadata.custom-measure-types."); } - + // // DICTIONARY & SNAPSHOT // @@ -278,6 +278,10 @@ abstract public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.cube.algorithm.inmem-split-limit", "500")); } +public boolean isIgnoreCubeSignatureInconsistency() { +return Boolean.parseBoolean(getOptional("kylin.cube.ignore-signature-inconsistency", "false")); +} + @Deprecated public int getCubeAggrGroupMaxSize() { return Integer.parseInt(getOptional("kylin.cube.aggrgroup.max-size", "12")); @@ -298,7 +302,7 @@ abstract public class KylinConfigBase implements Serializable { public void setMaxBuildingSegments(int maxBuildingSegments) { setProperty("kylin.cube.max-building-segments", String.valueOf(maxBuildingSegments)); } - + // // JOB // http://git-wip-us.apache.org/repos/asf/kylin/blob/28ba1eae/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java -- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java index 47063d0..327ce57 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java @@ -466,6 +466,11 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { * @return */ public boolean checkSignature() { +if (this.getConfig().isIgnoreCubeSignatureInconsistency()) { +logger.info("Skip checking cube signature"); +return true; +} + if (KylinVersion.getCurrentVersion().isCompatibleWith(new KylinVersion(getVersion())) && !KylinVersion.getCurrentVersion().isSignatureCompatibleWith(new KylinVersion(getVersion( { logger.info("checkSignature on {} is skipped as the its version is {} (not signature compatible but compatible) ", getName(), getVersion()); return true; @@ -1102,7 +1107,6 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { return newCubeDesc; } - private Collection ensureOrder(Collection c) { TreeSet set = new TreeSet(); for (Object o : c)
[21/50] [abbrv] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/e562aafe Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/e562aafe Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/e562aafe Branch: refs/heads/master-cdh5.7 Commit: e562aafee10c8bbd125937503d42b958c1843aad Parents: 3091f06 Author: Hongbin MaAuthored: Fri Dec 2 13:33:02 2016 +0800 Committer: Hongbin Ma Committed: Fri Dec 2 13:33:18 2016 +0800 -- .../kylin/common/debug/BackdoorToggles.java | 18 ++ .../java/org/apache/kylin/jdbc/IRemoteClient.java | 3 ++- .../java/org/apache/kylin/jdbc/KylinClient.java | 7 --- .../org/apache/kylin/jdbc/KylinResultSet.java | 9 - .../org/apache/kylin/jdbc/json/QueryRequest.java | 12 .../java/org/apache/kylin/jdbc/DummyClient.java | 3 ++- .../apache/kylin/rest/service/QueryService.java | 11 ++- 7 files changed, 56 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java b/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java index f7c90aa..28f7697 100644 --- a/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java +++ b/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java @@ -79,6 +79,14 @@ public class BackdoorToggles { } } +public static Integer getStatementMaxRows() { +String v = getString(ATTR_STATEMENT_MAX_ROWS); +if (v == null) +return null; +else +return Integer.valueOf(v); +} + private static String getString(String key) { Map toggles = _backdoorToggles.get(); if (toggles == null) { @@ -183,4 +191,14 @@ public class BackdoorToggles { */ public final static String DEBUG_TOGGLE_SHARD_ASSIGNMENT = "DEBUG_TOGGLE_SHARD_ASSIGNMENT"; +// properties on statement may go with this "channel" too +/** + * set ATTR_STATEMENT_MAX_ROWS="maxRows" to statement's max rows property + * + example:(put it into request body) + "backdoorToggles": { + "ATTR_STATEMENT_MAX_ROWS": "10" + } + */ +public final static String ATTR_STATEMENT_MAX_ROWS = "ATTR_STATEMENT_MAX_ROWS"; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java -- diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java index b6a13e5..dfd8d76 100644 --- a/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java +++ b/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java @@ -21,6 +21,7 @@ package org.apache.kylin.jdbc; import java.io.Closeable; import java.io.IOException; import java.util.List; +import java.util.Map; import org.apache.calcite.avatica.AvaticaParameter; import org.apache.calcite.avatica.ColumnMetaData; @@ -51,6 +52,6 @@ public interface IRemoteClient extends Closeable { /** * Execute query remotely and get back result. */ -public QueryResult executeQuery(String sql, List params, List paramValues) throws IOException; +public QueryResult executeQuery(String sql, List params, List paramValues, Map queryToggles) throws IOException; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java -- diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java index 2d06a92..86c3a5b 100644 --- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java +++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java @@ -321,9 +321,9 @@ public class KylinClient implements IRemoteClient { } @Override -public QueryResult executeQuery(String sql, List params, List paramValues) throws IOException { +public QueryResult executeQuery(String sql, List params, List paramValues, Map queryToggles) throws IOException { -SQLResponseStub queryResp = executeKylinQuery(sql, convertParameters(params, paramValues)); +SQLResponseStub queryResp = executeKylinQuery(sql, convertParameters(params, paramValues), queryToggles); if
[22/50] [abbrv] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/e562aafe Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/e562aafe Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/e562aafe Branch: refs/heads/master-hbase1.x Commit: e562aafee10c8bbd125937503d42b958c1843aad Parents: 3091f06 Author: Hongbin MaAuthored: Fri Dec 2 13:33:02 2016 +0800 Committer: Hongbin Ma Committed: Fri Dec 2 13:33:18 2016 +0800 -- .../kylin/common/debug/BackdoorToggles.java | 18 ++ .../java/org/apache/kylin/jdbc/IRemoteClient.java | 3 ++- .../java/org/apache/kylin/jdbc/KylinClient.java | 7 --- .../org/apache/kylin/jdbc/KylinResultSet.java | 9 - .../org/apache/kylin/jdbc/json/QueryRequest.java | 12 .../java/org/apache/kylin/jdbc/DummyClient.java | 3 ++- .../apache/kylin/rest/service/QueryService.java | 11 ++- 7 files changed, 56 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java b/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java index f7c90aa..28f7697 100644 --- a/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java +++ b/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java @@ -79,6 +79,14 @@ public class BackdoorToggles { } } +public static Integer getStatementMaxRows() { +String v = getString(ATTR_STATEMENT_MAX_ROWS); +if (v == null) +return null; +else +return Integer.valueOf(v); +} + private static String getString(String key) { Map toggles = _backdoorToggles.get(); if (toggles == null) { @@ -183,4 +191,14 @@ public class BackdoorToggles { */ public final static String DEBUG_TOGGLE_SHARD_ASSIGNMENT = "DEBUG_TOGGLE_SHARD_ASSIGNMENT"; +// properties on statement may go with this "channel" too +/** + * set ATTR_STATEMENT_MAX_ROWS="maxRows" to statement's max rows property + * + example:(put it into request body) + "backdoorToggles": { + "ATTR_STATEMENT_MAX_ROWS": "10" + } + */ +public final static String ATTR_STATEMENT_MAX_ROWS = "ATTR_STATEMENT_MAX_ROWS"; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java -- diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java index b6a13e5..dfd8d76 100644 --- a/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java +++ b/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java @@ -21,6 +21,7 @@ package org.apache.kylin.jdbc; import java.io.Closeable; import java.io.IOException; import java.util.List; +import java.util.Map; import org.apache.calcite.avatica.AvaticaParameter; import org.apache.calcite.avatica.ColumnMetaData; @@ -51,6 +52,6 @@ public interface IRemoteClient extends Closeable { /** * Execute query remotely and get back result. */ -public QueryResult executeQuery(String sql, List params, List paramValues) throws IOException; +public QueryResult executeQuery(String sql, List params, List paramValues, Map queryToggles) throws IOException; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java -- diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java index 2d06a92..86c3a5b 100644 --- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java +++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java @@ -321,9 +321,9 @@ public class KylinClient implements IRemoteClient { } @Override -public QueryResult executeQuery(String sql, List params, List paramValues) throws IOException { +public QueryResult executeQuery(String sql, List params, List paramValues, Map queryToggles) throws IOException { -SQLResponseStub queryResp = executeKylinQuery(sql, convertParameters(params, paramValues)); +SQLResponseStub queryResp = executeKylinQuery(sql, convertParameters(params, paramValues), queryToggles); if
[17/50] [abbrv] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/28ba1eae Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/28ba1eae Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/28ba1eae Branch: refs/heads/master-hbase1.x Commit: 28ba1eaeac8fd29ff3872f6d14604813a89b3a6e Parents: 93bf0d0 Author: Hongbin MaAuthored: Thu Dec 1 11:35:34 2016 +0800 Committer: Hongbin Ma Committed: Thu Dec 1 11:46:00 2016 +0800 -- .../java/org/apache/kylin/common/KylinConfigBase.java | 12 .../main/java/org/apache/kylin/cube/model/CubeDesc.java | 6 +- 2 files changed, 13 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/28ba1eae/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index 766c04d..3c10826 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -79,7 +79,7 @@ abstract public class KylinConfigBase implements Serializable { protected KylinConfigBase(Properties props, boolean force) { this.properties = force ? props : BCC.check(props); } - + final protected String getOptional(String prop) { return getOptional(prop, null); } @@ -161,7 +161,7 @@ abstract public class KylinConfigBase implements Serializable { public boolean isDevEnv() { return "DEV".equals(getOptional("kylin.env", "DEV")); } - + public String getDeployEnv() { return getOptional("kylin.env", "DEV"); } @@ -211,7 +211,7 @@ abstract public class KylinConfigBase implements Serializable { public Map getCubeCustomMeasureTypes() { return getPropertiesByPrefix("kylin.metadata.custom-measure-types."); } - + // // DICTIONARY & SNAPSHOT // @@ -278,6 +278,10 @@ abstract public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.cube.algorithm.inmem-split-limit", "500")); } +public boolean isIgnoreCubeSignatureInconsistency() { +return Boolean.parseBoolean(getOptional("kylin.cube.ignore-signature-inconsistency", "false")); +} + @Deprecated public int getCubeAggrGroupMaxSize() { return Integer.parseInt(getOptional("kylin.cube.aggrgroup.max-size", "12")); @@ -298,7 +302,7 @@ abstract public class KylinConfigBase implements Serializable { public void setMaxBuildingSegments(int maxBuildingSegments) { setProperty("kylin.cube.max-building-segments", String.valueOf(maxBuildingSegments)); } - + // // JOB // http://git-wip-us.apache.org/repos/asf/kylin/blob/28ba1eae/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java -- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java index 47063d0..327ce57 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java @@ -466,6 +466,11 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { * @return */ public boolean checkSignature() { +if (this.getConfig().isIgnoreCubeSignatureInconsistency()) { +logger.info("Skip checking cube signature"); +return true; +} + if (KylinVersion.getCurrentVersion().isCompatibleWith(new KylinVersion(getVersion())) && !KylinVersion.getCurrentVersion().isSignatureCompatibleWith(new KylinVersion(getVersion( { logger.info("checkSignature on {} is skipped as the its version is {} (not signature compatible but compatible) ", getName(), getVersion()); return true; @@ -1102,7 +1107,6 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { return newCubeDesc; } - private Collection ensureOrder(Collection c) { TreeSet set = new TreeSet(); for (Object o : c)
[08/27] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/28ba1eae Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/28ba1eae Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/28ba1eae Branch: refs/heads/KYLIN-1875 Commit: 28ba1eaeac8fd29ff3872f6d14604813a89b3a6e Parents: 93bf0d0 Author: Hongbin MaAuthored: Thu Dec 1 11:35:34 2016 +0800 Committer: Hongbin Ma Committed: Thu Dec 1 11:46:00 2016 +0800 -- .../java/org/apache/kylin/common/KylinConfigBase.java | 12 .../main/java/org/apache/kylin/cube/model/CubeDesc.java | 6 +- 2 files changed, 13 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/28ba1eae/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index 766c04d..3c10826 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -79,7 +79,7 @@ abstract public class KylinConfigBase implements Serializable { protected KylinConfigBase(Properties props, boolean force) { this.properties = force ? props : BCC.check(props); } - + final protected String getOptional(String prop) { return getOptional(prop, null); } @@ -161,7 +161,7 @@ abstract public class KylinConfigBase implements Serializable { public boolean isDevEnv() { return "DEV".equals(getOptional("kylin.env", "DEV")); } - + public String getDeployEnv() { return getOptional("kylin.env", "DEV"); } @@ -211,7 +211,7 @@ abstract public class KylinConfigBase implements Serializable { public Map getCubeCustomMeasureTypes() { return getPropertiesByPrefix("kylin.metadata.custom-measure-types."); } - + // // DICTIONARY & SNAPSHOT // @@ -278,6 +278,10 @@ abstract public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.cube.algorithm.inmem-split-limit", "500")); } +public boolean isIgnoreCubeSignatureInconsistency() { +return Boolean.parseBoolean(getOptional("kylin.cube.ignore-signature-inconsistency", "false")); +} + @Deprecated public int getCubeAggrGroupMaxSize() { return Integer.parseInt(getOptional("kylin.cube.aggrgroup.max-size", "12")); @@ -298,7 +302,7 @@ abstract public class KylinConfigBase implements Serializable { public void setMaxBuildingSegments(int maxBuildingSegments) { setProperty("kylin.cube.max-building-segments", String.valueOf(maxBuildingSegments)); } - + // // JOB // http://git-wip-us.apache.org/repos/asf/kylin/blob/28ba1eae/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java -- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java index 47063d0..327ce57 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java @@ -466,6 +466,11 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { * @return */ public boolean checkSignature() { +if (this.getConfig().isIgnoreCubeSignatureInconsistency()) { +logger.info("Skip checking cube signature"); +return true; +} + if (KylinVersion.getCurrentVersion().isCompatibleWith(new KylinVersion(getVersion())) && !KylinVersion.getCurrentVersion().isSignatureCompatibleWith(new KylinVersion(getVersion( { logger.info("checkSignature on {} is skipped as the its version is {} (not signature compatible but compatible) ", getName(), getVersion()); return true; @@ -1102,7 +1107,6 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { return newCubeDesc; } - private Collection ensureOrder(Collection c) { TreeSet set = new TreeSet(); for (Object o : c)
kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
Repository: kylin Updated Branches: refs/heads/master 3091f06a6 -> e562aafee KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/e562aafe Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/e562aafe Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/e562aafe Branch: refs/heads/master Commit: e562aafee10c8bbd125937503d42b958c1843aad Parents: 3091f06 Author: Hongbin MaAuthored: Fri Dec 2 13:33:02 2016 +0800 Committer: Hongbin Ma Committed: Fri Dec 2 13:33:18 2016 +0800 -- .../kylin/common/debug/BackdoorToggles.java | 18 ++ .../java/org/apache/kylin/jdbc/IRemoteClient.java | 3 ++- .../java/org/apache/kylin/jdbc/KylinClient.java | 7 --- .../org/apache/kylin/jdbc/KylinResultSet.java | 9 - .../org/apache/kylin/jdbc/json/QueryRequest.java | 12 .../java/org/apache/kylin/jdbc/DummyClient.java | 3 ++- .../apache/kylin/rest/service/QueryService.java | 11 ++- 7 files changed, 56 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java b/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java index f7c90aa..28f7697 100644 --- a/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java +++ b/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java @@ -79,6 +79,14 @@ public class BackdoorToggles { } } +public static Integer getStatementMaxRows() { +String v = getString(ATTR_STATEMENT_MAX_ROWS); +if (v == null) +return null; +else +return Integer.valueOf(v); +} + private static String getString(String key) { Map toggles = _backdoorToggles.get(); if (toggles == null) { @@ -183,4 +191,14 @@ public class BackdoorToggles { */ public final static String DEBUG_TOGGLE_SHARD_ASSIGNMENT = "DEBUG_TOGGLE_SHARD_ASSIGNMENT"; +// properties on statement may go with this "channel" too +/** + * set ATTR_STATEMENT_MAX_ROWS="maxRows" to statement's max rows property + * + example:(put it into request body) + "backdoorToggles": { + "ATTR_STATEMENT_MAX_ROWS": "10" + } + */ +public final static String ATTR_STATEMENT_MAX_ROWS = "ATTR_STATEMENT_MAX_ROWS"; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java -- diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java index b6a13e5..dfd8d76 100644 --- a/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java +++ b/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java @@ -21,6 +21,7 @@ package org.apache.kylin.jdbc; import java.io.Closeable; import java.io.IOException; import java.util.List; +import java.util.Map; import org.apache.calcite.avatica.AvaticaParameter; import org.apache.calcite.avatica.ColumnMetaData; @@ -51,6 +52,6 @@ public interface IRemoteClient extends Closeable { /** * Execute query remotely and get back result. */ -public QueryResult executeQuery(String sql, List params, List paramValues) throws IOException; +public QueryResult executeQuery(String sql, List params, List paramValues, Map queryToggles) throws IOException; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e562aafe/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java -- diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java index 2d06a92..86c3a5b 100644 --- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java +++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java @@ -321,9 +321,9 @@ public class KylinClient implements IRemoteClient { } @Override -public QueryResult executeQuery(String sql, List params, List paramValues) throws IOException { +public QueryResult executeQuery(String sql, List params, List paramValues, Map queryToggles) throws IOException { -SQLResponseStub queryResp = executeKylinQuery(sql, convertParameters(params, paramValues)); +SQLResponseStub queryResp = executeKylinQuery(sql,
[3/6] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/80018874 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/80018874 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/80018874 Branch: refs/heads/yang21-hbase102 Commit: 80018874c26d17f57bd288654996d3b6508d8294 Parents: 076c77a Author: Hongbin MaAuthored: Thu Dec 1 11:35:34 2016 +0800 Committer: Hongbin Ma Committed: Thu Dec 1 11:35:34 2016 +0800 -- .../apache/kylin/common/KylinConfigBase.java| 39 ++--- .../org/apache/kylin/cube/model/CubeDesc.java | 90 +++- 2 files changed, 76 insertions(+), 53 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/80018874/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index a91e42b..f35f969 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -18,6 +18,13 @@ package org.apache.kylin.common; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import org.apache.commons.lang.StringUtils; +import org.apache.kylin.common.util.CliCommandExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.io.IOException; import java.io.Serializable; @@ -28,14 +35,6 @@ import java.util.SortedSet; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; -import org.apache.kylin.common.util.CliCommandExecutor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - /** * An abstract class to encapsulate access to a set of 'properties'. * Subclass can override methods in this class to extend the content of the 'properties', @@ -174,19 +173,25 @@ abstract public class KylinConfigBase implements Serializable { setProperty("kylin.storage.url", storageUrl); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHiveUrl() { return getOptional("hive.url", ""); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHiveUser() { return getOptional("hive.user", ""); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHivePassword() { return getOptional("hive.password", ""); @@ -202,7 +207,7 @@ abstract public class KylinConfigBase implements Serializable { public String[] getRealizationProviders() { return getOptionalStringArray("kylin.realization.providers", // -new String[] { "org.apache.kylin.cube.CubeManager", "org.apache.kylin.storage.hybrid.HybridManager" }); +new String[]{"org.apache.kylin.cube.CubeManager", "org.apache.kylin.storage.hybrid.HybridManager"}); } public CliCommandExecutor getCliCommandExecutor() throws IOException { @@ -427,6 +432,10 @@ abstract public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.cube.algorithm.auto.mapper.limit", "500")); } +public boolean isIgnoreCubeSignatureInconsistency() { +return Boolean.parseBoolean(getOptional("kylin.cube.ignore-signature-inconsistency", "false")); +} + @Deprecated public int getCubeAggrGroupMaxSize() { return Integer.parseInt(getOptional("kylin.cube.aggrgroup.max.size", "12")); @@ -480,10 +489,11 @@ abstract public class KylinConfigBase implements Serializable { public float getCubeVisitTimeoutTimes() { return Float.parseFloat(getOptional("kylin.query.cube.visit.timeout.times", "1")); } - + public int getDerivedInThreshold() { return Integer.parseInt(getOptional("kylin.query.filter.derived_in.max", "20")); } + public int getBadQueryStackTraceDepth() { return Integer.parseInt(getOptional("kylin.query.badquery.stacktrace.depth", "10")); } @@ -569,7 +579,7 @@ abstract public class KylinConfigBase implements Serializable { } public int[] getQueryMetricsPercentilesIntervals() { -String[] dft = { "60",
[3/6] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/80018874 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/80018874 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/80018874 Branch: refs/heads/yang21-cdh5.7 Commit: 80018874c26d17f57bd288654996d3b6508d8294 Parents: 076c77a Author: Hongbin MaAuthored: Thu Dec 1 11:35:34 2016 +0800 Committer: Hongbin Ma Committed: Thu Dec 1 11:35:34 2016 +0800 -- .../apache/kylin/common/KylinConfigBase.java| 39 ++--- .../org/apache/kylin/cube/model/CubeDesc.java | 90 +++- 2 files changed, 76 insertions(+), 53 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/80018874/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index a91e42b..f35f969 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -18,6 +18,13 @@ package org.apache.kylin.common; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import org.apache.commons.lang.StringUtils; +import org.apache.kylin.common.util.CliCommandExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.io.IOException; import java.io.Serializable; @@ -28,14 +35,6 @@ import java.util.SortedSet; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; -import org.apache.kylin.common.util.CliCommandExecutor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - /** * An abstract class to encapsulate access to a set of 'properties'. * Subclass can override methods in this class to extend the content of the 'properties', @@ -174,19 +173,25 @@ abstract public class KylinConfigBase implements Serializable { setProperty("kylin.storage.url", storageUrl); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHiveUrl() { return getOptional("hive.url", ""); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHiveUser() { return getOptional("hive.user", ""); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHivePassword() { return getOptional("hive.password", ""); @@ -202,7 +207,7 @@ abstract public class KylinConfigBase implements Serializable { public String[] getRealizationProviders() { return getOptionalStringArray("kylin.realization.providers", // -new String[] { "org.apache.kylin.cube.CubeManager", "org.apache.kylin.storage.hybrid.HybridManager" }); +new String[]{"org.apache.kylin.cube.CubeManager", "org.apache.kylin.storage.hybrid.HybridManager"}); } public CliCommandExecutor getCliCommandExecutor() throws IOException { @@ -427,6 +432,10 @@ abstract public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.cube.algorithm.auto.mapper.limit", "500")); } +public boolean isIgnoreCubeSignatureInconsistency() { +return Boolean.parseBoolean(getOptional("kylin.cube.ignore-signature-inconsistency", "false")); +} + @Deprecated public int getCubeAggrGroupMaxSize() { return Integer.parseInt(getOptional("kylin.cube.aggrgroup.max.size", "12")); @@ -480,10 +489,11 @@ abstract public class KylinConfigBase implements Serializable { public float getCubeVisitTimeoutTimes() { return Float.parseFloat(getOptional("kylin.query.cube.visit.timeout.times", "1")); } - + public int getDerivedInThreshold() { return Integer.parseInt(getOptional("kylin.query.filter.derived_in.max", "20")); } + public int getBadQueryStackTraceDepth() { return Integer.parseInt(getOptional("kylin.query.badquery.stacktrace.depth", "10")); } @@ -569,7 +579,7 @@ abstract public class KylinConfigBase implements Serializable { } public int[] getQueryMetricsPercentilesIntervals() { -String[] dft = { "60", "300",
[3/5] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/80018874 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/80018874 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/80018874 Branch: refs/heads/yang21-hbase1.x Commit: 80018874c26d17f57bd288654996d3b6508d8294 Parents: 076c77a Author: Hongbin MaAuthored: Thu Dec 1 11:35:34 2016 +0800 Committer: Hongbin Ma Committed: Thu Dec 1 11:35:34 2016 +0800 -- .../apache/kylin/common/KylinConfigBase.java| 39 ++--- .../org/apache/kylin/cube/model/CubeDesc.java | 90 +++- 2 files changed, 76 insertions(+), 53 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/80018874/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index a91e42b..f35f969 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -18,6 +18,13 @@ package org.apache.kylin.common; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import org.apache.commons.lang.StringUtils; +import org.apache.kylin.common.util.CliCommandExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.io.IOException; import java.io.Serializable; @@ -28,14 +35,6 @@ import java.util.SortedSet; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; -import org.apache.kylin.common.util.CliCommandExecutor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - /** * An abstract class to encapsulate access to a set of 'properties'. * Subclass can override methods in this class to extend the content of the 'properties', @@ -174,19 +173,25 @@ abstract public class KylinConfigBase implements Serializable { setProperty("kylin.storage.url", storageUrl); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHiveUrl() { return getOptional("hive.url", ""); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHiveUser() { return getOptional("hive.user", ""); } -/** was for route to hive, not used any more */ +/** + * was for route to hive, not used any more + */ @Deprecated public String getHivePassword() { return getOptional("hive.password", ""); @@ -202,7 +207,7 @@ abstract public class KylinConfigBase implements Serializable { public String[] getRealizationProviders() { return getOptionalStringArray("kylin.realization.providers", // -new String[] { "org.apache.kylin.cube.CubeManager", "org.apache.kylin.storage.hybrid.HybridManager" }); +new String[]{"org.apache.kylin.cube.CubeManager", "org.apache.kylin.storage.hybrid.HybridManager"}); } public CliCommandExecutor getCliCommandExecutor() throws IOException { @@ -427,6 +432,10 @@ abstract public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.cube.algorithm.auto.mapper.limit", "500")); } +public boolean isIgnoreCubeSignatureInconsistency() { +return Boolean.parseBoolean(getOptional("kylin.cube.ignore-signature-inconsistency", "false")); +} + @Deprecated public int getCubeAggrGroupMaxSize() { return Integer.parseInt(getOptional("kylin.cube.aggrgroup.max.size", "12")); @@ -480,10 +489,11 @@ abstract public class KylinConfigBase implements Serializable { public float getCubeVisitTimeoutTimes() { return Float.parseFloat(getOptional("kylin.query.cube.visit.timeout.times", "1")); } - + public int getDerivedInThreshold() { return Integer.parseInt(getOptional("kylin.query.filter.derived_in.max", "20")); } + public int getBadQueryStackTraceDepth() { return Integer.parseInt(getOptional("kylin.query.badquery.stacktrace.depth", "10")); } @@ -569,7 +579,7 @@ abstract public class KylinConfigBase implements Serializable { } public int[] getQueryMetricsPercentilesIntervals() { -String[] dft = { "60",
[2/2] kylin git commit: KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally
KYLIN-2240 Add a toggle to ignore all cube signature inconsistency temporally Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/28ba1eae Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/28ba1eae Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/28ba1eae Branch: refs/heads/master Commit: 28ba1eaeac8fd29ff3872f6d14604813a89b3a6e Parents: 93bf0d0 Author: Hongbin MaAuthored: Thu Dec 1 11:35:34 2016 +0800 Committer: Hongbin Ma Committed: Thu Dec 1 11:46:00 2016 +0800 -- .../java/org/apache/kylin/common/KylinConfigBase.java | 12 .../main/java/org/apache/kylin/cube/model/CubeDesc.java | 6 +- 2 files changed, 13 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kylin/blob/28ba1eae/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java -- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index 766c04d..3c10826 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -79,7 +79,7 @@ abstract public class KylinConfigBase implements Serializable { protected KylinConfigBase(Properties props, boolean force) { this.properties = force ? props : BCC.check(props); } - + final protected String getOptional(String prop) { return getOptional(prop, null); } @@ -161,7 +161,7 @@ abstract public class KylinConfigBase implements Serializable { public boolean isDevEnv() { return "DEV".equals(getOptional("kylin.env", "DEV")); } - + public String getDeployEnv() { return getOptional("kylin.env", "DEV"); } @@ -211,7 +211,7 @@ abstract public class KylinConfigBase implements Serializable { public Map getCubeCustomMeasureTypes() { return getPropertiesByPrefix("kylin.metadata.custom-measure-types."); } - + // // DICTIONARY & SNAPSHOT // @@ -278,6 +278,10 @@ abstract public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.cube.algorithm.inmem-split-limit", "500")); } +public boolean isIgnoreCubeSignatureInconsistency() { +return Boolean.parseBoolean(getOptional("kylin.cube.ignore-signature-inconsistency", "false")); +} + @Deprecated public int getCubeAggrGroupMaxSize() { return Integer.parseInt(getOptional("kylin.cube.aggrgroup.max-size", "12")); @@ -298,7 +302,7 @@ abstract public class KylinConfigBase implements Serializable { public void setMaxBuildingSegments(int maxBuildingSegments) { setProperty("kylin.cube.max-building-segments", String.valueOf(maxBuildingSegments)); } - + // // JOB // http://git-wip-us.apache.org/repos/asf/kylin/blob/28ba1eae/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java -- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java index 47063d0..327ce57 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java @@ -466,6 +466,11 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { * @return */ public boolean checkSignature() { +if (this.getConfig().isIgnoreCubeSignatureInconsistency()) { +logger.info("Skip checking cube signature"); +return true; +} + if (KylinVersion.getCurrentVersion().isCompatibleWith(new KylinVersion(getVersion())) && !KylinVersion.getCurrentVersion().isSignatureCompatibleWith(new KylinVersion(getVersion( { logger.info("checkSignature on {} is skipped as the its version is {} (not signature compatible but compatible) ", getName(), getVersion()); return true; @@ -1102,7 +1107,6 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { return newCubeDesc; } - private Collection ensureOrder(Collection c) { TreeSet set = new TreeSet(); for (Object o : c)