Forráskód Böngészése

HDFS-6578. add toString method to DatanodeStorage for easier debugging. (Contributed by Yongjun Zhang)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1604942 13f79535-47bb-0310-9956-ffa450edef68
Arpit Agarwal 11 éve
szülő
commit
5ac06c8b38

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -464,6 +464,9 @@ Release 2.5.0 - UNRELEASED
     HDFS-6507. Improve DFSAdmin to support HA cluster better.
     HDFS-6507. Improve DFSAdmin to support HA cluster better.
     (Zesheng Wu via vinayakumarb)
     (Zesheng Wu via vinayakumarb)
 
 
+    HDFS-6578. add toString method to DatanodeStorage for easier debugging.
+    (Yongjun Zhang via Arpit Agarwal)
+
   OPTIMIZATIONS
   OPTIMIZATIONS
 
 
     HDFS-6214. Webhdfs has poor throughput for files >2GB (daryn)
     HDFS-6214. Webhdfs has poor throughput for files >2GB (daryn)

+ 1 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java

@@ -1749,6 +1749,7 @@ public class BlockManager {
     }
     }
     blockLog.info("BLOCK* processReport: from storage " + storage.getStorageID()
     blockLog.info("BLOCK* processReport: from storage " + storage.getStorageID()
         + " node " + nodeID + ", blocks: " + newReport.getNumberOfBlocks()
         + " node " + nodeID + ", blocks: " + newReport.getNumberOfBlocks()
+        + ", hasStaleStorages: " + node.hasStaleStorages()
         + ", processing time: " + (endTime - startTime) + " msecs");
         + ", processing time: " + (endTime - startTime) + " msecs");
     return !node.hasStaleStorages();
     return !node.hasStaleStorages();
   }
   }

+ 5 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java

@@ -1046,6 +1046,11 @@ class NameNodeRpcServer implements NamenodeProtocols {
     boolean noStaleStorages = false;
     boolean noStaleStorages = false;
     for(StorageBlockReport r : reports) {
     for(StorageBlockReport r : reports) {
       final BlockListAsLongs blocks = new BlockListAsLongs(r.getBlocks());
       final BlockListAsLongs blocks = new BlockListAsLongs(r.getBlocks());
+      //
+      // BlockManager.processReport accumulates information of prior calls
+      // for the same node and storage, so the value returned by the last
+      // call of this loop is the final updated value for noStaleStorage.
+      //
       noStaleStorages = bm.processReport(nodeReg, r.getStorage(), poolId, blocks);
       noStaleStorages = bm.processReport(nodeReg, r.getStorage(), poolId, blocks);
       metrics.incrStorageBlockReportOps();
       metrics.incrStorageBlockReportOps();
     }
     }

+ 5 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/protocol/DatanodeStorage.java

@@ -81,6 +81,11 @@ public class DatanodeStorage {
     return "DS-" + UUID.randomUUID();
     return "DS-" + UUID.randomUUID();
   }
   }
 
 
+  @Override
+  public String toString() {
+    return "DatanodeStorage["+ storageID + "," + storageType + "," + state +"]";
+  }
+  
   @Override
   @Override
   public boolean equals(Object other){
   public boolean equals(Object other){
     if (other == this) {
     if (other == this) {