This is an automated email from the ASF dual-hosted git repository. caiconghui pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 6c2e76e39f [enhancement](proc) Support showing more details in show proc "/dbs" (#10471) 6c2e76e39f is described below commit 6c2e76e39f06dd7fd7d6ab6ae6092dab735a23e8 Author: caiconghui <55968745+caicong...@users.noreply.github.com> AuthorDate: Fri Jul 1 10:27:38 2022 +0800 [enhancement](proc) Support showing more details in show proc "/dbs" (#10471) --- .../java/org/apache/doris/catalog/Database.java | 16 +++++++----- .../org/apache/doris/common/proc/DbsProcDir.java | 30 ++++++++++------------ .../apache/doris/common/proc/DbsProcDirTest.java | 10 +++++--- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java index a94ebc8022..48a2f61194 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java @@ -252,11 +252,10 @@ public class Database extends MetaObject implements Writable, DatabaseIf<Table> } } - - public long getReplicaQuotaLeftWithLock() { - long usedReplicaQuota = 0; + public long getReplicaCountWithLock() { readLock(); try { + long usedReplicaCount = 0; for (Table table : this.idToTable.values()) { if (table.getType() != TableType.OLAP) { continue; @@ -265,19 +264,22 @@ public class Database extends MetaObject implements Writable, DatabaseIf<Table> OlapTable olapTable = (OlapTable) table; olapTable.readLock(); try { - usedReplicaQuota = usedReplicaQuota + olapTable.getReplicaCount(); + usedReplicaCount = usedReplicaCount + olapTable.getReplicaCount(); } finally { olapTable.readUnlock(); } } - - long leftReplicaQuota = replicaQuotaSize - usedReplicaQuota; - return Math.max(leftReplicaQuota, 0L); + return usedReplicaCount; } finally { readUnlock(); } } + public long getReplicaQuotaLeftWithLock() { + long leftReplicaQuota = replicaQuotaSize - getReplicaCountWithLock(); + return Math.max(leftReplicaQuota, 0L); + } + public void checkDataSizeQuota() throws DdlException { Pair<Double, String> quotaUnitPair = DebugUtil.getByteUint(dataQuotaBytes); String readableQuota = DebugUtil.DECIMAL_FORMAT_SCALE_3.format(quotaUnitPair.first) + " " diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java index ec08a50695..8ab49edfff 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java @@ -21,8 +21,6 @@ import org.apache.doris.catalog.Catalog; import org.apache.doris.catalog.Database; import org.apache.doris.catalog.DatabaseIf; import org.apache.doris.common.AnalysisException; -import org.apache.doris.common.FeConstants; -import org.apache.doris.common.Pair; import org.apache.doris.common.util.DebugUtil; import org.apache.doris.common.util.ListComparator; import org.apache.doris.common.util.TimeUtils; @@ -41,8 +39,8 @@ import java.util.List; */ public class DbsProcDir implements ProcDirInterface { public static final ImmutableList<String> TITLE_NAMES = new ImmutableList.Builder<String>() - .add("DbId").add("DbName").add("TableNum").add("Quota") - .add("LastConsistencyCheckTime").add("ReplicaQuota") + .add("DbId").add("DbName").add("TableNum").add("Size").add("Quota") + .add("LastConsistencyCheckTime").add("ReplicaCount").add("ReplicaQuota") .build(); private Catalog catalog; @@ -90,13 +88,13 @@ public class DbsProcDir implements ProcDirInterface { } // get info - List<List<Comparable>> dbInfos = new ArrayList<List<Comparable>>(); + List<List<Comparable>> dbInfos = new ArrayList<>(); for (String dbName : dbNames) { DatabaseIf db = catalog.getInternalDataSource().getDbNullable(dbName); if (db == null) { continue; } - List<Comparable> dbInfo = new ArrayList<Comparable>(); + List<Comparable> dbInfo = new ArrayList<>(); db.readLock(); try { int tableNum = db.getTables().size(); @@ -104,19 +102,17 @@ public class DbsProcDir implements ProcDirInterface { dbInfo.add(dbName); dbInfo.add(tableNum); - String readableQuota = FeConstants.null_string; - String lastCheckTime = FeConstants.null_string; - long replicaQuota = 0; - if (db instanceof Database) { - long dataQuota = ((Database) db).getDataQuota(); - Pair<Double, String> quotaUnitPair = DebugUtil.getByteUint(dataQuota); - readableQuota = - DebugUtil.DECIMAL_FORMAT_SCALE_3.format(quotaUnitPair.first) + " " + quotaUnitPair.second; - lastCheckTime = TimeUtils.longToTimeString(((Database) db).getLastCheckTime()); - replicaQuota = ((Database) db).getReplicaQuota(); - } + long usedDataQuota = ((Database) db).getUsedDataQuotaWithLock(); + long dataQuota = ((Database) db).getDataQuota(); + String readableUsedQuota = DebugUtil.printByteWithUnit(usedDataQuota); + String readableQuota = DebugUtil.printByteWithUnit(dataQuota); + String lastCheckTime = TimeUtils.longToTimeString(((Database) db).getLastCheckTime()); + long replicaCount = ((Database) db).getReplicaCountWithLock(); + long replicaQuota = ((Database) db).getReplicaQuota(); + dbInfo.add(readableUsedQuota); dbInfo.add(readableQuota); dbInfo.add(lastCheckTime); + dbInfo.add(replicaCount); dbInfo.add(replicaQuota); } finally { diff --git a/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java b/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java index 2f98c552dc..c2522aaa5c 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java @@ -192,11 +192,12 @@ public class DbsProcDirTest { Assert.assertNotNull(result); Assert.assertTrue(result instanceof BaseProcResult); - Assert.assertEquals(Lists.newArrayList("DbId", "DbName", "TableNum", "Quota", "LastConsistencyCheckTime", "ReplicaQuota"), + Assert.assertEquals(Lists.newArrayList("DbId", "DbName", "TableNum", "Size", "Quota", + "LastConsistencyCheckTime", "ReplicaCount", "ReplicaQuota"), result.getColumnNames()); List<List<String>> rows = Lists.newArrayList(); - rows.add(Arrays.asList(String.valueOf(db1.getId()), db1.getFullName(), "0", "1024.000 TB", FeConstants.null_string, "1073741824")); - rows.add(Arrays.asList(String.valueOf(db2.getId()), db2.getFullName(), "0", "1024.000 TB", FeConstants.null_string, "1073741824")); + rows.add(Arrays.asList(String.valueOf(db1.getId()), db1.getFullName(), "0", "0.000 ", "1024.000 TB", FeConstants.null_string, "0", "1073741824")); + rows.add(Arrays.asList(String.valueOf(db2.getId()), db2.getFullName(), "0", "0.000 ", "1024.000 TB", FeConstants.null_string, "0", "1073741824")); Assert.assertEquals(rows, result.getRows()); } @@ -226,7 +227,8 @@ public class DbsProcDirTest { dir = new DbsProcDir(catalog); result = dir.fetchResult(); - Assert.assertEquals(Lists.newArrayList("DbId", "DbName", "TableNum", "Quota", "LastConsistencyCheckTime", "ReplicaQuota"), + Assert.assertEquals(Lists.newArrayList("DbId", "DbName", "TableNum", "Size", "Quota", + "LastConsistencyCheckTime", "ReplicaCount", "ReplicaQuota"), result.getColumnNames()); List<List<String>> rows = Lists.newArrayList(); Assert.assertEquals(rows, result.getRows()); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org