[
https://issues.apache.org/jira/browse/HBASE-9343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13751174#comment-13751174
]
Andrew Purtell commented on HBASE-9343:
---------------------------------------
I considered briefly once keeping the REST scan cursor state in ZooKeeper for
transparent failover of scans upon REST process failure. This would not have
the same scalability as native scanners on account of ZooKeeper operation
throughput limits but could surely support on the order of 100s of concurrent
scanners open on a REST farm. Clients that need scanner failover would have it
without API changes, though they would need to handle possible HTTP redirects.
Expectation would be the majority of clients could live with loss of the cursor
upon REST process failure though.
No need to do it this way, just providing a historical note.
> Implement stateless scanner for Stargate
> ----------------------------------------
>
> Key: HBASE-9343
> URL: https://issues.apache.org/jira/browse/HBASE-9343
> Project: HBase
> Issue Type: Improvement
> Components: REST
> Affects Versions: 0.94.11
> Reporter: Vandana Ayyalasomayajula
> Assignee: Vandana Ayyalasomayajula
> Priority: Minor
> Attachments: HBASE-9343_94.00.patch
>
>
> The current scanner implementation for scanner stores state and hence not
> very suitable for REST server failure scenarios. The current JIRA proposes to
> implement a stateless scanner. In the first version of the patch, a new
> resource class "ScanResource" has been added and all the scan parameters will
> be specified as query params.
> The following are the scan parameters
> startrow - The start row for the scan.
> endrow - The end row for the scan.
> columns - The columns to scan.
> starttime, endtime - To only retrieve columns within a specific range of
> version timestamps,both start and end time must be specified.
> maxversions - To limit the number of versions of each column to be returned.
> batchsize - To limit the maximum number of values returned for each call to
> next().
> limit - The number of rows to return in the scan operation.
> More on start row, end row and limit parameters.
> 1. If start row, end row and limit not specified, then the whole table will
> be scanned.
> 2. If start row and limit (say N) is specified, then the scan operation will
> return N rows from the start row specified.
> 3. If only limit parameter is specified, then the scan operation will return
> N rows from the start of the table.
> 4. If limit and end row are specified, then the scan operation will return N
> rows from start of table till the end row. If the end row is
> reached before N rows ( say M and M < N ), then M rows will be returned to
> the user.
> 5. If start row, end row and limit (say N ) are specified and N < number
> of rows between start row and end row, then N rows from start row
> will be returned to the user. If N > (number of rows between start row and
> end row (say M), then M number of rows will be returned to the
> user.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira