You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by jd...@apache.org on 2015/06/23 12:25:13 UTC

[25/51] [abbrv] incubator-lens git commit: LENS-414: Move LeastPartitionResolver after LeastFactResolver

LENS-414: Move LeastPartitionResolver after LeastFactResolver


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

Branch: refs/heads/current-release-line
Commit: b8995ed3ff3d25bca82448a12fdcbaafc6ada2d6
Parents: ff31ad9
Author: Amareshwari Sriramadasu <am...@apache.org>
Authored: Fri Jun 12 11:44:33 2015 +0530
Committer: Rajat Khandelwal <ra...@gmail.com>
Committed: Fri Jun 12 11:44:33 2015 +0530

----------------------------------------------------------------------
 .../main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java | 5 ++++-
 .../java/org/apache/lens/cube/parse/LeastPartitionResolver.java | 4 ++++
 .../test/java/org/apache/lens/cube/parse/TestQueryMetrics.java  | 4 ++--
 3 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/b8995ed3/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java
index 57c91e7..72dc64b 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java
@@ -175,10 +175,13 @@ public class CubeQueryRewriter {
     rewriters.add(denormResolver);
     // Prune candidate facts without any valid expressions
     rewriters.add(exprResolver);
-    rewriters.add(new LeastPartitionResolver(conf));
+    // We can have LightestFactResolver before LeastPartitionResolver - that says
+    // "if two facts have the same least weight, then the fact with least number of time partitions queried will be
+    // picked". This will be useful, if users did not set fact weights.
     if (!lightFactFirst) {
       rewriters.add(new LightestFactResolver(conf));
     }
+    rewriters.add(new LeastPartitionResolver(conf));
     rewriters.add(new LightestDimensionResolver(conf));
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/b8995ed3/lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java
index d0b3ccb..6e4e948 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java
@@ -41,6 +41,10 @@ class LeastPartitionResolver implements ContextRewriter {
     if (cubeql.getCube() != null && !cubeql.getCandidateFactSets().isEmpty()) {
       Map<Set<CandidateFact>, Integer> factPartCount = new HashMap<Set<CandidateFact>, Integer>();
 
+      //The number of partitions being calculated is not the actual number of partitions,
+      // they are number of time values now instead of partitions.
+      // This seems fine, as the less number of time values actually represent the rollups on time. And with
+      // MaxCoveringFactResolver facts with less partitions which are not covering the range would be removed.
       for (Set<CandidateFact> facts : cubeql.getCandidateFactSets()) {
         factPartCount.put(facts, getPartCount(facts));
       }

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/b8995ed3/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
index 39f70eb..255aade 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
@@ -57,9 +57,9 @@ public class TestQueryMetrics extends TestQueryRewrite {
         "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.FieldValidator-ITER-7",
         "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.GroupbyResolver-ITER-6",
         "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.JoinResolver-ITER-8",
-        "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.LeastPartitionResolver-ITER-17",
+        "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.LeastPartitionResolver-ITER-18",
         "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.LightestDimensionResolver-ITER-19",
-        "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.LightestFactResolver-ITER-18",
+        "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.LightestFactResolver-ITER-17",
         "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.MaxCoveringFactResolver-ITER-13",
         "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.StorageTableResolver-ITER-11",
         "lens.MethodMetricGauge.testCubeRewriteStackName-org.apache.lens.cube.parse.StorageTableResolver-ITER-12",