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