Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,12 @@ public class DatanodeInfo extends DatanodeDetails {

private volatile long lastHeartbeatTime;
private long lastStatsUpdatedTime;
private int failedVolumeCount;

private List<StorageReportProto> storageReports;
private List<MetadataStorageReportProto> metadataStorageReports;
private LayoutVersionProto lastKnownLayoutVersion;
private Map<SCMCommandProto.Type, Integer> commandCounts;
private final Map<SCMCommandProto.Type, Integer> commandCounts;

private NodeStatus nodeStatus;

Expand Down Expand Up @@ -155,9 +156,14 @@ public LayoutVersionProto getLastKnownLayoutVersion() {
* @param reports list of storage report
*/
public void updateStorageReports(List<StorageReportProto> reports) {
final int failedCount = (int) reports.stream()
.filter(e -> e.hasFailed() && e.getFailed())
.count();

try {
lock.writeLock().lock();
lastStatsUpdatedTime = Time.monotonicNow();
failedVolumeCount = failedCount;
storageReports = reports;
} finally {
lock.writeLock().unlock();
Expand Down Expand Up @@ -215,7 +221,7 @@ public List<MetadataStorageReportProto> getMetadataStorageReports() {
public int getHealthyVolumeCount() {
try {
lock.readLock().lock();
return storageReports.size() - getFailedVolumeCount();
return storageReports.size() - failedVolumeCount;
} finally {
lock.readLock().unlock();
}
Expand All @@ -234,15 +240,6 @@ public int getMetaDataVolumeCount() {
}
}

/**
* Returns count of failed volumes reported from datanode.
* @return count of failed volumes
*/
private int getFailedVolumeCount() {
return (int) storageReports.stream().
filter(e -> e.hasFailed() ? e.getFailed() : false).count();
}

/**
* Returns the last updated time of datanode info.
* @return the last updated time of datanode info.
Expand Down