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!
>