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 el...@apache.org on 2013/01/08 20:41:05 UTC
svn commit: r1430462 - in
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs: CHANGES.txt
src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
Author: eli
Date: Tue Jan 8 19:41:04 2013
New Revision: 1430462
URL: http://svn.apache.org/viewvc?rev=1430462&view=rev
Log:
HDFS-4030. BlockManager excessBlocksCount and postponedMisreplicatedBlocksCount should be AtomicLongs. Contributed by Eli Collins
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1430462&r1=1430461&r2=1430462&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Tue Jan 8 19:41:04 2013
@@ -454,6 +454,9 @@ Release 2.0.3-alpha - Unreleased
HADOOP-9173. Add security token protobuf definition to common and
use it in hdfs. (suresh)
+ HDFS-4030. BlockManager excessBlocksCount and
+ postponedMisreplicatedBlocksCount should be AtomicLongs. (eli)
+
OPTIMIZATIONS
BUG FIXES
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java?rev=1430462&r1=1430461&r2=1430462&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java Tue Jan 8 19:41:04 2013
@@ -33,6 +33,7 @@ import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.TreeMap;
+import java.util.concurrent.atomic.AtomicLong;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -107,8 +108,8 @@ public class BlockManager {
private volatile long corruptReplicaBlocksCount = 0L;
private volatile long underReplicatedBlocksCount = 0L;
private volatile long scheduledReplicationBlocksCount = 0L;
- private volatile long excessBlocksCount = 0L;
- private volatile long postponedMisreplicatedBlocksCount = 0L;
+ private AtomicLong excessBlocksCount = new AtomicLong(0L);
+ private AtomicLong postponedMisreplicatedBlocksCount = new AtomicLong(0L);
/** Used by metrics */
public long getPendingReplicationBlocksCount() {
@@ -132,11 +133,11 @@ public class BlockManager {
}
/** Used by metrics */
public long getExcessBlocksCount() {
- return excessBlocksCount;
+ return excessBlocksCount.get();
}
/** Used by metrics */
public long getPostponedMisreplicatedBlocksCount() {
- return postponedMisreplicatedBlocksCount;
+ return postponedMisreplicatedBlocksCount.get();
}
/** Used by metrics */
public int getPendingDataNodeMessageCount() {
@@ -1066,7 +1067,7 @@ public class BlockManager {
private void postponeBlock(Block blk) {
if (postponedMisreplicatedBlocks.add(blk)) {
- postponedMisreplicatedBlocksCount++;
+ postponedMisreplicatedBlocksCount.incrementAndGet();
}
}
@@ -1598,7 +1599,7 @@ public class BlockManager {
"in block map.");
}
it.remove();
- postponedMisreplicatedBlocksCount--;
+ postponedMisreplicatedBlocksCount.decrementAndGet();
continue;
}
MisReplicationResult res = processMisReplicatedBlock(bi);
@@ -1608,7 +1609,7 @@ public class BlockManager {
}
if (res != MisReplicationResult.POSTPONE) {
it.remove();
- postponedMisreplicatedBlocksCount--;
+ postponedMisreplicatedBlocksCount.decrementAndGet();
}
}
}
@@ -2445,7 +2446,7 @@ assert storedBlock.findDatanode(dn) < 0
excessReplicateMap.put(dn.getStorageID(), excessBlocks);
}
if (excessBlocks.add(block)) {
- excessBlocksCount++;
+ excessBlocksCount.incrementAndGet();
if(blockLog.isDebugEnabled()) {
blockLog.debug("BLOCK* addToExcessReplicate:"
+ " (" + dn + ", " + block
@@ -2493,7 +2494,7 @@ assert storedBlock.findDatanode(dn) < 0
.getStorageID());
if (excessBlocks != null) {
if (excessBlocks.remove(block)) {
- excessBlocksCount--;
+ excessBlocksCount.decrementAndGet();
if(blockLog.isDebugEnabled()) {
blockLog.debug("BLOCK* removeStoredBlock: "
+ block + " is removed from excessBlocks");
@@ -2838,7 +2839,7 @@ assert storedBlock.findDatanode(dn) < 0
// Remove the block from pendingReplications
pendingReplications.remove(block);
if (postponedMisreplicatedBlocks.remove(block)) {
- postponedMisreplicatedBlocksCount--;
+ postponedMisreplicatedBlocksCount.decrementAndGet();
}
}