-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42067/
-----------------------------------------------------------
(Updated Feb. 3, 2016, 7:05 a.m.)
Review request for lens.
Changes
-------
- Updated Test Case to include all important methods of
PartiallyFetchedInMemoryResultSet .
- Removed seekToStart() form InMemoryResultSet ( since its not used and only
few drivers can support this feature. Can be added aback when we decide to
support the feature end to end)
- Removed unused member
PartiallyFetchedInMemoryResultSet.doNotPurgeUntilTimeMillis
Bugs: lens-901
https://issues.apache.org/jira/browse/lens-901
Repository: lens
Description
-------
support streaming results on lens
Diffs (updated)
-----
lens-api/src/main/java/org/apache/lens/api/query/QueryHandleWithResultSet.java
a5da867
lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java 44fd97e
lens-driver-es/src/main/java/org/apache/lens/driver/es/client/ESResultSet.java
464b535
lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
149c6ab
lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveInMemoryResultSet.java
f8abd78
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
82d7513
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCResultSet.java
8b4da3f
lens-driver-jdbc/src/test/java/org/apache/lens/driver/jdbc/TestJdbcDriver.java
b96cf88
lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
8df389b
lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java
ed1fc43
lens-server-api/src/main/java/org/apache/lens/server/api/driver/InMemoryResultSet.java
f6434da
lens-server-api/src/main/java/org/apache/lens/server/api/driver/PartiallyFetchedInMemoryResultSet.java
PRE-CREATION
lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
1269e45
lens-server-api/src/test/java/org/apache/lens/server/api/driver/MockDriver.java
a20cf47
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
e61398b
lens-server/src/main/resources/lenssession-default.xml a321c3f
lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
01e846a
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
ef8c1aa
lens-server/src/test/java/org/apache/lens/server/query/TestResultFormatting.java
30d1e34
src/site/apt/admin/session-config.apt e108a13
Diff: https://reviews.apache.org/r/42067/diff/
Testing
-------
Three properties have been added to enable streaming
* lens.query.prefetch.inmemory.resultset
When set to true, specified number of rows of in-memory result set will be
pre-fetched
* lens.query.prefetch.inmemory.resultset.rows
Specifies the number of rows to pre-fetch for in-memory result set when
lens.query.prefetch.inmemory.resultset is set to true. Default value is 100
rows.
* lens.query.prefetch.inmemory.resultset.ttl.millis Specifies the time in milli
seconds starting from query submission time for which the pre-fetched in-memory
result set will not be purged. This property is put to action only when
lens.query.prefetch.inmemory.resultset is set to true and all rows of the in
memory result set have been pre-fetched. The default value of this property is
60 secs.
Streaming(pre-fetched) result set is available in case the above proerties are
set and the result is a type of InMemoryResultSet. Further, the streming is
enabled only when all result rows have been prefetched.Partial Streaming not
supported as of now (Can be enabled in furtue is there is a clear use case
for it)
Also note QueryHandleWithResultSet will now hold result metadta
(QueryResultSetMetadata) also.
This info will be useful for client in case the streaming results are accesesd
via execute_with_timeout API (REST End Point /queryapi/queries POST )
It is suggested to use this feature for queries that finish fast and return
small number of rows. Streaming and persistence by server can happen parallely
for streamed result sets.
Will add more details on **Testing** done . Was able to build and run
checkstyle. Also ran the added test cases for this feature.
**TODO** PartiallyFetchedInMemoryResultSet can override
InMemoryResultSet.toQueryResult() and optimize the case where result has been
completely fetched already.
Thanks,
Puneet Gupta