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 cu...@apache.org on 2007/06/14 23:39:16 UTC

svn commit: r547416 - in /lucene/hadoop/trunk: CHANGES.txt src/java/org/apache/hadoop/dfs/FSNamesystem.java src/java/org/apache/hadoop/dfs/NameNode.java

Author: cutting
Date: Thu Jun 14 14:39:16 2007
New Revision: 547416

URL: http://svn.apache.org/viewvc?view=rev&rev=547416
Log:
HADOOP-1139.  Log HDFS block transitions at INFO level.  Contributed by Dhruba.

Modified:
    lucene/hadoop/trunk/CHANGES.txt
    lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java
    lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/NameNode.java

Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=547416&r1=547415&r2=547416
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Thu Jun 14 14:39:16 2007
@@ -117,6 +117,9 @@
  37. HADOOP-1467.  Remove redundant counters from WordCount example.
      (Owen O'Malley via tomwhite)
 
+ 38. HADOOP-1139.  Log HDFS block transitions at INFO level, to better
+     enable diagnosis of problems.  (Dhruba Borthakur via tomwhite)
+
 
 Release 0.13.0 - 2007-06-08
 

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java?view=diff&rev=547416&r1=547415&r2=547416
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java Thu Jun 14 14:39:16 2007
@@ -938,9 +938,9 @@
     FileUnderConstruction v = pendingCreates.get(src);
     v.getBlocks().add(b);
     pendingCreateBlocks.add(b);
-    NameNode.stateChangeLog.debug("BLOCK* NameSystem.allocateBlock: "
-                                  +src+ ". "+b.getBlockName()+
-                                  " is created and added to pendingCreates and pendingCreateBlocks");      
+    NameNode.stateChangeLog.info("BLOCK* NameSystem.allocateBlock: "
+                                 +src+ ". "+b.getBlockName()+
+                                 " is created and added to pendingCreates and pendingCreateBlocks");      
     return b;
   }
 
@@ -1033,7 +1033,7 @@
     if (count > 1) {
       addToInvalidates(blk, dn);
       removeStoredBlock(blk, getDatanode(dn));
-      NameNode.stateChangeLog.info("BLOCK* NameSystem.invalidateBlocks: "
+      NameNode.stateChangeLog.debug("BLOCK* NameSystem.invalidateBlocks: "
                                    + blk.getBlockName() + " on " 
                                    + dn.getName() + " listed for deletion.");
     } else {
@@ -1084,7 +1084,7 @@
                blocksMap.nodeIterator(b); it.hasNext();) {
           DatanodeDescriptor node = it.next();
           addToInvalidates(b, node);
-          NameNode.stateChangeLog.debug("BLOCK* NameSystem.delete: "
+          NameNode.stateChangeLog.info("BLOCK* NameSystem.delete: "
                                         + b.getBlockName() + " is added to invalidSet of " 
                                         + node.getName());
         }
@@ -2064,14 +2064,12 @@
     if (added) {
       curReplicaDelta = 1;
       // 
-      // Hairong: I would prefer to set the level of next logrecord
-      // to be debug.
-      // But at startup time, because too many new blocks come in
-      // they simply take up all the space in the log file 
-      // So I set the level to be trace
+      // At startup time, because too many new blocks come in
+      // they take up lots of space in the log file. 
+      // So, we log only when namenode is out of safemode.
       //
-      if (NameNode.stateChangeLog.isTraceEnabled()) {
-        NameNode.stateChangeLog.trace("BLOCK* NameSystem.addStoredBlock: "
+      if (!isInSafeMode()) {
+        NameNode.stateChangeLog.info("BLOCK* NameSystem.addStoredBlock: "
                                       +"blockMap updated: "+node.getName()+" is added to "+block.getBlockName());
       }
     } else {
@@ -2429,15 +2427,15 @@
       recentInvalidateSets.put(nodeID.getStorageID(), invalidateSet);
     }
         
-    if (NameNode.stateChangeLog.isDebugEnabled()) {
+    if (NameNode.stateChangeLog.isInfoEnabled()) {
       StringBuffer blockList = new StringBuffer();
       for (int i = 0; i < sendBlock.size(); i++) {
         blockList.append(' ');
         Block block = sendBlock.get(i);
         blockList.append(block.getBlockName());
       }
-      NameNode.stateChangeLog.debug("BLOCK* NameSystem.blockToInvalidate: "
-                                    +"ask "+nodeID.getName()+" to delete " + blockList);
+      NameNode.stateChangeLog.info("BLOCK* NameSystem.blockToInvalidate: "
+                                   +"ask "+nodeID.getName()+" to delete " + blockList);
     }
     return sendBlock.toArray(new Block[sendBlock.size()]);
   }

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/NameNode.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/NameNode.java?view=diff&rev=547416&r1=547415&r2=547416
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/NameNode.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/NameNode.java Thu Jun 14 14:39:16 2007
@@ -361,7 +361,7 @@
    * check the blocks are actually corrupt. 
    */
   public void reportBadBlocks(LocatedBlock[] blocks) throws IOException {
-    stateChangeLog.debug("*DIR* NameNode.reportBadBlocks");
+    stateChangeLog.info("*DIR* NameNode.reportBadBlocks");
     for (int i = 0; i < blocks.length; i++) {
       Block blk = blocks[i].getBlock();
       DatanodeInfo[] nodes = blocks[i].getLocations();