You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/04/14 08:43:44 UTC

[iotdb] branch ty-mpp updated: add mpp_mode configuration

This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch ty-mpp
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/ty-mpp by this push:
     new 014536af0f add mpp_mode configuration
014536af0f is described below

commit 014536af0f0c01b0f8df73f6c96a352148b701f7
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Thu Apr 14 16:43:31 2022 +0800

    add mpp_mode configuration
---
 server/src/assembly/resources/conf/iotdb-engine.properties   |  4 ++--
 .../src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java  | 11 +++++++++++
 .../main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  5 +++--
 server/src/main/java/org/apache/iotdb/db/service/IoTDB.java  | 12 ++++++++++++
 4 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index c3b4f4fe2e..0b010a452d 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -27,8 +27,8 @@ rpc_address=0.0.0.0
 # Datatype: int
 rpc_port=6667
 
-# Client RPC Service Impl Class Name: TSServiceImpl or DataNodeTSIServiceImpl
-# rpc_class_name=TSServiceImpl
+# whether start data node in mpp mode
+# mpp_mode=false
 
 # Datatype: int
 mpp_port=7777
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 5a87a42625..efacc1ca93 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -507,6 +507,9 @@ public class IoTDBConfig {
   /** Replace implementation class of JDBC service */
   private String rpcImplClassName = TSServiceImpl.class.getName();
 
+  /** indicate whether current mode is mpp */
+  private boolean mppMode = false;
+
   /** Replace implementation class of influxdb protocol service */
   private String influxdbImplClassName = InfluxDBServiceImpl.class.getName();
 
@@ -2795,4 +2798,12 @@ public class IoTDBConfig {
   public void setDataBlockManagerKeepAliveTimeInMs(int dataBlockManagerKeepAliveTimeInMs) {
     this.dataBlockManagerKeepAliveTimeInMs = dataBlockManagerKeepAliveTimeInMs;
   }
+
+  public boolean isMppMode() {
+    return mppMode;
+  }
+
+  public void setMppMode(boolean mppMode) {
+    this.mppMode = mppMode;
+  }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 1eeab2bfd4..259ff7f370 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -167,8 +167,9 @@ public class IoTDBDescriptor {
           Integer.parseInt(
               properties.getProperty("rpc_port", Integer.toString(conf.getRpcPort()))));
 
-      conf.setRpcImplClassName(
-          properties.getProperty("rpc_class_name", conf.getRpcImplClassName()).trim());
+      conf.setMppMode(
+          Boolean.parseBoolean(
+              properties.getProperty("mpp_mode", Boolean.toString(conf.isMppMode()))));
 
       conf.setMppPort(
           Integer.parseInt(
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
index f8c8839444..ea34ae40da 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
@@ -38,6 +38,8 @@ import org.apache.iotdb.db.engine.trigger.service.TriggerRegistrationService;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.LocalConfigNode;
 import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
+import org.apache.iotdb.db.mpp.buffer.DataBlockService;
+import org.apache.iotdb.db.mpp.schedule.FragmentInstanceScheduler;
 import org.apache.iotdb.db.protocol.influxdb.meta.InfluxDBMetaManager;
 import org.apache.iotdb.db.protocol.rest.RestService;
 import org.apache.iotdb.db.query.udf.service.TemporaryQueryDataFileService;
@@ -48,6 +50,7 @@ import org.apache.iotdb.db.rescon.SystemInfo;
 import org.apache.iotdb.db.service.basic.ServiceProvider;
 import org.apache.iotdb.db.service.basic.StandaloneServiceProvider;
 import org.apache.iotdb.db.service.metrics.MetricsService;
+import org.apache.iotdb.db.service.thrift.impl.DataNodeTSIServiceImpl;
 import org.apache.iotdb.db.sync.receiver.ReceiverService;
 import org.apache.iotdb.db.sync.sender.service.SenderService;
 import org.apache.iotdb.db.wal.WALManager;
@@ -143,6 +146,15 @@ public class IoTDB implements IoTDBMBean {
     registerManager.register(ReceiverService.getInstance());
     registerManager.register(MetricsService.getInstance());
 
+    // in mpp mode we need to start some other services
+    if (IoTDBDescriptor.getInstance().getConfig().isMppMode()) {
+      registerManager.register(DataBlockService.getInstance());
+      registerManager.register(FragmentInstanceScheduler.getInstance());
+      IoTDBDescriptor.getInstance()
+          .getConfig()
+          .setRpcImplClassName(DataNodeTSIServiceImpl.class.getName());
+    }
+
     // in cluster mode, RPC service is not enabled.
     if (IoTDBDescriptor.getInstance().getConfig().isEnableRpcService()) {
       registerManager.register(RPCService.getInstance());