hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick Dimiduk (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-9343) Implement stateless scanner for Stargate
Date Thu, 16 Jan 2014 01:24:22 GMT

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

Nick Dimiduk commented on HBASE-9343:
-------------------------------------

Let me be pedantic for a moment here.

{quote}
GET /<table>/<rowkey> => existing behavior 
GET /<table>/<optional_prefix>*/<columns>/ => existing behavior
GET /<table>/<optional_prefix>* => new streaming scanner with prefix filter.
GET /<table>/<optional_prefix>*?<scan_args...> => new streaming scanner
with prefix filter and scan parameters.
GET /<table>/* => new streaming scanner
GET /<table>/*?<scan_args...> => new streaming scanner with scan parameters
{quote}

These explicitly overlap with the existing documented behavior in the [package-info|https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/rest/package-summary.html#operation_cell_query_multiple].
Specifically, I'm looking at the suffix-globbing functionality. Meaning, I think your patch
overrides existing APIs on

{quote}
GET /<table>/<optional_prefix>*
GET /<table>/<optional_prefix>*?<scan_args...>
GET /<table>/*
{quote}

The semantics of your new scanner *must* match the semantics of the original feature, both
in terms of the accepted arguments and the response body. If I understand this correctly,
this patch is faithful to argument consistency, but I'm concerned that it's inconsistent in
the response body by design -- it's a streamed response instead of the existing response.
I'm not an expert in the HTTP protocol spec; is this difference going to be transparent to
or break existing clients?

> 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
>             Fix For: 0.98.1, 0.99.0
>
>         Attachments: HBASE-9343_94.00.patch, HBASE-9343_94.01.patch, HBASE-9343_trunk.00.patch,
HBASE-9343_trunk.01.patch, HBASE-9343_trunk.01.patch, HBASE-9343_trunk.02.patch, HBASE-9343_trunk.03.patch,
HBASE-9343_trunk.04.patch, HBASE-9343_trunk.05.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 &lt; N ), then M rows will be returned to the
user.
> 5. If start row, end row and limit (say N ) are specified and N &lt; number of rows
between start row and end row, then N rows from start row
> will be returned to the user. If N &gt; (number of rows between start row and end
row (say M), then M number of rows will be returned to the
> user.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message