/** * @deprecated Use {@link #getStorage()} instead */ @Deprecated public String getStorageID() { return storage.getStorageID(); }
DatanodeStorageInfo getProvidedStorage( DatanodeDescriptor dn, DatanodeStorage s) { dns.put(dn.getDatanodeUuid(), dn); dnR.add(dn); return storageMap.get(s.getStorageID()); }
DatanodeStorageInfo createProvidedStorage(DatanodeStorage ds) { assert null == storageMap.get(ds.getStorageID()); DatanodeStorageInfo storage = new ProvidedDatanodeStorageInfo(this, ds); storage.setHeartbeatedSinceFailover(true); storageMap.put(storage.getStorageID(), storage); return storage; }
DatanodeStorageInfo(DatanodeDescriptor dn, DatanodeStorage s) { this(dn, s.getStorageID(), s.getStorageType(), s.getState()); }
public void updateStorage(DatanodeDescriptor node, DatanodeStorage storage) { if (isProvidedStorage(storage.getStorageID())) { if (StorageType.PROVIDED.equals(storage.getStorageType())) { node.injectStorage(providedStorageInfo); return; } else { LOG.warn("Reserved storage {} reported as non-provided from {}", storage, node); } } node.updateStorage(storage); }
/** * @param dn datanode descriptor * @param s data node storage * @return the {@link DatanodeStorageInfo} for the specified datanode. * If {@code s} corresponds to a provided storage, the storage info * representing provided storage is returned. * @throws IOException */ DatanodeStorageInfo getStorage(DatanodeDescriptor dn, DatanodeStorage s) throws IOException { if (providedEnabled && storageId.equals(s.getStorageID())) { if (StorageType.PROVIDED.equals(s.getStorageType())) { if (providedStorageInfo.getState() == State.FAILED && s.getState() == State.NORMAL) { providedStorageInfo.setState(State.NORMAL); LOG.info("Provided storage transitioning to state " + State.NORMAL); } if (dn.getStorageInfo(s.getStorageID()) == null) { dn.injectStorage(providedStorageInfo); } processProvidedStorageReport(); return providedDescriptor.getProvidedStorage(dn, s); } LOG.warn("Reserved storage {} reported as non-provided from {}", s, dn); } return dn.getStorageInfo(s.getStorageID()); }
excessStorages.remove(report.getStorage().getStorageID());
DatanodeStorageInfo updateStorage(DatanodeStorage s) { synchronized (storageMap) { DatanodeStorageInfo storage = storageMap.get(s.getStorageID()); DFSTopologyNodeImpl parent = null; if (getParent() instanceof DFSTopologyNodeImpl) { LOG.info("Adding new storage ID {} for DN {}", s.getStorageID(), getXferAddr()); StorageType type = s.getStorageType(); storageMap.put(s.getStorageID(), storage); } else if (storage.getState() != s.getState() || storage.getStorageType() != s.getStorageType()) {
private void processIncrementalBlockReport(final DatanodeDescriptor node, final StorageReceivedDeletedBlocks srdb) throws IOException { DatanodeStorageInfo storageInfo = node.getStorageInfo(srdb.getStorage().getStorageID()); if (storageInfo == null) {
@Override public boolean equals(Object other){ if (other == this) { return true; } if ((other == null) || !(other instanceof DatanodeStorage)) { return false; } DatanodeStorage otherStorage = (DatanodeStorage) other; return otherStorage.getStorageID().compareTo(getStorageID()) == 0; }
storageMap.get(report.getStorage().getStorageID()); if (checkFailedStorages) { failedStorageInfos.remove(storage);
@Override public int hashCode() { return getStorageID().hashCode(); } }
@Override public int hashCode() { return getStorageID().hashCode(); } }
"invalidatedBlocks: {}", strBlockReportId, storage.getStorageID(), nodeID, newReport.getNumberOfBlocks(), node.hasStaleStorages(), (endTime - startTime),
volume.setUuid(storage.getStorageID());
@Override public void blockReceivedAndDeleted(DatanodeRegistration registration, String poolId, StorageReceivedDeletedBlocks[] receivedAndDeletedBlocks) throws IOException { BlockReceivedAndDeletedRequestProto.Builder builder = BlockReceivedAndDeletedRequestProto.newBuilder() .setRegistration(PBHelper.convert(registration)) .setBlockPoolId(poolId); for (StorageReceivedDeletedBlocks storageBlock : receivedAndDeletedBlocks) { StorageReceivedDeletedBlocksProto.Builder repBuilder = StorageReceivedDeletedBlocksProto.newBuilder(); repBuilder.setStorageUuid(storageBlock.getStorage().getStorageID()); // Set for wire compatibility. repBuilder.setStorage(PBHelperClient.convert(storageBlock.getStorage())); for (ReceivedDeletedBlockInfo rdBlock : storageBlock.getBlocks()) { repBuilder.addBlocks(PBHelper.convert(rdBlock)); } builder.addBlocks(repBuilder.build()); } try { rpcProxy.blockReceivedAndDeleted(NULL_CONTROLLER, builder.build()); } catch (ServiceException se) { throw ProtobufHelper.getRemoteException(se); } }
@Override public int compare(StorageReport left, StorageReport right) { return left.getStorage().getStorageID().compareTo( right.getStorage().getStorageID()); } };
public static DatanodeStorageProto convert(DatanodeStorage s) { return DatanodeStorageProto.newBuilder() .setState(convertState(s.getState())) .setStorageType(convertStorageType(s.getStorageType())) .setStorageUuid(s.getStorageID()).build(); }
public static DatanodeStorageProto convert(DatanodeStorage s) { return DatanodeStorageProto.newBuilder() .setState(PBHelper.convertState(s.getState())) .setStorageType(PBHelper.convertStorageType(s.getStorageType())) .setStorageUuid(s.getStorageID()).build(); }
public static StorageReportProto convert(StorageReport r) { StorageReportProto.Builder builder = StorageReportProto.newBuilder() .setBlockPoolUsed(r.getBlockPoolUsed()).setCapacity(r.getCapacity()) .setDfsUsed(r.getDfsUsed()).setRemaining(r.getRemaining()) .setStorageUuid(r.getStorage().getStorageID()) .setStorage(convert(r.getStorage())) .setNonDfsUsed(r.getNonDfsUsed()); return builder.build(); }