public BlockInfo addBlockCollection(BlockInfo block, BlockCollection bc) { return blocksMap.addBlockCollection(block, bc); }
/** @return an iterator of the datanodes. */ public Iterable<DatanodeStorageInfo> getStorages(final Block block) { return blocksMap.getStorages(block); }
blocksMap = new BlocksMap( LightWeightGSet.computeCapacity(2.0, "BlocksMap")); placementPolicies = new BlockPlacementPolicies(
public void removeBlockFromMap(BlockInfo block) { for(DatanodeStorageInfo info : blocksMap.getStorages(block)) { excessRedundancyMap.remove(info.getDatanodeDescriptor(), block); } blocksMap.removeBlock(block); // If block is removed from blocksMap remove it from corruptReplicasMap corruptReplicas.removeFromCorruptReplicasMap(block); }
/** * Get all valid locations of the block */ private List<DatanodeStorageInfo> getValidLocations(BlockInfo block) { final List<DatanodeStorageInfo> locations = new ArrayList<DatanodeStorageInfo>(blocksMap.numNodes(block)); for(DatanodeStorageInfo storage : blocksMap.getStorages(block)) { // filter invalidate replicas Block b = getBlockOnStorage(block, storage); if(b != null && !invalidateBlocks.contains(storage.getDatanodeDescriptor(), b)) { locations.add(storage); } } return locations; }
long nrUnderReplicated = 0, nrPostponed = 0, nrUnderConstruction = 0; long startTimeMisReplicatedScan = Time.monotonicNow(); Iterator<BlockInfo> blocksItr = blocksMap.getBlocks().iterator(); long totalBlocks = blocksMap.size(); reconstructionQueuesInitProgress = 0; long totalProcessed = 0; LOG.info("Total number of blocks = {}", blocksMap.size()); LOG.info("Number of invalid blocks = {}", nrInvalid); LOG.info("Number of under-replicated blocks = {}", nrUnderReplicated);
if (blockManager.blocksMap.getStoredBlock(block) == null) { LOG.trace("Removing unknown block {}", block); it.remove(); continue; BlockCollection bc = blockManager.blocksMap.getBlockCollection(block); if (bc == null) { blockManager.blocksMap.getStorages(block)); firstReplicationLog = false;
public BlockInfo getStoredBlock(Block block) { if (!BlockIdManager.isStripedBlockID(block.getBlockId())) { return blocksMap.getStoredBlock(block); } if (!hasNonEcBlockUsingStripedID) { return blocksMap.getStoredBlock( new Block(BlockIdManager.convertToStripedID(block.getBlockId()))); } BlockInfo info = blocksMap.getStoredBlock(block); if (info != null) { return info; } return blocksMap.getStoredBlock( new Block(BlockIdManager.convertToStripedID(block.getBlockId()))); }
assert (namesystem.hasWriteLock()); if (!blocksMap.removeNode(block, node)) { blockLog.debug("BLOCK* removeStoredBlock: {} has already been" + " removed from node {}", block, node); BlockCollection bc = blocksMap.getBlockCollection(block); if (bc != null) { namesystem.decrementSafeBlockCount(block);
DatanodeDescriptor dn = bm.blocksMap.getStorages(b.getLocalBlock()) .iterator().next().getDatanodeDescriptor(); bm.addToInvalidates(b.getLocalBlock(), dn); Thread.sleep(5000); bm.blocksMap.removeNode(b.getLocalBlock(), dn);
if (blockManager.blocksMap.getStoredBlock(block) == null) { LOG.trace("Removing unknown block {}", block); it.remove(); blockManager.blocksMap.getStorages(block)); firstReplicationLog = false;
public void shutdown() { stopReconstructionInitializer(); blocksMap.close(); MBeans.unregister(mxBeanName); mxBeanName = null; }
void close() { clear(); blocks = null; }
public int getCapacity() { return blocksMap.getCapacity(); }
if (BlockIdManager.isStripedBlockID(replicaID) && (!hasNonEcBlockUsingStripedID || !blocksMap.containsBlock(replica))) { replicaID = BlockIdManager.convertToStripedID(replicaID); (cmp = Long.compare(replicaID, storageBlock.getBlockId())) < 0) { BlockInfo nnBlock = blocksMap.getStoredBlock(new Block(replicaID)); if (nnBlock != null) { reportDiffSortedInner(storageInfo, replica, reportedState,
assert (namesystem.hasWriteLock()); if (storedBlock == null || !blocksMap.removeNode(storedBlock, node)) { blockLog.debug("BLOCK* removeStoredBlock: {} has already been" + " removed from node {}", storedBlock, node);
for (DatanodeStorageInfo storage : blocksMap.getStorages(block)) { DatanodeDescriptor node = storage.getDatanodeDescriptor(); if (corruptNodes.contains(node)) { + "\tNode=" + node.getName() + "\tStorageID=" + storageId + "\tStorageState=" + state + "\tTotalReplicas=" + blocksMap.numNodes(block) + "\tReason=" + corruptReplicas.getCorruptReason(block, node)); numNodesToFind--;
if (blockManager.blocksMap.getStoredBlock(block) == null) { LOG.trace("Removing unknown block {}", block); it.remove(); continue; BlockCollection bc = blockManager.blocksMap.getBlockCollection(block); if (bc == null) { blockManager.blocksMap.getStorages(block)); firstReplicationLog = false;
public BlockInfoContiguous getStoredBlock(Block block) { return blocksMap.getStoredBlock(block); }
long nrUnderReplicated = 0, nrPostponed = 0, nrUnderConstruction = 0; long startTimeMisReplicatedScan = Time.monotonicNow(); Iterator<BlockInfoContiguous> blocksItr = blocksMap.getBlocks().iterator(); long totalBlocks = blocksMap.size(); replicationQueuesInitProgress = 0; long totalProcessed = 0; LOG.info("Total number of blocks = " + blocksMap.size()); LOG.info("Number of invalid blocks = " + nrInvalid); LOG.info("Number of under-replicated blocks = " + nrUnderReplicated);