@stack, sorry for reply late, sir. As HBASE-16388 <https://issues.apache.org/jira/browse/HBASE-16388> said, the client threads may be blocked by only one slow region server. But a better solution for this problem is to use async hbase client. And there are many reasons to make a region server slow, slow read from hdfs, gc stw, etc. So this should be a advantage of the async client. PS: my colleague Zheng Hu talked about this problem on today's HBaseCon Asia :-). About the performance of async client, there are two important metrics: latency and QPS. Our PE tool can be used to test latency and it will be addressed by HBASE-17994 <https://issues.apache.org/jira/browse/HBASE-17994>. And YCSB maybe better to test QPS. I will publish the test result when we get more test data. Thanks.
2017-07-22 0:35 GMT+08:00 Andrew Purtell <apurt...@apache.org>: > 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 >