public static VolumeFailureSummary convertVolumeFailureSummary( VolumeFailureSummaryProto proto) { List<String> failedStorageLocations = proto.getFailedStorageLocationsList(); return new VolumeFailureSummary( failedStorageLocations.toArray(new String[failedStorageLocations.size()]), proto.getLastVolumeFailureDate(), proto.getEstimatedCapacityLostTotal()); }
public static VolumeFailureSummaryProto convertVolumeFailureSummary( VolumeFailureSummary volumeFailureSummary) { VolumeFailureSummaryProto.Builder builder = VolumeFailureSummaryProto.newBuilder(); for (String failedStorageLocation: volumeFailureSummary.getFailedStorageLocations()) { builder.addFailedStorageLocations(failedStorageLocation); } builder.setLastVolumeFailureDate( volumeFailureSummary.getLastVolumeFailureDate()); builder.setEstimatedCapacityLostTotal( volumeFailureSummary.getEstimatedCapacityLostTotal()); return builder.build(); }
.getVolumeFailureSummary().getFailedStorageLocations()) { boolean found = false; for (Iterator<StorageLocation> newLocationItr =
@Override // FSNamesystemMBean @Metric({"EstimatedCapacityLostTotal", "An estimate of the total capacity lost due to volume failures"}) public long getEstimatedCapacityLostTotal() { List<DatanodeDescriptor> live = new ArrayList<DatanodeDescriptor>(); getBlockManager().getDatanodeManager().fetchDatanodes(live, null, false); long estimatedCapacityLostTotal = 0; for (DatanodeDescriptor node: live) { VolumeFailureSummary volumeFailureSummary = node.getVolumeFailureSummary(); if (volumeFailureSummary != null) { estimatedCapacityLostTotal += volumeFailureSummary.getEstimatedCapacityLostTotal(); } } return estimatedCapacityLostTotal; }
checkFailedStorages = volumeFailureSummary.getLastVolumeFailureDate() > this.volumeFailureSummary.getLastVolumeFailureDate(); } else { checkFailedStorages = (volFailures > this.volumeFailures) ||
private void sendLifeline() throws IOException { StorageReport[] reports = dn.getFSDataset().getStorageReports(bpos.getBlockPoolId()); if (LOG.isDebugEnabled()) { LOG.debug("Sending lifeline with " + reports.length + " storage " + " reports from service actor: " + BPServiceActor.this); } VolumeFailureSummary volumeFailureSummary = dn.getFSDataset() .getVolumeFailureSummary(); int numFailedVolumes = volumeFailureSummary != null ? volumeFailureSummary.getFailedStorageLocations().length : 0; lifelineNamenode.sendLifeline(bpRegistration, reports, dn.getFSDataset().getCacheCapacity(), dn.getFSDataset().getCacheUsed(), dn.getXmitsInProgress(), dn.getXceiverCount(), numFailedVolumes, volumeFailureSummary); } }
@Override // FSNamesystemMBean public long getEstimatedCapacityLostTotal() { List<DatanodeDescriptor> live = new ArrayList<DatanodeDescriptor>(); getBlockManager().getDatanodeManager().fetchDatanodes(live, null, false); long estimatedCapacityLostTotal = 0; for (DatanodeDescriptor node: live) { VolumeFailureSummary volumeFailureSummary = node.getVolumeFailureSummary(); if (volumeFailureSummary != null) { estimatedCapacityLostTotal += volumeFailureSummary.getEstimatedCapacityLostTotal(); } } return estimatedCapacityLostTotal; }
checkFailedStorages = volumeFailureSummary.getLastVolumeFailureDate() > this.volumeFailureSummary.getLastVolumeFailureDate(); } else { checkFailedStorages = (volFailures > this.volumeFailures) ||
innerinfo .put("failedStorageIDs", volumeFailureSummary.getFailedStorageLocations()) .put("lastVolumeFailureDate", volumeFailureSummary.getLastVolumeFailureDate()) .put("estimatedCapacityLostTotal", volumeFailureSummary.getEstimatedCapacityLostTotal());
@Override // FsDatasetSpi public VolumeFailureSummary getVolumeFailureSummary() { VolumeFailureInfo[] infos = volumes.getVolumeFailureInfos(); if (infos.length == 0) { return null; } List<String> failedStorageLocations = Lists.newArrayListWithCapacity( infos.length); long lastVolumeFailureDate = 0; long estimatedCapacityLostTotal = 0; for (VolumeFailureInfo info: infos) { failedStorageLocations.add( info.getFailedStorageLocation().getNormalizedUri().toString()); long failureDate = info.getFailureDate(); if (failureDate > lastVolumeFailureDate) { lastVolumeFailureDate = failureDate; } estimatedCapacityLostTotal += info.getEstimatedCapacityLost(); } return new VolumeFailureSummary( failedStorageLocations.toArray(new String[failedStorageLocations.size()]), lastVolumeFailureDate, estimatedCapacityLostTotal); }
.getVolumeFailureSummary(); int numFailedVolumes = volumeFailureSummary != null ? volumeFailureSummary.getFailedStorageLocations().length : 0; final boolean outliersReportDue = scheduler.isOutliersReportDue(now); final SlowPeerReports slowPeers =
@Override // FSNamesystemMBean @Metric({"EstimatedCapacityLostTotal", "An estimate of the total capacity lost due to volume failures"}) public long getEstimatedCapacityLostTotal() { List<DatanodeDescriptor> live = new ArrayList<DatanodeDescriptor>(); getBlockManager().getDatanodeManager().fetchDatanodes(live, null, false); long estimatedCapacityLostTotal = 0; for (DatanodeDescriptor node: live) { VolumeFailureSummary volumeFailureSummary = node.getVolumeFailureSummary(); if (volumeFailureSummary != null) { estimatedCapacityLostTotal += volumeFailureSummary.getEstimatedCapacityLostTotal(); } } return estimatedCapacityLostTotal; }
checkFailedStorages = volumeFailureSummary.getLastVolumeFailureDate() > this.volumeFailureSummary.getLastVolumeFailureDate(); } else { checkFailedStorages = (volFailures > this.volumeFailures) ||
public static VolumeFailureSummaryProto convertVolumeFailureSummary( VolumeFailureSummary volumeFailureSummary) { VolumeFailureSummaryProto.Builder builder = VolumeFailureSummaryProto.newBuilder(); for (String failedStorageLocation: volumeFailureSummary.getFailedStorageLocations()) { builder.addFailedStorageLocations(failedStorageLocation); } builder.setLastVolumeFailureDate( volumeFailureSummary.getLastVolumeFailureDate()); builder.setEstimatedCapacityLostTotal( volumeFailureSummary.getEstimatedCapacityLostTotal()); return builder.build(); }
@Override // FsDatasetSpi public VolumeFailureSummary getVolumeFailureSummary() { return new VolumeFailureSummary(ArrayUtils.EMPTY_STRING_ARRAY, 0, 0); }
HeartbeatResponse sendHeartBeat() throws IOException { scheduler.scheduleNextHeartbeat(); StorageReport[] reports = dn.getFSDataset().getStorageReports(bpos.getBlockPoolId()); if (LOG.isDebugEnabled()) { LOG.debug("Sending heartbeat with " + reports.length + " storage reports from service actor: " + this); } VolumeFailureSummary volumeFailureSummary = dn.getFSDataset() .getVolumeFailureSummary(); int numFailedVolumes = volumeFailureSummary != null ? volumeFailureSummary.getFailedStorageLocations().length : 0; return bpNamenode.sendHeartbeat(bpRegistration, reports, dn.getFSDataset().getCacheCapacity(), dn.getFSDataset().getCacheUsed(), dn.getXmitsInProgress(), dn.getXceiverCount(), numFailedVolumes, volumeFailureSummary); }
public static VolumeFailureSummaryProto convertVolumeFailureSummary( VolumeFailureSummary volumeFailureSummary) { VolumeFailureSummaryProto.Builder builder = VolumeFailureSummaryProto.newBuilder(); for (String failedStorageLocation: volumeFailureSummary.getFailedStorageLocations()) { builder.addFailedStorageLocations(failedStorageLocation); } builder.setLastVolumeFailureDate( volumeFailureSummary.getLastVolumeFailureDate()); builder.setEstimatedCapacityLostTotal( volumeFailureSummary.getEstimatedCapacityLostTotal()); return builder.build(); }
@Override // FsDatasetSpi public VolumeFailureSummary getVolumeFailureSummary() { return new VolumeFailureSummary(ArrayUtils.EMPTY_STRING_ARRAY, 0, 0); }
HeartbeatResponse sendHeartBeat() throws IOException { scheduler.scheduleNextHeartbeat(); StorageReport[] reports = dn.getFSDataset().getStorageReports(bpos.getBlockPoolId()); if (LOG.isDebugEnabled()) { LOG.debug("Sending heartbeat with " + reports.length + " storage reports from service actor: " + this); } VolumeFailureSummary volumeFailureSummary = dn.getFSDataset() .getVolumeFailureSummary(); int numFailedVolumes = volumeFailureSummary != null ? volumeFailureSummary.getFailedStorageLocations().length : 0; return bpNamenode.sendHeartbeat(bpRegistration, reports, dn.getFSDataset().getCacheCapacity(), dn.getFSDataset().getCacheUsed(), dn.getXmitsInProgress(), dn.getXceiverCount(), numFailedVolumes, volumeFailureSummary); }
innerinfo .put("failedStorageLocations", volumeFailureSummary.getFailedStorageLocations()) .put("lastVolumeFailureDate", volumeFailureSummary.getLastVolumeFailureDate()) .put("estimatedCapacityLostTotal", volumeFailureSummary.getEstimatedCapacityLostTotal());