hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Duo Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18042) Client Compatibility breaks between versions 1.2 and 1.3
Date Tue, 16 May 2017 13:31:04 GMT

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

Duo Zhang commented on HBASE-18042:

The code of ClientScanner in branch-1.2- is black magic for me...

I think it will cause some problems when upgrading from 1.2- to 1.3 as we may hit UnknownScannerException,
but client will try opening the scanner again and get nothing, and then move to the next region.
Need to confirm this.

I guess the problem for AsyncHBase is that it will also fetch data when opening a scanner,
just like what we do in the new code in master and branch-1? Not sure, just guess.


> Client Compatibility breaks between versions 1.2 and 1.3
> --------------------------------------------------------
>                 Key: HBASE-18042
>                 URL: https://issues.apache.org/jira/browse/HBASE-18042
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.3.1
>            Reporter: Karan Mehta
>            Assignee: Karan Mehta
> OpenTSDB uses AsyncHBase as its client, rather than using the traditional HBase Client.
From version 1.2 to 1.3, the {{ClientProtos}} have been changed. Newer fields are added to
{{ScanResponse}} proto.
> For a typical Scan request in 1.2, would require caller to make an OpenScanner Request,
GetNextRows Request and a CloseScanner Request, based on {{more_rows}} boolean field in the
{{ScanResponse}} proto.
> However, from 1.3, new parameter {{more_results_in_region}} was added, which limits the
results per region. Therefore the client has to now manage sending all the requests for each
region. Further more, if the results are exhausted from a particular region, the {{ScanResponse}}
will set {{more_results_in_region}} to false, but {{more_results}} can still be true. Whenever
the former is set to false, the {{RegionScanner}} will also be closed. 
> OpenTSDB makes an OpenScanner Request and receives all its results in the first {{ScanResponse}}
itself, thus creating a condition as described in above paragraph. Since {{more_rows}} is
true, it will proceed to send next request at which point the {{RSRpcServices}} will throw
{{UnknownScannerException}}. The protobuf client compatibility is maintained but expected
behavior is modified.

This message was sent by Atlassian JIRA

View raw message