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",