[ 
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)

Reply via email to