[ https://issues.apache.org/jira/browse/HADOOP-11387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14249044#comment-14249044 ]
Jonathan Eagles commented on HADOOP-11387: ------------------------------------------ Can you post the findbugs warning. I prefer to fix the warning rather that switch the underlying cache implementation. For small number hosts, this change is overkill. For large number of hosts, this implementation under-performs. > 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 > 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)