[ 
https://issues.apache.org/jira/browse/HBASE-9343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13751170#comment-13751170
 ] 

Andrew Purtell commented on HBASE-9343:
---------------------------------------

bq. The current scanner implementation for scanner stores state and hence not 
very suitable for REST server failure scenarios

That's not quite how I would describe it. The current scanner implementation 
expects clients to restart scans if there is a REST server failure in the 
midst. The tradeoff is a pretty close semantic mapping - though definitely not 
RESTful - to the client API on the one hand, and loss of the cursor upon 
process failure on the other. Sure, that can be problematic.

Why introduce new resources and a new model of scanning? Most of what you are 
trying to do can be done with Gets. Extend the existing resources for that. 

Do we need ProtobufStreamingUtil if REST already has internally a Generator API 
for iterating over results returned by scanners? Did you partially reimplement 
that here?

                
> 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

Reply via email to