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-hbase0.98 Commit: c3021156dba2e7a6c685e3d8240b8dff3a3c4814 Parents: a5326fc Author: shaofengshi <shaofeng...@apache.org> Authored: Tue Feb 14 17:54:19 2017 +0800 Committer: shaofengshi <shaofeng...@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; } }