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 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)

Reply via email to