Skip to content

Commit 661e13a

Browse files
HDDS-13945. Including du reserved space in report.
1 parent f490ece commit 661e13a

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/StorageDistributionEndpoint.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ private long calculateCommittedSize() {
221221
private DatanodeStorageReport getStorageReport(DatanodeDetails datanode) {
222222
try {
223223
SCMNodeMetric nodeMetric = nodeManager.getNodeStat(datanode);
224+
long reservedSpace = nodeManager.getTotalReserved(datanode);
224225
if (nodeMetric == null) {
225226
LOG.warn("Node statistics not available for datanode: {}", datanode);
226227
return null; // Return null for unavailable nodes
@@ -244,6 +245,7 @@ private DatanodeStorageReport getStorageReport(DatanodeDetails datanode) {
244245
.setRemaining(remaining)
245246
.setCommitted(committed)
246247
.setMinimumFreeSpace(minFreeSpace)
248+
.setReserved(reservedSpace)
247249
.setDatanodeUuid(datanode.getUuidString())
248250
.setHostName(datanode.getHostName())
249251
.build();

hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/types/DatanodeStorageReport.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public final class DatanodeStorageReport {
3232
private long remaining;
3333
private long committed;
3434
private long minimumFreeSpace;
35+
private long reserved;
3536

3637
public DatanodeStorageReport() {
3738
}
@@ -44,6 +45,8 @@ private DatanodeStorageReport(Builder builder) {
4445
this.remaining = builder.remaining;
4546
this.committed = builder.committed;
4647
this.minimumFreeSpace = builder.minimumFreeSpace;
48+
this.reserved = builder.reserved;
49+
builder.validate();
4750
}
4851

4952
public String getDatanodeUuid() {
@@ -74,6 +77,10 @@ public long getMinimumFreeSpace() {
7477
return minimumFreeSpace;
7578
}
7679

80+
public long getReserved() {
81+
return reserved;
82+
}
83+
7784
public static Builder newBuilder() {
7885
return new Builder();
7986
}
@@ -89,6 +96,7 @@ public static final class Builder {
8996
private long remaining = 0;
9097
private long committed = 0;
9198
private long minimumFreeSpace = 0;
99+
private long reserved = 0;
92100

93101
private static final Logger LOG =
94102
LoggerFactory.getLogger(Builder.class);
@@ -131,6 +139,11 @@ public Builder setMinimumFreeSpace(long minimumFreeSpace) {
131139
return this;
132140
}
133141

142+
public Builder setReserved(long reserved) {
143+
this.reserved = reserved;
144+
return this;
145+
}
146+
134147
public void validate() {
135148
Objects.requireNonNull(hostName, "hostName cannot be null");
136149

@@ -146,6 +159,15 @@ public void validate() {
146159
if (committed < 0) {
147160
throw new IllegalArgumentException("committed cannot be negative");
148161
}
162+
163+
if (minimumFreeSpace < 0) {
164+
throw new IllegalArgumentException("minimumFreeSpace cannot be negative");
165+
}
166+
167+
if (reserved < 0) {
168+
throw new IllegalArgumentException("reserved cannot be negative");
169+
}
170+
149171
// Logical consistency checks
150172
if (used + remaining > capacity) {
151173
LOG.warn("Inconsistent storage report for {}: used({}) + remaining({}) > capacity({})",

0 commit comments

Comments
 (0)