Which HBase version are you using?(I'm assuming you are using the original blocking client, the new netty client only available in 2.0 ) Yes, in default, there is only one socket to each RS, and the calls written to this socket are synchronized(or queued using another thread called CallSender ). But usually, this won't become a bottleneck. If this is a problem for you, you can tune "hbase.client.ipc.pool.size".
2017-06-12 23:47 GMT+08:00 Sachin Jain <[email protected]>: > I meant to ask since connection object has predefined connections to region > servers that means there is a Socket based connection already open with > some region server R1. When a Hbase client has to make two or more get > requests to region server R1 how does that work with same connection with > R1. > > On 12-Jun-2017 7:31 PM, "Allan Yang" <[email protected]> wrote: > > Connection is thread safe. You can use it across different threads. And > requests made by different thread are handled in parallel no matter the > keys are in the same region or not. > > 2017-06-12 20:44 GMT+08:00 Sachin Jain <[email protected]>: > > > Hi, > > > > I was going through connections in hbase. Here is reference from > > ConnectionFactory API doc. > > > > > Connection encapsulates all housekeeping for a connection to the > > cluster. All tables and interfaces created from returned connection share > > zookeeper connection, meta cache, and connections to region servers and > > masters. > > > > Suppose I am building a REST api and trying to retrieve data from Hbase > in > > REST calls. I am thinking to pre-create a connection and use it among > > different request threads. > > > > Suppose I get multiple requests for keys within same region, will that > > single connection be able to serve multiple requests via same region > server > > ? > > > > Or Are those requests handled serially because once a request is made to > > region server for key1, > > another requests for key2,..,keyN have to wait for request of key1 to > > complete. > > > > Even if I create a connection pool of pre-created connections of N size, > > does that mean I can serve only N parallel requests if all those requests > > have to deal with same hbase region server. Is this true ? > > > > [0]: > > https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/ > > ConnectionFactory.html > > > > Thanks > > -Sachin > > >
