[improvement](show backends) show backends print trash used (#23792)
This commit is contained in:
@ -47,6 +47,8 @@ public class DiskInfo implements Writable {
|
||||
private long totalCapacityB;
|
||||
@SerializedName("dataUsedCapacityB")
|
||||
private long dataUsedCapacityB;
|
||||
@SerializedName("trashUsedCapacityB")
|
||||
private long trashUsedCapacityB;
|
||||
@SerializedName("remoteUsedCapacity")
|
||||
private long remoteUsedCapacity = 0;
|
||||
@SerializedName("diskAvailableCapacityB")
|
||||
@ -65,6 +67,7 @@ public class DiskInfo implements Writable {
|
||||
this.rootPath = rootPath;
|
||||
this.totalCapacityB = DEFAULT_CAPACITY_B;
|
||||
this.dataUsedCapacityB = 0;
|
||||
this.trashUsedCapacityB = 0;
|
||||
this.diskAvailableCapacityB = DEFAULT_CAPACITY_B;
|
||||
this.state = DiskState.ONLINE;
|
||||
this.pathHash = 0;
|
||||
@ -99,6 +102,14 @@ public class DiskInfo implements Writable {
|
||||
this.remoteUsedCapacity = remoteUsedCapacity;
|
||||
}
|
||||
|
||||
public long getTrashUsedCapacityB() {
|
||||
return trashUsedCapacityB;
|
||||
}
|
||||
|
||||
public void setTrashUsedCapacityB(long trashUsedCapacityB) {
|
||||
this.trashUsedCapacityB = trashUsedCapacityB;
|
||||
}
|
||||
|
||||
public long getDiskUsedCapacityB() {
|
||||
return totalCapacityB - diskAvailableCapacityB;
|
||||
}
|
||||
@ -172,8 +183,9 @@ public class DiskInfo implements Writable {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DiskInfo [rootPath=" + rootPath + "(" + pathHash + "), totalCapacityB=" + totalCapacityB
|
||||
+ ", dataUsedCapacityB=" + dataUsedCapacityB + ", diskAvailableCapacityB="
|
||||
+ diskAvailableCapacityB + ", state=" + state + ", medium: " + storageMedium + "]";
|
||||
+ ", dataUsedCapacityB=" + dataUsedCapacityB + ", trashUsedCapacityB=" + trashUsedCapacityB
|
||||
+ ", diskAvailableCapacityB=" + diskAvailableCapacityB + ", state=" + state
|
||||
+ ", medium: " + storageMedium + "]";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -46,8 +46,9 @@ public class BackendsProcDir implements ProcDirInterface {
|
||||
public static final ImmutableList<String> TITLE_NAMES = new ImmutableList.Builder<String>().add("BackendId")
|
||||
.add("Host").add("HeartbeatPort").add("BePort").add("HttpPort").add("BrpcPort").add("LastStartTime")
|
||||
.add("LastHeartbeat").add("Alive").add("SystemDecommissioned").add("TabletNum").add("DataUsedCapacity")
|
||||
.add("AvailCapacity").add("TotalCapacity").add("UsedPct").add("MaxDiskUsedPct").add("RemoteUsedCapacity")
|
||||
.add("Tag").add("ErrMsg").add("Version").add("Status").add("HeartbeatFailureCounter").add("NodeRole")
|
||||
.add("TrashUsedCapcacity").add("AvailCapacity").add("TotalCapacity").add("UsedPct").add("MaxDiskUsedPct")
|
||||
.add("RemoteUsedCapacity").add("Tag").add("ErrMsg").add("Version").add("Status")
|
||||
.add("HeartbeatFailureCounter").add("NodeRole")
|
||||
.build();
|
||||
|
||||
public static final int HOSTNAME_INDEX = 3;
|
||||
@ -117,6 +118,11 @@ public class BackendsProcDir implements ProcDirInterface {
|
||||
long dataUsedB = backend.getDataUsedCapacityB();
|
||||
Pair<Double, String> usedCapacity = DebugUtil.getByteUint(dataUsedB);
|
||||
backendInfo.add(DebugUtil.DECIMAL_FORMAT_SCALE_3.format(usedCapacity.first) + " " + usedCapacity.second);
|
||||
// trash used
|
||||
long trashUsedB = backend.getTrashUsedCapacityB();
|
||||
Pair<Double, String> trashUsedCapacity = DebugUtil.getByteUint(trashUsedB);
|
||||
backendInfo.add(DebugUtil.DECIMAL_FORMAT_SCALE_3.format(
|
||||
trashUsedCapacity.first) + " " + trashUsedCapacity.second);
|
||||
// available
|
||||
long availB = backend.getAvailableCapacityB();
|
||||
Pair<Double, String> availCapacity = DebugUtil.getByteUint(availB);
|
||||
|
||||
@ -399,6 +399,17 @@ public class Backend implements Writable {
|
||||
return dataUsedCapacityB;
|
||||
}
|
||||
|
||||
public long getTrashUsedCapacityB() {
|
||||
ImmutableMap<String, DiskInfo> disks = disksRef;
|
||||
long trashUsedCapacityB = 0L;
|
||||
for (DiskInfo diskInfo : disks.values()) {
|
||||
if (diskInfo.getState() == DiskState.ONLINE) {
|
||||
trashUsedCapacityB += diskInfo.getTrashUsedCapacityB();
|
||||
}
|
||||
}
|
||||
return trashUsedCapacityB;
|
||||
}
|
||||
|
||||
public long getRemoteUsedCapacityB() {
|
||||
ImmutableMap<String, DiskInfo> disks = disksRef;
|
||||
long totalRemoteUsedCapacityB = 0L;
|
||||
@ -485,6 +496,7 @@ public class Backend implements Writable {
|
||||
String rootPath = tDisk.getRootPath();
|
||||
long totalCapacityB = tDisk.getDiskTotalCapacity();
|
||||
long dataUsedCapacityB = tDisk.getDataUsedCapacity();
|
||||
long trashUsedCapacityB = tDisk.getTrashUsedCapacity();
|
||||
long diskAvailableCapacityB = tDisk.getDiskAvailableCapacity();
|
||||
boolean isUsed = tDisk.isUsed();
|
||||
DiskInfo diskInfo = disks.get(rootPath);
|
||||
@ -498,6 +510,7 @@ public class Backend implements Writable {
|
||||
|
||||
diskInfo.setTotalCapacityB(totalCapacityB);
|
||||
diskInfo.setDataUsedCapacityB(dataUsedCapacityB);
|
||||
diskInfo.setTrashUsedCapacityB(trashUsedCapacityB);
|
||||
diskInfo.setAvailableCapacityB(diskAvailableCapacityB);
|
||||
if (tDisk.isSetRemoteUsedCapacity()) {
|
||||
diskInfo.setRemoteUsedCapacity(tDisk.getRemoteUsedCapacity());
|
||||
|
||||
@ -51,6 +51,7 @@ public class BackendsTableValuedFunction extends MetadataTableValuedFunction {
|
||||
new Column("SystemDecommissioned", ScalarType.createType(PrimitiveType.BOOLEAN)),
|
||||
new Column("TabletNum", ScalarType.createType(PrimitiveType.BIGINT)),
|
||||
new Column("DataUsedCapacity", ScalarType.createType(PrimitiveType.BIGINT)),
|
||||
new Column("TrashUsedCapacity", ScalarType.createType(PrimitiveType.BIGINT)),
|
||||
new Column("AvailCapacity", ScalarType.createType(PrimitiveType.BIGINT)),
|
||||
new Column("TotalCapacity", ScalarType.createType(PrimitiveType.BIGINT)),
|
||||
new Column("UsedPct", ScalarType.createType(PrimitiveType.DOUBLE)),
|
||||
|
||||
@ -199,6 +199,9 @@ public class MetadataGenerator {
|
||||
// data used
|
||||
trow.addToColumnValue(new TCell().setLongVal(backend.getDataUsedCapacityB()));
|
||||
|
||||
// trash used
|
||||
trow.addToColumnValue(new TCell().setLongVal(backend.getTrashUsedCapacityB()));
|
||||
|
||||
// available
|
||||
long availB = backend.getAvailableCapacityB();
|
||||
trow.addToColumnValue(new TCell().setLongVal(availB));
|
||||
|
||||
@ -198,7 +198,7 @@ public class DemoMultiBackendsTest {
|
||||
BackendsProcDir dir = new BackendsProcDir(Env.getCurrentSystemInfo());
|
||||
ProcResult result = dir.fetchResult();
|
||||
Assert.assertEquals(BackendsProcDir.TITLE_NAMES.size(), result.getColumnNames().size());
|
||||
Assert.assertEquals("{\"location\" : \"default\"}", result.getRows().get(0).get(17));
|
||||
Assert.assertEquals("{\"location\" : \"default\"}", result.getRows().get(0).get(18));
|
||||
Assert.assertEquals(
|
||||
"{\"lastSuccessReportTabletsTime\":\"N/A\",\"lastStreamLoadTime\":-1,\"isQueryDisabled\":false,\"isLoadDisabled\":false}",
|
||||
result.getRows().get(0).get(BackendsProcDir.TITLE_NAMES.size() - 3));
|
||||
|
||||
Reference in New Issue
Block a user