You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by su...@apache.org on 2011/02/25 20:41:45 UTC

svn commit: r1074679 - in /hadoop/hdfs/branches/HDFS-1052: ./ src/java/org/apache/hadoop/hdfs/server/datanode/ src/java/org/apache/hadoop/hdfs/server/namenode/ src/java/org/apache/hadoop/hdfs/server/protocol/

Author: suresh
Date: Fri Feb 25 19:41:44 2011
New Revision: 1074679

URL: http://svn.apache.org/viewvc?rev=1074679&view=rev
Log:
HDFS-1645. DatanodeCommond.Finalize needs to include BlockPoolId. Contributed by Suresh Srinvias.


Modified:
    hadoop/hdfs/branches/HDFS-1052/CHANGES.txt
    hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
    hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
    hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/protocol/DatanodeCommand.java

Modified: hadoop/hdfs/branches/HDFS-1052/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/CHANGES.txt?rev=1074679&r1=1074678&r2=1074679&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/CHANGES.txt (original)
+++ hadoop/hdfs/branches/HDFS-1052/CHANGES.txt Fri Feb 25 19:41:44 2011
@@ -31,6 +31,9 @@ Trunk (unreleased changes)
     HDFS-1653. Federation: Block received message from datanode sends invalid 
     DatanodeRegistration. (Tanping via suresh)
 
+    HDFS-1645. DatanodeCommond.Finalize needs to include BlockPoolId.
+    (suresh)
+
   IMPROVEMENTS
 
     HDFS-1510. Added test-patch.properties required by test-patch.sh (nigel)

Modified: hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java?rev=1074679&r1=1074678&r2=1074679&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java (original)
+++ hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java Fri Feb 25 19:41:44 2011
@@ -1014,8 +1014,8 @@ public class DataNode extends Configured
         }
         break;
       case DatanodeProtocol.DNA_FINALIZE:
-        // TODO:FEDERATION - global storage????? or per BP storage - add real BPID
-        storage.finalizeUpgrade("FAKE ID NEEDS TO BE REPLACED");
+        storage.finalizeUpgrade(((DatanodeCommand.Finalize) cmd)
+            .getBlockPoolId());
         break;
       case UpgradeCommand.UC_ACTION_START_UPGRADE:
         // start distributed upgrade here

Modified: hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java?rev=1074679&r1=1074678&r2=1074679&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java (original)
+++ hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java Fri Feb 25 19:41:44 2011
@@ -251,7 +251,7 @@ public class NameNode implements Namenod
   public static URI [] getNameNodesURIs(Configuration conf) {
     String [] nnURIs = conf.getStrings(DFSConfigKeys.DFS_FEDERATION_NAMENODES);
     if(nnURIs == null) {
-      nnURIs = new String[] { conf.get(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY)};
+      nnURIs = new String[] {conf.get(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY)};
     }
 
     AbstractList<URI> nns = new ArrayList<URI>(nnURIs.length);
@@ -300,6 +300,7 @@ public class NameNode implements Namenod
   /**
    * TODO:FEDERATION
    * @param filesystemURI
+   * @return address of file system
    */
   public static InetSocketAddress getAddress(URI filesystemURI) {
     String authority = filesystemURI.getAuthority();
@@ -1300,7 +1301,7 @@ public class NameNode implements Namenod
 
     namesystem.processReport(nodeReg, poolId, blist);
     if (getFSImage().isUpgradeFinalized())
-      return DatanodeCommand.FINALIZE;
+      return new DatanodeCommand.Finalize(poolId);
     return null;
   }
 
@@ -1356,8 +1357,12 @@ public class NameNode implements Namenod
    */
   public void verifyRequest(NodeRegistration nodeReg) throws IOException {
     verifyVersion(nodeReg.getVersion());
-    if (!namesystem.getRegistrationID().equals(nodeReg.getRegistrationID()))
+    if (!namesystem.getRegistrationID().equals(nodeReg.getRegistrationID())) {
+      LOG.warn("Invalid registrationID - expected: "
+          + namesystem.getRegistrationID() + " received: "
+          + nodeReg.getRegistrationID());
       throw new UnregisteredNodeException(nodeReg);
+    }
   }
     
   /**

Modified: hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/protocol/DatanodeCommand.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/protocol/DatanodeCommand.java?rev=1074679&r1=1074678&r2=1074679&view=diff
==============================================================================
--- hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/protocol/DatanodeCommand.java (original)
+++ hadoop/hdfs/branches/HDFS-1052/src/java/org/apache/hadoop/hdfs/server/protocol/DatanodeCommand.java Fri Feb 25 19:41:44 2011
@@ -19,12 +19,14 @@ package org.apache.hadoop.hdfs.server.pr
 
 import java.io.DataInput;
 import java.io.DataOutput;
+import java.io.IOException;
 
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.io.WritableFactory;
 import org.apache.hadoop.io.WritableFactories;
+import org.apache.hadoop.io.WritableUtils;
 import org.apache.avro.reflect.Union;
 
 /**
@@ -47,10 +49,27 @@ public abstract class DatanodeCommand ex
     public void write(DataOutput out) {}
   }
 
-  static class Finalize extends DatanodeCommand {
-    private Finalize() {super(DatanodeProtocol.DNA_FINALIZE);}
-    public void readFields(DataInput in) {}
-    public void write(DataOutput out) {}
+  public static class Finalize extends DatanodeCommand {
+    String blockPoolId;
+    private Finalize() {
+      super(DatanodeProtocol.DNA_FINALIZE);
+    }
+    
+    public Finalize(String bpid) {
+      super(DatanodeProtocol.DNA_FINALIZE);
+      blockPoolId = bpid;
+    }
+    
+    public String getBlockPoolId() {
+      return blockPoolId;
+    }
+    
+    public void readFields(DataInput in) throws IOException {
+      blockPoolId = WritableUtils.readString(in);
+    }
+    public void write(DataOutput out) throws IOException {
+      WritableUtils.writeString(out, blockPoolId);
+    }
   }
 
   static {                                      // register a ctor
@@ -65,7 +84,6 @@ public abstract class DatanodeCommand ex
   }
 
   public static final DatanodeCommand REGISTER = new Register();
-  public static final DatanodeCommand FINALIZE = new Finalize();
   
   public DatanodeCommand() {
     super();