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

Reply via email to