hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tianying Chang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17453) add Ping into HBase server for deprecated GetProtocolVersion
Date Mon, 06 Feb 2017 23:58:41 GMT

    [ 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)

Mime
View raw message