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 sh...@apache.org on 2009/08/16 21:56:54 UTC
svn commit: r804754 - in /hadoop/hdfs/trunk: ./
src/java/org/apache/hadoop/hdfs/server/namenode/
Author: shv
Date: Sun Aug 16 19:56:53 2009
New Revision: 804754
URL: http://svn.apache.org/viewvc?rev=804754&view=rev
Log:
HDFS-546. DatanodeDescriptor iterator blocks as BlockInfo. Contributed by Konstantin Shvachko.
Modified:
hadoop/hdfs/trunk/CHANGES.txt
hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/BlockManager.java
hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java
hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Modified: hadoop/hdfs/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/CHANGES.txt?rev=804754&r1=804753&r2=804754&view=diff
==============================================================================
--- hadoop/hdfs/trunk/CHANGES.txt (original)
+++ hadoop/hdfs/trunk/CHANGES.txt Sun Aug 16 19:56:53 2009
@@ -94,6 +94,8 @@
HDFS-409. Add more access token tests. (Kan Zhang via szetszwo)
+ HDFS-546. DatanodeDescriptor iterator blocks as BlockInfo. (shv)
+
BUG FIXES
HDFS-76. Better error message to users when commands fail because of
Modified: hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/BlockManager.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/BlockManager.java?rev=804754&r1=804753&r2=804754&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/BlockManager.java (original)
+++ hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/BlockManager.java Sun Aug 16 19:56:53 2009
@@ -1230,8 +1230,9 @@
*/
boolean isReplicationInProgress(DatanodeDescriptor srcNode) {
boolean status = false;
- for(final Iterator<Block> i = srcNode.getBlockIterator(); i.hasNext(); ) {
- final Block block = i.next();
+ final Iterator<? extends Block> it = srcNode.getBlockIterator();
+ while(it.hasNext()) {
+ final Block block = it.next();
INode fileINode = blocksMap.getINode(block);
if (fileINode != null) {
Modified: hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java?rev=804754&r1=804753&r2=804754&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java (original)
+++ hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java Sun Aug 16 19:56:53 2009
@@ -229,7 +229,7 @@
/**
* Iterates over the list of blocks belonging to the datanode.
*/
- static private class BlockIterator implements Iterator<Block> {
+ static private class BlockIterator implements Iterator<BlockInfo> {
private BlockInfo current;
private DatanodeDescriptor node;
@@ -253,7 +253,7 @@
}
}
- Iterator<Block> getBlockIterator() {
+ Iterator<BlockInfo> getBlockIterator() {
return new BlockIterator(this.blockList, this);
}
@@ -402,7 +402,7 @@
}
// collect blocks that have not been reported
// all of them are next to the delimiter
- Iterator<Block> it = new BlockIterator(delimiter.getNext(0), this);
+ Iterator<? extends Block> it = new BlockIterator(delimiter.getNext(0),this);
while(it.hasNext())
toRemove.add(it.next());
this.removeBlock(delimiter);
Modified: hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=804754&r1=804753&r2=804754&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java (original)
+++ hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Sun Aug 16 19:56:53 2009
@@ -544,7 +544,7 @@
if(numBlocks == 0) {
return new BlocksWithLocations(new BlockWithLocations[0]);
}
- Iterator<Block> iter = node.getBlockIterator();
+ Iterator<BlockInfo> iter = node.getBlockIterator();
int startBlock = r.nextInt(numBlocks); // starting from a random block
// skip blocks
for(int i=0; i<startBlock; i++) {
@@ -2157,7 +2157,8 @@
}
}
- for (Iterator<Block> it = nodeInfo.getBlockIterator(); it.hasNext();) {
+ Iterator<? extends Block> it = nodeInfo.getBlockIterator();
+ while(it.hasNext()) {
blockManager.removeStoredBlock(it.next(), nodeInfo);
}
unprotectedRemoveDatanode(nodeInfo);
@@ -2657,7 +2658,7 @@
//
// all the blocks that reside on this node have to be
// replicated.
- Iterator<Block> decommissionBlocks = node.getBlockIterator();
+ Iterator<? extends Block> decommissionBlocks = node.getBlockIterator();
while(decommissionBlocks.hasNext()) {
Block block = decommissionBlocks.next();
blockManager.updateNeededReplications(block, -1, 0);