You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Allen Wittenauer (JIRA)" <ji...@apache.org> on 2015/05/06 05:28:27 UTC
[jira] [Updated] (HADOOP-11387) Simplify
NetUtils#canonicalizeHost()
[ https://issues.apache.org/jira/browse/HADOOP-11387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Allen Wittenauer updated HADOOP-11387:
--------------------------------------
Labels: BB2015-05-TBR (was: )
> Simplify NetUtils#canonicalizeHost()
> ------------------------------------
>
> Key: HADOOP-11387
> URL: https://issues.apache.org/jira/browse/HADOOP-11387
> Project: Hadoop Common
> Issue Type: Bug
> Reporter: Haohui Mai
> Assignee: Li Lu
> Labels: BB2015-05-TBR
> Attachments: HADOOP-11387-121514-1.patch, HADOOP-11387-121514-2.patch, HADOOP-11387-121514.patch
>
>
> Currently {{NetUtils#canonicalizeHost}} uses a {{ConcurrentHashMap}} to cache the canonicalized hostname.
> {code}
> private static String canonicalizeHost(String host) {
> // check if the host has already been canonicalized
> String fqHost = canonicalizedHostCache.get(host);
> if (fqHost == null) {
> try {
> fqHost = SecurityUtil.getByName(host).getHostName();
> // slight race condition, but won't hurt
> canonicalizedHostCache.put(host, fqHost);
> } catch (UnknownHostException e) {
> fqHost = host;
> }
> }
> return fqHost;
> }
> {code}
> The code triggers a findbugs warning. The cache is used for caching NN resolution for the client-side {{FileSystem}} objects. In most of the use cases there are at most one or two instances in the cache. This jira proposes to eliminate the findbugs warnings and to simplify the code using {{CacheMap}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)