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/17 08:21:11 UTC
[iotdb] 01/01: resolve conflicts
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 db711b2051ded87b8447d4576b24b6666567e338
Merge: b42c96c6f8 cf6d85062d
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Mon Oct 17 16:20:54 2022 +0800
resolve conflicts
.../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 2 +-
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 28 +-
.../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 20 +
.../main/java/org/apache/iotdb/tool/ImportCsv.java | 6 +-
.../resources/conf/iotdb-confignode.properties | 16 +
.../confignode/client/ConfigNodeRequestType.java | 2 +-
.../client/sync/SyncConfigNodeClientPool.java | 4 +-
.../iotdb/confignode/conf/ConfigNodeConfig.java | 141 ++++++
.../iotdb/confignode/conf/ConfigNodeConstant.java | 5 +
.../confignode/conf/ConfigNodeDescriptor.java | 64 +++
.../confignode/conf/ConfigNodeRemoveCheck.java | 17 +-
.../confignode/conf/SystemPropertiesUtils.java | 20 +
.../consensus/request/ConfigPhysicalPlan.java | 4 +
.../consensus/request/ConfigPhysicalPlanType.java | 1 +
.../consensus/request/read/GetRoutingPlan.java | 15 +-
.../consensus/request/read/GetTriggerJarPlan.java | 68 +++
.../consensus/response/DataNodeRegisterResp.java | 11 +
.../consensus/response/TriggerJarResp.java | 36 +-
.../statemachine/PartitionRegionStateMachine.java | 24 +-
.../iotdb/confignode/manager/ConfigManager.java | 103 +++--
.../iotdb/confignode/manager/ConsensusManager.java | 38 +-
.../apache/iotdb/confignode/manager/IManager.java | 15 +-
.../iotdb/confignode/manager/ProcedureManager.java | 2 +-
.../iotdb/confignode/manager/TriggerManager.java | 27 ++
.../iotdb/confignode/manager/node/NodeManager.java | 117 ++++-
.../iotdb/confignode/persistence/NodeInfo.java | 12 +-
.../iotdb/confignode/persistence/TriggerInfo.java | 24 +
.../persistence/executor/ConfigPlanExecutor.java | 3 +
.../persistence/metric/NodeInfoMetrics.java | 2 +-
.../persistence/partition/PartitionInfo.java | 3 +-
.../persistence/partition/RegionGroup.java | 2 +-
.../partition/StorageGroupPartitionTable.java | 10 +-
.../procedure/env/ConfigNodeProcedureEnv.java | 26 +-
.../procedure/env/DataNodeRemoveHandler.java | 199 ++++----
.../impl/node/AddConfigNodeProcedure.java | 17 +-
.../impl/node/RemoveConfigNodeProcedure.java | 32 +-
.../impl/node/RemoveDataNodeProcedure.java | 7 +-
.../impl/statemachine/RegionMigrateProcedure.java | 40 +-
.../procedure/state/AddConfigNodeState.java | 2 +-
.../procedure/state/RemoveConfigNodeState.java | 2 +-
.../iotdb/confignode/service/ConfigNode.java | 44 +-
.../confignode/service/ConfigNodeCommandLine.java | 20 +-
.../thrift/ConfigNodeRPCServiceProcessor.java | 32 +-
.../request/ConfigPhysicalPlanSerDeTest.java | 17 +-
.../thrift/ConfigNodeRPCServiceProcessorTest.java | 336 --------------
.../org/apache/iotdb/consensus/IStateMachine.java | 5 +-
.../org/apache/iotdb/consensus/common/Peer.java | 26 +-
.../iotdb/consensus/config/ConsensusConfig.java | 22 +-
.../apache/iotdb/consensus/config/RatisConfig.java | 67 ++-
.../multileader/MultiLeaderConsensus.java | 12 +-
.../multileader/MultiLeaderServerImpl.java | 6 +-
.../service/MultiLeaderRPCServiceProcessor.java | 4 +-
.../ratis/ApplicationStateMachineProxy.java | 37 +-
.../iotdb/consensus/ratis/RatisConsensus.java | 24 +-
.../iotdb/consensus/ratis/SnapshotStorage.java | 53 +--
.../org/apache/iotdb/consensus/ratis/Utils.java | 36 +-
.../consensus/standalone/StandAloneConsensus.java | 11 +-
.../consensus/standalone/StandAloneServerImpl.java | 2 +-
.../multileader/MultiLeaderConsensusTest.java | 7 +-
.../iotdb/consensus/multileader/RecoveryTest.java | 5 +-
.../iotdb/consensus/ratis/RatisConsensusTest.java | 7 +-
.../apache/iotdb/consensus/ratis/SnapshotTest.java | 34 +-
.../apache/iotdb/consensus/ratis/TestUtils.java | 7 +-
.../iotdb/consensus/standalone/RecoveryTest.java | 5 +-
.../standalone/StandAloneConsensusTest.java | 30 +-
docs/Download/README.md | 14 +-
.../Maintenance-Tools/Maintenance-Command.md | 4 +-
docs/UserGuide/Operate-Metadata/Storage-Group.md | 3 +
docs/UserGuide/Query-Data/Aggregate-Query.md | 174 +++++++
docs/UserGuide/Reference/DataNode-Config-Manual.md | 9 +
docs/UserGuide/UDF-Library/Data-Profiling.md | 10 +-
docs/UserGuide/Write-Data/Write-Data.md | 4 +-
docs/zh/Download/README.md | 14 +-
.../Maintenance-Tools/Maintenance-Command.md | 8 +-
.../zh/UserGuide/Operate-Metadata/Storage-Group.md | 2 +
docs/zh/UserGuide/Query-Data/Aggregate-Query.md | 168 ++++++-
.../UserGuide/Reference/DataNode-Config-Manual.md | 10 +-
docs/zh/UserGuide/UDF-Library/Data-Profiling.md | 6 +-
docs/zh/UserGuide/Write-Data/Write-Data.md | 2 +
example/kafka/pom.xml | 2 +-
.../util/TSFileConfigUtilCompletenessTest.java | 3 +-
integration-test/checkstyle.xml | 8 +-
integration-test/import-control.xml | 81 +++-
.../java/org/apache/iotdb/it/env/AbstractEnv.java | 76 ++-
.../java/org/apache/iotdb/it/env/MppConfig.java | 3 +-
.../org/apache/iotdb/it/env/RemoteServerEnv.java | 14 +-
.../java/org/apache/iotdb/itbase/env/BaseEnv.java | 8 +-
.../{ => it}/IoTDBClusterPartitionIT.java | 93 +++-
.../iotdb/confignode/it/IoTDBClusterRestartIT.java | 88 ++++
.../confignode/{ => it}/IoTDBConfigNodeIT.java | 10 +-
.../{ => it}/IoTDBConfigNodeSnapshotIT.java | 4 +-
.../iotdb/confignode/it/IoTDBStorageGroupIT.java | 183 ++++++++
.../org/apache/iotdb/db/it/IoTDBFilterNullIT.java | 3 +
.../it/aggregation/IoTDBAggregationByLevelIT.java | 3 +
.../it/aggregation/IoTDBAggregationDeleteIT.java | 3 +
.../aggregation/IoTDBAggregationScanOrderIT.java | 3 +
.../aggregation/IoTDBAggregationSmallDataIT.java | 3 +
.../db/it/aggregation/IoTDBTagAggregationIT.java | 514 +++++++++++++++++++++
.../aligned/IoTDBAggregationWithDeletion2IT.java | 1 +
.../it/aligned/IoTDBAggregationWithDeletionIT.java | 1 +
.../db/it/aligned/IoTDBAlignedLastQuery2IT.java | 1 +
.../db/it/aligned/IoTDBAlignedLastQuery3IT.java | 1 +
.../db/it/aligned/IoTDBAlignedLastQueryIT.java | 1 +
.../db/it/aligned/IoTDBAlignedSeriesQuery2IT.java | 1 +
.../db/it/aligned/IoTDBAlignedSeriesQuery3IT.java | 1 +
.../db/it/aligned/IoTDBAlignedSeriesQueryIT.java | 1 +
.../IoTDBAlignedSeriesQueryWithDeletionIT.java | 1 +
.../db/it/aligned/IoTDBGroupByLevelQueryIT.java | 1 +
...GroupByQueryWithValueFilterWithDeletion2IT.java | 1 +
...BGroupByQueryWithValueFilterWithDeletionIT.java | 1 +
...upByQueryWithoutValueFilterWithDeletion2IT.java | 1 +
...oupByQueryWithoutValueFilterWithDeletionIT.java | 1 +
.../it/aligned/IoTDBLastQueryWithDeletion2IT.java | 1 +
.../it/aligned/IoTDBLastQueryWithDeletionIT.java | 1 +
.../aligned/IoTDBLastQueryWithoutLastCache2IT.java | 1 +
.../aligned/IoTDBLastQueryWithoutLastCacheIT.java | 1 +
...DBLastQueryWithoutLastCacheWithDeletion2IT.java | 1 +
...TDBLastQueryWithoutLastCacheWithDeletionIT.java | 1 +
...BRawQueryWithoutValueFilterWithDeletion2IT.java | 1 +
...DBRawQueryWithoutValueFilterWithDeletionIT.java | 1 +
.../org/apache/iotdb/db/it/env/StandaloneEnv.java | 15 +-
.../db/it/{aligned => utils}/AlignedWriteUtil.java | 2 +-
.../db/it/withoutNull/IoTDBWithoutAllNullIT.java | 3 +
.../db/it/withoutNull/IoTDBWithoutAnyNullIT.java | 3 +
.../withoutNull/IoTDBWithoutNullAllFilterIT.java | 3 +
.../withoutNull/IoTDBWithoutNullAnyFilterIT.java | 3 +
.../{ => it}/IoTDBSessionAlignedInsertIT.java | 4 +-
.../session/{ => it}/IoTDBSessionComplexIT.java | 4 +-
.../{ => it}/IoTDBSessionDisableMemControlIT.java | 4 +-
.../session/{ => it}/IoTDBSessionInsertNulIT.java | 4 +-
.../session/{ => it}/IoTDBSessionSimpleIT.java | 4 +-
.../{ => it}/IoTDBSessionSyntaxConventionIT.java | 4 +-
.../{SessionTest.java => it/SessionIT.java} | 9 +-
.../db/integration/IoTDBRepeatPatternNameIT.java | 67 +++
.../iotdb/db/integration/IoTDBSnapshotIT.java | 60 ++-
.../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 15 +-
library-udf/pom.xml | 12 +
.../apache/iotdb/library/dprofile/UDTFSample.java | 70 ++-
.../iotdb/library/dprofile/DProfileTests.java | 13 +
.../iotdb/commons/concurrent/ThreadName.java | 1 +
.../apache/iotdb/commons/conf/IoTDBConstant.java | 3 +
.../commons/partition/DataPartitionTable.java | 3 +-
.../commons/partition/SchemaPartitionTable.java | 8 +
.../commons/partition/SeriesPartitionTable.java | 14 +-
.../apache/iotdb/commons/path/MeasurementPath.java | 35 ++
.../apache/iotdb/commons/path/PatternTreeMap.java | 44 +-
.../org/apache/iotdb/commons/utils/AuthUtils.java | 1 +
.../apache/iotdb/commons/utils/NodeUrlUtils.java | 6 +-
.../java/org/apache/iotdb/RewriteTsFileTool.java | 249 +++++++++-
.../schemaregion/rocksdb/RSchemaRegion.java | 151 +++---
.../resources/conf/iotdb-datanode.properties | 18 +-
.../apache/iotdb/db/client/ConfigNodeClient.java | 29 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 126 ++++-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 64 ++-
.../db/consensus/DataRegionConsensusImpl.java | 16 +
.../db/consensus/SchemaRegionConsensusImpl.java | 16 +
.../org/apache/iotdb/db/engine/StorageEngine.java | 21 +-
.../apache/iotdb/db/engine/StorageEngineV2.java | 13 +-
.../RewriteCrossSpaceCompactionSelector.java | 7 +-
.../impl/ReadChunkCompactionPerformer.java | 4 +-
.../writer/CrossSpaceCompactionWriter.java | 4 +-
.../writer/InnerSpaceCompactionWriter.java | 4 +-
.../iotdb/db/engine/cq/ContinuousQueryService.java | 10 +-
.../iotdb/db/engine/flush/MemTableFlushTask.java | 1 -
.../db/engine/querycontext/QueryDataSource.java | 5 +-
.../iotdb/db/engine/snapshot/SnapshotFileSet.java | 4 +-
.../iotdb/db/engine/snapshot/SnapshotLoader.java | 377 ++++++++++-----
.../db/engine/snapshot/SnapshotLogAnalyzer.java | 61 +--
.../iotdb/db/engine/snapshot/SnapshotLogger.java | 47 +-
.../iotdb/db/engine/snapshot/SnapshotTaker.java | 16 +-
.../iotdb/db/engine/storagegroup/DataRegion.java | 54 ++-
.../{StorageGroupInfo.java => DataRegionInfo.java} | 19 +-
.../db/engine/storagegroup/TsFileProcessor.java | 73 ++-
.../engine/storagegroup/TsFileProcessorInfo.java | 16 +-
.../db/engine/storagegroup/TsFileResource.java | 3 +-
.../dataregion/StorageGroupManager.java | 2 +-
.../query/QueryTimeoutRuntimeException.java | 9 +
.../localconfignode/LocalDataPartitionTable.java | 2 +-
.../iotdb/db/metadata/LocalSchemaProcessor.java | 8 +-
.../db/metadata/cache/DataNodeSchemaCache.java | 3 +
.../iotdb/db/metadata/cache/SchemaCacheEntry.java | 11 +-
.../apache/iotdb/db/metadata/idtable/IDTable.java | 8 +-
.../db/metadata/idtable/IDTableHashmapImpl.java | 12 +-
.../db/metadata/logfile/BufferedSerializer.java | 54 +++
.../db/metadata/logfile/FakeCRC32Deserializer.java | 91 ++++
.../db/metadata/logfile/FakeCRC32Serializer.java | 65 +++
.../logfile/IDeserializer.java} | 25 +-
.../logfile/ISerializer.java} | 26 +-
.../iotdb/db/metadata/logfile/MLogTxtWriter.java | 2 +-
.../iotdb/db/metadata/logfile/SchemaLogReader.java | 247 ++++++++++
.../iotdb/db/metadata/logfile/SchemaLogWriter.java | 114 +++++
.../iotdb/db/metadata/mtree/IMTreeBelowSG.java | 5 +-
.../db/metadata/mtree/MTreeBelowSGCachedImpl.java | 15 +-
.../db/metadata/mtree/MTreeBelowSGMemoryImpl.java | 32 +-
.../plan/schemaregion/ISchemaRegionPlan.java | 12 +-
.../plan/schemaregion/SchemaRegionPlanType.java | 75 +++
.../plan/schemaregion/SchemaRegionPlanVisitor.java | 90 ++++
.../impl/ActivateTemplateInClusterPlanImpl.java | 79 ++++
.../impl/ActivateTemplatePlanImpl.java} | 28 +-
.../impl/AutoCreateDeviceMNodePlanImpl.java} | 28 +-
.../schemaregion/impl/ChangeAliasPlanImpl.java} | 39 +-
.../impl/ChangeTagOffsetPlanImpl.java} | 39 +-
.../impl/CreateAlignedTimeSeriesPlanImpl.java | 171 +++++++
.../impl/CreateTimeSeriesPlanImpl.java | 163 +++++++
.../impl/DeleteTimeSeriesPlanImpl.java} | 29 +-
.../impl/PreDeleteTimeSeriesPlanImpl.java} | 28 +-
.../impl/RollbackPreDeleteTimeSeriesPlanImpl.java} | 28 +-
.../impl/SchemaRegionPlanDeserializer.java | 337 ++++++++++++++
.../schemaregion/impl/SchemaRegionPlanFactory.java | 140 ++++++
.../impl/SchemaRegionPlanSerializer.java | 399 ++++++++++++++++
.../impl/SchemaRegionPlanTxtSerializer.java | 238 ++++++++++
.../schemaregion/impl/SetTemplatePlanImpl.java} | 62 +--
.../schemaregion/impl/UnsetTemplatePlanImpl.java} | 62 +--
.../write/IActivateTemplateInClusterPlan.java | 60 +++
.../schemaregion/write/IActivateTemplatePlan.java} | 26 +-
.../write/IAutoCreateDeviceMNodePlan.java} | 26 +-
.../plan/schemaregion/write/IChangeAliasPlan.java} | 30 +-
.../schemaregion/write/IChangeTagOffsetPlan.java} | 30 +-
.../write/ICreateAlignedTimeSeriesPlan.java | 80 ++++
.../schemaregion/write/ICreateTimeSeriesPlan.java | 79 ++++
.../schemaregion/write/IDeleteTimeSeriesPlan.java} | 28 +-
.../write/IPreDeleteTimeSeriesPlan.java} | 26 +-
.../write/IRollbackPreDeleteTimeSeriesPlan.java} | 26 +-
.../plan/schemaregion/write/ISetTemplatePlan.java} | 29 +-
.../schemaregion/write/IUnsetTemplatePlan.java} | 29 +-
.../db/metadata/schemaregion/ISchemaRegion.java | 38 +-
.../schemaregion/SchemaRegionMemoryImpl.java | 445 ++++++++++++------
.../schemaregion/SchemaRegionSchemaFileImpl.java | 389 +++++++++++-----
.../apache/iotdb/db/metadata/tag/TagManager.java | 15 +
.../metadata/visitor/SchemaExecutionVisitor.java | 73 +--
.../timerangeiterator/AggrWindowIterator.java | 22 +-
.../TimeRangeIteratorFactory.java | 2 +-
.../db/mpp/common/header/ColumnHeaderConstant.java | 13 +-
.../db/mpp/common/header/DatasetHeaderFactory.java | 12 +
.../mpp/common/schematree/ClusterSchemaTree.java | 9 +-
.../schematree/node/SchemaMeasurementNode.java | 14 +
.../visitor/SchemaTreeMeasurementVisitor.java | 1 +
.../operator/process/TagAggregationOperator.java | 233 ++++++++++
.../operator/schema/SchemaFetchScanOperator.java | 7 +-
.../apache/iotdb/db/mpp/plan/analyze/Analysis.java | 48 +-
.../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java | 98 +++-
.../db/mpp/plan/analyze/ClusterSchemaFetcher.java | 13 +-
.../db/mpp/plan/analyze/ExpressionAnalyzer.java | 2 +
.../iotdb/db/mpp/plan/analyze/ISchemaFetcher.java | 2 +
.../mpp/plan/analyze/StandaloneSchemaFetcher.java | 12 +-
.../db/mpp/plan/execution/QueryExecution.java | 6 +-
.../plan/execution/config/ConfigTaskVisitor.java | 23 +
.../config/executor/ClusterConfigTaskExecutor.java | 93 +++-
.../config/executor/IConfigTaskExecutor.java | 11 +
.../executor/StandaloneConfigTaskExecutor.java | 43 +-
.../config/metadata/CountStorageGroupTask.java | 2 +-
.../GetRegionTask.java} | 51 +-
.../GetSeriesSlotListTask.java} | 52 +--
.../GetTimeSlotListTask.java} | 51 +-
.../execution/config/metadata/ShowRegionTask.java | 2 +-
.../plan/execution/config/sys/AuthorizerTask.java | 4 +-
.../execution/config/sys/sync/ShowPipeTask.java | 4 +-
.../iotdb/db/mpp/plan/parser/ASTVisitor.java | 126 ++++-
.../db/mpp/plan/planner/LogicalPlanBuilder.java | 143 +++++-
.../db/mpp/plan/planner/LogicalPlanVisitor.java | 13 +-
.../db/mpp/plan/planner/OperatorTreeGenerator.java | 77 ++-
.../db/mpp/plan/planner/SubPlanTypeExtractor.java | 9 +
.../planner/distribution/ExchangeNodeAdder.java | 5 +
.../plan/planner/distribution/SourceRewriter.java | 91 +++-
.../plan/planner/plan/node/PlanGraphPrinter.java | 31 ++
.../mpp/plan/planner/plan/node/PlanNodeType.java | 6 +-
.../db/mpp/plan/planner/plan/node/PlanVisitor.java | 5 +
.../node/metedata/read/SchemaFetchScanNode.java | 19 +-
.../node/metedata/write/ActivateTemplateNode.java | 15 +-
.../write/CreateAlignedTimeSeriesNode.java | 25 +-
.../node/metedata/write/CreateTimeSeriesNode.java | 17 +-
.../plan/node/process/GroupByLevelNode.java | 21 +-
.../planner/plan/node/process/GroupByTagNode.java | 312 +++++++++++++
.../planner/plan/node/write/InsertRowNode.java | 7 +
.../planner/plan/node/write/InsertTabletNode.java | 8 +
.../plan/parameter/AggregationDescriptor.java | 4 +-
....java => CrossSeriesAggregationDescriptor.java} | 16 +-
.../db/mpp/plan/statement/StatementVisitor.java | 16 +
.../statement/component/GroupByTagComponent.java | 27 +-
.../db/mpp/plan/statement/crud/QueryStatement.java | 22 +
.../statement/internal/SchemaFetchStatement.java | 9 +-
.../statement/metadata/GetRegionStatement.java | 100 ++++
.../metadata/GetSeriesSlotListStatement.java | 82 ++++
.../metadata/GetTimeSlotListStatement.java | 101 ++++
.../protocol/influxdb/input/InfluxLineParser.java | 4 +-
.../protocol/influxdb/sql/InfluxDBSqlVisitor.java | 8 +-
.../db/qp/physical/crud/GroupByTimeFillPlan.java | 6 +-
.../sys/ActivateTemplateInClusterPlan.java | 19 +-
.../db/qp/physical/sys/ActivateTemplatePlan.java | 8 +-
.../qp/physical/sys/AutoCreateDeviceMNodePlan.java | 8 +-
.../iotdb/db/qp/physical/sys/ChangeAliasPlan.java | 3 +-
.../db/qp/physical/sys/ChangeTagOffsetPlan.java | 3 +-
.../physical/sys/CreateAlignedTimeSeriesPlan.java | 38 +-
.../qp/physical/sys/CreateContinuousQueryPlan.java | 4 +-
.../db/qp/physical/sys/CreateTimeSeriesPlan.java | 3 +-
.../db/qp/physical/sys/DeleteTimeSeriesPlan.java | 8 +-
.../qp/physical/sys/PreDeleteTimeSeriesPlan.java | 3 +-
.../sys/RollbackPreDeleteTimeSeriesPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/SetTemplatePlan.java | 3 +-
.../db/qp/physical/sys/UnsetTemplatePlan.java | 3 +-
.../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 32 +-
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 3 +-
.../{DatetimeUtils.java => DateTimeUtils.java} | 21 +-
.../apache/iotdb/db/qp/utils/WildcardsRemover.java | 8 +-
.../query/dataset/groupby/GroupByTimeDataSet.java | 2 +-
.../apache/iotdb/db/query/executor/fill/IFill.java | 2 +-
.../iotdb/db/query/executor/fill/LinearFill.java | 6 +-
.../iotdb/db/query/executor/fill/PreviousFill.java | 4 +-
.../metadata/DiskAlignedChunkMetadataLoader.java | 2 +-
.../chunk/metadata/DiskChunkMetadataLoader.java | 2 +-
.../org/apache/iotdb/db/rescon/SystemInfo.java | 46 +-
.../java/org/apache/iotdb/db/service/DataNode.java | 124 ++++-
.../db/service/DataNodeServerCommandLine.java | 36 +-
.../iotdb/db/service/RegionMigrateService.java | 8 +-
.../ResourcesInformationHolder.java} | 27 +-
.../impl/DataNodeInternalRPCServiceImpl.java | 9 +-
.../service/thrift/impl/DataNodeRegionManager.java | 4 +-
.../java/org/apache/iotdb/db/sync/SyncService.java | 12 +-
.../apache/iotdb/db/tools/IoTDBDataDirViewer.java | 6 +-
.../iotdb/db/tools/TsFileResourcePrinter.java | 6 +-
.../apache/iotdb/db/tools/schema/MLogParser.java | 122 +----
.../db/tools/watermark/WatermarkDetector.java | 4 +-
.../iotdb/db/trigger/executor/TriggerExecutor.java | 4 +
.../trigger/service/TriggerManagementService.java | 161 ++++---
.../java/org/apache/iotdb/db/utils/QueryUtils.java | 16 +-
.../timerangeiterator/AggrWindowIterator.java | 18 +-
.../TimeRangeIteratorFactory.java | 2 +-
.../file/AbstractTsFileRecoverPerformer.java | 10 +-
.../db/engine/snapshot/IoTDBSnapshotTest.java | 13 +-
.../engine/storagegroup/TsFileProcessorTest.java | 4 +-
.../engine/storagegroup/TsFileProcessorV2Test.java | 4 +-
.../db/metadata/cache/DataNodeSchemaCacheTest.java | 22 +-
.../iotdb/db/metadata/mtree/MTreeBelowSGTest.java | 16 +-
.../db/metadata/path/MeasurementPathTest.java | 75 ++-
.../iotdb/db/metadata/path/PatternTreeMapTest.java | 88 ++--
.../plan/SchemaRegionPlanCompatibilityTest.java | 318 +++++++++++++
.../mpp/execution/operator/OperatorMemoryTest.java | 7 +-
.../schema/SchemaFetchScanOperatorTest.java | 3 +-
.../plan/analyze/AggregationDescriptorTest.java | 19 +-
.../iotdb/db/mpp/plan/analyze/AnalyzeTest.java | 2 +-
.../mpp/plan/analyze/FakePartitionFetcherImpl.java | 0
.../db/mpp/plan/analyze/FakeSchemaFetcherImpl.java | 9 +
.../db/mpp/plan/parser/StatementGeneratorTest.java | 16 +
.../iotdb/db/mpp/plan/plan/LogicalPlannerTest.java | 93 +++-
.../db/mpp/plan/plan/QueryLogicalPlanUtil.java | 20 +-
.../distribution/AggregationDistributionTest.java | 24 +-
.../metadata/read/SchemaFetchScanNodeTest.java | 7 +-
.../node/process/GroupByLevelNodeSerdeTest.java | 4 +-
.../plan/node/process/GroupByTagNodeSerdeTest.java | 122 +++++
.../db/qp/utils/DatetimeQueryDataSetUtilsTest.java | 116 ++---
.../DataNodeInternalRPCServiceImplTest.java | 8 +-
.../org/apache/iotdb/db/tools/MLogParserTest.java | 17 -
.../src/main/thrift/confignode.thrift | 48 +-
.../src/main/thrift/mutlileader.thrift | 2 +
.../iotdb/tsfile/common/conf/TSFileConfig.java | 10 +
.../file/metadata/AlignedTimeSeriesMetadata.java | 15 +
.../iotdb/tsfile/file/metadata/ChunkMetadata.java | 18 +
.../tsfile/file/metadata/TimeseriesMetadata.java | 7 +
.../iotdb/tsfile/read/filter/operator/Regexp.java | 48 +-
.../iotdb/tsfile/utils/ReadWriteIOUtils.java | 2 +-
360 files changed, 10931 insertions(+), 2782 deletions(-)
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
index 89783abc78,23cb095567..1789ac08ea
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
@@@ -180,11 -188,26 +188,31 @@@ public class ConfigNodeConfig
private long partitionRegionRatisRpcLeaderElectionTimeoutMaxMs = 4000L;
private long schemaRegionRatisRpcLeaderElectionTimeoutMaxMs = 4000L;
+ /** CQ related */
+ private int cqSubmitThread = 2;
+
+ private long cqMinEveryIntervalInMs = 1_000;
+
+ /** RatisConsensus protocol, request timeout for ratis client */
+ private long dataRegionRatisRequestTimeoutMs = 10000L;
+
+ private long partitionRegionRatisRequestTimeoutMs = 10000L;
+ private long schemaRegionRatisRequestTimeoutMs = 10000L;
+
+ /** RatisConsensus protocol, exponential back-off retry policy params */
+ private int partitionRegionRatisMaxRetryAttempts = 10;
+
+ private long partitionRegionRatisInitialSleepTimeMs = 100;
+ private long partitionRegionRatisMaxSleepTimeMs = 10000;
+
+ private int dataRegionRatisMaxRetryAttempts = 10;
+ private long dataRegionRatisInitialSleepTimeMs = 100;
+ private long dataRegionRatisMaxSleepTimeMs = 10000;
+
+ private int schemaRegionRatisMaxRetryAttempts = 10;
+ private long schemaRegionRatisInitialSleepTimeMs = 100;
+ private long schemaRegionRatisMaxSleepTimeMs = 10000;
+
public ConfigNodeConfig() {
// empty constructor
}
@@@ -677,19 -716,100 +721,116 @@@
schemaRegionRatisRpcLeaderElectionTimeoutMaxMs;
}
+ public int getCqSubmitThread() {
+ return cqSubmitThread;
+ }
+
+ public void setCqSubmitThread(int cqSubmitThread) {
+ this.cqSubmitThread = cqSubmitThread;
+ }
+
+ public long getCqMinEveryIntervalInMs() {
+ return cqMinEveryIntervalInMs;
+ }
+
+ public void setCqMinEveryIntervalInMs(long cqMinEveryIntervalInMs) {
+ this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
+ }
++
+ public long getDataRegionRatisRequestTimeoutMs() {
+ return dataRegionRatisRequestTimeoutMs;
+ }
+
+ public void setDataRegionRatisRequestTimeoutMs(long dataRegionRatisRequestTimeoutMs) {
+ this.dataRegionRatisRequestTimeoutMs = dataRegionRatisRequestTimeoutMs;
+ }
+
+ public long getPartitionRegionRatisRequestTimeoutMs() {
+ return partitionRegionRatisRequestTimeoutMs;
+ }
+
+ public void setPartitionRegionRatisRequestTimeoutMs(long partitionRegionRatisRequestTimeoutMs) {
+ this.partitionRegionRatisRequestTimeoutMs = partitionRegionRatisRequestTimeoutMs;
+ }
+
+ public long getSchemaRegionRatisRequestTimeoutMs() {
+ return schemaRegionRatisRequestTimeoutMs;
+ }
+
+ public void setSchemaRegionRatisRequestTimeoutMs(long schemaRegionRatisRequestTimeoutMs) {
+ this.schemaRegionRatisRequestTimeoutMs = schemaRegionRatisRequestTimeoutMs;
+ }
+
+ public int getPartitionRegionRatisMaxRetryAttempts() {
+ return partitionRegionRatisMaxRetryAttempts;
+ }
+
+ public void setPartitionRegionRatisMaxRetryAttempts(int partitionRegionRatisMaxRetryAttempts) {
+ this.partitionRegionRatisMaxRetryAttempts = partitionRegionRatisMaxRetryAttempts;
+ }
+
+ public long getPartitionRegionRatisInitialSleepTimeMs() {
+ return partitionRegionRatisInitialSleepTimeMs;
+ }
+
+ public void setPartitionRegionRatisInitialSleepTimeMs(
+ long partitionRegionRatisInitialSleepTimeMs) {
+ this.partitionRegionRatisInitialSleepTimeMs = partitionRegionRatisInitialSleepTimeMs;
+ }
+
+ public long getPartitionRegionRatisMaxSleepTimeMs() {
+ return partitionRegionRatisMaxSleepTimeMs;
+ }
+
+ public void setPartitionRegionRatisMaxSleepTimeMs(long partitionRegionRatisMaxSleepTimeMs) {
+ this.partitionRegionRatisMaxSleepTimeMs = partitionRegionRatisMaxSleepTimeMs;
+ }
+
+ public int getDataRegionRatisMaxRetryAttempts() {
+ return dataRegionRatisMaxRetryAttempts;
+ }
+
+ public void setDataRegionRatisMaxRetryAttempts(int dataRegionRatisMaxRetryAttempts) {
+ this.dataRegionRatisMaxRetryAttempts = dataRegionRatisMaxRetryAttempts;
+ }
+
+ public long getDataRegionRatisInitialSleepTimeMs() {
+ return dataRegionRatisInitialSleepTimeMs;
+ }
+
+ public void setDataRegionRatisInitialSleepTimeMs(long dataRegionRatisInitialSleepTimeMs) {
+ this.dataRegionRatisInitialSleepTimeMs = dataRegionRatisInitialSleepTimeMs;
+ }
+
+ public long getDataRegionRatisMaxSleepTimeMs() {
+ return dataRegionRatisMaxSleepTimeMs;
+ }
+
+ public void setDataRegionRatisMaxSleepTimeMs(long dataRegionRatisMaxSleepTimeMs) {
+ this.dataRegionRatisMaxSleepTimeMs = dataRegionRatisMaxSleepTimeMs;
+ }
+
+ public int getSchemaRegionRatisMaxRetryAttempts() {
+ return schemaRegionRatisMaxRetryAttempts;
+ }
+
+ public void setSchemaRegionRatisMaxRetryAttempts(int schemaRegionRatisMaxRetryAttempts) {
+ this.schemaRegionRatisMaxRetryAttempts = schemaRegionRatisMaxRetryAttempts;
+ }
+
+ public long getSchemaRegionRatisInitialSleepTimeMs() {
+ return schemaRegionRatisInitialSleepTimeMs;
+ }
+
+ public void setSchemaRegionRatisInitialSleepTimeMs(long schemaRegionRatisInitialSleepTimeMs) {
+ this.schemaRegionRatisInitialSleepTimeMs = schemaRegionRatisInitialSleepTimeMs;
+ }
+
+ public long getSchemaRegionRatisMaxSleepTimeMs() {
+ return schemaRegionRatisMaxSleepTimeMs;
+ }
+
+ public void setSchemaRegionRatisMaxSleepTimeMs(long schemaRegionRatisMaxSleepTimeMs) {
+ this.schemaRegionRatisMaxSleepTimeMs = schemaRegionRatisMaxSleepTimeMs;
+ }
}
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
index f1736bf482,12d3d7bbc6..05d7759908
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
@@@ -411,21 -409,72 +411,85 @@@ public class ConfigNodeDescriptor
properties.getProperty(
"schema_region_ratis_rpc_leader_election_timeout_max_ms",
String.valueOf(conf.getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs()))));
+
+ conf.setPartitionRegionRatisRequestTimeoutMs(
+ Long.parseLong(
+ properties.getProperty(
+ "partition_region_ratis_request_timeout_ms",
+ String.valueOf(conf.getPartitionRegionRatisRequestTimeoutMs()))));
+ conf.setSchemaRegionRatisRequestTimeoutMs(
+ Long.parseLong(
+ properties.getProperty(
+ "schema_region_ratis_request_timeout_ms",
+ String.valueOf(conf.getSchemaRegionRatisRequestTimeoutMs()))));
+ conf.setDataRegionRatisRequestTimeoutMs(
+ Long.parseLong(
+ properties.getProperty(
+ "data_region_ratis_request_timeout_ms",
+ String.valueOf(conf.getDataRegionRatisRequestTimeoutMs()))));
+
+ conf.setPartitionRegionRatisMaxRetryAttempts(
+ Integer.parseInt(
+ properties.getProperty(
+ "partition_region_ratis_max_retry_attempts",
+ String.valueOf(conf.getPartitionRegionRatisMaxRetryAttempts()))));
+ conf.setPartitionRegionRatisInitialSleepTimeMs(
+ Long.parseLong(
+ properties.getProperty(
+ "partition_region_ratis_initial_sleep_time_ms",
+ String.valueOf(conf.getPartitionRegionRatisInitialSleepTimeMs()))));
+ conf.setPartitionRegionRatisMaxSleepTimeMs(
+ Long.parseLong(
+ properties.getProperty(
+ "partition_region_ratis_max_sleep_time_ms",
+ String.valueOf(conf.getPartitionRegionRatisMaxSleepTimeMs()))));
+
+ conf.setDataRegionRatisMaxRetryAttempts(
+ Integer.parseInt(
+ properties.getProperty(
+ "data_region_ratis_max_retry_attempts",
+ String.valueOf(conf.getDataRegionRatisMaxRetryAttempts()))));
+ conf.setDataRegionRatisInitialSleepTimeMs(
+ Long.parseLong(
+ properties.getProperty(
+ "data_region_ratis_initial_sleep_time_ms",
+ String.valueOf(conf.getDataRegionRatisInitialSleepTimeMs()))));
+ conf.setDataRegionRatisMaxSleepTimeMs(
+ Long.parseLong(
+ properties.getProperty(
+ "data_region_ratis_max_sleep_time_ms",
+ String.valueOf(conf.getDataRegionRatisMaxSleepTimeMs()))));
+
+ conf.setSchemaRegionRatisMaxRetryAttempts(
+ Integer.parseInt(
+ properties.getProperty(
+ "schema_region_ratis_max_retry_attempts",
+ String.valueOf(conf.getSchemaRegionRatisMaxRetryAttempts()))));
+ conf.setSchemaRegionRatisInitialSleepTimeMs(
+ Long.parseLong(
+ properties.getProperty(
+ "schema_region_ratis_initial_sleep_time_ms",
+ String.valueOf(conf.getSchemaRegionRatisInitialSleepTimeMs()))));
+ conf.setSchemaRegionRatisMaxSleepTimeMs(
+ Long.parseLong(
+ properties.getProperty(
+ "schema_region_ratis_max_sleep_time_ms",
+ String.valueOf(conf.getSchemaRegionRatisMaxSleepTimeMs()))));
}
+ private void loadCQConfig(Properties properties) {
+ conf.setCqSubmitThread(
+ Integer.parseInt(
+ properties.getProperty(
+ "continuous_query_submit_thread", String.valueOf(conf.getCqSubmitThread()))));
+
+ conf.setCqMinEveryIntervalInMs(
+ Integer.parseInt(
+ properties.getProperty(
+ "continuous_query_min_every_interval_in_ms",
+ String.valueOf(conf.getCqMinEveryIntervalInMs()))));
+ }
+
/**
* Check if the current ConfigNode is SeedConfigNode.
*
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java
index 4508c3f91a,29da4384d9..be8fad06e7
--- 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
@@@ -88,12 -88,8 +88,13 @@@ public enum ConfigPhysicalPlanType
DeleteTriggerInTable,
GetTriggerTable,
UpdateTriggerStateInTable,
+ GetTriggerJar,
GetRouting,
GetSeriesSlotList,
- GetTimeSlotList
+ GetTimeSlotList,
+ DROP_CQ,
+ ACTIVE_CQ,
+ ADD_CQ,
+ UPDATE_CQ_LAST_EXEC_TIME,
+ SHOW_CQ
}
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeRegisterResp.java
index 6e657a4518,5c4881ca77..553b00239c
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeRegisterResp.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeRegisterResp.java
@@@ -36,9 -36,8 +37,10 @@@ public class DataNodeRegisterResp imple
private Integer dataNodeId;
private TGlobalConfig globalConfig;
private TRatisConfig ratisConfig;
+
+ private TCQConfig cqConfig;
private byte[] templateInfo;
+ private List<ByteBuffer> allTriggerInformation;
public DataNodeRegisterResp() {
this.dataNodeId = null;
@@@ -88,7 -91,7 +98,8 @@@
resp.setGlobalConfig(globalConfig);
resp.setTemplateInfo(templateInfo);
resp.setRatisConfig(ratisConfig);
+ resp.setCqConfig(cqConfig);
+ resp.setAllTriggerInformation(allTriggerInformation);
}
return resp;
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/PartitionRegionStateMachine.java
index be4936ad5e,bcaba4fec8..9dacd6bc5f
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/PartitionRegionStateMachine.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/PartitionRegionStateMachine.java
@@@ -151,16 -158,19 +158,21 @@@ public class PartitionRegionStateMachin
configManager.getProcedureManager().shiftExecutor(true);
configManager.getLoadManager().startLoadBalancingService();
configManager.getNodeManager().startHeartbeatService();
+ configManager.getNodeManager().startUnknownDataNodeDetector();
configManager.getPartitionManager().startRegionCleaner();
+ configManager.getCQManager().startCQScheduler();
} else {
LOGGER.info(
- "Current node {} is not longer the leader, the new leader is {}", currentNode, newLeader);
+ "Current node [nodeId:{}, ip:port: {}] is not longer the leader, the new leader is [nodeId:{}]",
+ currentNodeId,
+ currentNodeTEndPoint,
+ newLeaderId);
configManager.getProcedureManager().shiftExecutor(false);
configManager.getLoadManager().stopLoadBalancingService();
configManager.getNodeManager().stopHeartbeatService();
+ configManager.getNodeManager().stopUnknownDataNodeDetector();
configManager.getPartitionManager().stopRegionCleaner();
+ configManager.getCQManager().stopCQScheduler();
}
}
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index f416ec34f3,a398b6f64c..eb7973a871
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@@ -89,7 -86,7 +88,8 @@@ import org.apache.iotdb.confignode.pers
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.TCreateSchemaTemplateReq;
import org.apache.iotdb.confignode.rpc.thrift.TCreateTriggerReq;
import org.apache.iotdb.confignode.rpc.thrift.TDataPartitionTableResp;
@@@ -175,9 -172,8 +177,11 @@@ public class ConfigManager implements I
/** Sync */
private final SyncManager syncManager;
+ /** CQ */
+ private final CQManager cqManager;
+
+ private final PartitionRegionStateMachine stateMachine;
+
public ConfigManager() throws IOException {
// Build the persistence module
NodeInfo nodeInfo = new NodeInfo();
@@@ -200,9 -195,8 +204,9 @@@
procedureInfo,
udfInfo,
triggerInfo,
- syncInfo);
+ syncInfo,
+ cqInfo);
- PartitionRegionStateMachine stateMachine = new PartitionRegionStateMachine(this, executor);
+ this.stateMachine = new PartitionRegionStateMachine(this, executor);
// Build the manager module
this.nodeManager = new NodeManager(this, nodeInfo);
@@@ -214,11 -208,10 +218,11 @@@
this.triggerManager = new TriggerManager(this, triggerInfo);
this.loadManager = new LoadManager(this);
this.syncManager = new SyncManager(this, syncInfo);
+ this.cqManager = new CQManager(this);
+ }
- // ConsensusManager must be initialized last, as it would load states from disk and reinitialize
- // above managers
- this.consensusManager = new ConsensusManager(this, stateMachine);
+ public void initConsensusManager() throws IOException {
+ this.consensusManager = new ConsensusManager(this, this.stateMachine);
}
public void close() throws IOException {
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
index 75ba20d76f,6330eabdeb..3d7e055e41
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/IManager.java
@@@ -48,7 -48,7 +49,8 @@@ import org.apache.iotdb.confignode.mana
import org.apache.iotdb.confignode.manager.node.NodeManager;
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.TCreateSchemaTemplateReq;
import org.apache.iotdb.confignode.rpc.thrift.TCreateTriggerReq;
import org.apache.iotdb.confignode.rpc.thrift.TDataPartitionTableResp;
@@@ -473,9 -469,7 +480,13 @@@ public interface IManager
TGetSeriesSlotListResp getSeriesSlotList(GetSeriesSlotListPlan plan);
+ TSStatus createCQ(TCreateCQReq req);
+
+ TSStatus dropCQ(TDropCQReq req);
+
+ TShowCQResp showCQ();
++
+ TSStatus checkConfigNodeGlobalConfig(TConfigNodeRegisterReq req);
+
+ TSStatus transfer(List<TDataNodeLocation> newUnknownDataList);
}
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/manager/TriggerManager.java
index e60915cc2a,acce3d6fc8..7fc4b3ba8b
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/TriggerManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/TriggerManager.java
@@@ -41,7 -45,7 +45,8 @@@ import org.slf4j.LoggerFactory
import java.io.IOException;
import java.util.Collections;
+ import java.util.List;
+import java.util.Optional;
public class TriggerManager {
private static final Logger LOGGER = LoggerFactory.getLogger(TriggerManager.class);
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
index 6470d5f9a5,b3fcb65ef7..2ef6251d36
--- 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
@@@ -59,8 -60,9 +60,10 @@@ import org.apache.iotdb.confignode.mana
import org.apache.iotdb.confignode.persistence.NodeInfo;
import org.apache.iotdb.confignode.persistence.metric.NodeInfoMetrics;
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;
import org.apache.iotdb.confignode.rpc.thrift.TDataNodeInfo;
import org.apache.iotdb.confignode.rpc.thrift.TGlobalConfig;
import org.apache.iotdb.confignode.rpc.thrift.TRatisConfig;
diff --cc confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 808d59e7e9,ee060dc306..0966636fc0
--- 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
@@@ -70,8 -71,8 +71,9 @@@ import org.apache.iotdb.confignode.rpc.
import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
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.TCreateSchemaTemplateReq;
import org.apache.iotdb.confignode.rpc.thrift.TCreateTriggerReq;
diff --cc confignode/src/test/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanSerDeTest.java
index d4d7ce7769,ed8f2a26c8..ec3a4559bb
--- 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
@@@ -1006,70 -1002,18 +1008,82 @@@ public class ConfigPhysicalPlanSerDeTes
}
@Test
+ public void ActiveCQPlanTest() throws IOException {
+ ActiveCQPlan activeCQPlan0 = new ActiveCQPlan("testCq", "testCq_md5");
+ ActiveCQPlan activeCQPlan1 =
+ (ActiveCQPlan) ConfigPhysicalPlan.Factory.create(activeCQPlan0.serializeToByteBuffer());
+
+ Assert.assertEquals(activeCQPlan0, activeCQPlan1);
+ }
+
+ @Test
+ public void AddCQPlanTest() throws IOException {
+ long executionTime = System.currentTimeMillis();
+ AddCQPlan addCQPlan0 =
+ new AddCQPlan(
+ new TCreateCQReq(
+ "testCq1",
+ 1000,
+ 0,
+ 1000,
+ 0,
+ (byte) 0,
+ "select s1 into root.backup.d1.s1 from root.sg.d1",
+ "create cq testCq1 BEGIN select s1 into root.backup.d1.s1 from root.sg.d1 END",
+ "Asia"),
+ "testCq1_md5",
+ executionTime);
+ AddCQPlan addCQPlan1 =
+ (AddCQPlan) ConfigPhysicalPlan.Factory.create(addCQPlan0.serializeToByteBuffer());
+
+ Assert.assertEquals(addCQPlan0, addCQPlan1);
+ }
+
+ @Test
+ public void DropCQPlanTest() throws IOException {
+ DropCQPlan dropCQPlan0 = new DropCQPlan("testCq1");
+ DropCQPlan dropCQPlan1 =
+ (DropCQPlan) ConfigPhysicalPlan.Factory.create(dropCQPlan0.serializeToByteBuffer());
+ Assert.assertEquals(dropCQPlan0, dropCQPlan1);
+
+ dropCQPlan0 = new DropCQPlan("testCq1", "testCq1_md5");
+ dropCQPlan1 =
+ (DropCQPlan) ConfigPhysicalPlan.Factory.create(dropCQPlan0.serializeToByteBuffer());
+ Assert.assertEquals(dropCQPlan0, dropCQPlan1);
+ }
+
+ @Test
+ public void ShowCQPlanTest() throws IOException {
+ ShowCQPlan showCQPlan0 = new ShowCQPlan();
+ ShowCQPlan showCQPlan1 =
+ (ShowCQPlan) ConfigPhysicalPlan.Factory.create(showCQPlan0.serializeToByteBuffer());
+
+ Assert.assertEquals(showCQPlan0, showCQPlan1);
+ }
+
+ @Test
+ public void UpdateCQLastExecTimePlanTest() throws IOException {
+ UpdateCQLastExecTimePlan updateCQLastExecTimePlan0 =
+ new UpdateCQLastExecTimePlan("testCq", System.currentTimeMillis(), "testCq_md5");
+ UpdateCQLastExecTimePlan updateCQLastExecTimePlan1 =
+ (UpdateCQLastExecTimePlan)
+ ConfigPhysicalPlan.Factory.create(updateCQLastExecTimePlan0.serializeToByteBuffer());
+
+ Assert.assertEquals(updateCQLastExecTimePlan0, updateCQLastExecTimePlan1);
+ }
+
+ public void GetTriggerJarPlanTest() throws IOException {
+ List<String> jarNames = new ArrayList<>();
+ jarNames.add("test1");
+ jarNames.add("test2");
+ GetTriggerJarPlan getTriggerJarPlan0 = new GetTriggerJarPlan(jarNames);
+
+ GetTriggerJarPlan getTriggerJarPlan1 =
+ (GetTriggerJarPlan)
+ ConfigPhysicalPlan.Factory.create(getTriggerJarPlan0.serializeToByteBuffer());
+ Assert.assertEquals(getTriggerJarPlan0.getJarNames(), getTriggerJarPlan1.getJarNames());
+ }
+
@Test
public void GetRoutingPlanTest() throws IOException {
GetRoutingPlan getRoutingPlan0 =
diff --cc server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
index 8b231878b2,fb8c87da7b..93971e6829
--- a/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
+++ b/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
@@@ -39,8 -38,8 +38,9 @@@ import org.apache.iotdb.confignode.rpc.
import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
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.TCreateSchemaTemplateReq;
import org.apache.iotdb.confignode.rpc.thrift.TCreateTriggerReq;
diff --cc server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index a87242f0ab,b538cf9626..0e48194172
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@@ -1034,9 -1038,16 +1038,19 @@@ public class IoTDBConfig
private long dataRatisConsensusLeaderElectionTimeoutMaxMs = 4000L;
private long schemaRatisConsensusLeaderElectionTimeoutMaxMs = 4000L;
+ /** CQ related */
+ private long cqMinEveryIntervalInMs = 1_000;
+
+ private long dataRatisConsensusRequestTimeoutMs = 10000L;
+ private long schemaRatisConsensusRequestTimeoutMs = 10000L;
+
+ private int dataRatisConsensusMaxRetryAttempts = 10;
+ private int schemaRatisConsensusMaxRetryAttempts = 10;
+ private long dataRatisConsensusInitialSleepTimeMs = 100L;
+ private long schemaRatisConsensusInitialSleepTimeMs = 100L;
+ private long dataRatisConsensusMaxSleepTimeMs = 10000L;
+ private long schemaRatisConsensusMaxSleepTimeMs = 10000L;
+
IoTDBConfig() {}
public float getUdfMemoryBudgetInMB() {
@@@ -3432,11 -3434,80 +3437,88 @@@
schemaRatisConsensusLeaderElectionTimeoutMaxMs;
}
+ public long getCqMinEveryIntervalInMs() {
+ return cqMinEveryIntervalInMs;
+ }
+
+ public void setCqMinEveryIntervalInMs(long cqMinEveryIntervalInMs) {
+ this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
+ }
++
+ public double getUsableCompactionMemoryProportion() {
+ return 1.0d - chunkMetadataSizeProportion;
+ }
+
+ public int getPatternMatchingThreshold() {
+ return patternMatchingThreshold;
+ }
+
+ public void setPatternMatchingThreshold(int patternMatchingThreshold) {
+ this.patternMatchingThreshold = patternMatchingThreshold;
+ }
+
+ public long getDataRatisConsensusRequestTimeoutMs() {
+ return dataRatisConsensusRequestTimeoutMs;
+ }
+
+ public void setDataRatisConsensusRequestTimeoutMs(long dataRatisConsensusRequestTimeoutMs) {
+ this.dataRatisConsensusRequestTimeoutMs = dataRatisConsensusRequestTimeoutMs;
+ }
+
+ public long getSchemaRatisConsensusRequestTimeoutMs() {
+ return schemaRatisConsensusRequestTimeoutMs;
+ }
+
+ public void setSchemaRatisConsensusRequestTimeoutMs(long schemaRatisConsensusRequestTimeoutMs) {
+ this.schemaRatisConsensusRequestTimeoutMs = schemaRatisConsensusRequestTimeoutMs;
+ }
+
+ public int getDataRatisConsensusMaxRetryAttempts() {
+ return dataRatisConsensusMaxRetryAttempts;
+ }
+
+ public void setDataRatisConsensusMaxRetryAttempts(int dataRatisConsensusMaxRetryAttempts) {
+ this.dataRatisConsensusMaxRetryAttempts = dataRatisConsensusMaxRetryAttempts;
+ }
+
+ public int getSchemaRatisConsensusMaxRetryAttempts() {
+ return schemaRatisConsensusMaxRetryAttempts;
+ }
+
+ public void setSchemaRatisConsensusMaxRetryAttempts(int schemaRatisConsensusMaxRetryAttempts) {
+ this.schemaRatisConsensusMaxRetryAttempts = schemaRatisConsensusMaxRetryAttempts;
+ }
+
+ public long getDataRatisConsensusInitialSleepTimeMs() {
+ return dataRatisConsensusInitialSleepTimeMs;
+ }
+
+ public void setDataRatisConsensusInitialSleepTimeMs(long dataRatisConsensusInitialSleepTimeMs) {
+ this.dataRatisConsensusInitialSleepTimeMs = dataRatisConsensusInitialSleepTimeMs;
+ }
+
+ public long getSchemaRatisConsensusInitialSleepTimeMs() {
+ return schemaRatisConsensusInitialSleepTimeMs;
+ }
+
+ public void setSchemaRatisConsensusInitialSleepTimeMs(
+ long schemaRatisConsensusInitialSleepTimeMs) {
+ this.schemaRatisConsensusInitialSleepTimeMs = schemaRatisConsensusInitialSleepTimeMs;
+ }
+
+ public long getDataRatisConsensusMaxSleepTimeMs() {
+ return dataRatisConsensusMaxSleepTimeMs;
+ }
+
+ public void setDataRatisConsensusMaxSleepTimeMs(long dataRatisConsensusMaxSleepTimeMs) {
+ this.dataRatisConsensusMaxSleepTimeMs = dataRatisConsensusMaxSleepTimeMs;
+ }
+
+ public long getSchemaRatisConsensusMaxSleepTimeMs() {
+ return schemaRatisConsensusMaxSleepTimeMs;
+ }
+
+ public void setSchemaRatisConsensusMaxSleepTimeMs(long schemaRatisConsensusMaxSleepTimeMs) {
+ this.schemaRatisConsensusMaxSleepTimeMs = schemaRatisConsensusMaxSleepTimeMs;
+ }
}
diff --cc server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 1b9b4e3c30,19731bc330..6913df7cb0
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@@ -1950,12 -1952,19 +1953,23 @@@ public class IoTDBDescriptor
ratisConfig.getDataLeaderElectionTimeoutMax());
conf.setSchemaRatisConsensusLeaderElectionTimeoutMaxMs(
ratisConfig.getSchemaLeaderElectionTimeoutMax());
+
+ conf.setDataRatisConsensusRequestTimeoutMs(ratisConfig.getDataRequestTimeout());
+ conf.setSchemaRatisConsensusRequestTimeoutMs(ratisConfig.getSchemaRequestTimeout());
+
+ conf.setDataRatisConsensusMaxRetryAttempts(ratisConfig.getDataMaxRetryAttempts());
+ conf.setDataRatisConsensusInitialSleepTimeMs(ratisConfig.getDataInitialSleepTime());
+ conf.setDataRatisConsensusMaxSleepTimeMs(ratisConfig.getDataMaxSleepTime());
+
+ conf.setSchemaRatisConsensusMaxRetryAttempts(ratisConfig.getSchemaMaxRetryAttempts());
+ conf.setSchemaRatisConsensusInitialSleepTimeMs(ratisConfig.getSchemaInitialSleepTime());
+ conf.setSchemaRatisConsensusMaxSleepTimeMs(ratisConfig.getSchemaMaxSleepTime());
}
+ public void loadCQConfig(TCQConfig cqConfig) {
+ conf.setCqMinEveryIntervalInMs(cqConfig.getCqMinEveryIntervalInMs());
+ }
+
public void reclaimConsensusMemory() {
conf.setAllocateMemoryForStorageEngine(
conf.getAllocateMemoryForStorageEngine() + conf.getAllocateMemoryForConsensus());
diff --cc thrift-confignode/src/main/thrift/confignode.thrift
index fac5941545,d3d110d4bc..c5c5c5f0ac
--- a/thrift-confignode/src/main/thrift/confignode.thrift
+++ b/thrift-confignode/src/main/thrift/confignode.thrift
@@@ -36,7 -36,7 +36,8 @@@ struct TDataNodeRegisterResp
4: optional TGlobalConfig globalConfig
5: optional binary templateInfo
6: optional TRatisConfig ratisConfig
- 7: optional TCQConfig cqConfig
+ 7: optional list<binary> allTriggerInformation
++ 8: optional TCQConfig cqConfig
}
struct TGlobalConfig {
@@@ -70,12 -70,18 +71,22 @@@ struct TRatisConfig
13: required i64 schemaLeaderElectionTimeoutMax
14: required i64 dataLeaderElectionTimeoutMax
+
+ 15: required i64 schemaRequestTimeout
+ 16: required i64 dataRequestTimeout
+
+ 17: required i32 schemaMaxRetryAttempts
+ 18: required i32 dataMaxRetryAttempts
+ 19: required i64 schemaInitialSleepTime
+ 20: required i64 dataInitialSleepTime
+ 21: required i64 schemaMaxSleepTime
+ 22: required i64 dataMaxSleepTime
}
+struct TCQConfig {
+ 1: required i64 cqMinEveryIntervalInMs
+}
+
struct TDataNodeRemoveReq {
1: required list<common.TDataNodeLocation> dataNodeLocations
}