Skip to content

2.x: implement MirroringAsyncTable::scan #59

@prawilny

Description

@prawilny

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 AdvancedScanResultConsumer as 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 our FlowController

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationp1Needs to happen before handoff

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions