@Override void addBlockToBeReplicated(Block block, DatanodeStorageInfo[] targets) { // pick a random datanode, delegate to it DatanodeDescriptor node = chooseRandom(targets); if (node != null) { node.addBlockToBeReplicated(block, targets); } else { LOG.error("Cannot find a source node to replicate block: " + block + " from"); } }
@Override void addTaskToDatanode(NumberReplicas numberReplicas) { getSrcNodes()[0].addBlockToBeReplicated(getBlock(), getTargets()); } }
private void createReplicationWork(int sourceIndex, DatanodeStorageInfo target) { BlockInfoStriped stripedBlk = (BlockInfoStriped) getBlock(); final byte blockIndex = liveBlockIndicies[sourceIndex]; final DatanodeDescriptor source = getSrcNodes()[sourceIndex]; final long internBlkLen = StripedBlockUtil.getInternalBlockLength( stripedBlk.getNumBytes(), stripedBlk.getCellSize(), stripedBlk.getDataBlockNum(), blockIndex); final Block targetBlk = new Block(stripedBlk.getBlockId() + blockIndex, internBlkLen, stripedBlk.getGenerationStamp()); source.addBlockToBeReplicated(targetBlk, new DatanodeStorageInfo[] {target}); if (BlockManager.LOG.isDebugEnabled()) { BlockManager.LOG.debug("Add replication task from source {} to " + "target {} for EC block {}", source, target, targetBlk); } }
rw.srcNode.addBlockToBeReplicated(block, targets); scheduledWork++; DatanodeStorageInfo.incrementBlocksScheduled(targets);
origNodes.get(0).addBlockToBeReplicated(aBlock, targets);
origNodes.get(0).addBlockToBeReplicated(aBlock, targets);
rw.srcNode.addBlockToBeReplicated(block, targets); scheduledWork++; DatanodeStorageInfo.incrementBlocksScheduled(targets);
synchronized(hm) { for (int i=0; i<MAX_REPLICATE_BLOCKS; i++) { dd.addBlockToBeReplicated( new Block(i, 0, GenerationStamp.LAST_RESERVED_STAMP), ONE_TARGET);