Author: hairong
Date: Thu Apr 2 22:13:07 2009
New Revision: 761447
URL: http://svn.apache.org/viewvc?rev=761447&view=rev
Log:
HADOOP-5595. NameNode does not need to run a replicator to choose a random
DataNode. Contributed by Hairong Kuang.
Modified:
hadoop/core/trunk/CHANGES.txt
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Modified: hadoop/core/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=761447&r1=761446&r2=761447&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Thu Apr 2 22:13:07 2009
@@ -202,6 +202,9 @@
OPTIMIZATIONS
+ HADOOP-5595. NameNode does not need to run a replicator to choose a
+ random DataNode. (hairong)
+
BUG FIXES
HADOOP-5379. CBZip2InputStream to throw IOException on data crc error.
Modified:
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL:
http://svn.apache.org/viewvc/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=761447&r1=761446&r2=761447&view=diff
==============================================================================
---
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
(original)
+++
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Thu Apr 2 22:13:07 2009
@@ -37,6 +37,7 @@
import org.apache.hadoop.net.CachedDNSToSwitchMapping;
import org.apache.hadoop.net.DNSToSwitchMapping;
import org.apache.hadoop.net.NetworkTopology;
+import org.apache.hadoop.net.NodeBase;
import org.apache.hadoop.net.ScriptBasedMapping;
import org.apache.hadoop.hdfs.server.namenode.LeaseManager.Lease;
import org.apache.hadoop.hdfs.server.protocol.BlocksWithLocations;
@@ -3910,8 +3911,12 @@
return null;
}
+ /** Choose a random datanode
+ *
+ * @return a randomly chosen datanode
+ */
public DatanodeDescriptor getRandomDatanode() {
- return replicator.chooseTarget(1, null, null, 0)[0];
+ return (DatanodeDescriptor)clusterMap.chooseRandom(NodeBase.ROOT);
}
/**