You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Tianying Chang (JIRA)" <ji...@apache.org> on 2017/02/06 23:58:41 UTC

[jira] [Commented] (HBASE-17453) add Ping into HBase server for deprecated GetProtocolVersion

    [ https://issues.apache.org/jira/browse/HBASE-17453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15855004#comment-15855004 ] 

Tianying Chang commented on HBASE-17453:
----------------------------------------

Thanks [~tedyu] [~stack]  for the comments. We need a method to reliably know if a connection with the RS still live. Previously, we rely on GetProtocolVersion(). When there is no traffic received within certain time, this could be either really there is no traffic, or the connection is bad. By sending a "Ping" and get response back, we know for sure it is not because connection is bad, therefore, no need to reconnect. If there is no response back from "Ping", we will reconnect. So we just need a lightweight response so that we know the communication link is healthy.  The PintProtocol.proto you mentioned above matches what we need. If it is a live API hosted by the RS, we can definitely use that.  


> add Ping into HBase server for deprecated GetProtocolVersion
> ------------------------------------------------------------
>
>                 Key: HBASE-17453
>                 URL: https://issues.apache.org/jira/browse/HBASE-17453
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>    Affects Versions: 1.2.2
>            Reporter: Tianying Chang
>            Assignee: Tianying Chang
>            Priority: Minor
>         Attachments: HBASE-17453-1.2.patch
>
>
> Our HBase service is hosted in AWS. We saw cases where the connection between the client (Asynchbase in our case) and server stop working but did not throw any exception, therefore traffic stuck. So we added a "Ping" feature in AsyncHBase 1.5 by utilizing the GetProtocolVersion() API provided at RS side, if no traffic for given time, we send the "Ping", if no response back for "Ping", we assume the connect is bad and reconnect. 
> Now we are upgrading cluster from 94 to 1.2. However, GetProtocolVersion() is deprecated. To be able to support same detect/reconnect feature, we added Ping() in our internal HBase 1.2 branch, and also patched accordingly in Asynchbase 1.7.
> We would like to open source this feature since it is useful for use case in AWS environment. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)