blob: 1722dd0e55dbc44ddab99435b7eaabdc046dd017 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hadoop.hdfs.server.protocol;
/**
* Summarizes information about data volume failures on a DataNode.
*/
public class VolumeFailureSummary {
private final String[] failedStorageLocations;
private final long lastVolumeFailureDate;
private final long estimatedCapacityLostTotal;
/**
* Creates a new VolumeFailureSummary.
*
* @param failedStorageLocations storage locations that have failed
* @param lastVolumeFailureDate date/time of last volume failure in
* milliseconds since epoch
* @param estimatedCapacityLostTotal estimate of capacity lost in bytes
*/
public VolumeFailureSummary(String[] failedStorageLocations,
long lastVolumeFailureDate, long estimatedCapacityLostTotal) {
this.failedStorageLocations = failedStorageLocations;
this.lastVolumeFailureDate = lastVolumeFailureDate;
this.estimatedCapacityLostTotal = estimatedCapacityLostTotal;
}
/**
* Returns each storage location that has failed, sorted.
*
* @return each storage location that has failed, sorted
*/
public String[] getFailedStorageLocations() {
return this.failedStorageLocations;
}
/**
* Returns the date/time of the last volume failure in milliseconds since
* epoch.
*
* @return date/time of last volume failure in milliseconds since epoch
*/
public long getLastVolumeFailureDate() {
return this.lastVolumeFailureDate;
}
/**
* Returns estimate of capacity lost. This is said to be an estimate, because
* in some cases it's impossible to know the capacity of the volume, such as if
* we never had a chance to query its capacity before the failure occurred.
*
* @return estimate of capacity lost in bytes
*/
public long getEstimatedCapacityLostTotal() {
return this.estimatedCapacityLostTotal;
}
}