[09/51] [abbrv] lens git commit: LENS-890 : Adds per-queue and per-priority driver max launched queries constraints
LENS-890 : Adds per-queue and per-priority driver max launched queries constraints Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/4d3d2f82 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/4d3d2f82 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/4d3d2f82 Branch: refs/heads/current-release-line Commit: 4d3d2f82fb93ee4d5c52dc3b4910573953094c0a Parents: 73f9243 Author: Rajat KhandelwalAuthored: Tue Dec 15 18:45:08 2015 +0530 Committer: Amareshwari Sriramadasu Committed: Tue Dec 15 18:45:08 2015 +0530 -- .../org/apache/lens/api/util/CommonUtils.java | 27 ++- .../FactPartitionBasedQueryCostCalculator.java | 8 +- .../org/apache/lens/driver/hive/HiveDriver.java | 68 +++--- .../apache/lens/driver/hive/TestHiveDriver.java | 233 --- .../src/test/resources/priority_tests.data | 1 + .../server/api/driver/AbstractLensDriver.java | 13 +- .../lens/server/api/driver/LensDriver.java | 13 +- .../server/api/query/AbstractQueryContext.java | 9 +- .../lens/server/api/query/QueryContext.java | 12 +- .../MaxConcurrentDriverQueriesConstraint.java | 54 - ...oncurrentDriverQueriesConstraintFactory.java | 49 +++- .../api/query/TestAbstractQueryContext.java | 4 +- ...axConcurrentDriverQueriesConstraintTest.java | 181 +- .../server/query/QueryExecutionServiceImpl.java | 1 + .../ThreadSafeEstimatedQueryCollectionTest.java | 3 +- 15 files changed, 527 insertions(+), 149 deletions(-) -- http://git-wip-us.apache.org/repos/asf/lens/blob/4d3d2f82/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java -- diff --git a/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java b/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java index 38d58c7..119c924 100644 --- a/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java +++ b/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java @@ -27,6 +27,25 @@ public class CommonUtils { } + public interface EntryParser { +K parseKey(String str); + +V parseValue(String str); + } + + private static EntryParser defaultEntryParser = new EntryParser () { +@Override +public String parseKey(String str) { + return str; +} + +@Override +public String parseValue(String str) { + return str; +} + }; + + /** * Splits given String str around non-escaped commas. Then parses each of the split element * as map entries in the format `key=value`. Constructs a map of such entries. @@ -36,7 +55,11 @@ public class CommonUtils { * @return parsed map */ public static Map parseMapFromString(String str) { -Map map = new HashMap<>(); +return parseMapFromString(str, defaultEntryParser); + } + + public static Map parseMapFromString(String str, EntryParser parser) { +Map map = new HashMap<>(); if (str != null) { for (String kv : str.split("(? 1) { value = kvArray[1].replaceAll(",", ",").trim(); } - map.put(key, value); + map.put(parser.parseKey(key), parser.parseValue(value)); } } } http://git-wip-us.apache.org/repos/asf/lens/blob/4d3d2f82/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java -- diff --git a/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java b/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java index d56e1c7..9fecdbc 100644 --- a/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java +++ b/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java @@ -47,8 +47,11 @@ public class FactPartitionBasedQueryCostCalculator implements QueryCostCalculato */ @SuppressWarnings("unchecked") // required for (Set) casting - private double getTotalPartitionCost(final AbstractQueryContext queryContext, LensDriver driver) + private Double getTotalPartitionCost(final AbstractQueryContext queryContext, LensDriver driver) throws LensException { +if (queryContext.getDriverRewriterPlan(driver) == null) { + return null; +} double cost = 0; for (Map.Entry entry : getAllPartitions(queryContext, driver).entrySet()) { // Have to do instanceof check, since it can't be handled by polymorphism. @@ -86,7 +89,8 @@ public class
lens git commit: LENS-890 : Adds per-queue and per-priority driver max launched queries constraints
Repository: lens Updated Branches: refs/heads/master 73f92430c -> 4d3d2f82f LENS-890 : Adds per-queue and per-priority driver max launched queries constraints Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/4d3d2f82 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/4d3d2f82 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/4d3d2f82 Branch: refs/heads/master Commit: 4d3d2f82fb93ee4d5c52dc3b4910573953094c0a Parents: 73f9243 Author: Rajat KhandelwalAuthored: Tue Dec 15 18:45:08 2015 +0530 Committer: Amareshwari Sriramadasu Committed: Tue Dec 15 18:45:08 2015 +0530 -- .../org/apache/lens/api/util/CommonUtils.java | 27 ++- .../FactPartitionBasedQueryCostCalculator.java | 8 +- .../org/apache/lens/driver/hive/HiveDriver.java | 68 +++--- .../apache/lens/driver/hive/TestHiveDriver.java | 233 --- .../src/test/resources/priority_tests.data | 1 + .../server/api/driver/AbstractLensDriver.java | 13 +- .../lens/server/api/driver/LensDriver.java | 13 +- .../server/api/query/AbstractQueryContext.java | 9 +- .../lens/server/api/query/QueryContext.java | 12 +- .../MaxConcurrentDriverQueriesConstraint.java | 54 - ...oncurrentDriverQueriesConstraintFactory.java | 49 +++- .../api/query/TestAbstractQueryContext.java | 4 +- ...axConcurrentDriverQueriesConstraintTest.java | 181 +- .../server/query/QueryExecutionServiceImpl.java | 1 + .../ThreadSafeEstimatedQueryCollectionTest.java | 3 +- 15 files changed, 527 insertions(+), 149 deletions(-) -- http://git-wip-us.apache.org/repos/asf/lens/blob/4d3d2f82/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java -- diff --git a/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java b/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java index 38d58c7..119c924 100644 --- a/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java +++ b/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java @@ -27,6 +27,25 @@ public class CommonUtils { } + public interface EntryParser { +K parseKey(String str); + +V parseValue(String str); + } + + private static EntryParser defaultEntryParser = new EntryParser () { +@Override +public String parseKey(String str) { + return str; +} + +@Override +public String parseValue(String str) { + return str; +} + }; + + /** * Splits given String str around non-escaped commas. Then parses each of the split element * as map entries in the format `key=value`. Constructs a map of such entries. @@ -36,7 +55,11 @@ public class CommonUtils { * @return parsed map */ public static Map parseMapFromString(String str) { -Map map = new HashMap<>(); +return parseMapFromString(str, defaultEntryParser); + } + + public static Map parseMapFromString(String str, EntryParser parser) { +Map map = new HashMap<>(); if (str != null) { for (String kv : str.split("(? 1) { value = kvArray[1].replaceAll(",", ",").trim(); } - map.put(key, value); + map.put(parser.parseKey(key), parser.parseValue(value)); } } } http://git-wip-us.apache.org/repos/asf/lens/blob/4d3d2f82/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java -- diff --git a/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java b/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java index d56e1c7..9fecdbc 100644 --- a/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java +++ b/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java @@ -47,8 +47,11 @@ public class FactPartitionBasedQueryCostCalculator implements QueryCostCalculato */ @SuppressWarnings("unchecked") // required for (Set) casting - private double getTotalPartitionCost(final AbstractQueryContext queryContext, LensDriver driver) + private Double getTotalPartitionCost(final AbstractQueryContext queryContext, LensDriver driver) throws LensException { +if (queryContext.getDriverRewriterPlan(driver) == null) { + return null; +} double cost = 0; for (Map.Entry entry : getAllPartitions(queryContext, driver).entrySet()) { // Have to do instanceof check, since it can't be handled by polymorphism.