This is exciting! Thanks so much for this hard work. On Fri, Jul 21, 2017 at 2:21 AM, Phil Yang <ud1...@gmail.com> wrote:
> 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 > > > > > > -- Best regards, Andrew Words like orphans lost among the crosstalk, meaning torn from truth's decrepit hands - A23, Crosstalk