forked from googleapis/java-bigtable-hbase
-
Notifications
You must be signed in to change notification settings - Fork 0
2.x: implement MirroringAsyncTable::scan #59
Copy link
Copy link
Closed
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationp1Needs to happen before handoffNeeds to happen before handoff
Description
There are incompatibilities between HBase's AsyncTable and Bigtable's BigtableAsyncTable: the former accepts both ScanResultConsumer and AdvancedScanResultConsumer as argument to scan() whereas the latter one supports only ScanResultConsumer (and throws an exception when passed AdvancedScanResultConsumer).
It creates two problems:
- what to do when primary or secondary table doesn't support
AdvancedScanResultConsumeras scan result consumer? - how to implement flow control in view of nonblocking nature of scan result consumer's callbacks?
The solutions (in case the primary table is an HBase one) of the seconds problem proposed so far are as follows:
- to just pass the call through to primary table
- to make scan consumer's callbacks blocking (eg. by spinning up a thread and running a loop calling
ResultScanner::next) - to use
AdvancedScanResultConsumer's flow control capabilities in coordination with ourFlowController
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationp1Needs to happen before handoffNeeds to happen before handoff