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 ki...@apache.org on 2015/05/08 22:19:14 UTC
hadoop git commit: HDFS-7433. Optimize performance of
DatanodeManager's node map. Contributed by Daryn Sharp.
Repository: hadoop
Updated Branches:
refs/heads/trunk 8f7c2364d -> 7a7960be4
HDFS-7433. Optimize performance of DatanodeManager's node map. Contributed by Daryn Sharp.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7a7960be
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7a7960be
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7a7960be
Branch: refs/heads/trunk
Commit: 7a7960be41c32f20ffec9fea811878b113da62db
Parents: 8f7c236
Author: Kihwal Lee <ki...@apache.org>
Authored: Fri May 8 15:18:29 2015 -0500
Committer: Kihwal Lee <ki...@apache.org>
Committed: Fri May 8 15:18:29 2015 -0500
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++
.../server/blockmanagement/DatanodeManager.java | 16 ++++++----------
2 files changed, 9 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/7a7960be/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 7e958b6..1f80a62 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -535,6 +535,9 @@ Release 2.8.0 - UNRELEASED
HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than
DFSOutputStream#writeChunk (cmccabe)
+ HDFS-7433. Optimize performance of DatanodeManager's node map.
+ (daryn via kihwal)
+
BUG FIXES
HDFS-7501. TransactionsSinceLastCheckpoint can be negative on SBNs.
http://git-wip-us.apache.org/repos/asf/hadoop/blob/7a7960be/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
index 65c5747..7769a78 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
@@ -40,7 +40,6 @@ import org.apache.hadoop.hdfs.server.namenode.NameNode;
import org.apache.hadoop.hdfs.server.namenode.Namesystem;
import org.apache.hadoop.hdfs.server.protocol.*;
import org.apache.hadoop.hdfs.server.protocol.BlockRecoveryCommand.RecoveringBlock;
-import org.apache.hadoop.hdfs.util.CyclicIteration;
import org.apache.hadoop.ipc.Server;
import org.apache.hadoop.net.*;
import org.apache.hadoop.net.NetworkTopology.InvalidTopologyException;
@@ -84,8 +83,8 @@ public class DatanodeManager {
* <p>
* Mapping: StorageID -> DatanodeDescriptor
*/
- private final NavigableMap<String, DatanodeDescriptor> datanodeMap
- = new TreeMap<String, DatanodeDescriptor>();
+ private final Map<String, DatanodeDescriptor> datanodeMap
+ = new HashMap<String, DatanodeDescriptor>();
/** Cluster network topology */
private final NetworkTopology networktopology;
@@ -405,11 +404,6 @@ public class DatanodeManager {
}
}
- CyclicIteration<String, DatanodeDescriptor> getDatanodeCyclicIteration(
- final String firstkey) {
- return new CyclicIteration<String, DatanodeDescriptor>(
- datanodeMap, firstkey);
- }
/** @return the datanode descriptor for the host. */
public DatanodeDescriptor getDatanodeByHost(final String host) {
@@ -526,9 +520,10 @@ public class DatanodeManager {
/** Prints information about all datanodes. */
void datanodeDump(final PrintWriter out) {
synchronized (datanodeMap) {
+ Map<String,DatanodeDescriptor> sortedDatanodeMap =
+ new TreeMap<String,DatanodeDescriptor>(datanodeMap);
out.println("Metasave: Number of datanodes: " + datanodeMap.size());
- for(Iterator<DatanodeDescriptor> it = datanodeMap.values().iterator(); it.hasNext();) {
- DatanodeDescriptor node = it.next();
+ for (DatanodeDescriptor node : sortedDatanodeMap.values()) {
out.println(node.dumpDatanode());
}
}
@@ -1289,6 +1284,7 @@ public class DatanodeManager {
foundNodes.add(HostFileManager.resolvedAddressFromDatanodeID(dn));
}
}
+ Collections.sort(nodes);
if (listDeadNodes) {
for (InetSocketAddress addr : includedNodes) {