I filed an issue HBASE-18334 <https://issues.apache.org/jira/browse/HBASE-18334> to remove the old sync implementation. I think we can do it in 3.0 and keep sync logic in branch-2? Of course we can also remove it in 2.1 or higher 2.x branch but if we remove it since 2.0 it may be a little radical :)
Thanks, Phil 2017-07-21 6:15 GMT+08:00 Stack <st...@duboce.net>: > Very sweet Guanghao. Thanks for all the hard work (you, Duo and all who > contributed to the async work). > > When you think we should move the sync client to be on top of the async > chassis? > > Thanks, > St.Ack > > P.S. It looks like you updated its status in this doc, > https://docs.google.com/document/d/1WCsVlnHjJeKUcl7wHwqb4z9iEu_ > ktczrlKHK8N4SZzs/edit#, > thanks. > > On Thu, Jul 20, 2017 at 4:51 AM, Guanghao Zhang <zghao...@gmail.com> > wrote: > > > 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 > > >