Author: cutting Date: Wed Jul 11 12:30:17 2007 New Revision: 555376 URL: http://svn.apache.org/viewvc?view=rev&rev=555376 Log: HADOOP-1578. Fix datanode to send its storage id to namenode during registration. Contributed by Konstantin.
Modified: lucene/hadoop/trunk/CHANGES.txt lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DatanodeRegistration.java Modified: lucene/hadoop/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=555376&r1=555375&r2=555376 ============================================================================== --- lucene/hadoop/trunk/CHANGES.txt (original) +++ lucene/hadoop/trunk/CHANGES.txt Wed Jul 11 12:30:17 2007 @@ -300,6 +300,9 @@ locations returned to client, so that load is better balanced. (Hairong Kuang via cutting) + 93. HADOOP-1578. Fix datanode to send its storage id to namenode + during registration. (Konstantin Shvachko via cutting) + Release 0.13.0 - 2007-06-08 Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java?view=diff&rev=555376&r1=555375&r2=555376 ============================================================================== --- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java (original) +++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java Wed Jul 11 12:30:17 2007 @@ -353,9 +353,20 @@ } catch (InterruptedException ie) {} } } + assert ("".equals(storage.getStorageID()) + && !"".equals(dnRegistration.getStorageID())) + || storage.getStorageID().equals(dnRegistration.getStorageID()) : + "New storageID can be assigned only if data-node is not formatted"; if (storage.getStorageID().equals("")) { storage.setStorageID(dnRegistration.getStorageID()); storage.writeAll(); + LOG.info("New storage id " + dnRegistration.getStorageID() + + " is assigned to data-node " + dnRegistration.getName()); + } + if(! storage.getStorageID().equals(dnRegistration.getStorageID())) { + throw new IOException("Inconsistent storage IDs. Name-node returned " + + dnRegistration.getStorageID() + + ". Expecting " + storage.getStorageID()); } } Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DatanodeRegistration.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DatanodeRegistration.java?view=diff&rev=555376&r1=555375&r2=555376 ============================================================================== --- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DatanodeRegistration.java (original) +++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DatanodeRegistration.java Wed Jul 11 12:30:17 2007 @@ -4,7 +4,6 @@ import java.io.DataOutput; import java.io.IOException; -import org.apache.hadoop.io.UTF8; import org.apache.hadoop.io.Writable; import org.apache.hadoop.io.WritableFactories; import org.apache.hadoop.io.WritableFactory; @@ -48,6 +47,7 @@ void setStorageInfo(DataStorage storage) { this.storageInfo = new StorageInfo(storage); + this.storageID = storage.getStorageID(); } void setName(String name) {