-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36393/
-----------------------------------------------------------
(Updated July 21, 2015, 9:48 a.m.)
Review request for lens.
Changes
-------
Changed implementation of FairPriorityBlockingQueue.
Bugs: LENS-619
https://issues.apache.org/jira/browse/LENS-619
Repository: lens
Description (updated)
-------
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.
Diffs (updated)
-----
lens-api/src/main/java/org/apache/lens/api/Addable.java
5a556918afcdb8967deee84472cd7863aeafc4fc
lens-api/src/main/java/org/apache/lens/api/query/LensQuery.java
f594133e8a75603e5bb0c913d62ea189248cfa05
lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
539f0b0b0804257fae6b7ec0af8f2f715175d597
lens-client/src/main/java/org/apache/lens/client/LensStatement.java
f7305fb288167cda088e263a62c77f264d779127
lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
7c3e3e08bc7e6949588aa073665fd97596e1a1ae
lens-driver-hive/src/main/resources/hivedriver-default.xml
300ce3fed7814d446b3aeb8688927c2dc8800f81
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
e3a879929ceb0dad054c71231bc4a70162ecd9ce
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriverConfConstants.java
ebcdaca7c7bab3a15feb10e69ef41238a8bae506
lens-driver-jdbc/src/main/resources/jdbcdriver-default.xml
99f6f205dfe6f1c16277ac6624106436df2b2b8f
lens-server-api/pom.xml b0b0fe017a239b24c3b9606b3be77a1722844e0f
lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
2b3a4800dc31e1c0787f2da9178456bec871a8a9
lens-server-api/src/main/java/org/apache/lens/server/api/common/ConfigBasedObjectCreationFactory.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
52207d342ea9ea154ef6ebd1cf4266176039c561
lens-server-api/src/main/java/org/apache/lens/server/api/driver/MinQueryCostSelector.java
c3fe8eb142569c0b254f551c3cbd18502b6eac99
lens-server-api/src/main/java/org/apache/lens/server/api/metrics/MetricsService.java
71128b7d35e91fadf38a9c3926ce46d42369ead4
lens-server-api/src/main/java/org/apache/lens/server/api/query/AbstractQueryContext.java
71a37f079f6b43a5cde689ce2c2e8fccb83eb78d
lens-server-api/src/main/java/org/apache/lens/server/api/query/DriverSelectorQueryContext.java
3e7de173a4e3083ca3ac5fa95fd7cd09e7f028bb
lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
6e7ab5dc1c78407a24e389c001ca3100563e3795
lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
d72727e7832d02ed2ea90379cd29c7a8e509a8f8
lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryExecutionService.java
5d7163f112d7c7115ebf8f012ba397bfee63adbc
lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/DriverSpecificWaitingQueriesSelectionPolicy.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/DriverSpecificWaitingQueriesSelectionPolicyFactory.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/EstimatedImmutableQueryCollection.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/ImmutableQueryCollection.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/collect/WaitingQueriesSelectionPolicy.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/constraint/MaxConcurrentDriverQueriesConstraint.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/constraint/MaxConcurrentDriverQueriesConstraintFactory.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/constraint/QueryLaunchingConstraint.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/FactPartitionBasedQueryCost.java
7fa5cdb55959a44b52a29884fd629c2479fdfb96
lens-server-api/src/main/java/org/apache/lens/server/api/query/cost/QueryCost.java
be7232134b59f7126edba569358389a9c26a5c74
lens-server-api/src/main/java/org/apache/lens/server/api/util/LensUtil.java
f9262994debe0b943123d13c58a22c10b2015e80
lens-server-api/src/test/java/org/apache/lens/server/api/driver/MockDriver.java
dffcfd3567dd015e7c79773c5e8cd6669c2d9d95
lens-server-api/src/test/java/org/apache/lens/server/api/query/collect/DriverSpecificWaitingQueriesSelectionPolicyTest.java
PRE-CREATION
lens-server-api/src/test/java/org/apache/lens/server/api/query/constraint/MaxConcurrentDriverQueriesConstraintTest.java
PRE-CREATION
lens-server-api/src/test/java/org/apache/lens/server/api/query/cost/TestFactPartitionBasedQueryCost.java
0ab0b0ec7c83c1eac8d61c8a30ecec5e9dc2e322
lens-server/pom.xml 6ac30a52cc8c1c58bf8e92bb77df358db6e22a3e
lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
39f9f5216acf6e1be7cca6a0851152a78ba66176
lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
190435036c5cf8f009d7fbd536ef1743b70c22d9
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
47d27d06272c0c26a93818fdee90cf978a650d10
lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultQueryCollection.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/IntersectingWaitingQueriesSelector.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/MutableQueryCollection.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/QueryCollection.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeQueryCollection.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/UserSpecificWaitingQueriesSelectionPolicy.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/UserSpecificWaitingQueriesSelectionPolicyFactory.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/collect/WaitingQueriesSelector.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/constraint/DefaultQueryLaunchingConstraintsChecker.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/constraint/QueryLaunchingConstraintsChecker.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/constraint/TotalQueryCostCeilingConstraint.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/query/constraint/TotalQueryCostCeilingConstraintFactory.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/util/FairPriorityBlockingQueue.java
PRE-CREATION
lens-server/src/main/java/org/apache/lens/server/util/UtilityMethods.java
715347fab82b5d9d4ad673c45e72900b9a95fc81
lens-server/src/main/resources/lensserver-default.xml
2b540b828a976378bdfbd238e8427a22941fb7e8
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
7e486aee1e995954bd25beac85a9fafed95ce20e
lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollectionTest.java
PRE-CREATION
lens-server/src/test/java/org/apache/lens/server/query/collect/DefaultQueryCollectionTest.java
PRE-CREATION
lens-server/src/test/java/org/apache/lens/server/query/collect/IntersectingWaitingQueriesSelectorTest.java
PRE-CREATION
lens-server/src/test/java/org/apache/lens/server/query/collect/QueryCollectUtil.java
PRE-CREATION
lens-server/src/test/java/org/apache/lens/server/query/collect/ThreadSafetyTest.java
PRE-CREATION
lens-server/src/test/java/org/apache/lens/server/query/collect/UserSpecificWaitingQueriesSelectionPolicyTest.java
PRE-CREATION
lens-server/src/test/java/org/apache/lens/server/query/constraint/DefaultQueryLaunchingConstraintsCheckerTest.java
PRE-CREATION
lens-server/src/test/java/org/apache/lens/server/query/constraint/TotalQueryCostCeilingConstraintFactoryTest.java
PRE-CREATION
lens-server/src/test/java/org/apache/lens/server/query/constraint/TotalQueryCostCeilingConstraintTest.java
PRE-CREATION
lens-server/src/test/resources/lens-site.xml
3bcbf0e3e44d986a24c00cad84121be72596c64d
lens-server/src/test/resources/log4j.properties
e0f9daa62c7d88f5044803c5a0ce2ffb2ac9315b
src/site/apt/admin/config.apt c5bf70c612a8d9bc383d0031e5cb51338cbd1da8
src/site/apt/admin/hivedriver-config.apt
80a3028789348493a84e753965d32cc30690c503
src/site/apt/admin/jdbcdriver-config.apt
b3d25f6751dd030a4ae818845a4a504ca41d7895
src/site/apt/user/index.apt d48c7347314876989cf8de8f3e330dc972e3ec5d
Diff: https://reviews.apache.org/r/36393/diff/
Testing
-------
Patch rebased with master and all test cases passed:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Lens Checkstyle Rules ............................. SUCCESS [3.312s]
[INFO] Lens .............................................. SUCCESS [4.667s]
[INFO] Lens API .......................................... SUCCESS [31.360s]
[INFO] Lens API for server and extensions ................ SUCCESS [33.701s]
[INFO] Lens Cube ......................................... SUCCESS [5:52.120s]
[INFO] Lens DB storage ................................... SUCCESS [27.322s]
[INFO] Lens Query Library ................................ SUCCESS [22.338s]
[INFO] Lens Hive Driver .................................. SUCCESS [3:44.595s]
[INFO] Lens Driver for JDBC .............................. SUCCESS [52.297s]
[INFO] Lens Server ....................................... SUCCESS [11:28.682s]
[INFO] Lens client ....................................... SUCCESS [46.951s]
[INFO] Lens CLI .......................................... SUCCESS [3:54.445s]
[INFO] Lens Examples ..................................... SUCCESS [13.859s]
[INFO] Lens Distribution ................................. SUCCESS [13.041s]
[INFO] Lens ML Lib ....................................... SUCCESS [2:03.557s]
[INFO] Lens ML Ext Distribution .......................... SUCCESS [5.792s]
[INFO] Lens Regression ................................... SUCCESS [15.693s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31:34.656s
[INFO] Finished at: Mon Jul 20 13:43:03 IST 2015
[INFO] Final Memory: 123M/336M
[INFO] ------------------------------------------------------------------------
Thanks,
Himanshu Gahlaut