[ https://issues.apache.org/jira/browse/HBASE-18042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16011327#comment-16011327 ]
Benoit Sigoure commented on HBASE-18042: ---------------------------------------- We can easily update AsyncHBase to accommodate to the change however I would like to voice disagreement with this statement: {quote} It is an unfortunate thing that we have broken the semantics, but in general this is "allowed". {quote} Such semantic changes are like breaking API changes, they are, well, breaking changes. Not cool. One of the challenges with AsyncHBase is that it has to work with all versions of HBase. Since {{more_results_in_region}} was already there in 1.2 but needs to be handled differently in 1.3, that makes it kinda hard for AsyncHBase to know how, exactly, to deal with this flag being set, right? > 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 (v6.3.15#6346)