Explorar o código

Remove redundant events from HDFS namenode's edit log when a datanode restarts. Contributed by Raghu.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@546276 13f79535-47bb-0310-9956-ffa450edef68
Doug Cutting %!s(int64=18) %!d(string=hai) anos
pai
achega
54e0f0fbe4
Modificáronse 2 ficheiros con 7 adicións e 2 borrados
  1. 3 0
      CHANGES.txt
  2. 4 2
      src/java/org/apache/hadoop/dfs/FSNamesystem.java

+ 3 - 0
CHANGES.txt

@@ -90,6 +90,9 @@ Trunk (unreleased changes)
  29. HADOOP-1412.  Fix "dodgy" bugs identified by FindBugs in fs and
  29. HADOOP-1412.  Fix "dodgy" bugs identified by FindBugs in fs and
      io packages.  (Hairong Kuang via cutting)
      io packages.  (Hairong Kuang via cutting)
 
 
+ 30. HADOOP-1261.  Remove redundant events from HDFS namenode's edit
+     log when a datanode restarts.  (Raghu Angadi via cutting)
+
 
 
 Release 0.13.0 - 2007-06-08
 Release 0.13.0 - 2007-06-08
 
 

+ 4 - 2
src/java/org/apache/hadoop/dfs/FSNamesystem.java

@@ -1482,15 +1482,17 @@ class FSNamesystem implements FSConstants {
                                       "BLOCK* NameSystem.registerDatanode: "
                                       "BLOCK* NameSystem.registerDatanode: "
                                       + "node " + nodeS.getName()
                                       + "node " + nodeS.getName()
                                       + " is replaced by " + nodeReg.getName() + ".");
                                       + " is replaced by " + nodeReg.getName() + ".");
+        getEditLog().logRemoveDatanode(nodeS);
       }
       }
-      getEditLog().logRemoveDatanode(nodeS);
       // update cluster map
       // update cluster map
       clusterMap.remove(nodeS);
       clusterMap.remove(nodeS);
       nodeS.updateRegInfo(nodeReg);
       nodeS.updateRegInfo(nodeReg);
       nodeS.setNetworkLocation(networkLocation);
       nodeS.setNetworkLocation(networkLocation);
       clusterMap.add(nodeS);
       clusterMap.add(nodeS);
       nodeS.setHostName(hostName);
       nodeS.setHostName(hostName);
-      getEditLog().logAddDatanode(nodeS);
+      if ( nodeS != nodeN ) {
+        getEditLog().logAddDatanode( nodeS );
+      }
         
         
       // also treat the registration message as a heartbeat
       // also treat the registration message as a heartbeat
       synchronized(heartbeats) {
       synchronized(heartbeats) {