You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2023/03/17 09:34:28 UTC
[iotdb] branch master updated: [IOTDB-5681] Fix the creation of system database used by IoTDB Internal Reporter (#9339)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin 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 be23689cce [IOTDB-5681] Fix the creation of system database used by IoTDB Internal Reporter (#9339)
be23689cce is described below
commit be23689cceab4ab8eeb0d27fcdab49b1ed693edd
Author: ZhangHongYin <46...@users.noreply.github.com>
AuthorDate: Fri Mar 17 17:34:21 2023 +0800
[IOTDB-5681] Fix the creation of system database used by IoTDB Internal Reporter (#9339)
---
.../metrics/IoTDBInternalLocalReporter.java | 37 ++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
index 2714387735..a275bbad6a 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
@@ -19,8 +19,17 @@
package org.apache.iotdb.db.service.metrics;
+import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.commons.client.IClientManager;
+import org.apache.iotdb.commons.client.exception.ClientManagerException;
import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil;
+import org.apache.iotdb.commons.consensus.ConfigRegionId;
import org.apache.iotdb.commons.exception.IllegalPathException;
+import org.apache.iotdb.confignode.rpc.thrift.TDatabaseSchema;
+import org.apache.iotdb.confignode.rpc.thrift.TShowDatabaseResp;
+import org.apache.iotdb.db.client.ConfigNodeClient;
+import org.apache.iotdb.db.client.ConfigNodeClientManager;
+import org.apache.iotdb.db.client.ConfigNodeInfo;
import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.mpp.common.SessionInfo;
import org.apache.iotdb.db.mpp.plan.Coordinator;
@@ -35,6 +44,7 @@ import org.apache.iotdb.db.query.control.SessionManager;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalReporter;
import org.apache.iotdb.metrics.utils.InternalReporterType;
+import org.apache.iotdb.metrics.utils.IoTDBMetricsUtils;
import org.apache.iotdb.metrics.utils.ReporterType;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -42,12 +52,14 @@ import org.apache.iotdb.service.rpc.thrift.TSInsertRecordReq;
import org.apache.iotdb.session.util.SessionUtils;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.nio.ByteBuffer;
import java.time.ZoneId;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;
@@ -69,6 +81,31 @@ public class IoTDBInternalLocalReporter extends IoTDBInternalReporter {
partitionFetcher = ClusterPartitionFetcher.getInstance();
schemaFetcher = ClusterSchemaFetcher.getInstance();
sessionInfo = new SessionInfo(0, "root", ZoneId.systemDefault().getId());
+
+ IClientManager<ConfigRegionId, ConfigNodeClient> configNodeClientManager =
+ ConfigNodeClientManager.getInstance();
+ try (ConfigNodeClient client =
+ configNodeClientManager.borrowClient(ConfigNodeInfo.CONFIG_REGION_ID)) {
+ TShowDatabaseResp showDatabaseResp =
+ client.showDatabase(Arrays.asList(IoTDBMetricsUtils.DATABASE.split("\\.")));
+ if (TSStatusCode.SUCCESS_STATUS.getStatusCode() == showDatabaseResp.getStatus().getCode()
+ && showDatabaseResp.getDatabaseInfoMapSize() == 0) {
+ TDatabaseSchema databaseSchema = new TDatabaseSchema();
+ databaseSchema.setName(IoTDBMetricsUtils.DATABASE);
+ databaseSchema.setSchemaReplicationFactor(1);
+ databaseSchema.setDataReplicationFactor(1);
+ databaseSchema.setMaxSchemaRegionGroupNum(1);
+ databaseSchema.setMinSchemaRegionGroupNum(1);
+ databaseSchema.setMaxDataRegionGroupNum(1);
+ TSStatus tsStatus = client.setDatabase(databaseSchema);
+ if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != tsStatus.getCode()) {
+ LOGGER.error("IoTDBSessionReporter checkOrCreateDatabase failed.");
+ }
+ }
+ } catch (ClientManagerException | TException e) {
+ // do nothing
+ LOGGER.warn("IoTDBSessionReporter checkOrCreateDatabase failed because ", e);
+ }
}
@Override