public int numBlocks() { int blocks = 0; for (DatanodeStorageInfo entry : getStorageInfos()) { blocks += entry.numBlocks(); } return blocks; }
private BlockIterator(final int startBlock, final DatanodeStorageInfo... storages) { if(startBlock < 0) { throw new IllegalArgumentException( "Illegal value startBlock = " + startBlock); } List<Iterator<BlockInfo>> iterators = new ArrayList<>(); int s = startBlock; int sumBlocks = 0; for (DatanodeStorageInfo e : storages) { int numBlocks = e.numBlocks(); sumBlocks += numBlocks; if(sumBlocks <= startBlock) { s -= numBlocks; } else { iterators.add(e.getBlockIterator()); } } this.iterators = Collections.unmodifiableList(iterators); // skip to the storage containing startBlock for(; s > 0 && hasNext(); s--) { next(); } }
/** * Start decommissioning the specified datanode. * @param node */ @VisibleForTesting public void startDecommission(DatanodeDescriptor node) { if (!node.isDecommissionInProgress() && !node.isDecommissioned()) { // Update DN stats maintained by HeartbeatManager hbManager.startDecommission(node); // hbManager.startDecommission will set dead node to decommissioned. if (node.isDecommissionInProgress()) { for (DatanodeStorageInfo storage : node.getStorageInfos()) { LOG.info("Starting decommission of {} {} with {} blocks", node, storage, storage.numBlocks()); } node.getLeavingServiceStatus().setStartTime(monotonicNow()); pendingNodes.add(node); } } else { LOG.trace("startDecommission: Node {} in {}, nothing to do.", node, node.getAdminState()); } }
/** * Start maintenance of the specified datanode. * @param node */ @VisibleForTesting public void startMaintenance(DatanodeDescriptor node, long maintenanceExpireTimeInMS) { // Even if the node is already in maintenance, we still need to adjust // the expiration time. node.setMaintenanceExpireTimeInMS(maintenanceExpireTimeInMS); if (!node.isMaintenance()) { // Update DN stats maintained by HeartbeatManager hbManager.startMaintenance(node); // hbManager.startMaintenance will set dead node to IN_MAINTENANCE. if (node.isEnteringMaintenance()) { for (DatanodeStorageInfo storage : node.getStorageInfos()) { LOG.info("Starting maintenance of {} {} with {} blocks", node, storage, storage.numBlocks()); } node.getLeavingServiceStatus().setStartTime(monotonicNow()); } // Track the node regardless whether it is ENTERING_MAINTENANCE or // IN_MAINTENANCE to support maintenance expiration. pendingNodes.add(node); } else { LOG.trace("startMaintenance: Node {} in {}, nothing to do.", node, node.getAdminState()); } }
public int numBlocks() { int blocks = 0; for (DatanodeStorageInfo entry : getStorageInfos()) { blocks += entry.numBlocks(); } return blocks; }
public int numBlocks() { int blocks = 0; for (DatanodeStorageInfo entry : getStorageInfos()) { blocks += entry.numBlocks(); } return blocks; }
private BlockIterator(final int startBlock, final DatanodeStorageInfo... storages) { if(startBlock < 0) { throw new IllegalArgumentException( "Illegal value startBlock = " + startBlock); } List<Iterator<BlockInfoContiguous>> iterators = new ArrayList<Iterator<BlockInfoContiguous>>(); int s = startBlock; int sumBlocks = 0; for (DatanodeStorageInfo e : storages) { int numBlocks = e.numBlocks(); sumBlocks += numBlocks; if(sumBlocks <= startBlock) { s -= numBlocks; } else { iterators.add(e.getBlockIterator()); } } this.iterators = Collections.unmodifiableList(iterators); // skip to the storage containing startBlock for(; s > 0 && hasNext(); s--) { next(); } }
private BlockIterator(final int startBlock, final DatanodeStorageInfo... storages) { if(startBlock < 0) { throw new IllegalArgumentException( "Illegal value startBlock = " + startBlock); } List<Iterator<BlockInfoContiguous>> iterators = new ArrayList<Iterator<BlockInfoContiguous>>(); int s = startBlock; int sumBlocks = 0; for (DatanodeStorageInfo e : storages) { int numBlocks = e.numBlocks(); sumBlocks += numBlocks; if(sumBlocks <= startBlock) { s -= numBlocks; } else { iterators.add(e.getBlockIterator()); } } this.iterators = Collections.unmodifiableList(iterators); // skip to the storage containing startBlock for(; s > 0 && hasNext(); s--) { next(); } }
/** * Start decommissioning the specified datanode. * @param node */ @VisibleForTesting public void startDecommission(DatanodeDescriptor node) { if (!node.isDecommissionInProgress() && !node.isDecommissioned()) { // Update DN stats maintained by HeartbeatManager hbManager.startDecommission(node); // hbManager.startDecommission will set dead node to decommissioned. if (node.isDecommissionInProgress()) { for (DatanodeStorageInfo storage : node.getStorageInfos()) { LOG.info("Starting decommission of {} {} with {} blocks", node, storage, storage.numBlocks()); } node.decommissioningStatus.setStartTime(monotonicNow()); pendingNodes.add(node); } } else { LOG.trace("startDecommission: Node {} in {}, nothing to do." + node, node.getAdminState()); } }
/** * Start decommissioning the specified datanode. * @param node */ @VisibleForTesting public void startDecommission(DatanodeDescriptor node) { if (!node.isDecommissionInProgress() && !node.isDecommissioned()) { // Update DN stats maintained by HeartbeatManager hbManager.startDecommission(node); // hbManager.startDecommission will set dead node to decommissioned. if (node.isDecommissionInProgress()) { for (DatanodeStorageInfo storage : node.getStorageInfos()) { LOG.info("Starting decommission of {} {} with {} blocks", node, storage, storage.numBlocks()); } node.decommissioningStatus.setStartTime(monotonicNow()); pendingNodes.add(node); } } else { LOG.trace("startDecommission: Node {} in {}, nothing to do." + node, node.getAdminState()); } }
assertEquals("Length should be MAX_BLOCK", MAX_BLOCKS, dd.numBlocks()); Iterator<BlockInfoContiguous> it = dd.getBlockIterator(); int len = 0;