AsyncHBase Behavior with MapR-DB Tables

After you install AsyncHBase, you can use the AsyncHBase libraries to provide asynchronous access to MapR-DB binary tables. However, it is important to note the behavior that is specific to using AsyncHBase with MapR-DB.

The Scanner.setMaxNumKeyValues method, when run against MapR-DB binary tables, does not behave as documented.
According to the AsyncHBase documentation, this method sets “the maximum number of KeyValues the server is allowed to return in a single RPC response.”:

If you're dealing with wide rows, in which you have many cells, you may want to limit the number of cells (KeyValues) that the server returns in a single RPC response.

The default is DEFAULT_MAX_NUM_KVS, unlike in HBase's client where the default is -1. If you set this to a negative value, the server will always return full rows, no matter how wide they are. If you request really wide rows, this may cause increased memory consumption on the server side as the server has to build a large RPC response, even if it tries to avoid copying data. On the client side, the consequences on memory usage are worse due to the lack of framing in RPC responses. The client will have to buffer a large RPC response and will have to do several memory copies to dynamically grow the size of the buffer as more and more data comes in.

When you use this method with MapR-DB binary tables, the value for the maximum number of key values is ignored and the full set of KeyValues is always returned.

List<RegionClientStats> regionStats() is not supported
As of AsyncHBase 1.7-1603, List<RegionClientStats> regionStats() is not supported and when it is used the API does not return statistics.
MapR-DB ignores HBase configurations in the asynchbase.conf file
As of AsyncHBase 1.7-1603, the conf object can be used to override Hbase properties that were previously only configured in the asynchbase.conf file. The asynchbase.conf file is located in the asynchbase installation directory. MapR-DB does not use these Hbase configurations and therefore they are ignored by MapR-DB