You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Sunil B <bs...@gmail.com> on 2014/11/26 01:09:53 UTC
HBase 0.98.1 Put operations never timeout
Hi All,
I am using 0.98.1 version of HBase server and client. My application
has strict response time requirements. As far as HBase is concerned, I
would like to abort the HBase operation if the execution exceeds 1 or 2
seconds. This task timeout is useful in case of Region-Server being
non-responsive or has crashed.
I tired configuring
1) HBASE_RPC_TIMEOUT_KEY = "hbase.rpc.timeout";
2) HBASE_CLIENT_RETRIES_NUMBER = "hbase.client.retries.number";
However, the Put operations never timeout (I am using sync flush). The
operations return only after the Put is successful.
I looked through the code and found that the function
receiveGlobalFailure in AsyncProcess class keeps resubmitting the task
without any check on the retires. This is in version 0.98.1
I do see that in 0.99.1 there have been some changes to AsyncProcess
class that might do what I want. I have not verified it though.
My questions are:
1) Is there any other configuration that I missed that can give me
the desired functionality.
2) Do I have to use 0.99.1 client to solve my problem? Does 0.99.1
solve my problem?
4) If I have to use 0.99.1 client, then do I have to use 0.99.1
server or can I still use my existing 0.98.1 region-server.
Thanks!
Re: HBase 0.98.1 Put operations never timeout
Posted by Sunil B <bs...@gmail.com>.
Thanks Qiang Tian!
I looked through the code and seems like HBASE-11347 is what I was
looking for. Will try this version and post a reply.
On Tue, Nov 25, 2014 at 4:09 PM, Sunil B <bs...@gmail.com> wrote:
> Hi All,
>
> I am using 0.98.1 version of HBase server and client. My application
> has strict response time requirements. As far as HBase is concerned, I would
> like to abort the HBase operation if the execution exceeds 1 or 2 seconds.
> This task timeout is useful in case of Region-Server being non-responsive or
> has crashed.
>
> I tired configuring
> 1) HBASE_RPC_TIMEOUT_KEY = "hbase.rpc.timeout";
> 2) HBASE_CLIENT_RETRIES_NUMBER = "hbase.client.retries.number";
>
> However, the Put operations never timeout (I am using sync flush). The
> operations return only after the Put is successful.
>
> I looked through the code and found that the function
> receiveGlobalFailure in AsyncProcess class keeps resubmitting the task
> without any check on the retires. This is in version 0.98.1
>
> I do see that in 0.99.1 there have been some changes to AsyncProcess
> class that might do what I want. I have not verified it though.
>
> My questions are:
> 1) Is there any other configuration that I missed that can give me
> the desired functionality.
> 2) Do I have to use 0.99.1 client to solve my problem? Does 0.99.1
> solve my problem?
> 4) If I have to use 0.99.1 client, then do I have to use 0.99.1
> server or can I still use my existing 0.98.1 region-server.
>
> Thanks!
>
>
Re: HBase 0.98.1 Put operations never timeout
Posted by Qiang Tian <ti...@gmail.com>.
probably HBASE-11714/HBASE-11374.
could you try 0.98.4 or above?
On Wed, Nov 26, 2014 at 8:09 AM, Sunil B <bs...@gmail.com> wrote:
> Hi All,
>
> I am using 0.98.1 version of HBase server and client. My application
> has strict response time requirements. As far as HBase is concerned, I
> would like to abort the HBase operation if the execution exceeds 1 or 2
> seconds. This task timeout is useful in case of Region-Server being
> non-responsive or has crashed.
>
> I tired configuring
> 1) HBASE_RPC_TIMEOUT_KEY = "hbase.rpc.timeout";
> 2) HBASE_CLIENT_RETRIES_NUMBER = "hbase.client.retries.number";
>
> However, the Put operations never timeout (I am using sync flush). The
> operations return only after the Put is successful.
>
> I looked through the code and found that the function
> receiveGlobalFailure in AsyncProcess class keeps resubmitting the task
> without any check on the retires. This is in version 0.98.1
>
> I do see that in 0.99.1 there have been some changes to AsyncProcess
> class that might do what I want. I have not verified it though.
>
> My questions are:
> 1) Is there any other configuration that I missed that can give me
> the desired functionality.
> 2) Do I have to use 0.99.1 client to solve my problem? Does 0.99.1
> solve my problem?
> 4) If I have to use 0.99.1 client, then do I have to use 0.99.1
> server or can I still use my existing 0.98.1 region-server.
>
> Thanks!
>