Repository: kylin
Updated Branches:
  refs/heads/master 195f75104 -> c86de1a8e


KYLIN-1556 minor changes to improve correctness, still needs further changes


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/9aeb7652
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/9aeb7652
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/9aeb7652

Branch: refs/heads/master
Commit: 9aeb76526f71a43ebfd9394c1eafb46398906208
Parents: 5dd133f
Author: Hongbin Ma <mahong...@apache.org>
Authored: Fri Apr 1 14:45:02 2016 +0800
Committer: Hongbin Ma <mahong...@apache.org>
Committed: Fri Apr 1 14:45:57 2016 +0800

----------------------------------------------------------------------
 .../apache/kylin/common/KylinConfigBase.java    | 16 ++++++++++------
 .../org/apache/kylin/cube/CubeInstance.java     |  9 +++++++--
 .../org/apache/kylin/query/ITIIQueryTest.java   |  2 +-
 .../apache/kylin/query/routing/Candidate.java   | 20 +++++++-------------
 4 files changed, 25 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/9aeb7652/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 3d9a338..e911dd9 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
@@ -66,11 +66,11 @@ abstract public class KylinConfigBase implements 
Serializable {
     // 
============================================================================
 
     private volatile Properties properties = new Properties();
-    
+
     public KylinConfigBase() {
         this(new Properties());
     }
-    
+
     public KylinConfigBase(Properties props) {
         this.properties = props;
     }
@@ -433,7 +433,7 @@ abstract public class KylinConfigBase implements 
Serializable {
     public int getScanThreshold() {
         return Integer.parseInt(getOptional("kylin.query.scan.threshold", 
"10000000"));
     }
-    
+
     public int getCubeVisitTimeoutTimes() {
         return 
Integer.parseInt(getOptional("kylin.query.cube.visit.timeout.times", "1"));
     }
@@ -447,7 +447,11 @@ abstract public class KylinConfigBase implements 
Serializable {
     }
 
     public int getBadQueryDefaultAlertingSeconds() {
-        return 
Integer.parseInt(getOptional("kylin.query.badquery.default.alerting.seconds", 
"90"));
+        return 
Integer.parseInt(getOptional("kylin.query.badquery.alerting.seconds", "90"));
+    }
+
+    public int getBadQueryDefaultDetectIntervalSeconds() {
+        return 
Integer.parseInt(getOptional("kylin.query.badquery.default.alerting.seconds", 
"60"));
     }
 
     public int getCachedDictMaxEntrySize() {
@@ -500,7 +504,7 @@ abstract public class KylinConfigBase implements 
Serializable {
 
     //don't change this per https://issues.apache.org/jira/browse/KYLIN-1545
     public int getHBaseScanMaxResultSize() {
-        return 
Integer.parseInt(this.getOptional("kylin.hbase.scan.max_result_size", "-1")); 
+        return 
Integer.parseInt(this.getOptional("kylin.hbase.scan.max_result_size", "-1"));
     }
 
     public int getCubingInMemSamplingPercent() {
@@ -532,7 +536,7 @@ abstract public class KylinConfigBase implements 
Serializable {
     public String getHbaseDefaultCompressionCodec() {
         return getOptional("kylin.hbase.default.compression.codec", "");
     }
-    
+
     public String getHbaseDefaultEncoding() {
         return getOptional("kylin.hbase.default.encoding", "FAST_DIFF");
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/9aeb7652/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java 
b/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
index f725308..8f1af7a 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
@@ -343,7 +343,8 @@ public class CubeInstance extends RootPersistentEntity 
implements IRealization,
     private int getCost(SQLDigest digest) {
         int calculatedCost = cost;
 
-        calculatedCost += getAllDimensions().size() * COST_WEIGHT_DIMENSION + 
getMeasures().size() * COST_WEIGHT_MEASURE;
+        //the number of dimensions is not as accurate as number of row key cols
+        calculatedCost += getRowKeyColumnCount() * COST_WEIGHT_DIMENSION + 
getMeasures().size() * COST_WEIGHT_MEASURE;
 
         for (LookupDesc lookupDesc : 
this.getDescriptor().getModel().getLookups()) {
             // more tables, more cost
@@ -352,7 +353,7 @@ public class CubeInstance extends RootPersistentEntity 
implements IRealization,
                 calculatedCost += COST_WEIGHT_INNER_JOIN;
             }
         }
-        
+
         return calculatedCost;
     }
 
@@ -398,6 +399,10 @@ public class CubeInstance extends RootPersistentEntity 
implements IRealization,
         return this.getDescriptor().getModelName();
     }
 
+    public int getRowKeyColumnCount() {
+        return getDescriptor().getRowkey().getRowKeyColumns().length;
+    }
+
     @Override
     public List<TblColRef> getAllDimensions() {
         return 
Lists.newArrayList(getDescriptor().listDimensionColumnsIncludingDerived());

http://git-wip-us.apache.org/repos/asf/kylin/blob/9aeb7652/kylin-it/src/test/java/org/apache/kylin/query/ITIIQueryTest.java
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/java/org/apache/kylin/query/ITIIQueryTest.java 
b/kylin-it/src/test/java/org/apache/kylin/query/ITIIQueryTest.java
index 8fe4b93..67033dd 100644
--- a/kylin-it/src/test/java/org/apache/kylin/query/ITIIQueryTest.java
+++ b/kylin-it/src/test/java/org/apache/kylin/query/ITIIQueryTest.java
@@ -43,8 +43,8 @@ public class ITIIQueryTest extends ITKylinQueryTest {
         // give II higher priority than other realizations
         Map<RealizationType, Integer> priorities = Maps.newHashMap();
         priorities.put(RealizationType.INVERTED_INDEX, 0);
-        priorities.put(RealizationType.CUBE, 1);
         priorities.put(RealizationType.HYBRID, 1);
+        priorities.put(RealizationType.CUBE, 2);
         Candidate.setPriorities(priorities);
 
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/9aeb7652/query/src/main/java/org/apache/kylin/query/routing/Candidate.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/Candidate.java 
b/query/src/main/java/org/apache/kylin/query/routing/Candidate.java
index 5e4dcf6..9be8f5e 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/Candidate.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/Candidate.java
@@ -24,7 +24,6 @@ import org.apache.kylin.metadata.realization.CapabilityResult;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.RealizationType;
 import org.apache.kylin.metadata.realization.SQLDigest;
-import org.apache.kylin.storage.hybrid.HybridInstance;
 
 import com.google.common.collect.Maps;
 
@@ -34,10 +33,10 @@ public class Candidate implements Comparable<Candidate> {
 
     static {
         PRIORITIES.put(RealizationType.HYBRID, 0);
-        PRIORITIES.put(RealizationType.CUBE, 0);
-        PRIORITIES.put(RealizationType.INVERTED_INDEX, 1);
+        PRIORITIES.put(RealizationType.CUBE, 1);
+        PRIORITIES.put(RealizationType.INVERTED_INDEX, 2);
     }
-    
+
     /** for test only */
     public static void setPriorities(Map<RealizationType, Integer> priorities) 
{
         PRIORITIES.clear();
@@ -56,11 +55,11 @@ public class Candidate implements Comparable<Candidate> {
         this.sqlDigest = sqlDigest;
         this.priority = PRIORITIES.get(realization.getType());
     }
-    
+
     public IRealization getRealization() {
         return realization;
     }
-    
+
     public SQLDigest getSqlDigest() {
         return sqlDigest;
     }
@@ -88,13 +87,8 @@ public class Candidate implements Comparable<Candidate> {
         if (comp != 0) {
             return comp;
         }
-
-        if (this.realization instanceof HybridInstance)
-            return -1;
-        else if (o.realization instanceof HybridInstance)
-            return 1;
-        else
-            return 0;
+        
+        return 0;
     }
 
 }

Reply via email to