> On Sept. 22, 2015, 10:23 a.m., Amareshwari Sriramadasu wrote:
> > lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java,
> >  line 779
> > <https://reviews.apache.org/r/37346/diff/9/?file=1080331#file1080331line779>
> >
> >     Let us change the name to lens.server.query.purger.interval

If the name is lens.server.query.purge.interval, it seems it is still linked to 
single query. Instead shall we rename it to 
lens.server.querypurger.sleep.interval ? Please update apt file as well.


- Amareshwari


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/37346/#review99966
-----------------------------------------------------------


On Sept. 22, 2015, 2:46 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/37346/
> -----------------------------------------------------------
> 
> (Updated Sept. 22, 2015, 2:46 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-693
>     https://issues.apache.org/jira/browse/LENS-693
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> Changes include:
> 
> 1. The configuration `lens.server.max.finished.queries` has been taken off. 
> Now All queries are purged as soon as they are purgable. The logic of 
> purgability of a query is that:
>     1.  if the query failed, it's purgable
>     2.  if the query doesn't have a result, it's purgable
>     3.  If it has a result, then result class is asked whether it's purgable 
> or not. This is the second layer of the logic. Current logic in that layer is 
> as follows:
>         1.  If the result is persistent, it's purgable
>         2.  If the result is in memory, it's not purgable initially, but 
> after all the rows have been accessed by someone, it becomes purgable. The 
> rows can be accessed in the following ways:
>             1.  While sending Email notification, in memory result is 
> appended in the email. Hence rows are accessed.
>             2.  Explicit call by a user for reading result set (/resultset 
> REST API, but not the /httpresultset API, http results are not available for 
> in memory results.)
> 
> 
> 2. There is a new configuration `lens.server.purge.interval`. The value is 
> supposed to be in milliseconds. This is the frequency of purger thread. 
> 3. Purger thread had a bug in which it had a queue of finished queries which 
> were inserted according to their finish time. Purging of later queries was 
> dependent on purging of earlier queries. If a later query becomes purgable, 
> it's not purged untill all the queries before it become purgable and are 
> purged. To fix this, purger thread now runs periodically and scans the whole 
> queue, purges whichever ones are purgable. 
> 4. FinishedLensQuery is a model object, but has a field which is not a field 
> in corresponding database. That field is removed from equals check
> 5. `instanceof` Checks have been converted to polymorphism:
>     1. For http result set availability.
>     2. For forming email message of the result of a finished query. 
> 6. Email notifications are now sent irrespective of whether the query has 
> been purged or not. Earlier there was a bug that if a query is purged, email 
> notification for that isn't sent. 
> 7. Taking care of LENS-783
> 8. Modularizing testing of email notifications
> 9. Made more util methods in RestAPITestUtil which became re-usable in server 
> tests like TestQueryService.
> 10. Added Test cases for query purging.
> 11. The way we're taking care of purge happening before event handlers are 
> done with context is by utilizing garbage collection. We pass context to the 
> QueryEnded event object. Now whenever the event happens, it has access to the 
> context. It has access even when purger has purged the query(since the object 
> will only go obsolete if no one has a handle to it). In purging, the context 
> is removed from various query collections, but context object is intact. 
> Whenever all event handlers for the QueryEnded event are done, both the event 
> object and the query context object will be garbage collected.
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/LensConf.java 
> 3b1ad87ffe16b572437b92d90c793ea1881c2e0d 
>   lens-api/src/main/java/org/apache/lens/api/query/InMemoryQueryResult.java 
> 6a9f4558afc3a8430b43dcc65d73c813575a334d 
>   lens-api/src/main/java/org/apache/lens/api/query/LensQuery.java 
> af439ff58002b06e2631585d35dfe9754ce84d4e 
>   lens-api/src/main/java/org/apache/lens/api/query/PersistentQueryResult.java 
> a2e10c6560aaa551a15408b2937c3d495b51af5f 
>   lens-api/src/main/java/org/apache/lens/api/query/QueryResult.java 
> 3ecf0c229494dd82a531bc5a310e3b056a86d451 
>   lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java 
> 3c8531feb40276e076622b32f15c2f3d7ee782b2 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java 
> 006eaedcd5cdf86b9aae6c4bbfcd92ba6c1df8ba 
>   lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java 
> 31c343a7b72c13ff9eb9b01038574297629e381b 
>   
> lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HivePersistentResultSet.java
>  00e1e53444ca76fa5096efc69fc4bdfdd16d116a 
>   
> lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
>  78b3320977f9b46b2719ba80190fa77e87ecc729 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
>  096d26ee669c7e8c30df134ac334877311c1812e 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/driver/InMemoryResultSet.java
>  3b761268645acf150d149e51f69521bf164c61ee 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensResultSet.java
>  929a3026da9d9789b64ab1f04fdd063db3443432 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/driver/PersistentResultSet.java
>  bbde1705fec7fb946708b17d57eb5ad74fcb7cef 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
>  d8c04dbdfdbf5309ef4ec6b07de27de33d2ff517 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryCancelled.java
>  bc0465c782a86d484747f0375135191bef0c49d1 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryClosed.java
>  ea8f70fc54b7c646e982a4de882eea92124b73d5 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
>  12de0a51b33a5ca09cd494f2ea842794b800f9e6 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryEnded.java
>  3e9474c642827e401a1e243ae25d328557f1adc0 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryFailed.java
>  40a1c0f1078c82f882eab60a0f0b20b501789da5 
>   
> lens-server-api/src/main/java/org/apache/lens/server/api/query/QuerySuccess.java
>  c551dbab463dc7dd199f4fa1c6c56c956f56a704 
>   
> lens-server-api/src/test/java/org/apache/lens/server/api/driver/MockDriver.java
>  b28669e9070578e5121eb4b1c59e8e3ac7cb83de 
>   
> lens-server/src/main/java/org/apache/lens/server/query/LensPersistentResult.java
>  b65a5f4ac661f060b51d5ee1c899dfd93aa8be90 
>   
> lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java 
> 45ba7ac0300cc7b1d5d2ab723c4adf8d60801e11 
>   
> lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
>  9e27dd427cd573f57b06a3c8157c49f723b54caf 
>   
> lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionStatisticsGenerator.java
>  b57bc640bee018c2b7da560c2c4bcad5e228d41a 
>   lens-server/src/main/java/org/apache/lens/server/query/ResultFormatter.java 
> af42eb06e2c030a7040b970e982cab782b2bb251 
>   lens-server/src/main/resources/lensserver-default.xml 
> 3c8fc09242bb3f873aa43630c9f386435f10c659 
>   lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java 
> 05bd99f8819477c9560e231148b1e9ef7a8f061b 
>   
> lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 
> 0945598eed81515702402e9933b2592186209508 
>   
> lens-server/src/test/java/org/apache/lens/server/query/TestEventService.java 
> b8012be1c30b544e51228c4b9b8a2a7d8281d3bc 
>   
> lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java
>  82ce205c8d54c6665262ee3baf8c521203743eb5 
>   
> lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 
> fa8d6eed0b98e9debe5e1c6f138bb7b104dff135 
>   
> lens-server/src/test/java/org/apache/lens/server/query/TestResultFormatting.java
>  98a658e9c02a9da9d6708e4db1df161c6ea1a784 
>   lens-server/src/test/resources/lens-site.xml 
> f728810867b677b6c7fba29229206eed1937e37f 
> 
> Diff: https://reviews.apache.org/r/37346/diff/
> 
> 
> Testing
> -------
> 
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO] 
> [INFO] Lens Checkstyle Rules ............................. SUCCESS [1.844s]
> [INFO] Lens .............................................. SUCCESS [3.076s]
> [INFO] Lens API .......................................... SUCCESS [21.253s]
> [INFO] Lens API for server and extensions ................ SUCCESS [20.861s]
> [INFO] Lens Cube ......................................... SUCCESS [5:08.507s]
> [INFO] Lens DB storage ................................... SUCCESS [19.065s]
> [INFO] Lens Query Library ................................ SUCCESS [15.206s]
> [INFO] Lens Hive Driver .................................. SUCCESS [2:50.257s]
> [INFO] Lens Driver for JDBC .............................. SUCCESS [36.338s]
> [INFO] Lens Elastic Search Driver ........................ SUCCESS [17.467s]
> [INFO] Lens Server ....................................... SUCCESS [8:52.207s]
> [INFO] Lens client ....................................... SUCCESS [38.217s]
> [INFO] Lens CLI .......................................... SUCCESS [2:45.810s]
> [INFO] Lens Examples ..................................... SUCCESS [10.357s]
> [INFO] Lens Distribution ................................. SUCCESS [8.390s]
> [INFO] Lens ML Lib ....................................... SUCCESS [1:22.195s]
> [INFO] Lens ML Ext Distribution .......................... SUCCESS [2.081s]
> [INFO] Lens Regression ................................... SUCCESS [11.032s]
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 24:25.067s
> [INFO] Finished at: Tue Sep 22 14:20:49 UTC 2015
> [INFO] Final Memory: 186M/1378M
> [INFO] 
> ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>

Reply via email to