Karan Mehta created HBASE-18042:
-----------------------------------

             Summary: 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
            Reporter: 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)

Reply via email to