HDFS-5215. dfs.datanode.du.reserved is not considered while computing
available space ( Brahma Reddy Battula via Yongjun Zhang)
(cherry picked from commit 66763bb06f
)
This commit is contained in:
parent
8d3657a577
commit
b76c321e94
|
@ -106,6 +106,9 @@ Release 2.8.0 - UNRELEASED
|
|||
HDFS-7916. 'reportBadBlocks' from datanodes to standby Node BPServiceActor
|
||||
goes for infinite loop (vinayakumarb)
|
||||
|
||||
HDFS-5215. dfs.datanode.du.reserved is not considered while computing
|
||||
available space ( Brahma Reddy Battula via Yongjun Zhang)
|
||||
|
||||
Release 2.7.0 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -2494,9 +2494,9 @@ class FsDatasetImpl implements FsDatasetSpi<FsVolumeImpl> {
|
|||
*/
|
||||
private static class VolumeInfo {
|
||||
final String directory;
|
||||
final long usedSpace;
|
||||
final long freeSpace;
|
||||
final long reservedSpace;
|
||||
final long usedSpace; // size of space used by HDFS
|
||||
final long freeSpace; // size of free space excluding reserved space
|
||||
final long reservedSpace; // size of space reserved for non-HDFS and RBW
|
||||
|
||||
VolumeInfo(FsVolumeImpl v, long usedSpace, long freeSpace) {
|
||||
this.directory = v.toString();
|
||||
|
|
|
@ -305,9 +305,11 @@ public class FsVolumeImpl implements FsVolumeSpi {
|
|||
}
|
||||
|
||||
/**
|
||||
* Calculate the capacity of the filesystem, after removing any
|
||||
* reserved capacity.
|
||||
* @return the unreserved number of bytes left in this filesystem. May be zero.
|
||||
* Return either the configured capacity of the file system if configured; or
|
||||
* the capacity of the file system excluding space reserved for non-HDFS.
|
||||
*
|
||||
* @return the unreserved number of bytes left in this filesystem. May be
|
||||
* zero.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
public long getCapacity() {
|
||||
|
@ -329,10 +331,16 @@ public class FsVolumeImpl implements FsVolumeSpi {
|
|||
this.configuredCapacity = capacity;
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the available space of the filesystem, excluding space reserved
|
||||
* for non-HDFS and space reserved for RBW
|
||||
*
|
||||
* @return the available number of bytes left in this filesystem. May be zero.
|
||||
*/
|
||||
@Override
|
||||
public long getAvailable() throws IOException {
|
||||
long remaining = getCapacity() - getDfsUsed() - reservedForRbw.get();
|
||||
long available = usage.getAvailable();
|
||||
long available = usage.getAvailable() - reserved - reservedForRbw.get();
|
||||
if (remaining > available) {
|
||||
remaining = available;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue