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 2016/04/20 04:39:35 UTC

[3/3] kylin git commit: KYLIN-1418 Memory hungry cube should select LAYER and INMEM cubing smartly

KYLIN-1418 Memory hungry cube should select LAYER and INMEM cubing smartly

Signed-off-by: shaofengshi <sh...@apache.org>


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

Branch: refs/heads/master
Commit: dc1671ca509586d7fecb81e24fddab56d5380dae
Parents: 39becdc
Author: shaofengshi <sh...@apache.org>
Authored: Wed Apr 20 10:08:09 2016 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Wed Apr 20 10:11:16 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/engine/mr/steps/SaveStatisticsStep.java  | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/dc1671ca/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/SaveStatisticsStep.java
----------------------------------------------------------------------
diff --git a/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/SaveStatisticsStep.java b/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/SaveStatisticsStep.java
index e1070f4..7d5e178 100644
--- a/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/SaveStatisticsStep.java
+++ b/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/SaveStatisticsStep.java
@@ -92,16 +92,15 @@ public class SaveStatisticsStep extends AbstractExecutable {
         } else if (AlgorithmEnum.LAYER.name().equalsIgnoreCase(algPref)) {
             alg = AlgorithmEnum.LAYER;
         } else {
-            boolean memoryHungry = false;
+            int memoryHungryMeasures = 0;
             for (MeasureDesc measure : seg.getCubeDesc().getMeasures()) {
                 if (measure.getFunction().getMeasureType().isMemoryHungry()) {
                     logger.info("This cube has memory-hungry measure " + measure.getFunction().getExpression());
-                    memoryHungry = true;
-                    break;
+                    memoryHungryMeasures++;
                 }
             }
 
-            if (memoryHungry == true) {
+            if (memoryHungryMeasures > 4 || (kylinConf.isDevEnv() && memoryHungryMeasures > 0)) {
                 alg = AlgorithmEnum.LAYER;
             } else if ("random".equalsIgnoreCase(algPref)) { // for testing
                 alg = new Random().nextBoolean() ? AlgorithmEnum.INMEM : AlgorithmEnum.LAYER;