This is an automated email from the ASF dual-hosted git repository.
tanxinyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new b68a906dd81 Enhance the automatic metadata creation logic of
root.__system prefixed devices #12962
b68a906dd81 is described below
commit b68a906dd8118f52afd61e04f1e4e987c3fdd0c3
Author: Potato <[email protected]>
AuthorDate: Thu Jul 18 16:41:53 2024 +0800
Enhance the automatic metadata creation logic of root.__system prefixed
devices #12962
Signed-off-by: OneSizeFitQuorum <[email protected]>
---
.../plan/analyze/cache/partition/PartitionCache.java | 20 ++++++++++++++++----
.../service/metrics/IoTDBInternalLocalReporter.java | 1 +
.../metrics/reporter/iotdb/IoTDBSessionReporter.java | 2 +-
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java
index 8fc726015c7..37b9ec9a14f 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java
@@ -238,10 +238,14 @@ public class PartitionCache {
// Try to get database needed to be created from missed device
Set<String> storageGroupNamesNeedCreated = new HashSet<>();
for (String devicePath : result.getMissedDevices()) {
- PartialPath storageGroupNameNeedCreated =
- MetaUtils.getStorageGroupPathByLevel(
- new PartialPath(devicePath),
config.getDefaultStorageGroupLevel());
-
storageGroupNamesNeedCreated.add(storageGroupNameNeedCreated.getFullPath());
+ if (devicePath.startsWith(SchemaConstant.SYSTEM_DATABASE)) {
+ storageGroupNamesNeedCreated.add(SchemaConstant.SYSTEM_DATABASE);
+ } else {
+ PartialPath storageGroupNameNeedCreated =
+ MetaUtils.getStorageGroupPathByLevel(
+ new PartialPath(devicePath),
config.getDefaultStorageGroupLevel());
+
storageGroupNamesNeedCreated.add(storageGroupNameNeedCreated.getFullPath());
+ }
}
// Try to create databases one by one until done or one database fail
@@ -265,6 +269,14 @@ public class PartitionCache {
}
TDatabaseSchema storageGroupSchema = new TDatabaseSchema();
storageGroupSchema.setName(storageGroupName);
+ if (SchemaConstant.SYSTEM_DATABASE.equals(storageGroupName)) {
+ storageGroupSchema.setSchemaReplicationFactor(1);
+ storageGroupSchema.setDataReplicationFactor(1);
+ storageGroupSchema.setMinSchemaRegionGroupNum(1);
+ storageGroupSchema.setMaxSchemaRegionGroupNum(1);
+ storageGroupSchema.setMaxDataRegionGroupNum(1);
+ storageGroupSchema.setMaxDataRegionGroupNum(1);
+ }
TSStatus tsStatus = client.setDatabase(storageGroupSchema);
if (TSStatusCode.SUCCESS_STATUS.getStatusCode() ==
tsStatus.getCode()) {
successFullyCreatedStorageGroup.add(storageGroupName);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
index 5f581f271ea..f33624fb0b2 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
@@ -102,6 +102,7 @@ public class IoTDBInternalLocalReporter extends
IoTDBInternalReporter {
databaseSchema.setMaxSchemaRegionGroupNum(1);
databaseSchema.setMinSchemaRegionGroupNum(1);
databaseSchema.setMaxDataRegionGroupNum(1);
+ databaseSchema.setMinDataRegionGroupNum(1);
TSStatus tsStatus = client.setDatabase(databaseSchema);
if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != tsStatus.getCode())
{
LOGGER.error("IoTDBSessionReporter checkOrCreateDatabase failed.");
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
index c5d431d1960..968fa4cc476 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
@@ -75,7 +75,7 @@ public class IoTDBSessionReporter extends IoTDBReporter {
if (!result.hasNext()) {
try (SessionDataSetWrapper result2 =
this.sessionPool.executeQueryStatement(
- "CREATE "
+ "CREATE DATABASE "
+ metricConfig.getInternalDatabase()
+ " WITH SCHEMA_REPLICATION_FACTOR=1,
DATA_REPLICATION_FACTOR=1, SCHEMA_REGION_GROUP_NUM=1,
DATA_REGION_GROUP_NUM=1")) {
if (!result2.hasNext()) {