HDFS-4030. BlockManager excessBlocksCount and postponedMisreplicatedBlocksCount should be AtomicLongs. Contributed by Eli Collins
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1430549 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ecf8c442f4
commit
99a64115ce
|
@ -161,6 +161,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
|
||||
|
|
|
@ -33,7 +33,7 @@ import java.util.Map;
|
|||
import java.util.Queue;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
@ -108,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() {
|
||||
|
@ -133,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() {
|
||||
|
@ -1067,7 +1067,7 @@ public class BlockManager {
|
|||
|
||||
private void postponeBlock(Block blk) {
|
||||
if (postponedMisreplicatedBlocks.add(blk)) {
|
||||
postponedMisreplicatedBlocksCount++;
|
||||
postponedMisreplicatedBlocksCount.incrementAndGet();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1599,7 +1599,7 @@ public class BlockManager {
|
|||
"in block map.");
|
||||
}
|
||||
it.remove();
|
||||
postponedMisreplicatedBlocksCount--;
|
||||
postponedMisreplicatedBlocksCount.decrementAndGet();
|
||||
continue;
|
||||
}
|
||||
MisReplicationResult res = processMisReplicatedBlock(bi);
|
||||
|
@ -1609,7 +1609,7 @@ public class BlockManager {
|
|||
}
|
||||
if (res != MisReplicationResult.POSTPONE) {
|
||||
it.remove();
|
||||
postponedMisreplicatedBlocksCount--;
|
||||
postponedMisreplicatedBlocksCount.decrementAndGet();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2474,7 +2474,7 @@ assert storedBlock.findDatanode(dn) < 0 : "Block " + block
|
|||
excessReplicateMap.put(dn.getStorageID(), excessBlocks);
|
||||
}
|
||||
if (excessBlocks.add(block)) {
|
||||
excessBlocksCount++;
|
||||
excessBlocksCount.incrementAndGet();
|
||||
if(blockLog.isDebugEnabled()) {
|
||||
blockLog.debug("BLOCK* addToExcessReplicate:"
|
||||
+ " (" + dn + ", " + block
|
||||
|
@ -2522,7 +2522,7 @@ assert storedBlock.findDatanode(dn) < 0 : "Block " + block
|
|||
.getStorageID());
|
||||
if (excessBlocks != null) {
|
||||
if (excessBlocks.remove(block)) {
|
||||
excessBlocksCount--;
|
||||
excessBlocksCount.decrementAndGet();
|
||||
if(blockLog.isDebugEnabled()) {
|
||||
blockLog.debug("BLOCK* removeStoredBlock: "
|
||||
+ block + " is removed from excessBlocks");
|
||||
|
@ -2867,7 +2867,7 @@ assert storedBlock.findDatanode(dn) < 0 : "Block " + block
|
|||
// Remove the block from pendingReplications
|
||||
pendingReplications.remove(block);
|
||||
if (postponedMisreplicatedBlocks.remove(block)) {
|
||||
postponedMisreplicatedBlocksCount--;
|
||||
postponedMisreplicatedBlocksCount.decrementAndGet();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue