You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by el...@apache.org on 2011/12/13 08:52:08 UTC
svn commit: r1213587 - in /hadoop/common/branches/branch-1: CHANGES.txt
src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
Author: eli
Date: Tue Dec 13 07:52:08 2011
New Revision: 1213587
URL: http://svn.apache.org/viewvc?rev=1213587&view=rev
Log:
HDFS-2653. DFSClient should cache whether addrs are non-local when short-circuiting is enabled. Contributed by Eli Collins
Modified:
hadoop/common/branches/branch-1/CHANGES.txt
hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
Modified: hadoop/common/branches/branch-1/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/CHANGES.txt?rev=1213587&r1=1213586&r2=1213587&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1/CHANGES.txt Tue Dec 13 07:52:08 2011
@@ -68,6 +68,9 @@ Release 1.1.0 - unreleased
HADOOP-7908. Fix three javadoc warnings on branch-1. (eli)
+ HDFS-2653. DFSClient should cache whether addrs are non-local when
+ short-circuiting is enabled. (eli)
+
IMPROVEMENTS
MAPREDUCE-3008. [Gridmix] Improve cumulative CPU usage emulation for
Modified: hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java?rev=1213587&r1=1213586&r2=1213587&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java (original)
+++ hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java Tue Dec 13 07:52:08 2011
@@ -364,12 +364,14 @@ public class DFSClient implements FSCons
}
}
- private static Set<String> localIpAddresses = Collections
- .synchronizedSet(new HashSet<String>());
+ // Cache whether an address is local or not
+ private static Map<String, Boolean> localAddrMap = Collections
+ .synchronizedMap(new HashMap<String, Boolean>());
private static boolean isLocalAddress(InetSocketAddress targetAddr) {
InetAddress addr = targetAddr.getAddress();
- if (localIpAddresses.contains(addr.getHostAddress())) {
+ Boolean cached = localAddrMap.get(addr.getHostAddress());
+ if (cached != null && cached) {
if (LOG.isTraceEnabled()) {
LOG.trace("Address " + targetAddr + " is local");
}
@@ -390,9 +392,7 @@ public class DFSClient implements FSCons
if (LOG.isTraceEnabled()) {
LOG.trace("Address " + targetAddr + " is local");
}
- if (local == true) {
- localIpAddresses.add(addr.getHostAddress());
- }
+ localAddrMap.put(addr.getHostAddress(), local);
return local;
}