[ https://issues.apache.org/jira/browse/LENS-619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14636846#comment-14636846 ]
Hudson commented on LENS-619: ----------------------------- SUCCESS: Integrated in Lens-Commit #840 (See [https://builds.apache.org/job/Lens-Commit/840/]) LENS-619: Applying Query Launching Constraints before allowing a query to be launched (Also contains LENS-687 and LENS-688) (himanshugahlaut: rev c879f991102f5f02c30c1f1cd428f4c603f2e0ec) * lens-server-api/src/main/java/org/apache/lens/server/api/driver/MinQueryCostSelector.java * lens-server/src/main/java/org/apache/lens/server/query/collect/IntersectingWaitingQueriesSelector.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/AbstractQueryContext.java * lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java * lens-server/src/main/java/org/apache/lens/server/util/FairPriorityBlockingQueue.java * lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/constraint/QueryLaunchingConstraint.java * lens-server/src/main/java/org/apache/lens/server/query/collect/UserSpecificWaitingQueriesSelectionPolicy.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/DriverSpecificWaitingQueriesSelectionPolicy.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/QueryCost.java * lens-server-api/src/main/java/org/apache/lens/server/api/util/LensUtil.java * src/site/apt/admin/jdbcdriver-config.apt * lens-api/src/main/java/org/apache/lens/api/Addable.java * lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeQueryCollection.java * lens-server/src/test/java/org/apache/lens/server/query/constraint/TotalQueryCostCeilingConstraintFactoryTest.java * lens-server/src/main/resources/lensserver-default.xml * lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/ImmutableQueryCollection.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java * lens-server-api/src/main/java/org/apache/lens/server/api/common/ConfigBasedObjectCreationFactory.java * lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java * lens-server-api/pom.xml * lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/DriverSpecificWaitingQueriesSelectionPolicyFactory.java * lens-server/src/test/java/org/apache/lens/server/query/constraint/TotalQueryCostCeilingConstraintTest.java * lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultQueryCollection.java * lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/constraint/MaxConcurrentDriverQueriesConstraint.java * lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultQueryCollectionTest.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/constraint/MaxConcurrentDriverQueriesConstraintFactory.java * lens-server/src/test/resources/lens-site.xml * lens-server-api/src/main/java/org/apache/lens/server/api/query/DriverSelectorQueryContext.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/WaitingQueriesSelectionPolicy.java * lens-server/src/test/java/org/apache/lens/server/query/collect/IntersectingWaitingQueriesSelectorTest.java * lens-server/src/test/java/org/apache/lens/server/query/constraint/DefaultQueryLaunchingConstraintsCheckerTest.java * lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java * lens-driver-hive/src/main/resources/hivedriver-default.xml * lens-server-api/src/test/java/org/apache/lens/server/api/driver/MockDriver.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/FactPartitionBasedQueryCost.java * lens-server/src/test/java/org/apache/lens/server/query/collect/UserSpecificWaitingQueriesSelectionPolicyTest.java * lens-client/src/main/java/org/apache/lens/client/LensStatement.java * lens-server-api/src/test/java/org/apache/lens/server/api/query/constraint/MaxConcurrentDriverQueriesConstraintTest.java * lens-server/src/main/java/org/apache/lens/server/query/collect/MutableQueryCollection.java * lens-server/src/test/resources/log4j.properties * lens-api/src/main/java/org/apache/lens/api/query/LensQuery.java * lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java * lens-driver-jdbc/src/main/resources/jdbcdriver-default.xml * lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java * lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriverConfConstants.java * lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java * lens-server/src/main/java/org/apache/lens/server/query/constraint/TotalQueryCostCeilingConstraint.java * lens-server/src/main/java/org/apache/lens/server/query/constraint/QueryLaunchingConstraintsChecker.java * lens-server/src/test/java/org/apache/lens/server/query/collect/QueryCollectUtil.java * lens-server/src/main/java/org/apache/lens/server/query/collect/QueryCollection.java * lens-server/src/main/java/org/apache/lens/server/query/collect/UserSpecificWaitingQueriesSelectionPolicyFactory.java * lens-server-api/src/test/java/org/apache/lens/server/api/query/cost/TestFactPartitionBasedQueryCost.java * lens-server/pom.xml * lens-server/src/test/java/org/apache/lens/server/LensTestUtil.java * lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java * lens-server/src/main/java/org/apache/lens/server/util/UtilityMethods.java * src/site/apt/admin/config.apt * lens-server/src/main/java/org/apache/lens/server/query/constraint/TotalQueryCostCeilingConstraintFactory.java * src/site/apt/admin/hivedriver-config.apt * lens-server-api/src/main/java/org/apache/lens/server/api/metrics/MetricsService.java * lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollectionTest.java * lens-server/src/main/java/org/apache/lens/server/query/collect/WaitingQueriesSelector.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/EstimatedImmutableQueryCollection.java * lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java * lens-server/src/main/java/org/apache/lens/server/query/collect/EstimatedQueryCollection.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryExecutionService.java * lens-server/src/test/java/org/apache/lens/server/query/collect/ThreadSafetyTest.java * lens-server/src/main/java/org/apache/lens/server/query/constraint/DefaultQueryLaunchingConstraintsChecker.java * lens-server-api/src/test/java/org/apache/lens/server/api/query/collect/DriverSpecificWaitingQueriesSelectionPolicyTest.java * lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java * lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java > Applying Query Launching Constraints before allowing a query to be launched > --------------------------------------------------------------------------- > > Key: LENS-619 > URL: https://issues.apache.org/jira/browse/LENS-619 > Project: Apache Lens > Issue Type: New Feature > Components: api, docs, driver-hive, driver-jdbc, server > Reporter: Himanshu Gahlaut > Assignee: Himanshu Gahlaut > Fix For: 2.3 > > Attachments: LENS-619.01.patch > > > Lens will always accept a new query from a user and put it in a scheduling > queue for processing. > Next candidate query picked up from scheduling queue for processing will be > launched only if all query constraints evaluated on candidate query and > launched queries allows the candidate query to be launched, otherwise the > candidate query will be added to waiting queries. > When any launched query is finished, a waiting query selector will select > waiting queries for rescheduling using a list of waiting queries selection > policy. Every waiting query selection policy will return a list of eligible > waiting queries to be rescheduled. Query Selector will calculate intersection > of multiple list of eligible waiting queries and add the result of > intersection to scheduling queue for reprocessing. > At initialization, Query Constraints and Waiting Query Selection Policies > will be configured using configuration values. > New Query Constraints and Waiting Query Selection Policies can be added at > runtime, without rebuilding and deploying lens module. Drivers should be > allowed to add more Query Constraints and Waiting Queries Selection policies. > Waiting Queries will be persisted across server restarts. > Query Constraint 1: Allow a candidate query to be launched, only if, > cumulative query cost of all current queries launched by the user, who > submitted candidate query, is less than a cumulative query cost ceiling for > launching a new query. > Waiting Query Selection Policy 1: Select all waiting queries of the user > whose query has finished. > Query Constraint 2: Allow a candidate query to be launched, only if, current > concurrent queries launched on the selected driver are less than max > concurrent queries allowed on the driver. > Waiting Query Selection Policy 2: Select all waiting queries of the driver > whose query has finished. -- This message was sent by Atlassian JIRA (v6.3.4#6332)