Dear all,

Asynchronous client aims to provide the ability to access HBase
asynchronously. You can obtain an AsyncConnection from ConnectionFactory,
and then get an asynchronous table instance (for DML operations) or an
asynchronous admin instance (for DDL operations) from it to access HBase.
For the asynchronous table or admin, most methods have the same meaning
with the old Table or Admin interface, expect that the return value is
wrapped with a CompletableFuture (java 8 or higher is required) usually.
You can get more details from the documentation[1][2].

There are two examples about the asynchronous client. AsyncClientExample[3]
is a simple example to show you how to use AsyncTable. HttpProxyExample[4]
is an example for advance user to show you how to use RawAsyncTable to
write a fully asynchronous HTTP proxy server. Welcome to try the
asynchronous client in your project.

We tested the performance of asynchronous client by
the PerformanceEvaluation tool. And it showed that async client has almost
same latency with sync client[5]. Notice: when we did performance test for
asynchronous client. We found some performance issue when use jdk 1.8_111.
And it was fixed when use jdk 1.8_131 [6]. So suggest use a bigger version
than jdk8_131 when you use the asynchronous client.

The major umbrella issues include:
HBASE-16432 Revisit the asynchronous ipc implementation[7]
HBASE-16833 Implement asynchronous hbase client based on HBASE-15921[8]
HBASE-17359 Implement async admin[9]

There is also an issue HBASE-17856 to track the further improvements for
asynchronous hbase client[10].

Finally, thanks Duo Zhang and Zheng Hu who worked with me together to
implement the asynchronous client.

Best Regards,
Guanghao

[1] https://hbase.apache.org/book.html#async.client
[2] https://hbase.apache.org/book.html#async.admin
[3]
https://github.com/apache/hbase/blob/master/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/AsyncClientExample.java
[4]
https://github.com/apache/hbase/blob/master/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java
[5] https://www.slideshare.net/HBaseCon/hbase-at-xiaomi
[6]
http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/concurrent/CompletableFuture.java
[7] https://issues.apache.org/jira/browse/HBASE-16432
[8] https://issues.apache.org/jira/browse/HBASE-16833
[9] https://issues.apache.org/jira/browse/HBASE-17359
[10] https://issues.apache.org/jira/browse/HBASE-17856

Reply via email to