You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by pu...@apache.org on 2017/12/19 11:32:04 UTC
lens git commit: LENS-1493: TotalQueryCost logic broken
Repository: lens
Updated Branches:
refs/heads/master 96fc4422a -> 2e1edff87
LENS-1493: TotalQueryCost logic broken
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/2e1edff8
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/2e1edff8
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/2e1edff8
Branch: refs/heads/master
Commit: 2e1edff870154933f9a1018927dea880639ca695
Parents: 96fc442
Author: Rajitha R <ra...@gmail.com>
Authored: Tue Dec 19 17:01:10 2017 +0530
Committer: Puneet Gupta <pu...@apache.org>
Committed: Tue Dec 19 17:01:10 2017 +0530
----------------------------------------------------------------------
.../server/api/query/cost/StaticQueryCost.java | 1 +
.../DefaultEstimatedQueryCollection.java | 12 ++++++------
.../DefaultEstimatedQueryCollectionTest.java | 20 ++++++++------------
3 files changed, 15 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/2e1edff8/lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/StaticQueryCost.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/StaticQueryCost.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/StaticQueryCost.java
index 8cdc254..5377ab2 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/StaticQueryCost.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/StaticQueryCost.java
@@ -41,6 +41,7 @@ public class StaticQueryCost implements QueryCost<StaticQueryCost>, Serializable
public StaticQueryCost(final double cost) {
this.staticCost = cost;
+ this.queryCostType = QueryCostType.HIGH;
}
//Added for testcase
http://git-wip-us.apache.org/repos/asf/lens/blob/2e1edff8/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
index 9a37afd..aa1406e 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
@@ -28,6 +28,7 @@ import org.apache.lens.server.api.driver.LensDriver;
import org.apache.lens.server.api.query.QueryContext;
import org.apache.lens.server.api.query.cost.FactPartitionBasedQueryCost;
import org.apache.lens.server.api.query.cost.QueryCost;
+import org.apache.lens.server.api.query.cost.StaticQueryCost;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.map.MultiValueMap;
@@ -160,18 +161,17 @@ public class DefaultEstimatedQueryCollection implements EstimatedQueryCollection
private QueryCost getTotalQueryCost(final Collection<QueryContext> queries) {
if (queries.isEmpty()) {
- return new FactPartitionBasedQueryCost(0);
+ return new StaticQueryCost(0);
}
- QueryContext query0 = Iterables.get(queries, 0);
- QueryCost totalQueryCost = query0.getSelectedDriverQueryCost();
+ Double totalQueryCost = 0d;
for (QueryContext query : queries) {
- QueryCost queryCost = query.getSelectedDriverQueryCost();
- totalQueryCost = totalQueryCost.add(queryCost);
+ Double queryCost = query.getSelectedDriverQueryCost().getEstimatedResourceUsage();
+ totalQueryCost = totalQueryCost + queryCost;
}
log.debug("Total Query Cost:{}", totalQueryCost);
- return totalQueryCost;
+ return new StaticQueryCost(totalQueryCost);
}
@Override
http://git-wip-us.apache.org/repos/asf/lens/blob/2e1edff8/lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollectionTest.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollectionTest.java b/lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollectionTest.java
index 4dde18a..06ac9fb 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollectionTest.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollectionTest.java
@@ -30,8 +30,8 @@ import java.util.Set;
import org.apache.lens.server.api.driver.LensDriver;
import org.apache.lens.server.api.error.LensException;
import org.apache.lens.server.api.query.QueryContext;
-import org.apache.lens.server.api.query.cost.FactPartitionBasedQueryCost;
import org.apache.lens.server.api.query.cost.QueryCost;
+import org.apache.lens.server.api.query.cost.StaticQueryCost;
import org.testng.annotations.Test;
@@ -50,7 +50,7 @@ public class DefaultEstimatedQueryCollectionTest {
EstimatedQueryCollection queries = new DefaultEstimatedQueryCollection(mockQueries);
QueryCost actualQueryCost = queries.getTotalQueryCost(MOCK_USER);
- assertEquals(actualQueryCost, new FactPartitionBasedQueryCost(0));
+ assertEquals(actualQueryCost, new StaticQueryCost(0));
}
@Test
@@ -63,19 +63,15 @@ public class DefaultEstimatedQueryCollectionTest {
final QueryContext query0 = Iterables.get(mockQueriesSet, 0);
final QueryContext query1 = Iterables.get(mockQueriesSet, 1);
- final QueryCost mockCost0 = mock(QueryCost.class);
- final QueryCost mockCost1 = mock(QueryCost.class);
- final QueryCost mockCost0Plus0 = mock(QueryCost.class);
- final QueryCost mockCost0Plus0Plus1 = mock(QueryCost.class);
+ final QueryCost sCost0 = new StaticQueryCost(1.0);
+ final QueryCost sCost1 = new StaticQueryCost(1.0);
+ final QueryCost expectedCost = new StaticQueryCost(2.0);
- when(query0.getSelectedDriverQueryCost()).thenReturn(mockCost0);
- when(query1.getSelectedDriverQueryCost()).thenReturn(mockCost1);
-
- when(mockCost0.add(mockCost0)).thenReturn(mockCost0Plus0);
- when(mockCost0Plus0.add(mockCost1)).thenReturn(mockCost0Plus0Plus1);
+ when(query0.getSelectedDriverQueryCost()).thenReturn(sCost0);
+ when(query1.getSelectedDriverQueryCost()).thenReturn(sCost1);
QueryCost actualQueryCost = new DefaultEstimatedQueryCollection(mockQueries).getTotalQueryCost(MOCK_USER);
- assertEquals(actualQueryCost, mockCost0Plus0Plus1);
+ assertEquals(actualQueryCost, expectedCost);
}
@Test