This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch rel/1.2
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.2 by this push:
new 7d2adae3130 [IOTDB-6000] Control the RegionGroup number of system
Database (#10213)
7d2adae3130 is described below
commit 7d2adae313034e9ddc6eb9173ec510bd679fb0b2
Author: YongzaoDan <[email protected]>
AuthorDate: Mon Jun 19 18:00:43 2023 +0800
[IOTDB-6000] Control the RegionGroup number of system Database (#10213)
---
.../manager/schema/ClusterSchemaManager.java | 11 +++++++++--
.../service/thrift/ConfigNodeRPCServiceProcessor.java | 18 ++++++++++++++----
2 files changed, 23 insertions(+), 6 deletions(-)
diff --git
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java
index b000b213db1..0dcb842aab4 100644
---
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java
+++
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java
@@ -77,6 +77,7 @@ import
org.apache.iotdb.db.metadata.template.TemplateInternalRPCUpdateType;
import org.apache.iotdb.db.metadata.template.TemplateInternalRPCUtil;
import org.apache.iotdb.db.metadata.template.alter.TemplateExtendInfo;
import org.apache.iotdb.db.utils.SchemaUtils;
+import org.apache.iotdb.metrics.utils.IoTDBMetricsUtils;
import org.apache.iotdb.mpp.rpc.thrift.TUpdateTemplateReq;
import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -401,14 +402,20 @@ public class ClusterSchemaManager {
int databaseNum = databaseSchemaMap.size();
for (TDatabaseSchema databaseSchema : databaseSchemaMap.values()) {
- if (!isDatabaseExist(databaseSchema.getName())) {
- // filter the pre deleted database
+ if (!isDatabaseExist(databaseSchema.getName())
+ || databaseSchema.getName().equals(IoTDBMetricsUtils.DATABASE)) {
+ // filter the pre deleted database and the system database
databaseNum--;
}
}
AdjustMaxRegionGroupNumPlan adjustMaxRegionGroupNumPlan = new
AdjustMaxRegionGroupNumPlan();
for (TDatabaseSchema databaseSchema : databaseSchemaMap.values()) {
+ if (databaseSchema.getName().equals(IoTDBMetricsUtils.DATABASE)) {
+ // filter the system database
+ continue;
+ }
+
try {
// Adjust maxSchemaRegionGroupNum for each Database.
// All Databases share the DataNodes equally.
diff --git
a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 313f0ddbd0e..c2cbf6496c1 100644
---
a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
+++
b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
@@ -164,6 +164,7 @@ import
org.apache.iotdb.confignode.rpc.thrift.TUpdateModelStateReq;
import org.apache.iotdb.confignode.service.ConfigNode;
import org.apache.iotdb.consensus.common.response.ConsensusGenericResponse;
import org.apache.iotdb.db.mpp.plan.statement.AuthorType;
+import org.apache.iotdb.metrics.utils.IoTDBMetricsUtils;
import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -280,6 +281,7 @@ public class ConfigNodeRPCServiceProcessor implements
IConfigNodeRPCService.Ifac
@Override
public TSStatus setDatabase(TDatabaseSchema databaseSchema) {
TSStatus errorResp = null;
+ boolean isSystemDatabase =
databaseSchema.getName().equals(IoTDBMetricsUtils.DATABASE);
// Set default configurations if necessary
if (!databaseSchema.isSetTTL()) {
@@ -290,7 +292,9 @@ public class ConfigNodeRPCServiceProcessor implements
IConfigNodeRPCService.Ifac
.setMessage("Failed to create database. The TTL should be
positive.");
}
- if (!databaseSchema.isSetSchemaReplicationFactor()) {
+ if (isSystemDatabase) {
+ databaseSchema.setSchemaReplicationFactor(1);
+ } else if (!databaseSchema.isSetSchemaReplicationFactor()) {
databaseSchema.setSchemaReplicationFactor(CONFIG_NODE_CONFIG.getSchemaReplicationFactor());
} else if (databaseSchema.getSchemaReplicationFactor() <= 0) {
errorResp =
@@ -299,7 +303,9 @@ public class ConfigNodeRPCServiceProcessor implements
IConfigNodeRPCService.Ifac
"Failed to create database. The schemaReplicationFactor
should be positive.");
}
- if (!databaseSchema.isSetDataReplicationFactor()) {
+ if (isSystemDatabase) {
+ databaseSchema.setDataReplicationFactor(1);
+ } else if (!databaseSchema.isSetDataReplicationFactor()) {
databaseSchema.setDataReplicationFactor(CONFIG_NODE_CONFIG.getDataReplicationFactor());
} else if (databaseSchema.getDataReplicationFactor() <= 0) {
errorResp =
@@ -318,7 +324,9 @@ public class ConfigNodeRPCServiceProcessor implements
IConfigNodeRPCService.Ifac
"Failed to create database. The timePartitionInterval should
be positive.");
}
- if (!databaseSchema.isSetMinSchemaRegionGroupNum()) {
+ if (isSystemDatabase) {
+ databaseSchema.setMinSchemaRegionGroupNum(1);
+ } else if (!databaseSchema.isSetMinSchemaRegionGroupNum()) {
databaseSchema.setMinSchemaRegionGroupNum(
CONFIG_NODE_CONFIG.getDefaultSchemaRegionGroupNumPerDatabase());
} else if (databaseSchema.getMinSchemaRegionGroupNum() <= 0) {
@@ -328,7 +336,9 @@ public class ConfigNodeRPCServiceProcessor implements
IConfigNodeRPCService.Ifac
"Failed to create database. The schemaRegionGroupNum should
be positive.");
}
- if (!databaseSchema.isSetMinDataRegionGroupNum()) {
+ if (isSystemDatabase) {
+ databaseSchema.setMinDataRegionGroupNum(1);
+ } else if (!databaseSchema.isSetMinDataRegionGroupNum()) {
databaseSchema.setMinDataRegionGroupNum(
CONFIG_NODE_CONFIG.getDefaultDataRegionGroupNumPerDatabase());
} else if (databaseSchema.getMinDataRegionGroupNum() <= 0) {