hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mukund murrali <mukundmurra...@gmail.com>
Subject Re: How to make the client fast fail
Date Wed, 24 Jun 2015 04:42:43 GMT
As for now, any suggestions what values those configurations can have.

Thanks

On Mon, Jun 22, 2015 at 11:52 PM, Michael Segel <michael_segel@hotmail.com>
wrote:

> Uhm… what happens when you hit a parameter that was made FINAL?
>
> ;-)
>
> Yes, I agree that you can change some of the parameters at the application
> level.
> Using a timer thread is just as easy and you don’t have to worry about the
> fact that your admins made certain parameters final in their configuration
> because of KISS.
>
> There are other reasons why you may want to use a timer thread… It really
> depends on what you want to do and why.
>
> > On Jun 16, 2015, at 1:08 PM, Bryan Beaudreault <bbeaudreault@hubspot.com>
> wrote:
> >
> > I agree that more documentation would be better. However,
> >
> >
> >> Yet, there are some applications which require a faster time out than
> >> others. So, you tune some of the timers to have a fast fail, and you
> end up
> >> causing unintended problems for others.
> >>
> >> The simplest solution is to use threads in you client app. (Of course
> this
> >> assumes that you’re capable of writing clean multi-threaded code and I
> >> don’t want to assume anything.)
> >>
> >> Remember that HBase is a shared resource. So you need to consider the
> >> whole at the same time you consider the needs of one.
> >>
> >>
> > This is not really true, it assumes a very naive configuration solution
> in
> > which all processes are configured the same.  The default configs come
> from
> > xml files, but are easily customized.  Consider:
> >
> > Application A:
> >
> > Configuration conf = HBaseConfiguration.create();
> > conf.setInt("hbase.rpc.timeout", 8000);
> >
> > // Operations on table have a timeout of 8s
> > Connection conn = ConnectionFactory.createConnection(conf);
> > conn.getTable("foo");
> >
> > Application B:
> >
> > // Operations on this table use default timeout
> > Connection conn =
> > ConnectionFactory.createConnection(HBaseConfiguration.create());
> > conn.getTable("foo");
> >
> > // Operations on this table use a very short timeout of 500ms
> > Configuration conf = HBaseConfiguration.create();
> > conf.setInt("hbase.rpc.timeout", 500);
> > Connection shortConn = ConnectionFactory.createConnection(conf);
> > short
> > shortConn.getTable("foo");
> >
> > Applications A and B are configured with different timeouts.  Further,
> > Application B has two separate table connections, each with a different
> > timeout.
> >
> > The values are hardcoded above, but could easily be made configurable.
> The
> > simplest of solutions uses System.getProperty(), so you can pass
> > -Dmy.custom.timeout=500.  More complex solutions can utilize the various
> > open source live configuration solutions. Such as netflix archaius, or
> > hubspot's live-config -- both available on github.
> >
> > Of course there can be unintended consequences if an application suddenly
> >> starts to drop connections before a result or timeout occurs too.  ;-)
> >>
> >>
> >>> On Jun 16, 2015, at 12:13 AM, lars hofhansl <larsh@apache.org> wrote:
> >>>
> >>> Please always tell us which version of HBase you are using. We have
> >> fixed a lot of issues in this area over time.Here's an _old_ blog post I
> >> wrote about this:
> >> http://hadoop-hbase.blogspot.com/2012/09/hbase-client-timeouts.html
> >>>
> >>> Using yet more threads to monitor timeouts of another thread is a bad
> >> idea, especially when the timeout is configurable in the first place.
> >>>
> >>> -- Lars
> >>>     From: mukund murrali <mukundmurrali9@gmail.com>
> >>> To: user@hbase.apache.org
> >>> Sent: Sunday, June 14, 2015 10:22 PM
> >>> Subject: Re: How to make the client fast fail
> >>>
> >>> It would be great if there is a single timeout configuration from the
> >>> client end. All other parameters should fine tune based on that one
> >>> parameter. We have modified simple based on trail basis to suit our
> need.
> >>> Also not sure what side effect it would cause configuring those
> >> parameters.
> >>>
> >>>
> >>>
> >>> On Mon, Jun 15, 2015 at 10:38 AM, <Hariharan_Sethuraman@dell.com>
> wrote:
> >>>
> >>>> We are also interested on the solution for this. With
> >>>> hbase.client.retries.number = 7 and client.pause=400ms, it came down
> to
> >>>> ~9mins (from 20 mins). Now we are thinking the 9mins is also a big
> >> number.
> >>>>
> >>>> Thanks,
> >>>> Hari
> >>>>
> >>>> -----Original Message-----
> >>>> From: PRANEESH KUMAR [mailto:praneesh.sankar@gmail.com]
> >>>> Sent: Monday, June 15, 2015 10:33 AM
> >>>> To: user@hbase.apache.org
> >>>> Subject: Re: How to make the client fast fail
> >>>>
> >>>> Hi Michael,
> >>>>
> >>>> We can have a monitoring thread and interrupt the hbase client thread
> >>>> after time out instead of doing this I want the timeout or some
> >> exception
> >>>> to be thrown from the HBase client itself.
> >>>>
> >>>> On Thu, Jun 11, 2015 at 5:16 AM, Michael Segel
> >>>> wrote:
> >>>>
> >>>>> threads?
> >>>>>
> >>>>> So that regardless of your hadoop settings, if you want something
> >>>>> faster, you can use one thread for a timer and then the request
is in
> >>>>> another. So if you hit your timeout before you get a response, you
> can
> >>>> stop your thread.
> >>>>> (YMMV depending on side effects... )
> >>>>>
> >>>>>> On Jun 10, 2015, at 12:55 AM, PRANEESH KUMAR
> >>>>>>
> >>>>> wrote:
> >>>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I have got the Connection object with default configuration,
if the
> >>>>>> zookeeper or HMaster or Region server is down, the client didn't
> >>>>>> fast
> >>>>> fail
> >>>>>> and it took almost 20 mins to thrown an error.
> >>>>>>
> >>>>>> What is the best configuration to make the client fast fail.
> >>>>>>
> >>>>>> Also what is significance of changing the following parameters.
> >>>>>>
> >>>>>> hbase.client.retries.number
> >>>>>> zookeeper.recovery.retry
> >>>>>> zookeeper.session.timeout
> >>>>>> zookeeper.recovery.retry.intervalmill
> >>>>>> hbase.rpc.timeout
> >>>>>>
> >>>>>> Regards,
> >>>>>> Praneesh
> >>>>>
> >>>>>
> >>>>
> >>>
> >>>
> >>
> >>
>
> The opinions expressed here are mine, while they may reflect a cognitive
> thought, that is purely accidental.
> Use at your own risk.
> Michael Segel
> michael_segel (AT) hotmail.com
>
>
>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message