hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12943) Set sun.net.inetaddr.ttl in HBase
Date Fri, 13 Feb 2015 02:40:12 GMT

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

Enis Soztutar commented on HBASE-12943:

1. We can use serverName.getHostname() and getPort() here (and above)
+          Addressing.parseHostname(serverName.getHostAndPort()),
+          Addressing.parsePort(serverName.getHostAndPort()));
2. Maybe we can create a subtask for this since the jira is focussed on setting the TTL setting
for Oracle JVM with some default setting, but your patch actually fixes another related problem
with Connection caching per hostname. We need that patch first, then maybe setting the TTL
setting from hbase-env.sh later. 

I think caching the stub key with the ip address is right since BlockingRpcChannelImplementation
already constructs {{new InetSocketAddress()}}, and the connection from RpcClient will use
the InetSocketAddress to talk. One thing we can consider is that, to be perfectly safe for
changing either hostnames or ips, we can make the stub key cache like : {{ serviceName @ hostname
/ ip : port }}. InetAddress.toString() can be used for the middle part. 

> Set sun.net.inetaddr.ttl in HBase
> ---------------------------------
>                 Key: HBASE-12943
>                 URL: https://issues.apache.org/jira/browse/HBASE-12943
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Liu Shaohui
>            Assignee: Liu Shaohui
>             Fix For: 1.1.0
>         Attachments: 12943-1-master.txt
> The default value of config: sun.net.inetaddr.ttl is -1 and the java processes will cache
the mapping of hostname to ip address  forever, See: http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html
> But things go wrong when a regionserver with same hostname and different ip address rejoins
the hbase cluster. The HMaster will get wrong ip address of the regionserver from this cache
and every region assignment to this regionserver will be blocked for a time because the HMaster
can't communicate with the regionserver.
> A tradeoff is to set the sun.net.inetaddr.ttl to 10m or 1h and make the wrong cache expired.
> Suggestions are welcomed. Thanks~

This message was sent by Atlassian JIRA

View raw message