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

Reply via email to