소스 검색

HADOOP-1149. Improve DFS Scalability: make processOverReplicatedBlock() a no-op if blocks are not over-replicated. Contributed by Raghu Angadi.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@526392 13f79535-47bb-0310-9956-ffa450edef68
Thomas White 18 년 전
부모
커밋
e12c6e90f1
2개의 변경된 파일15개의 추가작업 그리고 5개의 파일을 삭제
  1. 4 0
      CHANGES.txt
  2. 11 5
      src/java/org/apache/hadoop/dfs/FSNamesystem.java

+ 4 - 0
CHANGES.txt

@@ -123,6 +123,10 @@ Trunk (unreleased changes)
     long-running unit tests may be automatically terminated.
     (Nigel Daley via cutting)
 
+39. HADOOP-1149.  Improve DFS Scalability: make 
+    processOverReplicatedBlock() a no-op if blocks are not 
+    over-replicated.  (Raghu Angadi via tomwhite)
+
 
 Release 0.12.3 - 2007-04-06
 

+ 11 - 5
src/java/org/apache/hadoop/dfs/FSNamesystem.java

@@ -2198,8 +2198,10 @@ class FSNamesystem implements FSConstants {
             // they simply take up all the space in the log file 
             // So I set the level to be trace
             //
-            NameNode.stateChangeLog.trace("BLOCK* NameSystem.addStoredBlock: "
+            if ( NameNode.stateChangeLog.isTraceEnabled() ) {
+              NameNode.stateChangeLog.trace("BLOCK* NameSystem.addStoredBlock: "
                     +"blockMap updated: "+node.getName()+" is added to "+block.getBlockName() );
+            }
         } else {
             NameNode.stateChangeLog.warn("BLOCK* NameSystem.addStoredBlock: "
                     + "Redundant addStoredBlock request received for " 
@@ -2224,7 +2226,9 @@ class FSNamesystem implements FSConstants {
         } else {
           neededReplications.update(block, curReplicaDelta, 0);
         }
-        proccessOverReplicatedBlock( block, fileReplication );
+        if ( numCurrentReplica > fileReplication ) {
+          proccessOverReplicatedBlock( block, fileReplication );
+        }
         return block;
     }
     
@@ -2360,9 +2364,11 @@ class FSNamesystem implements FSConstants {
                 "Unexpected exception.  Got blockReceived message from node " 
                 + block.getBlockName() + ", but there is no info for it");
         }
-
-        NameNode.stateChangeLog.debug("BLOCK* NameSystem.blockReceived: "
+        
+        if ( NameNode.stateChangeLog.isDebugEnabled() ) {
+          NameNode.stateChangeLog.debug("BLOCK* NameSystem.blockReceived: "
                 +block.getBlockName()+" is received from " + nodeID.getName() );
+        }
 
         // Check if this datanode should actually be shutdown instead.
         if (shouldNodeShutdown(node)) {
@@ -2589,7 +2595,7 @@ class FSNamesystem implements FSConstants {
             recentInvalidateSets.put(nodeID.getStorageID(), invalidateSet);
         }
         
-        if (NameNode.stateChangeLog.isInfoEnabled()) {
+        if (NameNode.stateChangeLog.isDebugEnabled()) {
             StringBuffer blockList = new StringBuffer();
             for (int i = 0; i < sendBlock.size(); i++) {
                 blockList.append(' ');