Steve, We have been using timeouts in production via two different methods:
1. Use RPC timeout mechanism provided by HBase client. For this you will need both 2937 and 3154. We backported 2937 to 0.90.3. The reason 3154 alone does not help is because if you set the conf parameter introduced in 3154 (hbase.rpc.timeout) to a very low value your calls to meta (ROOT and META) tables timeout all the time and almost no request go through. That is where 2937 comes in. It uses hbase.client.operation.timeout knob for all RPC calls except the ones made to meta tables. 2. Use an async method (example ExecutorService with timeout) to make HBase client calls. In our experience #1 perform better (in terms of % calls timing out). Having said that I am still interested to hear comments from experts. I personally was not able to grasp reasoning behind introduction of hbase.client.operation.timeout configuration parameter. -Shrijeet On Thu, Dec 15, 2011 at 3:15 PM, Steve Boyle <steve.bo...@connexity.com> wrote: > > Hi, > > I'm trying to understand what timeout controls are available in the hbase client. I'm using hbase version 0.90.4-cdh3u2. I have a client application that does gets, puts, increments and scans. I'd like to be able to have a client side timeout such that the client can clean-up in a case where the response is taking a while for whatever reason. > > I've seen this jira which indicates that the feature I'm looking for is coming in a future release: > https://issues.apache.org/jira/browse/HBASE-2937 > > I've also seen this jira that looks related and appears to be already available: > https://issues.apache.org/jira/browse/HBASE-3154 > > What is the best way to control a timeout for the hbase client? > > Thanks, > Steve > > >