Repository: kylin Updated Branches: refs/heads/master 5dfda003e -> 5042a30bc
KYLIN-1585 make MAX_HBASE_FUZZY_KEYS in GTScanRangePlanner configurable Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/5042a30b Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/5042a30b Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/5042a30b Branch: refs/heads/master Commit: 5042a30bcbc51a1061d2c09365c994dceb28d44e Parents: 5dfda00 Author: Hongbin Ma <[email protected]> Authored: Thu Apr 14 12:17:31 2016 +0800 Committer: Hongbin Ma <[email protected]> Committed: Thu Apr 14 12:17:31 2016 +0800 ---------------------------------------------------------------------- .../main/java/org/apache/kylin/common/KylinConfigBase.java | 4 ++++ .../java/org/apache/kylin/gridtable/GTScanRangePlanner.java | 8 +++----- 2 files changed, 7 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/5042a30b/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 712bcf7..51aa8aa 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 @@ -488,6 +488,10 @@ abstract public class KylinConfigBase implements Serializable { setProperty("kylin.query.storage.visit.planner", v); } + public int getQueryScanFuzzyKeyMax() { + return Integer.parseInt(this.getOptional("kylin.query.scan.fuzzykey.max","200")); + } + public int getQueryStorageVisitScanRangeMax() { return Integer.valueOf(this.getOptional("kylin.query.storage.visit.scanrange.max", "1000000")); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5042a30b/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRangePlanner.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRangePlanner.java b/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRangePlanner.java index 3f9bac0..479064c 100644 --- a/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRangePlanner.java +++ b/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRangePlanner.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Set; import org.apache.commons.lang3.StringUtils; +import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.debug.BackdoorToggles; import org.apache.kylin.common.util.ByteArray; import org.apache.kylin.common.util.DateFormat; @@ -62,7 +63,6 @@ public class GTScanRangePlanner { private static final Logger logger = LoggerFactory.getLogger(GTScanRangePlanner.class); - private static final int MAX_SCAN_RANGES = 200; private static final int MAX_HBASE_FUZZY_KEYS = 100; protected int maxScanRanges; @@ -93,7 +93,7 @@ public class GTScanRangePlanner { public GTScanRangePlanner(CubeSegment cubeSegment, Cuboid cuboid, TupleFilter filter, Set<TblColRef> dimensions, Set<TblColRef> groupbyDims, // Collection<FunctionDesc> metrics) { - this.maxScanRanges = MAX_SCAN_RANGES; + this.maxScanRanges = KylinConfig.getInstanceFromEnv().getQueryScanFuzzyKeyMax(); this.cubeSegment = cubeSegment; this.cubeDesc = cubeSegment.getCubeDesc(); @@ -143,7 +143,7 @@ public class GTScanRangePlanner { */ public GTScanRangePlanner(GTInfo info, Pair<ByteArray, ByteArray> gtStartAndEnd, TblColRef gtPartitionCol, TupleFilter gtFilter) { - this.maxScanRanges = MAX_SCAN_RANGES; + this.maxScanRanges = KylinConfig.getInstanceFromEnv().getQueryScanFuzzyKeyMax(); this.gtInfo = info; IGTComparator comp = gtInfo.codeSystem.getComparator(); @@ -154,12 +154,10 @@ public class GTScanRangePlanner { //start key GTRecord compare to stop key GTRecord this.rangeStartEndComparator = getRangeStartEndComparator(comp); - this.gtFilter = gtFilter; this.gtStartAndEnd = gtStartAndEnd; this.gtPartitionCol = gtPartitionCol; } - public GTScanRequest planScanRequest(boolean allowPreAggregate) { GTScanRequest scanRequest;
