hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17453) add Ping into HBase server for deprecated GetProtocolVersion
Date Tue, 14 Mar 2017 18:44:41 GMT

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

stack commented on HBASE-17453:
-------------------------------

[~tychang] what about doing something low cost like

  List<HRegionInfo> getOnlineRegions(final ServerName sn) throws IOException;

from the Admin Interface?

On server-side it does this:

{code}
  @Override
  public List<Region> getOnlineRegions() {
    List<Region> allRegions = new ArrayList<>();
    synchronized (this.onlineRegions) {
      // Return a clone copy of the onlineRegions
      allRegions.addAll(onlineRegions.values());
    }
    return allRegions;
  }
{code}

... which is small potatoes in the scheme of things?

On adding a ping, should it be added to Admin rather than to Client?

Or you could do a noop coprocessor endpoint? Then you'd need no change in hbase?

Otherwise, patch seems fine (caveat above feedback). Good on you [~tychang]

> 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
>             Fix For: 2.0.0, 1.2.5
>
>         Attachments: HBASE-17453-1.2.patch, HBASE-17453-master.patch, HBASE-17453-master-v1.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