You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2017/02/14 09:56:27 UTC

[2/2] kylin git commit: KYLIN-2243 use 4 for dict's default length

KYLIN-2243 use 4 for dict's default length


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

Branch: refs/heads/master
Commit: c3021156dba2e7a6c685e3d8240b8dff3a3c4814
Parents: a5326fc
Author: shaofengshi <sh...@apache.org>
Authored: Tue Feb 14 17:54:19 2017 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Tue Feb 14 17:56:22 2017 +0800

----------------------------------------------------------------------
 .../src/main/java/org/apache/kylin/cube/CubeDescManager.java      | 2 +-
 .../main/java/org/apache/kylin/dimension/DictionaryDimEnc.java    | 2 ++
 .../java/org/apache/kylin/measure/topn/TopNCounterSerializer.java | 3 ++-
 3 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/c3021156/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
index dfc8f73..1bf7e97 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
@@ -254,7 +254,7 @@ public class CubeDescManager {
                     String encoding = configuration.get(TopNMeasureType.CONFIG_ENCODING_PREFIX + parameter.getValue());
                     String encodingVersionStr = configuration.get(TopNMeasureType.CONFIG_ENCODING_VERSION_PREFIX + parameter.getValue());
                     if (StringUtils.isEmpty(encoding) || DictionaryDimEnc.ENCODING_NAME.equals(encoding)) {
-                        keyLength += 6; // estimation for dict encoding
+                        keyLength += DictionaryDimEnc.MAX_ENCODING_LENGTH; // estimation for dict encoding
                     } else {
                         // non-dict encoding
                         int encodingVersion = 1;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c3021156/core-metadata/src/main/java/org/apache/kylin/dimension/DictionaryDimEnc.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/DictionaryDimEnc.java b/core-metadata/src/main/java/org/apache/kylin/dimension/DictionaryDimEnc.java
index 48238dc..8244152 100644
--- a/core-metadata/src/main/java/org/apache/kylin/dimension/DictionaryDimEnc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/dimension/DictionaryDimEnc.java
@@ -36,6 +36,8 @@ public class DictionaryDimEnc extends DimensionEncoding {
 
     public static final String ENCODING_NAME = "dict";
 
+    public static final int MAX_ENCODING_LENGTH = 4; // won't exceed integer's length
+
     // ============================================================================
 
     // could use a lazy loading trick here, to prevent loading all dictionaries of a segment at once

http://git-wip-us.apache.org/repos/asf/kylin/blob/c3021156/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java
index c35bd30..77a69cf 100644
--- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java
+++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNCounterSerializer.java
@@ -23,6 +23,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.dimension.DictionaryDimEnc;
 import org.apache.kylin.metadata.datatype.DataType;
 import org.apache.kylin.metadata.datatype.DataTypeSerializer;
 
@@ -41,7 +42,7 @@ public class TopNCounterSerializer extends DataTypeSerializer<TopNCounter<ByteAr
         this.precision = dataType.getPrecision();
         this.scale = dataType.getScale();
         if (scale < 0) {
-            scale = 6;
+            scale = DictionaryDimEnc.MAX_ENCODING_LENGTH;
         }
     }