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/10/25 11:21:55 UTC

[iotdb] branch IOTDB-4619 updated (0bb1c2db4b -> 7c13139d25)

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

jackietien pushed a change to branch IOTDB-4619
in repository https://gitbox.apache.org/repos/asf/iotdb.git


    from 0bb1c2db4b Fix NPE while restarting
     add 66e01dfcfc [IOTDB-4699] Override peer's equals and hashcode
     add a12f45e42e [IOTDB-4669] Scheduled task for checking trigger-table of DataNode (#7660)
     add 8303f187b6 [IOTDB-4694] Make sure memTable snapshot is made before flush operation (#7662)
     add e489286abe [github-7180] refactor seriesNumberMonitor and additional properties, cherry pick from rel/0.13 (#7661)
     add 895ab3bc8c [IOTDB-4532] Add ITs for Trigger Management (#7671)
     add d89fbfaa48 [IOTDB-4535] Chinese vesion of Trigger user doc (#7680)
     add 63768fb039 Grafana plugin Modify pluginId and readme files (#7679)
     add 22c07901f7 Disable the IT of the original standalone architecture (#7681)
     add 3cfa037755 update website about release-0.13.3 (#7686)
     add 0396163fcf [IOTDB-4685] Refactor ConfigNode Consensus heartbeat statistics (#7642)
     add e6fb0a51d9 [IOTDB-4705] English version of Trigger user doc (#7688)
     add aabb052dca [IOTDB-4711] Bind DataNodeInternalService to correct address (#7683)
     add 30bf896095 [IOTDB-4706] Call Trigger.restore() when recovering trigger instances
     add 81237589e8 New distribution package structure (#7672)
     add d66d6445ed [IOTDB-4714] Rename TPipeInfo to TCreatePipeReq (#7692)
     add 631fad8860 Fix schema region recover bug (#7696)
     add 2fea01176c Bump flink.version from 1.14.5 to 1.14.6 (#7614)
     add ca7b2b8311 [IOTDB-4641] New Standalone Sync Receiver TsFile Loader Implement (#7610)
     add f9f9721969 [IOTDB-3562] Support Deactivate Template in cluster (#7674)
     add 6101e132d6 [IOTDB-4293] BufferedPipeDataQueue supports discontinuous serialNumber (#7664)
     add 083b241b84 Integrate dockerfile from rel/0.12, rel/0.13 (#7701)
     add bcc9c3be79 [IOTDB-4712]Add size limit of trigger jar when create Trigger on ConfigNode (#7684)
     add d913886a80 [IOTDB-4717] Refactor UDFRegistrationService for new Cluster (#7700)
     add 22e0c55a27 Change previous IT from server module to integration-test (#7705)
     add e9a5850eb4 Use 1c1d docker to run python and influxdb protocal IT (#7703)
     add 6d4173ebb6 [IOTDB-4720] Refactor UDFExecutableManager for new UDF management
     add fcfe89a51b [RatisConsensus] fix conf name
     add cbc622573f [IOTDB-4664] add updatePeer interface in IConsensus (#7634)
     add c416f43d6c Add MLogLoad-Tool document to website config (#7715)
     add b0263f0c57 Update IoTDB nifi process doc (#7637)
     add 2bcb19da0c [IOTDB-4678] Sync DataNode start-up process (#7691)
     add fb6568790b [IOTDB-4692] SchemaFile adaptation for cluster metadata validation (#7658)
     new 7c13139d25 resolve conflicts

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .dockerignore                                      |    1 +
 .github/workflows/client-python.yml                |    4 +-
 .github/workflows/influxdb-protocol.yml            |    2 +-
 .github/workflows/main-unix.yml                    |    2 +-
 .github/workflows/main-win.yml                     |    2 +-
 .github/workflows/standalone-it-for-mpp.yml        |  158 +--
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4   |    9 +-
 .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4  |    4 +
 client-py/requirements.txt                         |    4 +-
 client-py/tests/test_dataframe.py                  |    4 +-
 confignode/src/assembly/confignode.xml             |   10 +-
 .../resources/conf/iotdb-confignode.properties     |   12 +-
 .../conf/{logback.xml => logback-confignode.xml}   |   20 +-
 .../assembly/resources/sbin/remove-confignode.bat  |    2 +-
 .../assembly/resources/sbin/remove-confignode.sh   |    2 +-
 .../assembly/resources/sbin/start-confignode.bat   |    2 +-
 .../assembly/resources/sbin/start-confignode.sh    |    2 +-
 .../confignode/client/DataNodeRequestType.java     |   11 +-
 .../client/async/AsyncDataNodeClientPool.java      |   38 +-
 .../client/async/handlers/AsyncClientHandler.java  |    9 +-
 .../heartbeat/DataNodeHeartbeatHandler.java        |   34 +-
 ...RPCHandler.java => DeleteSchemaRPCHandler.java} |    6 +-
 .../iotdb/confignode/conf/ConfigNodeConstant.java  |    4 +-
 .../confignode/conf/ConfigNodeDescriptor.java      |    2 +-
 .../consensus/request/ConfigPhysicalPlan.java      |   22 +-
 .../consensus/request/ConfigPhysicalPlanType.java  |    4 +-
 .../template/GetTemplateSetInfoPlan.java}          |   37 +-
 .../write/{ => datanode}/RegisterDataNodePlan.java |   20 +-
 .../write/{ => datanode}/RemoveDataNodePlan.java   |   27 +-
 .../write/{ => function}/CreateFunctionPlan.java   |    2 +-
 .../write/{ => function}/DropFunctionPlan.java     |    2 +-
 .../{ => partition}/UpdateRegionLocationPlan.java  |    2 +-
 .../write/{ => procedure}/DeleteProcedurePlan.java |    2 +-
 .../write/{ => procedure}/UpdateProcedurePlan.java |   15 +-
 .../write/region/OfferRegionMaintainTasksPlan.java |    2 +-
 .../write/statistics/UpdateLoadStatisticsPlan.java |  125 +++
 .../consensus/response/TemplateSetInfoResp.java    |   41 +-
 .../statemachine/PartitionRegionStateMachine.java  |    1 +
 .../confignode/manager/ClusterSchemaManager.java   |    7 +
 .../iotdb/confignode/manager/ConfigManager.java    |   70 +-
 .../apache/iotdb/confignode/manager/IManager.java  |   22 +-
 .../iotdb/confignode/manager/ProcedureManager.java |  101 +-
 .../iotdb/confignode/manager/SyncManager.java      |   30 +-
 .../iotdb/confignode/manager/TriggerManager.java   |    2 +
 .../iotdb/confignode/manager/UDFManager.java       |    4 +-
 .../iotdb/confignode/manager/load/LoadManager.java |  106 +-
 .../manager/load/balancer/router/LeaderRouter.java |   11 +-
 .../balancer/router/LoadScoreGreedyRouter.java     |   11 +-
 .../confignode/manager/node/BaseNodeCache.java     |   48 +-
 .../manager/node/ConfigNodeHeartbeatCache.java     |   49 +-
 .../manager/node/DataNodeHeartbeatCache.java       |   44 +-
 .../iotdb/confignode/manager/node/NodeManager.java |   67 +-
 .../manager/partition/PartitionManager.java        |   51 +-
 .../confignode/manager/partition/RegionCache.java  |   35 +-
 .../manager/partition/RegionGroupCache.java        |  114 +-
 .../manager/partition/RegionHeartbeatSample.java   |   12 +-
 .../confignode/persistence/ProcedureInfo.java      |    4 +-
 .../iotdb/confignode/persistence/UDFInfo.java      |   25 +-
 .../persistence/executor/ConfigPlanExecutor.java   |   26 +-
 .../persistence/metric/NodeInfoMetrics.java        |    2 +-
 .../persistence/{ => node}/NodeInfo.java           |  148 +--
 .../persistence/node/NodeStatistics.java           |  134 +++
 .../persistence/partition/PartitionInfo.java       |   65 +-
 .../persistence/partition/RegionGroup.java         |    3 +
 .../partition/StorageGroupPartitionTable.java      |    2 +-
 .../{ => maintainer}/RegionCreateTask.java         |    2 +-
 .../{ => maintainer}/RegionDeleteTask.java         |    2 +-
 .../{ => maintainer}/RegionMaintainTask.java       |    2 +-
 .../{ => maintainer}/RegionMaintainType.java       |    2 +-
 .../statistics/RegionGroupStatistics.java          |  145 +++
 .../partition/statistics/RegionStatistics.java     |  111 ++
 .../persistence/schema/ClusterSchemaInfo.java      |   48 +
 .../persistence/schema/TemplateTable.java          |   16 +
 .../persistence/sync/ClusterSyncInfo.java          |   25 +
 .../procedure/env/ConfigNodeProcedureEnv.java      |    6 +-
 .../procedure/env/DataNodeRemoveHandler.java       |    6 +-
 .../impl/schema/DataNodeRegionGroupUtil.java       |   81 ++
 .../procedure/impl/schema/DataNodeRegionTask.java  |  195 ++++
 .../impl/schema/DeactivateTemplateProcedure.java   |  487 ++++++++
 .../DeleteStorageGroupProcedure.java               |    7 +-
 .../DeleteTimeSeriesProcedure.java                 |  333 ++----
 .../statemachine/CreateRegionGroupsProcedure.java  |    4 +-
 .../impl/sync/AbstractOperatePipeProcedure.java    |    3 +
 .../procedure/impl/sync/CreatePipeProcedure.java   |    7 +-
 .../procedure/impl/sync/DropPipeProcedure.java     |    5 +-
 .../procedure/impl/sync/StartPipeProcedure.java    |    4 +-
 .../procedure/impl/sync/StopPipeProcedure.java     |    4 +-
 .../DeactivateTemplateState.java}                  |    6 +-
 .../{ => schema}/DeleteStorageGroupState.java      |    2 +-
 .../state/{ => schema}/DeleteTimeSeriesState.java  |    2 +-
 .../procedure/store/ConfigProcedureStore.java      |    4 +-
 .../procedure/store/ProcedureFactory.java          |   12 +-
 .../iotdb/confignode/service/ConfigNode.java       |    5 -
 .../thrift/ConfigNodeRPCServiceProcessor.java      |   20 +-
 .../request/ConfigPhysicalPlanSerDeTest.java       |   75 +-
 .../request/write/RemoveDataNodePlanTest.java      |  173 ---
 .../load/balancer/router/LeaderRouterTest.java     |  148 +--
 .../balancer/router/LoadScoreGreedyRouterTest.java |    2 +-
 .../manager/partition/RegionGroupCacheTest.java    |   81 +-
 .../iotdb/confignode/persistence/NodeInfoTest.java |   69 +-
 .../confignode/persistence/PartitionInfoTest.java  |   45 +-
 .../confignode/persistence/TriggerInfoTest.java    |    3 +
 .../node/NodeStatisticsTest.java}                  |   36 +-
 .../statistics/RegionGroupStatisticsTest.java      |   56 +
 .../statistics/RegionStatisticsTest.java}          |   36 +-
 .../procedure/impl/CreateTriggerProcedureTest.java |    3 +
 .../impl/DeactivateTemplateProcedureTest.java      |   89 ++
 .../impl/DeleteStorageGroupProcedureTest.java      |    2 +-
 .../impl/DeleteTimeSeriesProcedureTest.java        |    2 +-
 .../procedure/impl/OperatePipeProcedureTest.java   |    8 +-
 .../org/apache/iotdb/consensus/IConsensus.java     |   10 +
 .../org/apache/iotdb/consensus/common/Peer.java    |   16 +-
 .../multileader/MultiLeaderConsensus.java          |    5 +
 .../iotdb/consensus/ratis/RatisConsensus.java      |    5 +
 .../consensus/standalone/StandAloneConsensus.java  |    5 +
 distribution/src/assembly/all.xml                  |   44 +-
 distribution/src/assembly/confignode.xml           |   10 +-
 distribution/src/assembly/datanode.xml             |    8 +-
 .../start-1c1d.sh}                                 |   25 +-
 docker/src/main/Dockerfile-0.10.0                  |   39 -
 docker/src/main/Dockerfile-0.11.0                  |   39 -
 docker/src/main/Dockerfile-0.11.3                  |   41 -
 ...le-0.12.1-cluster => Dockerfile-0.12.6-cluster} |   10 +-
 ...le-0.12.2-grafana => Dockerfile-0.12.6-grafana} |   10 +-
 ...ckerfile-0.12.2-node => Dockerfile-0.12.6-node} |   10 +-
 ...le-0.12.0-cluster => Dockerfile-0.13.0-cluster} |   10 +-
 ...grafana => Dockerfile-0.13.3-grafana-connector} |   20 +-
 ...ckerfile-0.12.0-node => Dockerfile-0.13.3-node} |   10 +-
 ...-node => Dockerfile-0.13.3-node-multi-platform} |   12 +-
 docker/src/main/Dockerfile-0.9.0                   |   41 -
 .../main/{Dockerfile-0.11.2 => Dockerfile-1c1d}    |   37 +-
 ...ile-0.12.2-cluster => Dockerfile-1c1d-influxdb} |   46 +-
 docs/Download/README.md                            |   28 +-
 docs/UserGuide/Alert/Alerting.md                   |  122 +-
 docs/UserGuide/Alert/Triggers.md                   | 1162 ++++++--------------
 docs/UserGuide/Ecosystem-Integration/NiFi-IoTDB.md |   56 +-
 docs/UserGuide/Operate-Metadata/Template.md        |   38 +-
 docs/zh/Download/README.md                         |   28 +-
 docs/zh/UserGuide/Alert/Alerting.md                |  110 +-
 docs/zh/UserGuide/Alert/Triggers.md                | 1128 ++++++-------------
 .../UserGuide/Ecosystem-Integration/NiFi-IoTDB.md  |   53 +-
 docs/zh/UserGuide/Operate-Metadata/Template.md     |   40 +-
 .../iotdb/trigger/ClusterAlertingExample.java      |    2 +-
 .../iotdb/external/api/IPropertiesLoader.java      |   12 +-
 ...sNumerLimiter.java => ISeriesNumerMonitor.java} |    8 +-
 .../iotdb/flink/tsfile/util/TSFileConfigUtil.java  |    1 +
 .../util/TSFileConfigUtilCompletenessTest.java     |   12 +-
 grafana-plugin/README.md                           |  363 +++++-
 grafana-plugin/src/plugin.json                     |    4 +-
 integration-test/import-control.xml                |    5 +
 .../java/org/apache/iotdb/it/env/AbstractEnv.java  |   51 +-
 .../org/apache/iotdb/it/env/ConfigNodeWrapper.java |    2 +-
 .../org/apache/iotdb/it/env/DataNodeWrapper.java   |   10 +-
 .../java/org/apache/iotdb/it/env/MppConfig.java    |   36 +
 .../org/apache/iotdb/it/env/RemoteServerEnv.java   |   10 +
 .../org/apache/iotdb/itbase/env/BaseConfig.java    |   52 +
 .../java/org/apache/iotdb/itbase/env/BaseEnv.java  |    8 +-
 .../confignode/it/IoTDBClusterPartitionIT.java     |   23 +-
 .../iotdb/confignode/it/IoTDBClusterRestartIT.java |    5 +-
 .../iotdb/confignode/it/IoTDBConfigNodeIT.java     |    9 +-
 .../confignode/it/IoTDBConfigNodeSnapshotIT.java   |   13 +-
 .../it/IoTDBConfigNodeSwitchLeaderIT.java          |  236 ++++
 .../iotdb/confignode/it/IoTDBStorageGroupIT.java   |    5 +-
 .../org/apache/iotdb/db/it/env/StandaloneEnv.java  |   11 +
 .../iotdb/db/it/env/StandaloneEnvConfig.java       |   66 ++
 .../apache/iotdb/db/it/mqtt/IoTDBMQTTSinkIT.java   |   68 +-
 .../db/it/schema/IoTDBDeactivateTemplateIT.java    |  231 ++++
 .../it/schema/IoTDBMetadataFetchSchemaFileIT.java  |   53 +
 .../apache/iotdb/db/it/sync/SyncTransportTest.java |  323 ++++++
 .../db/it/trigger/IoTDBTriggerManagementIT.java    |  486 ++++++++
 .../iotdb/db/it/udf/IoTDBUDFManagementIT.java      |    8 +-
 .../iotdb/db/it/watermark/IoTDBWatermarkIT.java    |  179 +--
 metrics/dropwizard-metrics/pom.xml                 |    6 -
 ...otdb-metric.yml => iotdb-confignode-metric.yml} |    0
 ...{iotdb-metric.yml => iotdb-datanode-metric.yml} |    0
 .../metrics/config/MetricConfigDescriptor.java     |   31 +-
 .../iotdb/metrics/config/MetricConstant.java       |    4 +-
 .../apache/iotdb/commons/cluster/NodeStatus.java   |    2 +-
 .../apache/iotdb/commons/conf/IoTDBConstant.java   |   10 +-
 .../org/apache/iotdb/commons/path/PartialPath.java |    4 +
 .../apache/iotdb/commons/service/ServiceType.java  |    2 -
 .../iotdb/commons/trigger/TriggerInformation.java  |    3 +-
 ...trationInformation.java => UDFInformation.java} |   29 +-
 .../org/apache/iotdb/commons/udf/UDFTable.java     |   38 +-
 .../iotdb/commons/udf/service/SnapshotUtils.java   |   96 --
 .../commons/udf/service/UDFExecutableManager.java  |   81 +-
 .../iotdb/commons/udf/service/UDFLogWriter.java    |   83 --
 .../commons/udf/service/UDFManagementService.java  |  248 +++++
 .../udf/service/UDFRegistrationService.java        |  513 ---------
 .../commons/utils/ThriftConfigNodeSerDeUtils.java  |   19 -
 pom.xml                                            |    2 +-
 .../schemaregion/rocksdb/RSchemaRegion.java        |   23 +-
 .../schemaregion/rocksdb/mnode/REntityMNode.java   |   20 +
 .../resources/conf/iotdb-datanode.properties       |   51 +-
 .../conf/{logback.xml => logback-datanode.xml}     |   52 +-
 .../assembly/resources/sbin/remove-datanode.bat    |    2 +-
 .../src/assembly/resources/sbin/remove-datanode.sh |    2 +-
 .../src/assembly/resources/sbin/start-datanode.bat |    2 +-
 .../src/assembly/resources/sbin/start-datanode.sh  |    2 +-
 .../assembly/resources/sbin/start-new-server.bat   |    2 +-
 .../assembly/resources/sbin/start-new-server.sh    |    2 +-
 .../src/assembly/resources/sbin/start-server.bat   |    2 +-
 server/src/assembly/resources/sbin/start-server.sh |    2 +-
 server/src/assembly/server.xml                     |   10 +-
 .../apache/iotdb/db/client/ConfigNodeClient.java   |   38 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |   44 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   73 +-
 .../db/engine/storagegroup/TsFileProcessor.java    |    9 +-
 .../iotdb/db/metadata/mnode/EntityMNode.java       |   38 +
 .../iotdb/db/metadata/mnode/IEntityMNode.java      |    8 +
 .../iotdb/db/metadata/mnode/InternalMNode.java     |    8 +-
 .../iotdb/db/metadata/mtree/ConfigMTree.java       |   39 +
 .../iotdb/db/metadata/mtree/IMTreeBelowSG.java     |   36 +
 .../db/metadata/mtree/MTreeBelowSGCachedImpl.java  |  100 ++
 .../db/metadata/mtree/MTreeBelowSGMemoryImpl.java  |  105 +-
 .../iotdb/db/metadata/mtree/store/IMTreeStore.java |   14 +
 .../db/metadata/mtree/traverser/Traverser.java     |   19 +-
 .../traverser/collector/MeasurementCollector.java  |    3 +-
 .../plan/schemaregion/SchemaRegionPlanType.java    |    6 +-
 .../plan/schemaregion/SchemaRegionPlanVisitor.java |   17 +
 .../impl/ActivateTemplateInClusterPlanImpl.java    |    8 +-
 .../impl/DeactivateTemplatePlanImpl.java           |   23 +-
 .../impl/PreDeactivateTemplatePlanImpl.java}       |   34 +-
 .../RollbackPreDeactivateTemplatePlanImpl.java}    |   34 +-
 .../impl/SchemaRegionPlanDeserializer.java         |   43 +
 .../schemaregion/impl/SchemaRegionPlanFactory.java |    6 +
 .../impl/SchemaRegionPlanSerializer.java           |   51 +
 .../impl/SchemaRegionPlanTxtSerializer.java        |   35 +
 .../write/IActivateTemplateInClusterPlan.java      |    4 +-
 ...usterPlan.java => IDeactivateTemplatePlan.java} |   29 +-
 ...erPlan.java => IPreDeactivateTemplatePlan.java} |   29 +-
 ...ava => IRollbackPreDeactivateTemplatePlan.java} |   29 +-
 .../db/metadata/schemaregion/ISchemaRegion.java    |   15 +-
 .../db/metadata/schemaregion/SchemaEngine.java     |   46 +-
 .../schemaregion/SchemaRegionMemoryImpl.java       |  162 ++-
 .../schemaregion/SchemaRegionSchemaFileImpl.java   |   65 +-
 .../iotdb/db/metadata/template/Template.java       |    5 +-
 .../metadata/visitor/SchemaExecutionVisitor.java   |   38 +
 .../operator/process/TransformOperator.java        |    6 +-
 .../schema/PathsUsingTemplateScanOperator.java     |   21 +-
 .../apache/iotdb/db/mpp/plan/analyze/Analysis.java |   12 +
 .../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java  |   22 +-
 .../iotdb/db/mpp/plan/constant/StatementType.java  |    2 +
 .../plan/execution/config/ConfigTaskVisitor.java   |    8 +
 .../config/executor/ClusterConfigTaskExecutor.java |   86 +-
 .../config/executor/IConfigTaskExecutor.java       |    4 +
 .../executor/StandaloneConfigTaskExecutor.java     |   21 +-
 .../execution/config/metadata/ShowClusterTask.java |    4 +-
 .../config/metadata/ShowFunctionsTask.java         |    7 +-
 .../template/DeactivateSchemaTemplateTask.java     |   45 +
 .../iotdb/db/mpp/plan/parser/ASTVisitor.java       |   25 +-
 .../db/mpp/plan/parser/StatementGenerator.java     |    4 +-
 .../db/mpp/plan/planner/LogicalPlanBuilder.java    |    7 +-
 .../db/mpp/plan/planner/LogicalPlanVisitor.java    |    4 +-
 .../db/mpp/plan/planner/OperatorTreeGenerator.java |    2 +-
 .../plan/planner/distribution/SourceRewriter.java  |   88 +-
 .../mpp/plan/planner/plan/node/PlanNodeType.java   |   14 +-
 .../db/mpp/plan/planner/plan/node/PlanVisitor.java |   15 +
 .../metedata/read/PathsUsingTemplateScanNode.java  |   36 +-
 .../node/metedata/read/SchemaQueryScanNode.java    |   10 +
 .../metedata/write/DeactivateTemplateNode.java     |  128 +++
 .../metedata/write/PreDeactivateTemplateNode.java  |  128 +++
 .../write/RollbackPreDeactivateTemplateNode.java   |  130 +++
 .../db/mpp/plan/statement/StatementVisitor.java    |    6 +
 .../plan/statement/crud/LoadTsFileStatement.java   |    4 +
 ...ement.java => DeactivateTemplateStatement.java} |   44 +-
 .../template/ShowPathsUsingTemplateStatement.java  |   22 +-
 .../mpp/transformation/dag/udf/UDTFExecutor.java   |    4 +-
 .../dag/udf/UDTFInformationInferrer.java           |    4 +-
 .../db/protocol/mqtt/PayloadFormatManager.java     |    5 +-
 .../iotdb/db/protocol/mqtt/PublishHandler.java     |    4 -
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |   18 +-
 .../sys/ActivateTemplateInClusterPlan.java         |    8 +-
 .../apache/iotdb/db/query/dataset/UDTFDataSet.java |    6 +-
 .../java/org/apache/iotdb/db/service/DataNode.java |   36 +-
 .../db/service/DataNodeInternalRPCService.java     |    2 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |   12 -
 .../java/org/apache/iotdb/db/service/NewIoTDB.java |   11 -
 .../impl/DataNodeInternalRPCServiceImpl.java       |  337 ++++--
 .../java/org/apache/iotdb/db/sync/SyncService.java |   45 +-
 .../db/sync/common/ClusterSyncInfoFetcher.java     |   14 +-
 .../sync/pipedata/queue/BufferedPipeDataQueue.java |   70 +-
 .../db/sync/receiver/load/DeletionLoader.java      |   52 +-
 .../iotdb/db/sync/receiver/load/ILoader.java       |   20 +
 .../iotdb/db/sync/receiver/load/TsFileLoader.java  |   58 +-
 .../iotdb/db/trigger/executor/TriggerExecutor.java |   14 +-
 .../db/trigger/executor/TriggerFireVisitor.java    |   42 +-
 .../trigger/service/TriggerInformationUpdater.java |  104 ++
 .../trigger/service/TriggerManagementService.java  |   19 +-
 .../java/org/apache/iotdb/db/utils/FilesUtils.java |   43 +
 .../org/apache/iotdb/db/utils/JarLoaderUtil.java   |  150 ---
 .../apache/iotdb/db/utils/sync/SyncPipeUtil.java   |    4 +-
 .../java/org/apache/iotdb/db/wal/node/WALNode.java |   70 +-
 .../plan/SchemaRegionPlanCompatibilityTest.java    |   22 +-
 .../schemaRegion/SchemaRegionBasicTest.java        |  231 ++++
 ...gionTest.java => SchemaRegionSnapshotTest.java} |    2 +-
 .../multimode/SchemaRegionFullMemoryTest.java      |   25 +-
 .../multimode/SchemaRegionMemoryTest.java          |   28 +-
 .../multimode/SchemaRegionNonMemoryTest.java       |   25 +-
 .../multimode/SchemaRegionPartialMemoryTest.java   |   25 +-
 .../multimode/SchemaRegionSchemaFileTest.java      |   28 +-
 .../mpp/execution/operator/OperatorMemoryTest.java |    6 +-
 .../iotdb/db/protocol/mqtt/PublishHandlerTest.java |  132 ---
 .../iotdb/db/qp/physical/PhysicalPlanTest.java     |   27 +-
 .../apache/iotdb/db/sink/LocalIoTDBSinkTest.java   |  218 ----
 .../sync/pipedata/BufferedPipeDataQueueTest.java   |   95 ++
 .../iotdb/db/sync/transport/SyncTransportTest.java |  357 ------
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   10 +-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |    2 +-
 site/src/main/.vuepress/config.js                  |    4 +-
 .../src/main/thrift/confignode.thrift              |   19 +-
 thrift/src/main/thrift/datanode.thrift             |   41 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |   12 +
 .../iotdb/tsfile/common/conf/TSFileDescriptor.java |    4 +-
 ...nException.java => UDFManagementException.java} |    6 +-
 315 files changed, 9533 insertions(+), 6122 deletions(-)
 rename confignode/src/assembly/resources/conf/{logback.xml => logback-confignode.xml} (86%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/rpc/{DeleteTimeSeriesRPCHandler.java => DeleteSchemaRPCHandler.java} (95%)
 copy confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/{write/DropFunctionPlan.java => read/template/GetTemplateSetInfoPlan.java} (54%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/{ => datanode}/RegisterDataNodePlan.java (74%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/{ => datanode}/RemoveDataNodePlan.java (82%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/{ => function}/CreateFunctionPlan.java (97%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/{ => function}/DropFunctionPlan.java (96%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/{ => partition}/UpdateRegionLocationPlan.java (97%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/{ => procedure}/DeleteProcedurePlan.java (96%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/{ => procedure}/UpdateProcedurePlan.java (82%)
 create mode 100644 confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/statistics/UpdateLoadStatisticsPlan.java
 copy server/src/main/java/org/apache/iotdb/db/metadata/mnode/IEntityMNode.java => confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/TemplateSetInfoResp.java (50%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/persistence/{ => node}/NodeInfo.java (81%)
 create mode 100644 confignode/src/main/java/org/apache/iotdb/confignode/persistence/node/NodeStatistics.java
 rename confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/{ => maintainer}/RegionCreateTask.java (98%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/{ => maintainer}/RegionDeleteTask.java (97%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/{ => maintainer}/RegionMaintainTask.java (98%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/{ => maintainer}/RegionMaintainType.java (92%)
 create mode 100644 confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/statistics/RegionGroupStatistics.java
 create mode 100644 confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/statistics/RegionStatistics.java
 create mode 100644 confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DataNodeRegionGroupUtil.java
 create mode 100644 confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DataNodeRegionTask.java
 create mode 100644 confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeactivateTemplateProcedure.java
 rename confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/{statemachine => schema}/DeleteStorageGroupProcedure.java (96%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/{statemachine => schema}/DeleteTimeSeriesProcedure.java (60%)
 copy confignode/src/main/java/org/apache/iotdb/confignode/procedure/state/{DeleteTimeSeriesState.java => schema/DeactivateTemplateState.java} (88%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/procedure/state/{ => schema}/DeleteStorageGroupState.java (93%)
 rename confignode/src/main/java/org/apache/iotdb/confignode/procedure/state/{ => schema}/DeleteTimeSeriesState.java (94%)
 delete mode 100644 confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/write/RemoveDataNodePlanTest.java
 copy confignode/src/test/java/org/apache/iotdb/confignode/{procedure/impl/DeleteStorageGroupProcedureTest.java => persistence/node/NodeStatisticsTest.java} (53%)
 create mode 100644 confignode/src/test/java/org/apache/iotdb/confignode/persistence/partition/statistics/RegionGroupStatisticsTest.java
 copy confignode/src/test/java/org/apache/iotdb/confignode/{procedure/impl/DeleteStorageGroupProcedureTest.java => persistence/partition/statistics/RegionStatisticsTest.java} (53%)
 create mode 100644 confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/DeactivateTemplateProcedureTest.java
 rename docker/src/main/{Dockerfile-0.11.1 => DockerCompose/start-1c1d.sh} (56%)
 mode change 100644 => 100755
 delete mode 100644 docker/src/main/Dockerfile-0.10.0
 delete mode 100644 docker/src/main/Dockerfile-0.11.0
 delete mode 100644 docker/src/main/Dockerfile-0.11.3
 rename docker/src/main/{Dockerfile-0.12.1-cluster => Dockerfile-0.12.6-cluster} (85%)
 copy docker/src/main/{Dockerfile-0.12.2-grafana => Dockerfile-0.12.6-grafana} (83%)
 rename docker/src/main/{Dockerfile-0.12.2-node => Dockerfile-0.12.6-node} (83%)
 rename docker/src/main/{Dockerfile-0.12.0-cluster => Dockerfile-0.13.0-cluster} (85%)
 rename docker/src/main/{Dockerfile-0.12.2-grafana => Dockerfile-0.13.3-grafana-connector} (66%)
 rename docker/src/main/{Dockerfile-0.12.0-node => Dockerfile-0.13.3-node} (83%)
 rename docker/src/main/{Dockerfile-0.12.1-node => Dockerfile-0.13.3-node-multi-platform} (80%)
 delete mode 100644 docker/src/main/Dockerfile-0.9.0
 rename docker/src/main/{Dockerfile-0.11.2 => Dockerfile-1c1d} (57%)
 rename docker/src/main/{Dockerfile-0.12.2-cluster => Dockerfile-1c1d-influxdb} (54%)
 rename external-api/src/main/java/org/apache/iotdb/external/api/{ISeriesNumerLimiter.java => ISeriesNumerMonitor.java} (82%)
 create mode 100644 integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBConfigNodeSwitchLeaderIT.java
 rename server/src/test/java/org/apache/iotdb/db/sink/MQTTSinkTest.java => integration-test/src/test/java/org/apache/iotdb/db/it/mqtt/IoTDBMQTTSinkIT.java (76%)
 create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBDeactivateTemplateIT.java
 create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/schema/IoTDBMetadataFetchSchemaFileIT.java
 create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/sync/SyncTransportTest.java
 create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
 rename server/src/test/java/org/apache/iotdb/db/tools/IoTDBWatermarkTest.java => integration-test/src/test/java/org/apache/iotdb/db/it/watermark/IoTDBWatermarkIT.java (53%)
 copy metrics/interface/src/main/assembly/resources/conf/{iotdb-metric.yml => iotdb-confignode-metric.yml} (100%)
 rename metrics/interface/src/main/assembly/resources/conf/{iotdb-metric.yml => iotdb-datanode-metric.yml} (100%)
 rename node-commons/src/main/java/org/apache/iotdb/commons/udf/{service/UDFRegistrationInformation.java => UDFInformation.java} (79%)
 copy server/src/main/java/org/apache/iotdb/db/metadata/mnode/IEntityMNode.java => node-commons/src/main/java/org/apache/iotdb/commons/udf/UDFTable.java (51%)
 delete mode 100644 node-commons/src/main/java/org/apache/iotdb/commons/udf/service/SnapshotUtils.java
 delete mode 100644 node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFLogWriter.java
 create mode 100644 node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java
 delete mode 100644 node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFRegistrationService.java
 rename server/src/assembly/resources/conf/{logback.xml => logback-datanode.xml} (84%)
 copy udf-api/src/main/java/org/apache/iotdb/udf/api/exception/UDFRegistrationException.java => server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/impl/DeactivateTemplatePlanImpl.java (56%)
 copy server/src/main/java/org/apache/iotdb/db/metadata/{mnode/IEntityMNode.java => plan/schemaregion/impl/PreDeactivateTemplatePlanImpl.java} (56%)
 copy server/src/main/java/org/apache/iotdb/db/metadata/{mnode/IEntityMNode.java => plan/schemaregion/impl/RollbackPreDeactivateTemplatePlanImpl.java} (56%)
 copy server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/write/{IActivateTemplateInClusterPlan.java => IDeactivateTemplatePlan.java} (66%)
 copy server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/write/{IActivateTemplateInClusterPlan.java => IPreDeactivateTemplatePlan.java} (66%)
 copy server/src/main/java/org/apache/iotdb/db/metadata/plan/schemaregion/write/{IActivateTemplateInClusterPlan.java => IRollbackPreDeactivateTemplatePlan.java} (66%)
 create mode 100644 server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/template/DeactivateSchemaTemplateTask.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/DeactivateTemplateNode.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/PreDeactivateTemplateNode.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/metedata/write/RollbackPreDeactivateTemplateNode.java
 copy server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/metadata/template/{ShowPathsUsingTemplateStatement.java => DeactivateTemplateStatement.java} (50%)
 create mode 100644 server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerInformationUpdater.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/utils/FilesUtils.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/utils/JarLoaderUtil.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionBasicTest.java
 rename server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/{SchemaRegionTest.java => SchemaRegionSnapshotTest.java} (99%)
 copy udf-api/src/main/java/org/apache/iotdb/udf/api/exception/UDFRegistrationException.java => server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/multimode/SchemaRegionFullMemoryTest.java (52%)
 copy udf-api/src/main/java/org/apache/iotdb/udf/api/exception/UDFRegistrationException.java => server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/multimode/SchemaRegionMemoryTest.java (50%)
 copy udf-api/src/main/java/org/apache/iotdb/udf/api/exception/UDFRegistrationException.java => server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/multimode/SchemaRegionNonMemoryTest.java (53%)
 copy udf-api/src/main/java/org/apache/iotdb/udf/api/exception/UDFRegistrationException.java => server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/multimode/SchemaRegionPartialMemoryTest.java (52%)
 copy udf-api/src/main/java/org/apache/iotdb/udf/api/exception/UDFRegistrationException.java => server/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/multimode/SchemaRegionSchemaFileTest.java (50%)
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/protocol/mqtt/PublishHandlerTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/sink/LocalIoTDBSinkTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/sync/transport/SyncTransportTest.java
 rename udf-api/src/main/java/org/apache/iotdb/udf/api/exception/{UDFRegistrationException.java => UDFManagementException.java} (83%)


[iotdb] 01/01: resolve conflicts

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7c13139d25ee38debde21ad6161e44dfc9cc36cc
Merge: 0bb1c2db4b fb6568790b
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Tue Oct 25 19:21:39 2022 +0800

    resolve conflicts

 .dockerignore                                      |    1 +
 .github/workflows/client-python.yml                |    4 +-
 .github/workflows/influxdb-protocol.yml            |    2 +-
 .github/workflows/main-unix.yml                    |    2 +-
 .github/workflows/main-win.yml                     |    2 +-
 .github/workflows/standalone-it-for-mpp.yml        |  158 +--
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4   |    9 +-
 .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4  |    4 +
 client-py/requirements.txt                         |    4 +-
 client-py/tests/test_dataframe.py                  |    4 +-
 confignode/src/assembly/confignode.xml             |   10 +-
 .../resources/conf/iotdb-confignode.properties     |   12 +-
 .../conf/{logback.xml => logback-confignode.xml}   |   20 +-
 .../assembly/resources/sbin/remove-confignode.bat  |    2 +-
 .../assembly/resources/sbin/remove-confignode.sh   |    2 +-
 .../assembly/resources/sbin/start-confignode.bat   |    2 +-
 .../assembly/resources/sbin/start-confignode.sh    |    2 +-
 .../confignode/client/DataNodeRequestType.java     |   11 +-
 .../client/async/AsyncDataNodeClientPool.java      |   38 +-
 .../client/async/handlers/AsyncClientHandler.java  |    9 +-
 .../heartbeat/DataNodeHeartbeatHandler.java        |   34 +-
 ...RPCHandler.java => DeleteSchemaRPCHandler.java} |    6 +-
 .../iotdb/confignode/conf/ConfigNodeConstant.java  |    4 +-
 .../confignode/conf/ConfigNodeDescriptor.java      |    2 +-
 .../consensus/request/ConfigPhysicalPlan.java      |   22 +-
 .../consensus/request/ConfigPhysicalPlanType.java  |    4 +-
 .../template/GetTemplateSetInfoPlan.java}          |   37 +-
 .../write/{ => datanode}/RegisterDataNodePlan.java |   20 +-
 .../write/{ => datanode}/RemoveDataNodePlan.java   |   27 +-
 .../write/{ => function}/CreateFunctionPlan.java   |    2 +-
 .../write/{ => function}/DropFunctionPlan.java     |    2 +-
 .../{ => partition}/UpdateRegionLocationPlan.java  |    2 +-
 .../write/{ => procedure}/DeleteProcedurePlan.java |    2 +-
 .../write/{ => procedure}/UpdateProcedurePlan.java |   15 +-
 .../write/region/OfferRegionMaintainTasksPlan.java |    2 +-
 .../write/statistics/UpdateLoadStatisticsPlan.java |  125 +++
 .../consensus/response/TemplateSetInfoResp.java    |   41 +-
 .../statemachine/PartitionRegionStateMachine.java  |    1 +
 .../confignode/manager/ClusterSchemaManager.java   |    7 +
 .../iotdb/confignode/manager/ConfigManager.java    |   70 +-
 .../apache/iotdb/confignode/manager/IManager.java  |   22 +-
 .../iotdb/confignode/manager/ProcedureManager.java |  101 +-
 .../iotdb/confignode/manager/SyncManager.java      |   30 +-
 .../iotdb/confignode/manager/TriggerManager.java   |    2 +
 .../iotdb/confignode/manager/UDFManager.java       |    4 +-
 .../iotdb/confignode/manager/load/LoadManager.java |  106 +-
 .../manager/load/balancer/router/LeaderRouter.java |   11 +-
 .../balancer/router/LoadScoreGreedyRouter.java     |   11 +-
 .../confignode/manager/node/BaseNodeCache.java     |   48 +-
 .../manager/node/ConfigNodeHeartbeatCache.java     |   49 +-
 .../manager/node/DataNodeHeartbeatCache.java       |   44 +-
 .../iotdb/confignode/manager/node/NodeManager.java |   67 +-
 .../manager/partition/PartitionManager.java        |   51 +-
 .../confignode/manager/partition/RegionCache.java  |   35 +-
 .../manager/partition/RegionGroupCache.java        |  114 +-
 .../manager/partition/RegionHeartbeatSample.java   |   12 +-
 .../confignode/persistence/ProcedureInfo.java      |    4 +-
 .../iotdb/confignode/persistence/UDFInfo.java      |   25 +-
 .../persistence/executor/ConfigPlanExecutor.java   |   26 +-
 .../persistence/metric/NodeInfoMetrics.java        |    2 +-
 .../persistence/{ => node}/NodeInfo.java           |  148 +--
 .../persistence/node/NodeStatistics.java           |  134 +++
 .../persistence/partition/PartitionInfo.java       |   65 +-
 .../persistence/partition/RegionGroup.java         |    3 +
 .../partition/StorageGroupPartitionTable.java      |    2 +-
 .../{ => maintainer}/RegionCreateTask.java         |    2 +-
 .../{ => maintainer}/RegionDeleteTask.java         |    2 +-
 .../{ => maintainer}/RegionMaintainTask.java       |    2 +-
 .../{ => maintainer}/RegionMaintainType.java       |    2 +-
 .../statistics/RegionGroupStatistics.java          |  145 +++
 .../partition/statistics/RegionStatistics.java     |  111 ++
 .../persistence/schema/ClusterSchemaInfo.java      |   48 +
 .../persistence/schema/TemplateTable.java          |   16 +
 .../persistence/sync/ClusterSyncInfo.java          |   25 +
 .../procedure/env/ConfigNodeProcedureEnv.java      |    6 +-
 .../procedure/env/DataNodeRemoveHandler.java       |    6 +-
 .../impl/schema/DataNodeRegionGroupUtil.java       |   81 ++
 .../procedure/impl/schema/DataNodeRegionTask.java  |  195 ++++
 .../impl/schema/DeactivateTemplateProcedure.java   |  487 ++++++++
 .../DeleteStorageGroupProcedure.java               |    7 +-
 .../DeleteTimeSeriesProcedure.java                 |  333 ++----
 .../statemachine/CreateRegionGroupsProcedure.java  |    4 +-
 .../impl/sync/AbstractOperatePipeProcedure.java    |    3 +
 .../procedure/impl/sync/CreatePipeProcedure.java   |    7 +-
 .../procedure/impl/sync/DropPipeProcedure.java     |    5 +-
 .../procedure/impl/sync/StartPipeProcedure.java    |    4 +-
 .../procedure/impl/sync/StopPipeProcedure.java     |    4 +-
 .../DeactivateTemplateState.java}                  |    6 +-
 .../{ => schema}/DeleteStorageGroupState.java      |    2 +-
 .../state/{ => schema}/DeleteTimeSeriesState.java  |    2 +-
 .../procedure/store/ConfigProcedureStore.java      |    4 +-
 .../procedure/store/ProcedureFactory.java          |   12 +-
 .../iotdb/confignode/service/ConfigNode.java       |    5 -
 .../thrift/ConfigNodeRPCServiceProcessor.java      |   20 +-
 .../request/ConfigPhysicalPlanSerDeTest.java       |   75 +-
 .../request/write/RemoveDataNodePlanTest.java      |  173 ---
 .../load/balancer/router/LeaderRouterTest.java     |  148 +--
 .../balancer/router/LoadScoreGreedyRouterTest.java |    2 +-
 .../manager/partition/RegionGroupCacheTest.java    |   81 +-
 .../iotdb/confignode/persistence/NodeInfoTest.java |   69 +-
 .../confignode/persistence/PartitionInfoTest.java  |   45 +-
 .../confignode/persistence/TriggerInfoTest.java    |    3 +
 .../node/NodeStatisticsTest.java}                  |   36 +-
 .../statistics/RegionGroupStatisticsTest.java      |   56 +
 .../statistics/RegionStatisticsTest.java}          |   36 +-
 .../procedure/impl/CreateTriggerProcedureTest.java |    3 +
 .../impl/DeactivateTemplateProcedureTest.java      |   89 ++
 .../impl/DeleteStorageGroupProcedureTest.java      |    2 +-
 .../impl/DeleteTimeSeriesProcedureTest.java        |    2 +-
 .../procedure/impl/OperatePipeProcedureTest.java   |    8 +-
 .../org/apache/iotdb/consensus/IConsensus.java     |   10 +
 .../org/apache/iotdb/consensus/common/Peer.java    |   16 +-
 .../multileader/MultiLeaderConsensus.java          |    5 +
 .../iotdb/consensus/ratis/RatisConsensus.java      |    5 +
 .../consensus/standalone/StandAloneConsensus.java  |    5 +
 distribution/src/assembly/all.xml                  |   44 +-
 distribution/src/assembly/confignode.xml           |   10 +-
 distribution/src/assembly/datanode.xml             |    8 +-
 .../start-1c1d.sh}                                 |   25 +-
 docker/src/main/Dockerfile-0.10.0                  |   39 -
 docker/src/main/Dockerfile-0.11.0                  |   39 -
 docker/src/main/Dockerfile-0.11.3                  |   41 -
 ...le-0.12.1-cluster => Dockerfile-0.12.6-cluster} |   10 +-
 ...le-0.12.2-grafana => Dockerfile-0.12.6-grafana} |   10 +-
 ...ckerfile-0.12.2-node => Dockerfile-0.12.6-node} |   10 +-
 ...le-0.12.0-cluster => Dockerfile-0.13.0-cluster} |   10 +-
 ...grafana => Dockerfile-0.13.3-grafana-connector} |   20 +-
 ...ckerfile-0.12.0-node => Dockerfile-0.13.3-node} |   10 +-
 ...-node => Dockerfile-0.13.3-node-multi-platform} |   12 +-
 docker/src/main/Dockerfile-0.9.0                   |   41 -
 .../main/{Dockerfile-0.11.2 => Dockerfile-1c1d}    |   37 +-
 ...ile-0.12.2-cluster => Dockerfile-1c1d-influxdb} |   46 +-
 docs/Download/README.md                            |   28 +-
 docs/UserGuide/Alert/Alerting.md                   |  122 +-
 docs/UserGuide/Alert/Triggers.md                   | 1162 ++++++--------------
 docs/UserGuide/Ecosystem-Integration/NiFi-IoTDB.md |   56 +-
 docs/UserGuide/Operate-Metadata/Template.md        |   38 +-
 docs/zh/Download/README.md                         |   28 +-
 docs/zh/UserGuide/Alert/Alerting.md                |  110 +-
 docs/zh/UserGuide/Alert/Triggers.md                | 1128 ++++++-------------
 .../UserGuide/Ecosystem-Integration/NiFi-IoTDB.md  |   53 +-
 docs/zh/UserGuide/Operate-Metadata/Template.md     |   40 +-
 .../iotdb/trigger/ClusterAlertingExample.java      |    2 +-
 .../iotdb/external/api/IPropertiesLoader.java      |   12 +-
 ...sNumerLimiter.java => ISeriesNumerMonitor.java} |    8 +-
 .../iotdb/flink/tsfile/util/TSFileConfigUtil.java  |    1 +
 .../util/TSFileConfigUtilCompletenessTest.java     |   12 +-
 grafana-plugin/README.md                           |  363 +++++-
 grafana-plugin/src/plugin.json                     |    4 +-
 integration-test/import-control.xml                |    5 +
 .../java/org/apache/iotdb/it/env/AbstractEnv.java  |   51 +-
 .../org/apache/iotdb/it/env/ConfigNodeWrapper.java |    2 +-
 .../org/apache/iotdb/it/env/DataNodeWrapper.java   |   10 +-
 .../java/org/apache/iotdb/it/env/MppConfig.java    |   36 +
 .../org/apache/iotdb/it/env/RemoteServerEnv.java   |   10 +
 .../org/apache/iotdb/itbase/env/BaseConfig.java    |   52 +
 .../java/org/apache/iotdb/itbase/env/BaseEnv.java  |    8 +-
 .../confignode/it/IoTDBClusterPartitionIT.java     |   23 +-
 .../iotdb/confignode/it/IoTDBClusterRestartIT.java |    5 +-
 .../iotdb/confignode/it/IoTDBConfigNodeIT.java     |    9 +-
 .../confignode/it/IoTDBConfigNodeSnapshotIT.java   |   13 +-
 .../it/IoTDBConfigNodeSwitchLeaderIT.java          |  236 ++++
 .../iotdb/confignode/it/IoTDBStorageGroupIT.java   |    5 +-
 .../org/apache/iotdb/db/it/env/StandaloneEnv.java  |   11 +
 .../iotdb/db/it/env/StandaloneEnvConfig.java       |   66 ++
 .../apache/iotdb/db/it/mqtt/IoTDBMQTTSinkIT.java   |   68 +-
 .../db/it/schema/IoTDBDeactivateTemplateIT.java    |  231 ++++
 .../it/schema/IoTDBMetadataFetchSchemaFileIT.java  |   53 +
 .../apache/iotdb/db/it/sync/SyncTransportTest.java |  323 ++++++
 .../db/it/trigger/IoTDBTriggerManagementIT.java    |  486 ++++++++
 .../iotdb/db/it/udf/IoTDBUDFManagementIT.java      |    8 +-
 .../iotdb/db/it/watermark/IoTDBWatermarkIT.java    |  179 +--
 metrics/dropwizard-metrics/pom.xml                 |    6 -
 ...otdb-metric.yml => iotdb-confignode-metric.yml} |    0
 ...{iotdb-metric.yml => iotdb-datanode-metric.yml} |    0
 .../metrics/config/MetricConfigDescriptor.java     |   31 +-
 .../iotdb/metrics/config/MetricConstant.java       |    4 +-
 .../apache/iotdb/commons/cluster/NodeStatus.java   |    2 +-
 .../apache/iotdb/commons/conf/IoTDBConstant.java   |   10 +-
 .../org/apache/iotdb/commons/path/PartialPath.java |    4 +
 .../apache/iotdb/commons/service/ServiceType.java  |    2 -
 .../iotdb/commons/trigger/TriggerInformation.java  |    3 +-
 ...trationInformation.java => UDFInformation.java} |   29 +-
 .../org/apache/iotdb/commons/udf/UDFTable.java     |   38 +-
 .../iotdb/commons/udf/service/SnapshotUtils.java   |   96 --
 .../commons/udf/service/UDFExecutableManager.java  |   81 +-
 .../iotdb/commons/udf/service/UDFLogWriter.java    |   83 --
 .../commons/udf/service/UDFManagementService.java  |  248 +++++
 .../udf/service/UDFRegistrationService.java        |  513 ---------
 .../commons/utils/ThriftConfigNodeSerDeUtils.java  |   19 -
 pom.xml                                            |    2 +-
 .../schemaregion/rocksdb/RSchemaRegion.java        |   23 +-
 .../schemaregion/rocksdb/mnode/REntityMNode.java   |   20 +
 .../resources/conf/iotdb-datanode.properties       |   51 +-
 .../conf/{logback.xml => logback-datanode.xml}     |   52 +-
 .../assembly/resources/sbin/remove-datanode.bat    |    2 +-
 .../src/assembly/resources/sbin/remove-datanode.sh |    2 +-
 .../src/assembly/resources/sbin/start-datanode.bat |    2 +-
 .../src/assembly/resources/sbin/start-datanode.sh  |    2 +-
 .../assembly/resources/sbin/start-new-server.bat   |    2 +-
 .../assembly/resources/sbin/start-new-server.sh    |    2 +-
 .../src/assembly/resources/sbin/start-server.bat   |    2 +-
 server/src/assembly/resources/sbin/start-server.sh |    2 +-
 server/src/assembly/server.xml                     |   10 +-
 .../apache/iotdb/db/client/ConfigNodeClient.java   |   38 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |   44 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   73 +-
 .../db/engine/storagegroup/TsFileProcessor.java    |    9 +-
 .../iotdb/db/metadata/mnode/EntityMNode.java       |   38 +
 .../iotdb/db/metadata/mnode/IEntityMNode.java      |    8 +
 .../iotdb/db/metadata/mnode/InternalMNode.java     |    8 +-
 .../iotdb/db/metadata/mtree/ConfigMTree.java       |   39 +
 .../iotdb/db/metadata/mtree/IMTreeBelowSG.java     |   36 +
 .../db/metadata/mtree/MTreeBelowSGCachedImpl.java  |  100 ++
 .../db/metadata/mtree/MTreeBelowSGMemoryImpl.java  |  105 +-
 .../iotdb/db/metadata/mtree/store/IMTreeStore.java |   14 +
 .../db/metadata/mtree/traverser/Traverser.java     |   19 +-
 .../traverser/collector/MeasurementCollector.java  |    3 +-
 .../plan/schemaregion/SchemaRegionPlanType.java    |    6 +-
 .../plan/schemaregion/SchemaRegionPlanVisitor.java |   17 +
 .../impl/ActivateTemplateInClusterPlanImpl.java    |    8 +-
 .../impl/DeactivateTemplatePlanImpl.java           |   23 +-
 .../impl/PreDeactivateTemplatePlanImpl.java}       |   34 +-
 .../RollbackPreDeactivateTemplatePlanImpl.java}    |   34 +-
 .../impl/SchemaRegionPlanDeserializer.java         |   43 +
 .../schemaregion/impl/SchemaRegionPlanFactory.java |    6 +
 .../impl/SchemaRegionPlanSerializer.java           |   51 +
 .../impl/SchemaRegionPlanTxtSerializer.java        |   35 +
 .../write/IActivateTemplateInClusterPlan.java      |    4 +-
 ...usterPlan.java => IDeactivateTemplatePlan.java} |   29 +-
 ...erPlan.java => IPreDeactivateTemplatePlan.java} |   29 +-
 ...ava => IRollbackPreDeactivateTemplatePlan.java} |   29 +-
 .../db/metadata/schemaregion/ISchemaRegion.java    |   15 +-
 .../db/metadata/schemaregion/SchemaEngine.java     |   46 +-
 .../schemaregion/SchemaRegionMemoryImpl.java       |  162 ++-
 .../schemaregion/SchemaRegionSchemaFileImpl.java   |   65 +-
 .../iotdb/db/metadata/template/Template.java       |    5 +-
 .../metadata/visitor/SchemaExecutionVisitor.java   |   38 +
 .../operator/process/TransformOperator.java        |    6 +-
 .../schema/PathsUsingTemplateScanOperator.java     |   21 +-
 .../apache/iotdb/db/mpp/plan/analyze/Analysis.java |   12 +
 .../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java  |   22 +-
 .../iotdb/db/mpp/plan/constant/StatementType.java  |    2 +
 .../plan/execution/config/ConfigTaskVisitor.java   |    8 +
 .../config/executor/ClusterConfigTaskExecutor.java |   86 +-
 .../config/executor/IConfigTaskExecutor.java       |    4 +
 .../executor/StandaloneConfigTaskExecutor.java     |   21 +-
 .../execution/config/metadata/ShowClusterTask.java |    4 +-
 .../config/metadata/ShowFunctionsTask.java         |    7 +-
 .../template/DeactivateSchemaTemplateTask.java     |   45 +
 .../iotdb/db/mpp/plan/parser/ASTVisitor.java       |   25 +-
 .../db/mpp/plan/parser/StatementGenerator.java     |    4 +-
 .../db/mpp/plan/planner/LogicalPlanBuilder.java    |    7 +-
 .../db/mpp/plan/planner/LogicalPlanVisitor.java    |    4 +-
 .../db/mpp/plan/planner/OperatorTreeGenerator.java |    2 +-
 .../plan/planner/distribution/SourceRewriter.java  |   88 +-
 .../mpp/plan/planner/plan/node/PlanNodeType.java   |   14 +-
 .../db/mpp/plan/planner/plan/node/PlanVisitor.java |   15 +
 .../metedata/read/PathsUsingTemplateScanNode.java  |   36 +-
 .../node/metedata/read/SchemaQueryScanNode.java    |   10 +
 .../metedata/write/DeactivateTemplateNode.java     |  128 +++
 .../metedata/write/PreDeactivateTemplateNode.java  |  128 +++
 .../write/RollbackPreDeactivateTemplateNode.java   |  130 +++
 .../db/mpp/plan/statement/StatementVisitor.java    |    6 +
 .../plan/statement/crud/LoadTsFileStatement.java   |    4 +
 ...ement.java => DeactivateTemplateStatement.java} |   44 +-
 .../template/ShowPathsUsingTemplateStatement.java  |   22 +-
 .../mpp/transformation/dag/udf/UDTFExecutor.java   |    4 +-
 .../dag/udf/UDTFInformationInferrer.java           |    4 +-
 .../db/protocol/mqtt/PayloadFormatManager.java     |    5 +-
 .../iotdb/db/protocol/mqtt/PublishHandler.java     |    4 -
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |   18 +-
 .../sys/ActivateTemplateInClusterPlan.java         |    8 +-
 .../apache/iotdb/db/query/dataset/UDTFDataSet.java |    6 +-
 .../java/org/apache/iotdb/db/service/DataNode.java |   36 +-
 .../db/service/DataNodeInternalRPCService.java     |    2 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |   12 -
 .../java/org/apache/iotdb/db/service/NewIoTDB.java |   11 -
 .../impl/DataNodeInternalRPCServiceImpl.java       |  337 ++++--
 .../java/org/apache/iotdb/db/sync/SyncService.java |   45 +-
 .../db/sync/common/ClusterSyncInfoFetcher.java     |   14 +-
 .../sync/pipedata/queue/BufferedPipeDataQueue.java |   70 +-
 .../db/sync/receiver/load/DeletionLoader.java      |   52 +-
 .../iotdb/db/sync/receiver/load/ILoader.java       |   20 +
 .../iotdb/db/sync/receiver/load/TsFileLoader.java  |   58 +-
 .../iotdb/db/trigger/executor/TriggerExecutor.java |   14 +-
 .../db/trigger/executor/TriggerFireVisitor.java    |   42 +-
 .../trigger/service/TriggerInformationUpdater.java |  104 ++
 .../trigger/service/TriggerManagementService.java  |   19 +-
 .../java/org/apache/iotdb/db/utils/FilesUtils.java |   43 +
 .../org/apache/iotdb/db/utils/JarLoaderUtil.java   |  150 ---
 .../apache/iotdb/db/utils/sync/SyncPipeUtil.java   |    4 +-
 .../java/org/apache/iotdb/db/wal/node/WALNode.java |   70 +-
 .../plan/SchemaRegionPlanCompatibilityTest.java    |   22 +-
 .../schemaRegion/SchemaRegionBasicTest.java        |  231 ++++
 ...gionTest.java => SchemaRegionSnapshotTest.java} |    2 +-
 .../multimode/SchemaRegionFullMemoryTest.java      |   25 +-
 .../multimode/SchemaRegionMemoryTest.java          |   28 +-
 .../multimode/SchemaRegionNonMemoryTest.java       |   25 +-
 .../multimode/SchemaRegionPartialMemoryTest.java   |   25 +-
 .../multimode/SchemaRegionSchemaFileTest.java      |   28 +-
 .../mpp/execution/operator/OperatorMemoryTest.java |    6 +-
 .../iotdb/db/protocol/mqtt/PublishHandlerTest.java |  132 ---
 .../iotdb/db/qp/physical/PhysicalPlanTest.java     |   27 +-
 .../apache/iotdb/db/sink/LocalIoTDBSinkTest.java   |  218 ----
 .../sync/pipedata/BufferedPipeDataQueueTest.java   |   95 ++
 .../iotdb/db/sync/transport/SyncTransportTest.java |  357 ------
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   10 +-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |    2 +-
 site/src/main/.vuepress/config.js                  |    4 +-
 .../src/main/thrift/confignode.thrift              |   19 +-
 thrift/src/main/thrift/datanode.thrift             |   41 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |   12 +
 .../iotdb/tsfile/common/conf/TSFileDescriptor.java |    4 +-
 ...nException.java => UDFManagementException.java} |    6 +-
 315 files changed, 9533 insertions(+), 6122 deletions(-)

diff --cc confignode/src/main/java/org/apache/iotdb/confignode/client/DataNodeRequestType.java
index 2fa40442ca,8e00389093..5c7740ea29
--- a/confignode/src/main/java/org/apache/iotdb/confignode/client/DataNodeRequestType.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/client/DataNodeRequestType.java
@@@ -65,6 -65,6 +65,9 @@@ public enum DataNodeRequestType 
    PRE_CREATE_PIPE,
    OPERATE_PIPE,
  
++  /** CQ */
++  EXECUTE_CQ,
++
    /** TEMPLATE */
    UPDATE_TEMPLATE,
  
@@@ -75,9 -75,10 +78,9 @@@
    ROLLBACK_SCHEMA_BLACK_LIST,
    FETCH_SCHEMA_BLACK_LIST,
    INVALIDATE_MATCHED_SCHEMA_CACHE,
-   DELETE_DATA_FOR_DELETE_TIMESERIES,
+   DELETE_DATA_FOR_DELETE_SCHEMA,
    DELETE_TIMESERIES,
--
-   /** CQ */
-   EXECUTE_CQ
+   CONSTRUCT_SCHEMA_BLACK_LIST_WITH_TEMPLATE,
+   ROLLBACK_SCHEMA_BLACK_LIST_WITH_TEMPLATE,
+   DEACTIVATE_TEMPLATE
  }
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlan.java
index b7226dd199,63c0dcce60..3c968bfa93
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlan.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlan.java
@@@ -41,22 -41,18 +41,23 @@@ import org.apache.iotdb.confignode.cons
  import org.apache.iotdb.confignode.consensus.request.read.template.GetAllTemplateSetInfoPlan;
  import org.apache.iotdb.confignode.consensus.request.read.template.GetPathsSetTemplatePlan;
  import org.apache.iotdb.confignode.consensus.request.read.template.GetSchemaTemplatePlan;
- import org.apache.iotdb.confignode.consensus.request.write.CreateFunctionPlan;
- import org.apache.iotdb.confignode.consensus.request.write.DeleteProcedurePlan;
- import org.apache.iotdb.confignode.consensus.request.write.DropFunctionPlan;
- import org.apache.iotdb.confignode.consensus.request.write.RegisterDataNodePlan;
- import org.apache.iotdb.confignode.consensus.request.write.RemoveDataNodePlan;
- import org.apache.iotdb.confignode.consensus.request.write.UpdateProcedurePlan;
- import org.apache.iotdb.confignode.consensus.request.write.UpdateRegionLocationPlan;
+ import org.apache.iotdb.confignode.consensus.request.read.template.GetTemplateSetInfoPlan;
  import org.apache.iotdb.confignode.consensus.request.write.confignode.ApplyConfigNodePlan;
  import org.apache.iotdb.confignode.consensus.request.write.confignode.RemoveConfigNodePlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.ActiveCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.AddCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.DropCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.ShowCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.UpdateCQLastExecTimePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.datanode.RegisterDataNodePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.datanode.RemoveDataNodePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.function.CreateFunctionPlan;
+ import org.apache.iotdb.confignode.consensus.request.write.function.DropFunctionPlan;
  import org.apache.iotdb.confignode.consensus.request.write.partition.CreateDataPartitionPlan;
  import org.apache.iotdb.confignode.consensus.request.write.partition.CreateSchemaPartitionPlan;
+ import org.apache.iotdb.confignode.consensus.request.write.partition.UpdateRegionLocationPlan;
+ import org.apache.iotdb.confignode.consensus.request.write.procedure.DeleteProcedurePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.procedure.UpdateProcedurePlan;
  import org.apache.iotdb.confignode.consensus.request.write.region.CreateRegionGroupsPlan;
  import org.apache.iotdb.confignode.consensus.request.write.region.OfferRegionMaintainTasksPlan;
  import org.apache.iotdb.confignode.consensus.request.write.region.PollRegionMaintainTaskPlan;
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java
index 8bcb95c125,8699f91e22..a845f6b693
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java
@@@ -97,9 -98,5 +98,10 @@@ public enum ConfigPhysicalPlanType 
    UpdateTriggerLocation,
    GetTransferringTriggers,
    GetTriggerLocation,
 +  DROP_CQ,
 +  ACTIVE_CQ,
 +  ADD_CQ,
 +  UPDATE_CQ_LAST_EXEC_TIME,
-   SHOW_CQ
++  SHOW_CQ,
+   GetTemplateSetInfo
  }
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index 8b2671b6c9,a074cdcd81..07500943c5
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@@ -73,8 -73,8 +73,9 @@@ import org.apache.iotdb.confignode.cons
  import org.apache.iotdb.confignode.consensus.response.SchemaNodeManagementResp;
  import org.apache.iotdb.confignode.consensus.response.SchemaPartitionResp;
  import org.apache.iotdb.confignode.consensus.response.StorageGroupSchemaResp;
+ import org.apache.iotdb.confignode.consensus.response.TemplateSetInfoResp;
  import org.apache.iotdb.confignode.consensus.statemachine.PartitionRegionStateMachine;
 +import org.apache.iotdb.confignode.manager.cq.CQManager;
  import org.apache.iotdb.confignode.manager.load.LoadManager;
  import org.apache.iotdb.confignode.manager.node.NodeManager;
  import org.apache.iotdb.confignode.manager.partition.PartitionManager;
@@@ -82,21 -82,21 +83,24 @@@ import org.apache.iotdb.confignode.pers
  import org.apache.iotdb.confignode.persistence.ProcedureInfo;
  import org.apache.iotdb.confignode.persistence.TriggerInfo;
  import org.apache.iotdb.confignode.persistence.UDFInfo;
 +import org.apache.iotdb.confignode.persistence.cq.CQInfo;
  import org.apache.iotdb.confignode.persistence.executor.ConfigPlanExecutor;
+ import org.apache.iotdb.confignode.persistence.node.NodeInfo;
  import org.apache.iotdb.confignode.persistence.partition.PartitionInfo;
  import org.apache.iotdb.confignode.persistence.schema.ClusterSchemaInfo;
  import org.apache.iotdb.confignode.persistence.sync.ClusterSyncInfo;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
 +import org.apache.iotdb.confignode.rpc.thrift.TCreateCQReq;
+ import org.apache.iotdb.confignode.rpc.thrift.TCreatePipeReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateSchemaTemplateReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateTriggerReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDataPartitionTableResp;
+ import org.apache.iotdb.confignode.rpc.thrift.TDeactivateSchemaTemplateReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDeleteTimeSeriesReq;
 +import org.apache.iotdb.confignode.rpc.thrift.TDropCQReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDropTriggerReq;
+ import org.apache.iotdb.confignode.rpc.thrift.TGetAllPipeInfoResp;
  import org.apache.iotdb.confignode.rpc.thrift.TGetAllTemplatesResp;
  import org.apache.iotdb.confignode.rpc.thrift.TGetLocationForTriggerResp;
  import org.apache.iotdb.confignode.rpc.thrift.TGetPathsSetTemplatesResp;
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
index 5007536503,3c1eb022df..269a567e95
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
@@@ -50,13 -49,14 +50,16 @@@ import org.apache.iotdb.confignode.mana
  import org.apache.iotdb.confignode.manager.partition.PartitionManager;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
 +import org.apache.iotdb.confignode.rpc.thrift.TCreateCQReq;
+ import org.apache.iotdb.confignode.rpc.thrift.TCreatePipeReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateSchemaTemplateReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateTriggerReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDataPartitionTableResp;
+ import org.apache.iotdb.confignode.rpc.thrift.TDeactivateSchemaTemplateReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDeleteTimeSeriesReq;
 +import org.apache.iotdb.confignode.rpc.thrift.TDropCQReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDropTriggerReq;
+ import org.apache.iotdb.confignode.rpc.thrift.TGetAllPipeInfoResp;
  import org.apache.iotdb.confignode.rpc.thrift.TGetAllTemplatesResp;
  import org.apache.iotdb.confignode.rpc.thrift.TGetLocationForTriggerResp;
  import org.apache.iotdb.confignode.rpc.thrift.TGetPathsSetTemplatesResp;
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java
index a0c2976978,8d60d429db..47f06e2b11
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java
@@@ -57,11 -60,11 +61,12 @@@ import org.apache.iotdb.confignode.proc
  import org.apache.iotdb.confignode.procedure.store.ProcedureFactory;
  import org.apache.iotdb.confignode.procedure.store.ProcedureStore;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
 +import org.apache.iotdb.confignode.rpc.thrift.TCreateCQReq;
+ import org.apache.iotdb.confignode.rpc.thrift.TCreatePipeReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDeleteTimeSeriesReq;
- import org.apache.iotdb.confignode.rpc.thrift.TPipeInfo;
  import org.apache.iotdb.confignode.rpc.thrift.TRegionMigrateResultReportReq;
  import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
+ import org.apache.iotdb.db.metadata.template.Template;
  import org.apache.iotdb.rpc.RpcUtils;
  import org.apache.iotdb.rpc.TSStatusCode;
  import org.apache.iotdb.tsfile.utils.Binary;
@@@ -73,7 -77,7 +79,8 @@@ import java.nio.ByteBuffer
  import java.util.ArrayList;
  import java.util.Collections;
  import java.util.List;
+ import java.util.Map;
 +import java.util.concurrent.ScheduledExecutorService;
  import java.util.concurrent.TimeUnit;
  
  public class ProcedureManager {
@@@ -275,14 -357,7 +360,14 @@@
      }
    }
  
 +  public TSStatus createCQ(TCreateCQReq req, ScheduledExecutorService scheduledExecutor) {
 +    long procedureId = executor.submitProcedure(new CreateCQProcedure(req, scheduledExecutor));
 +    List<TSStatus> statusList = new ArrayList<>();
 +    waitingProcedureFinished(Collections.singletonList(procedureId), statusList);
 +    return statusList.get(0);
 +  }
 +
-   public TSStatus createPipe(TPipeInfo req) {
+   public TSStatus createPipe(TCreatePipeReq req) {
      try {
        long procedureId = executor.submitProcedure(new CreatePipeProcedure(req));
        List<TSStatus> statusList = new ArrayList<>();
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
index 844971242e,bc99e8f093..781e336a95
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
@@@ -55,12 -55,11 +55,12 @@@ import org.apache.iotdb.confignode.mana
  import org.apache.iotdb.confignode.manager.ConfigManager;
  import org.apache.iotdb.confignode.manager.ConsensusManager;
  import org.apache.iotdb.confignode.manager.IManager;
- import org.apache.iotdb.confignode.manager.load.LoadManager;
  import org.apache.iotdb.confignode.manager.partition.PartitionManager;
- import org.apache.iotdb.confignode.persistence.NodeInfo;
  import org.apache.iotdb.confignode.persistence.metric.NodeInfoMetrics;
+ import org.apache.iotdb.confignode.persistence.node.NodeInfo;
+ import org.apache.iotdb.confignode.persistence.node.NodeStatistics;
  import org.apache.iotdb.confignode.procedure.env.DataNodeRemoveHandler;
 +import org.apache.iotdb.confignode.rpc.thrift.TCQConfig;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeInfo;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
@@@ -832,19 -823,54 +837,49 @@@ public class NodeManager 
     *
     * @return TDataNodeLocation
     */
 -  public TDataNodeLocation getLowestLoadDataNode() {
 -    AtomicInteger result = new AtomicInteger();
 -    AtomicLong lowestLoadScore = new AtomicLong(Long.MAX_VALUE);
 +  public Optional<TDataNodeLocation> getLowestLoadDataNode() {
 +    // TODO get real lowest load data node after scoring algorithm being implemented
 +    List<TDataNodeConfiguration> targetDataNodeList =
 +        filterDataNodeThroughStatus(NodeStatus.Running);
  
 -    nodeCacheMap.forEach(
 -        (dataNodeId, heartbeatCache) -> {
 -          long score = heartbeatCache.getLoadScore();
 -          if (score < lowestLoadScore.get()) {
 -            result.set(dataNodeId);
 -            lowestLoadScore.set(score);
 -          }
 -        });
 -
 -    LOGGER.info(
 -        "get the lowest load DataNode, NodeID: [{}], LoadScore: [{}]", result, lowestLoadScore);
 -    return configManager.getNodeManager().getRegisteredDataNodeLocations().get(result.get());
 +    if (targetDataNodeList == null || targetDataNodeList.isEmpty()) {
 +      return Optional.empty();
 +    } else {
 +      int index = random.nextInt(targetDataNodeList.size());
 +      return Optional.of(targetDataNodeList.get(index).location);
 +    }
    }
  
+   /** Recover the nodeCacheMap when the ConfigNode-Leader is switched */
+   public void recoverNodeCacheMap() {
+     Map<Integer, NodeStatistics> nodeStatisticsMap = nodeInfo.getNodeStatisticsMap();
+     nodeCacheMap.clear();
+ 
+     getRegisteredConfigNodes()
+         .forEach(
+             configNodeLocation -> {
+               int configNodeId = configNodeLocation.getConfigNodeId();
+               nodeCacheMap.put(
+                   configNodeId,
+                   new ConfigNodeHeartbeatCache(
+                       configNodeLocation,
+                       nodeStatisticsMap.getOrDefault(
+                           configNodeId, NodeStatistics.generateDefaultNodeStatistics())));
+             });
+     getRegisteredDataNodes()
+         .forEach(
+             dataNodeConfiguration -> {
+               int dataNodeId = dataNodeConfiguration.getLocation().getDataNodeId();
+               nodeCacheMap.put(
+                   dataNodeId,
+                   new DataNodeHeartbeatCache(
+                       nodeStatisticsMap.getOrDefault(
+                           dataNodeId, NodeStatistics.generateDefaultNodeStatistics())));
+             });
+ 
+     LOGGER.info("Inherit NodeStatistics: {}", nodeStatisticsMap);
+   }
+ 
    /**
     * Get the DataNodeLocation of the lowest load DataNode in input
     *
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/persistence/executor/ConfigPlanExecutor.java
index 7af57e0ff8,477c075e50..1a6aa28fda
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/executor/ConfigPlanExecutor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/executor/ConfigPlanExecutor.java
@@@ -42,24 -42,21 +42,26 @@@ import org.apache.iotdb.confignode.cons
  import org.apache.iotdb.confignode.consensus.request.read.template.CheckTemplateSettablePlan;
  import org.apache.iotdb.confignode.consensus.request.read.template.GetPathsSetTemplatePlan;
  import org.apache.iotdb.confignode.consensus.request.read.template.GetSchemaTemplatePlan;
- import org.apache.iotdb.confignode.consensus.request.write.CreateFunctionPlan;
- import org.apache.iotdb.confignode.consensus.request.write.DeleteProcedurePlan;
- import org.apache.iotdb.confignode.consensus.request.write.DropFunctionPlan;
- import org.apache.iotdb.confignode.consensus.request.write.RegisterDataNodePlan;
- import org.apache.iotdb.confignode.consensus.request.write.RemoveDataNodePlan;
- import org.apache.iotdb.confignode.consensus.request.write.UpdateProcedurePlan;
- import org.apache.iotdb.confignode.consensus.request.write.UpdateRegionLocationPlan;
+ import org.apache.iotdb.confignode.consensus.request.read.template.GetTemplateSetInfoPlan;
  import org.apache.iotdb.confignode.consensus.request.write.confignode.ApplyConfigNodePlan;
  import org.apache.iotdb.confignode.consensus.request.write.confignode.RemoveConfigNodePlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.ActiveCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.AddCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.DropCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.ShowCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.UpdateCQLastExecTimePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.datanode.RegisterDataNodePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.datanode.RemoveDataNodePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.function.CreateFunctionPlan;
+ import org.apache.iotdb.confignode.consensus.request.write.function.DropFunctionPlan;
  import org.apache.iotdb.confignode.consensus.request.write.partition.CreateDataPartitionPlan;
  import org.apache.iotdb.confignode.consensus.request.write.partition.CreateSchemaPartitionPlan;
+ import org.apache.iotdb.confignode.consensus.request.write.partition.UpdateRegionLocationPlan;
+ import org.apache.iotdb.confignode.consensus.request.write.procedure.DeleteProcedurePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.procedure.UpdateProcedurePlan;
  import org.apache.iotdb.confignode.consensus.request.write.region.CreateRegionGroupsPlan;
  import org.apache.iotdb.confignode.consensus.request.write.region.OfferRegionMaintainTasksPlan;
+ import org.apache.iotdb.confignode.consensus.request.write.statistics.UpdateLoadStatisticsPlan;
  import org.apache.iotdb.confignode.consensus.request.write.storagegroup.AdjustMaxRegionGroupCountPlan;
  import org.apache.iotdb.confignode.consensus.request.write.storagegroup.DeleteStorageGroupPlan;
  import org.apache.iotdb.confignode.consensus.request.write.storagegroup.PreDeleteStorageGroupPlan;
@@@ -88,8 -85,7 +90,8 @@@ import org.apache.iotdb.confignode.pers
  import org.apache.iotdb.confignode.persistence.ProcedureInfo;
  import org.apache.iotdb.confignode.persistence.TriggerInfo;
  import org.apache.iotdb.confignode.persistence.UDFInfo;
 +import org.apache.iotdb.confignode.persistence.cq.CQInfo;
+ import org.apache.iotdb.confignode.persistence.node.NodeInfo;
  import org.apache.iotdb.confignode.persistence.partition.PartitionInfo;
  import org.apache.iotdb.confignode.persistence.schema.ClusterSchemaInfo;
  import org.apache.iotdb.confignode.persistence.sync.ClusterSyncInfo;
@@@ -309,14 -301,12 +313,20 @@@ public class ConfigPlanExecutor 
          return syncInfo.setPipeStatus((SetPipeStatusPlan) physicalPlan);
        case DropPipe:
          return syncInfo.dropPipe((DropPipePlan) physicalPlan);
 +      case ADD_CQ:
 +        return cqInfo.addCQ((AddCQPlan) physicalPlan);
 +      case DROP_CQ:
 +        return cqInfo.dropCQ((DropCQPlan) physicalPlan);
 +      case ACTIVE_CQ:
 +        return cqInfo.activeCQ((ActiveCQPlan) physicalPlan);
 +      case UPDATE_CQ_LAST_EXEC_TIME:
 +        return cqInfo.updateCQLastExecutionTime((UpdateCQLastExecTimePlan) physicalPlan);
+       case UpdateLoadStatistics:
+         LOGGER.info(
+             "[UpdateLoadStatistics] Update cluster load statistics, timestamp: {}",
+             System.currentTimeMillis());
+         nodeInfo.updateNodeStatistics((UpdateLoadStatisticsPlan) physicalPlan);
+         return partitionInfo.updateRegionGroupStatistics((UpdateLoadStatisticsPlan) physicalPlan);
        default:
          throw new UnknownPhysicalPlanTypeException(physicalPlan.getType());
      }
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java
index e80a136a8d,15ab6b7909..44a59136f0
--- a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java
@@@ -95,10 -94,8 +96,12 @@@ public class ProcedureFactory implement
        case DROP_PIPE_PROCEDURE:
          procedure = new DropPipeProcedure();
          break;
 +      case CREATE_CQ_PROCEDURE:
 +        procedure =
 +            new CreateCQProcedure(
 +                ConfigNode.getInstance().getConfigManager().getCQManager().getExecutor());
+       case DEACTIVATE_TEMPLATE_PROCEDURE:
+         procedure = new DeactivateTemplateProcedure();
          break;
        default:
          LOGGER.error("unknown Procedure type: " + typeNum);
@@@ -135,8 -132,8 +138,10 @@@
        return ProcedureType.STOP_PIPE_PROCEDURE;
      } else if (procedure instanceof DropPipeProcedure) {
        return ProcedureType.DROP_PIPE_PROCEDURE;
 +    } else if (procedure instanceof CreateCQProcedure) {
 +      return ProcedureType.CREATE_CQ_PROCEDURE;
+     } else if (procedure instanceof DeactivateTemplateProcedure) {
+       return ProcedureType.DEACTIVATE_TEMPLATE_PROCEDURE;
      }
      return null;
    }
@@@ -155,7 -152,7 +160,8 @@@
      START_PIPE_PROCEDURE,
      STOP_PIPE_PROCEDURE,
      DROP_PIPE_PROCEDURE,
-     CREATE_CQ_PROCEDURE
++    CREATE_CQ_PROCEDURE,
+     DEACTIVATE_TEMPLATE_PROCEDURE
    }
  
    private static class ProcedureFactoryHolder {
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 3b47729a7d,5dec58d8d0..4893ced9af
--- 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
@@@ -73,8 -73,8 +73,9 @@@ import org.apache.iotdb.confignode.rpc.
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
  import org.apache.iotdb.confignode.rpc.thrift.TCountStorageGroupResp;
 +import org.apache.iotdb.confignode.rpc.thrift.TCreateCQReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateFunctionReq;
+ import org.apache.iotdb.confignode.rpc.thrift.TCreatePipeReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateSchemaTemplateReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateTriggerReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDataNodeConfigurationResp;
diff --cc confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
index 2e11fe3e55,74a7136c05..fa45da1f5d
--- a/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
@@@ -60,18 -62,14 +62,19 @@@ import org.apache.iotdb.confignode.cons
  import org.apache.iotdb.confignode.consensus.request.read.template.GetAllTemplateSetInfoPlan;
  import org.apache.iotdb.confignode.consensus.request.read.template.GetPathsSetTemplatePlan;
  import org.apache.iotdb.confignode.consensus.request.read.template.GetSchemaTemplatePlan;
- import org.apache.iotdb.confignode.consensus.request.write.DeleteProcedurePlan;
- import org.apache.iotdb.confignode.consensus.request.write.RegisterDataNodePlan;
- import org.apache.iotdb.confignode.consensus.request.write.UpdateProcedurePlan;
  import org.apache.iotdb.confignode.consensus.request.write.confignode.ApplyConfigNodePlan;
  import org.apache.iotdb.confignode.consensus.request.write.confignode.RemoveConfigNodePlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.ActiveCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.AddCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.DropCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.ShowCQPlan;
 +import org.apache.iotdb.confignode.consensus.request.write.cq.UpdateCQLastExecTimePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.datanode.RegisterDataNodePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.datanode.RemoveDataNodePlan;
  import org.apache.iotdb.confignode.consensus.request.write.partition.CreateDataPartitionPlan;
  import org.apache.iotdb.confignode.consensus.request.write.partition.CreateSchemaPartitionPlan;
+ import org.apache.iotdb.confignode.consensus.request.write.procedure.DeleteProcedurePlan;
+ import org.apache.iotdb.confignode.consensus.request.write.procedure.UpdateProcedurePlan;
  import org.apache.iotdb.confignode.consensus.request.write.region.CreateRegionGroupsPlan;
  import org.apache.iotdb.confignode.consensus.request.write.region.OfferRegionMaintainTasksPlan;
  import org.apache.iotdb.confignode.consensus.request.write.region.PollRegionMaintainTaskPlan;
@@@ -95,12 -94,15 +99,16 @@@ import org.apache.iotdb.confignode.cons
  import org.apache.iotdb.confignode.consensus.request.write.trigger.UpdateTriggerLocationPlan;
  import org.apache.iotdb.confignode.consensus.request.write.trigger.UpdateTriggerStateInTablePlan;
  import org.apache.iotdb.confignode.consensus.request.write.trigger.UpdateTriggersOnTransferNodesPlan;
- import org.apache.iotdb.confignode.persistence.partition.RegionCreateTask;
- import org.apache.iotdb.confignode.persistence.partition.RegionDeleteTask;
+ import org.apache.iotdb.confignode.manager.partition.RegionGroupStatus;
+ import org.apache.iotdb.confignode.persistence.node.NodeStatistics;
+ import org.apache.iotdb.confignode.persistence.partition.maintainer.RegionCreateTask;
+ import org.apache.iotdb.confignode.persistence.partition.maintainer.RegionDeleteTask;
+ import org.apache.iotdb.confignode.persistence.partition.statistics.RegionGroupStatistics;
+ import org.apache.iotdb.confignode.persistence.partition.statistics.RegionStatistics;
  import org.apache.iotdb.confignode.procedure.Procedure;
+ import org.apache.iotdb.confignode.procedure.impl.schema.DeleteStorageGroupProcedure;
  import org.apache.iotdb.confignode.procedure.impl.statemachine.CreateRegionGroupsProcedure;
- import org.apache.iotdb.confignode.procedure.impl.statemachine.DeleteStorageGroupProcedure;
 +import org.apache.iotdb.confignode.rpc.thrift.TCreateCQReq;
  import org.apache.iotdb.confignode.rpc.thrift.TPipeSinkInfo;
  import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
  import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
diff --cc integration-test/import-control.xml
index bd29bc42e2,c8abec26eb..e05e65fd03
--- a/integration-test/import-control.xml
+++ b/integration-test/import-control.xml
@@@ -57,7 -61,7 +61,8 @@@
      <allow class="org.apache.commons.codec.digest.DigestUtils" />
      <allow class="org.apache.iotdb.commons.trigger.service.TriggerExecutableManager" />
      <allow class="org.apache.iotdb.commons.trigger.TriggerInformation" />
 +    <allow class="org.apache.iotdb.commons.cq.CQState" />
+     <allow class="org.apache.iotdb.consensus.ConsensusFactory" />
      <allow pkg="org\.apache\.iotdb\.common\.rpc\.thrift.*" regex="true" />
      <allow pkg="org\.apache\.iotdb\.confignode\.rpc\.thrift.*" regex="true" />
      <allow pkg="org\.apache\.iotdb\.commons\.client\.sync.*" regex="true" />
diff --cc integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBConfigNodeSnapshotIT.java
index 5898c817f2,320ba373d9..c896d4379b
--- a/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBConfigNodeSnapshotIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBConfigNodeSnapshotIT.java
@@@ -38,8 -35,8 +38,9 @@@ import org.apache.iotdb.confignode.rpc.
  import org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionReq;
  import org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionTableResp;
  import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
 +import org.apache.iotdb.confignode.rpc.thrift.TShowCQResp;
  import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
+ import org.apache.iotdb.consensus.ConsensusFactory;
  import org.apache.iotdb.it.env.ConfigFactory;
  import org.apache.iotdb.it.env.EnvFactory;
  import org.apache.iotdb.it.framework.IoTDBTestRunner;
diff --cc server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
index a7884a667a,b0738b5f1d..232183ecce
--- a/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
+++ b/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
@@@ -40,8 -40,8 +40,9 @@@ import org.apache.iotdb.confignode.rpc.
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterReq;
  import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRegisterResp;
  import org.apache.iotdb.confignode.rpc.thrift.TCountStorageGroupResp;
 +import org.apache.iotdb.confignode.rpc.thrift.TCreateCQReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateFunctionReq;
+ import org.apache.iotdb.confignode.rpc.thrift.TCreatePipeReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateSchemaTemplateReq;
  import org.apache.iotdb.confignode.rpc.thrift.TCreateTriggerReq;
  import org.apache.iotdb.confignode.rpc.thrift.TDataNodeConfigurationResp;
diff --cc server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeInternalRPCServiceImpl.java
index 777ee4e21d,29d482dfb9..10075520d7
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeInternalRPCServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeInternalRPCServiceImpl.java
@@@ -29,6 -29,6 +29,7 @@@ import org.apache.iotdb.common.rpc.thri
  import org.apache.iotdb.commons.cluster.NodeStatus;
  import org.apache.iotdb.commons.conf.CommonConfig;
  import org.apache.iotdb.commons.conf.CommonDescriptor;
++import org.apache.iotdb.commons.conf.IoTDBConstant;
  import org.apache.iotdb.commons.consensus.ConsensusGroupId;
  import org.apache.iotdb.commons.consensus.DataRegionId;
  import org.apache.iotdb.commons.consensus.SchemaRegionId;
@@@ -48,8 -48,7 +49,9 @@@ import org.apache.iotdb.consensus.commo
  import org.apache.iotdb.consensus.exception.PeerNotInConsensusGroupException;
  import org.apache.iotdb.db.auth.AuthorizerManager;
  import org.apache.iotdb.db.client.ConfigNodeInfo;
 +import org.apache.iotdb.db.conf.IoTDBConfig;
  import org.apache.iotdb.db.conf.IoTDBDescriptor;
++import org.apache.iotdb.db.conf.OperationType;
  import org.apache.iotdb.db.consensus.DataRegionConsensusImpl;
  import org.apache.iotdb.db.consensus.SchemaRegionConsensusImpl;
  import org.apache.iotdb.db.engine.StorageEngineV2;
@@@ -70,14 -69,7 +72,21 @@@ import org.apache.iotdb.db.mpp.executio
  import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceInfo;
  import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceManager;
  import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceState;
 +import org.apache.iotdb.db.mpp.plan.Coordinator;
  import org.apache.iotdb.db.mpp.plan.analyze.ClusterPartitionFetcher;
 +import org.apache.iotdb.db.mpp.plan.analyze.ClusterSchemaFetcher;
 +import org.apache.iotdb.db.mpp.plan.analyze.IPartitionFetcher;
 +import org.apache.iotdb.db.mpp.plan.analyze.ISchemaFetcher;
 +import org.apache.iotdb.db.mpp.plan.analyze.StandalonePartitionFetcher;
 +import org.apache.iotdb.db.mpp.plan.analyze.StandaloneSchemaFetcher;
++import org.apache.iotdb.db.mpp.plan.execution.ExecutionResult;
 +import org.apache.iotdb.db.mpp.plan.execution.IQueryExecution;
++import org.apache.iotdb.db.mpp.plan.expression.Expression;
++import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
++import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
++import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
++import org.apache.iotdb.db.mpp.plan.expression.ternary.BetweenExpression;
++import org.apache.iotdb.db.mpp.plan.parser.StatementGenerator;
  import org.apache.iotdb.db.mpp.plan.planner.plan.FragmentInstance;
  import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
  import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
@@@ -88,7 -83,6 +100,9 @@@ import org.apache.iotdb.db.mpp.plan.pla
  import org.apache.iotdb.db.mpp.plan.planner.plan.node.metedata.write.RollbackSchemaBlackListNode;
  import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.DeleteDataNode;
  import org.apache.iotdb.db.mpp.plan.scheduler.load.LoadTsFileScheduler;
++import org.apache.iotdb.db.mpp.plan.statement.component.WhereCondition;
++import org.apache.iotdb.db.mpp.plan.statement.crud.QueryStatement;
 +import org.apache.iotdb.db.query.control.SessionManager;
  import org.apache.iotdb.db.service.DataNode;
  import org.apache.iotdb.db.service.RegionMigrateService;
  import org.apache.iotdb.db.service.metrics.MetricService;
@@@ -156,6 -152,6 +173,8 @@@ import org.apache.iotdb.rpc.TSStatusCod
  import org.apache.iotdb.trigger.api.enums.FailureStrategy;
  import org.apache.iotdb.trigger.api.enums.TriggerEvent;
  import org.apache.iotdb.tsfile.exception.NotImplementedException;
++import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
++import org.apache.iotdb.tsfile.read.common.block.TsBlock;
  import org.apache.iotdb.tsfile.write.record.Tablet;
  
  import com.google.common.collect.ImmutableList;
@@@ -172,10 -168,10 +191,13 @@@ import java.util.Arrays
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
++import java.util.Optional;
  import java.util.concurrent.TimeUnit;
  import java.util.stream.Collectors;
  
  import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
++import static org.apache.iotdb.db.service.basic.ServiceProvider.QUERY_FREQUENCY_RECORDER;
++import static org.apache.iotdb.db.utils.ErrorHandlingUtils.onQueryException;
  
  public class DataNodeInternalRPCServiceImpl implements IDataNodeRPCService.Iface {
  
@@@ -581,100 -704,6 +748,95 @@@
      }
    }
  
 +  @Override
 +  public TSStatus executeCQ(TExecuteCQ req) throws TException {
 +
-     return new TSStatus(TSStatusCode.SUCCESS_STATUS.getStatusCode());
++    long sessionId =
++        SESSION_MANAGER.requestSessionId(req.cqId, req.zoneId, IoTDBConstant.ClientVersion.V_0_13);
++
++    try {
++      QueryStatement s =
++          (QueryStatement)
++              StatementGenerator.createStatement(
++                  req.queryBody, SESSION_MANAGER.getZoneId(sessionId));
++      if (s == null) {
++        return RpcUtils.getStatus(
++            TSStatusCode.SQL_PARSE_ERROR, "This operation type is not supported");
++      }
++
++      // 1. add time filter in where
++      Expression timeFilter =
++          new BetweenExpression(
++              new TimestampOperand(),
++              new ConstantOperand(TSDataType.INT64, String.valueOf(req.startTime)),
++              new ConstantOperand(TSDataType.INT64, String.valueOf(req.endTime)));
++      if (s.getWhereCondition() != null) {
++        s.getWhereCondition()
++            .setPredicate(new LogicAndExpression(timeFilter, s.getWhereCondition().getPredicate()));
++      } else {
++        s.setWhereCondition(new WhereCondition(timeFilter));
++      }
 +
-     //    long sessionId =
-     //        SESSION_MANAGER.requestSessionId(req.cqId, req.zoneId,
-     // IoTDBConstant.ClientVersion.V_0_13);
-     //
-     //    try {
-     //      QueryStatement s =
-     //          (QueryStatement)
-     //              StatementGenerator.createStatement(
-     //                  req.queryBody, SESSION_MANAGER.getZoneId(sessionId));
-     //      if (s == null) {
-     //        return RpcUtils.getStatus(
-     //            TSStatusCode.SQL_PARSE_ERROR, "This operation type is not supported");
-     //      }
-     //
-     //      // 1. add time filter in where
-     //      Expression timeFilter =
-     //          new BetweenExpression(
-     //              new TimestampOperand(),
-     //              new ConstantOperand(TSDataType.INT64, String.valueOf(req.startTime)),
-     //              new ConstantOperand(TSDataType.INT64, String.valueOf(req.endTime)));
-     //      if (s.getWhereCondition() != null) {
-     //        s.getWhereCondition()
-     //            .setPredicate(new LogicAndExpression(timeFilter,
-     // s.getWhereCondition().getPredicate()));
-     //      } else {
-     //        s.setWhereCondition(new WhereCondition(timeFilter));
-     //      }
-     //
-     //      // 2. add time rage in group by time
-     //      if (s.getGroupByTimeComponent() != null) {
-     //        s.getGroupByTimeComponent().setStartTime(req.startTime);
-     //        s.getGroupByTimeComponent().setEndTime(req.endTime);
-     //      }
-     //
-     //      QUERY_FREQUENCY_RECORDER.incrementAndGet();
-     //
-     //      long queryId =
-     //          SESSION_MANAGER.requestQueryId(SESSION_MANAGER.requestStatementId(sessionId), true);
-     //      // create and cache dataset
-     //      ExecutionResult result =
-     //          COORDINATOR.execute(
-     //              s,
-     //              queryId,
-     //              SESSION_MANAGER.getSessionInfo(sessionId),
-     //              req.queryBody,
-     //              PARTITION_FETCHER,
-     //              SCHEMA_FETCHER,
-     //              req.getTimeout());
-     //
-     //      if (result.status.code != TSStatusCode.SUCCESS_STATUS.getStatusCode()
-     //          && result.status.code != TSStatusCode.NEED_REDIRECTION.getStatusCode()) {
-     //        return result.status;
-     //      }
-     //
-     //      IQueryExecution queryExecution = COORDINATOR.getQueryExecution(queryId);
-     //
-     //      try (SetThreadName threadName = new SetThreadName(result.queryId.getId())) {
-     //        if (queryExecution != null) {
-     //          // consume up all the result
-     //          while (true) {
-     //            Optional<TsBlock> optionalTsBlock = queryExecution.getBatchResult();
-     //            if (!optionalTsBlock.isPresent()) {
-     //              break;
-     //            }
-     //          }
-     //        }
-     //        return result.status;
-     //      }
-     //    } catch (Exception e) {
-     //      // TODO call the coordinator to release query resource
-     //      return onQueryException(e, "\"" + req.queryBody + "\". " +
-     // OperationType.EXECUTE_STATEMENT);
-     //    } finally {
-     //      SESSION_MANAGER.releaseSessionResource(sessionId, this::cleanupQueryExecution);
-     //      SESSION_MANAGER.closeSession(sessionId);
-     //    }
++      // 2. add time rage in group by time
++      if (s.getGroupByTimeComponent() != null) {
++        s.getGroupByTimeComponent().setStartTime(req.startTime);
++        s.getGroupByTimeComponent().setEndTime(req.endTime);
++      }
++
++      QUERY_FREQUENCY_RECORDER.incrementAndGet();
++
++      long queryId =
++          SESSION_MANAGER.requestQueryId(SESSION_MANAGER.requestStatementId(sessionId), true);
++      // create and cache dataset
++      ExecutionResult result =
++          COORDINATOR.execute(
++              s,
++              queryId,
++              SESSION_MANAGER.getSessionInfo(sessionId),
++              req.queryBody,
++              PARTITION_FETCHER,
++              SCHEMA_FETCHER,
++              req.getTimeout());
++
++      if (result.status.code != TSStatusCode.SUCCESS_STATUS.getStatusCode()
++          && result.status.code != TSStatusCode.NEED_REDIRECTION.getStatusCode()) {
++        return result.status;
++      }
++
++      IQueryExecution queryExecution = COORDINATOR.getQueryExecution(queryId);
++
++      try (SetThreadName threadName = new SetThreadName(result.queryId.getId())) {
++        if (queryExecution != null) {
++          // consume up all the result
++          while (true) {
++            Optional<TsBlock> optionalTsBlock = queryExecution.getBatchResult();
++            if (!optionalTsBlock.isPresent()) {
++              break;
++            }
++          }
++        }
++        return result.status;
++      }
++    } catch (Exception e) {
++      // TODO call the coordinator to release query resource
++      return onQueryException(e, "\"" + req.queryBody + "\". " + OperationType.EXECUTE_STATEMENT);
++    } finally {
++      SESSION_MANAGER.releaseSessionResource(sessionId, this::cleanupQueryExecution);
++      SESSION_MANAGER.closeSession(sessionId);
++    }
 +  }
 +
 +  private void cleanupQueryExecution(Long queryId) {
 +    IQueryExecution queryExecution = COORDINATOR.getQueryExecution(queryId);
 +    if (queryExecution != null) {
 +      try (SetThreadName threadName = new SetThreadName(queryExecution.getQueryId())) {
 +        LOGGER.info("[CleanUpQuery]]");
 +        queryExecution.stopAndCleanup();
 +        COORDINATOR.removeQueryExecution(queryId);
 +      }
 +    }
 +  }
 +
    private PathPatternTree filterPathPatternTree(PathPatternTree patternTree, String storageGroup) {
      PathPatternTree filteredPatternTree = new PathPatternTree();
      try {
diff --cc service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
index 7cacfbe0cc,9a2e566325..ac54209f2e
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
@@@ -166,17 -166,12 +166,17 @@@ public enum TSStatusCode 
    DATANODE_STOP_ERROR(917),
    REGION_LEADER_CHANGE_FAILED(918),
    REMOVE_DATANODE_FAILED(919),
-   OVERLAP_WITH_EXISTING_DELETE_TIMESERIES_TASK(920),
+   OVERLAP_WITH_EXISTING_TASK(920),
    NOT_AVAILABLE_REGION_GROUP(921),
    CREATE_TRIGGER_ERROR(922),
 -  DROP_TRIGGER_ERROR(923);
 +  DROP_TRIGGER_ERROR(923),
  
 -  private int statusCode;
 +  NO_SUCH_CQ(930),
 +  CQ_ALREADY_ACTIVE(931),
 +  CQ_AlREADY_EXIST(932),
 +  CQ_UPDATE_LAST_EXEC_TIME_FAILED(933);
 +
 +  private final int statusCode;
  
    private static final Map<Integer, TSStatusCode> CODE_MAP = new HashMap<>();
  
diff --cc thrift-confignode/src/main/thrift/confignode.thrift
index 9069d03c82,c95f6a8637..4780600bab
--- a/thrift-confignode/src/main/thrift/confignode.thrift
+++ b/thrift-confignode/src/main/thrift/confignode.thrift
@@@ -531,37 -531,12 +536,43 @@@ struct TDeleteTimeSeriesReq
    2: required binary pathPatternTree
  }
  
 +// ====================================================
 +// CQ
 +// ====================================================
 +struct TCreateCQReq {
 +  1: required string cqId,
 +  2: required i64 everyInterval
 +  3: required i64 boundaryTime
 +  4: required i64 startTimeOffset
 +  5: required i64 endTimeOffset
 +  6: required byte timeoutPolicy
 +  7: required string queryBody
 +  8: required string sql
 +  9: required string zoneId
 +}
 +
 +struct TDropCQReq {
 +  1: required string cqId
 +}
 +
 +struct TCQEntry {
 +  1: required string cqId
 +  2: required string sql
 +  3: required byte state
 +}
 +
 +struct TShowCQResp {
 +  1: required common.TSStatus status
 +  2: required list<TCQEntry> cqList
 +}
 +
 +
+ struct TDeactivateSchemaTemplateReq{
+   1: required string queryId
+   2: required binary pathPatternTree
+   3: optional string templateName
+ }
+ 
  service IConfigNodeRPCService {
  
    // ======================================================