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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]