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 Ma <mahong...@apache.org> Authored: Thu Dec 1 11:35:34 2016 +0800 Committer: Hongbin Ma <mahong...@apache.org> 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<String, String> 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)