This is an automated email from the ASF dual-hosted git repository. marklau99 pushed a commit to branch IOTDB-4257 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 731679f7ded1e75c14921936d0bee10d59f4ee57 Merge: 65d859b4ca 2b9565dcb2 Author: Liu Xuxin <[email protected]> AuthorDate: Fri Oct 7 15:07:09 2022 +0800 merge with master .github/workflows/greetings.yml | 3 +- README.md | 8 +- README_ZH.md | 8 +- RELEASE_NOTES.md | 25 + .../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 6 +- .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 22 +- .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 36 +- cli/pom.xml | 5 + .../java/org/apache/iotdb/cli/AbstractCli.java | 5 +- cli/src/main/java/org/apache/iotdb/cli/Cli.java | 2 +- .../main/java/org/apache/iotdb/tool/ImportCsv.java | 30 +- client-cpp/src/main/CMakeLists.txt | 2 +- client-cpp/src/main/Session.cpp | 57 +- client-cpp/src/main/Session.h | 27 +- .../resources/conf/iotdb-confignode.properties | 68 +- .../confignode/client/DataNodeRequestType.java | 61 +- .../async/datanode/AsyncDataNodeClientPool.java | 139 +- .../async/handlers/AbstractRetryHandler.java | 19 + .../async/handlers/ConfigNodeHeartbeatHandler.java | 4 +- .../handlers/ConstructSchemaBlackListHandler.java | 95 ++ .../async/handlers/DataNodeHeartbeatHandler.java | 18 +- .../DeleteDataForDeleteTimeSeriesHandler.java | 103 ++ .../async/handlers/DeleteTimeSeriesHandler.java | 93 ++ .../handlers/FetchSchemaBlackLsitHandler.java | 101 ++ .../InvalidateMatchedSchemaCacheHandler.java | 95 ++ .../handlers/RollbackSchemaBlackListHandler.java | 99 ++ .../async/handlers/TriggerManagementHandler.java | 72 + .../client/async/task/AbstractDataNodeTask.java | 53 + .../task/ConstructSchemaBlackListDataNodeTask.java | 45 + .../DeleteDataForDeleteTimeSeriesDataNodeTask.java | 46 + .../async/task/DeleteTimeSeriesDataNodeTask.java | 45 + .../task/FetchSchemaBlackListDataNodeTask.java | 46 + .../InvalidateMatchedSchemaCacheDataNodeTask.java | 46 + .../task/RollbackSchemaBlackListDataNodeTask.java | 45 + .../sync/datanode/SyncDataNodeClientPool.java | 69 +- .../iotdb/confignode/conf/ConfigNodeConfig.java | 268 +++- .../confignode/conf/ConfigNodeDescriptor.java | 138 +- .../confignode/conf/ConfigNodeRemoveCheck.java | 30 +- .../confignode/conf/ConfigNodeStartupCheck.java | 7 + .../consensus/request/ConfigPhysicalPlan.java | 81 +- .../consensus/request/ConfigPhysicalPlanType.java | 11 +- .../request/read/GetNodePathsPartitionPlan.java | 2 +- .../request/read/GetTriggerTablePlan.java | 42 + .../write/AdjustMaxRegionGroupCountPlan.java | 89 - .../request/write/ApplyConfigNodePlan.java | 73 - .../request/write/CreateDataPartitionPlan.java | 99 -- .../request/write/CreateRegionGroupsPlan.java | 107 -- .../request/write/CreateSchemaPartitionPlan.java | 101 -- .../request/write/DeleteRegionGroupsPlan.java | 91 -- .../request/write/DeleteStorageGroupPlan.java | 70 - .../request/write/PreDeleteStorageGroupPlan.java | 87 - .../request/write/RemoveConfigNodePlan.java | 77 - .../write/SetDataReplicationFactorPlan.java | 81 - .../write/SetSchemaReplicationFactorPlan.java | 81 - .../request/write/SetStorageGroupPlan.java | 72 - .../consensus/request/write/SetTTLPlan.java | 91 -- .../write/SetTimePartitionIntervalPlan.java | 81 - .../write/confignode/ApplyConfigNodePlan.java | 73 + .../write/confignode/RemoveConfigNodePlan.java | 77 + .../write/partition/CreateDataPartitionPlan.java | 99 ++ .../write/partition/CreateSchemaPartitionPlan.java | 101 ++ .../write/region/CreateRegionGroupsPlan.java | 117 ++ .../write/region/OfferRegionMaintainTasksPlan.java | 80 + .../write/region/PollRegionMaintainTaskPlan.java | 43 + .../AdjustMaxRegionGroupCountPlan.java | 89 + .../write/storagegroup/DeleteStorageGroupPlan.java | 70 + .../storagegroup/PreDeleteStorageGroupPlan.java | 87 + .../storagegroup/SetDataReplicationFactorPlan.java | 81 + .../SetSchemaReplicationFactorPlan.java | 81 + .../write/storagegroup/SetStorageGroupPlan.java | 72 + .../request/write/storagegroup/SetTTLPlan.java | 91 ++ .../storagegroup/SetTimePartitionIntervalPlan.java | 81 + .../request/write/sync/CreatePipeSinkPlan.java | 57 + .../request/write/sync/DropPipeSinkPlan.java | 56 + .../request/write/sync/GetPipeSinkPlan.java | 55 + .../write/trigger/AddTriggerInTablePlan.java | 84 + .../write/trigger/DeleteTriggerInTablePlan.java | 62 + .../trigger/UpdateTriggerStateInTablePlan.java | 75 + .../consensus/response/DataNodeRegisterResp.java | 7 + .../consensus/response/PipeSinkResp.java | 47 + .../consensus/response/TriggerTableResp.java | 70 + .../statemachine/PartitionRegionStateMachine.java | 41 +- .../NotAvailableRegionGroupException.java | 27 + .../confignode/manager/ClusterSchemaManager.java | 33 +- .../iotdb/confignode/manager/ConfigManager.java | 267 ++- .../iotdb/confignode/manager/ConsensusManager.java | 85 +- .../apache/iotdb/confignode/manager/IManager.java | 74 +- .../iotdb/confignode/manager/NodeManager.java | 646 -------- .../iotdb/confignode/manager/PartitionManager.java | 620 ------- .../iotdb/confignode/manager/ProcedureManager.java | 132 +- .../iotdb/confignode/manager/SyncManager.java | 101 ++ .../iotdb/confignode/manager/TriggerManager.java | 112 ++ .../iotdb/confignode/manager/load/LoadManager.java | 23 +- .../manager/load/LoadManagerMetrics.java | 292 ++-- .../manager/load/balancer/PartitionBalancer.java | 7 +- .../manager/load/balancer/RegionBalancer.java | 46 +- .../manager/load/balancer/RouteBalancer.java | 9 +- .../partition/GreedyPartitionAllocator.java | 180 ++- .../balancer/partition/IPartitionAllocator.java | 7 +- .../balancer/region/CopySetRegionAllocator.java | 4 +- .../balancer/region/GreedyRegionAllocator.java | 4 +- .../load/balancer/region/IRegionAllocator.java | 4 +- .../manager/load/heartbeat/BaseNodeCache.java | 74 - .../load/heartbeat/ConfigNodeHeartbeatCache.java | 85 - .../load/heartbeat/DataNodeHeartbeatCache.java | 102 -- .../manager/load/heartbeat/IRegionGroupCache.java | 59 - .../load/heartbeat/NodeHeartbeatSample.java | 68 - .../manager/load/heartbeat/RegionGroupCache.java | 122 -- .../load/heartbeat/RegionHeartbeatSample.java | 56 - .../confignode/manager/node/BaseNodeCache.java | 80 + .../manager/node/ConfigNodeHeartbeatCache.java | 78 + .../manager/node/DataNodeHeartbeatCache.java | 80 + .../manager/node/NodeHeartbeatSample.java | 87 + .../iotdb/confignode/manager/node/NodeManager.java | 768 +++++++++ .../manager/partition/PartitionManager.java | 842 ++++++++++ .../confignode/manager/partition/RegionCache.java | 91 ++ .../manager/partition/RegionGroupCache.java | 122 ++ .../manager/partition/RegionGroupStatus.java | 59 + .../manager/partition/RegionHeartbeatSample.java | 68 + .../iotdb/confignode/persistence/NodeInfo.java | 34 +- .../iotdb/confignode/persistence/TriggerInfo.java | 175 ++ .../iotdb/confignode/persistence/UDFInfo.java | 4 +- .../persistence/executor/ConfigPlanExecutor.java | 65 +- .../persistence/metric/NodeInfoMetrics.java | 95 ++ .../persistence/metric/PartitionInfoMetrics.java | 198 +++ .../persistence/partition/PartitionInfo.java | 206 ++- .../persistence/partition/RegionCreateTask.java | 135 ++ .../persistence/partition/RegionDeleteTask.java | 98 ++ .../persistence/partition/RegionGroup.java | 68 +- .../persistence/partition/RegionMaintainTask.java | 131 ++ .../persistence/partition/RegionMaintainType.java | 24 + .../partition/StorageGroupPartitionTable.java | 164 +- .../persistence/schema/ClusterSchemaInfo.java | 14 +- .../persistence/sync/ClusterSyncInfo.java | 121 ++ .../confignode/procedure/ProcedureExecutor.java | 1 + .../procedure/env/ConfigNodeProcedureEnv.java | 125 +- .../procedure/env/DataNodeRemoveHandler.java | 301 ++-- .../procedure/impl/AbstractNodeProcedure.java | 6 +- .../impl/CreateRegionGroupsProcedure.java | 219 ++- .../procedure/impl/CreateTriggerProcedure.java | 295 ++++ .../impl/DeleteStorageGroupProcedure.java | 36 +- .../procedure/impl/DeleteTimeSeriesProcedure.java | 665 ++++++++ .../procedure/impl/DropTriggerProcedure.java | 175 ++ .../procedure/impl/RegionMigrateProcedure.java | 91 +- .../procedure/state/CreateRegionGroupsState.java | 11 +- .../procedure/state/CreateTriggerState.java | 29 + .../procedure/state/DeleteTimeSeriesState.java | 27 + .../procedure/state/DropTriggerState.java | 27 + .../procedure/state/RegionTransitionState.java | 4 +- .../procedure/state/RemoveConfigNodeState.java | 3 +- .../procedure/store/ProcedureFactory.java | 33 +- .../iotdb/confignode/service/ConfigNode.java | 7 +- .../confignode/service/ConfigNodeCommandLine.java | 11 +- .../service/thrift/ConfigNodeRPCService.java | 17 +- .../thrift/ConfigNodeRPCServiceHandler.java | 28 +- .../thrift/ConfigNodeRPCServiceHandlerMetrics.java | 69 + .../thrift/ConfigNodeRPCServiceMetrics.java | 70 + .../thrift/ConfigNodeRPCServiceProcessor.java | 60 +- .../request/ConfigPhysicalPlanSerDeTest.java | 234 ++- .../hash/DeviceGroupHashExecutorManualTest.java | 2 +- .../load/balancer/router/LeaderRouterTest.java | 62 +- .../balancer/router/LoadScoreGreedyRouterTest.java | 6 +- .../manager/partition/RegionGroupCacheTest.java | 124 ++ .../persistence/ClusterSchemaInfoTest.java | 2 +- .../persistence/ClusterSyncInfoTest.java | 116 ++ .../confignode/persistence/PartitionInfoTest.java | 39 +- .../impl/CreateRegionGroupsProcedureTest.java | 118 ++ .../procedure/impl/CreateTriggerProcedureTest.java | 111 ++ .../impl/DeleteStorageGroupProcedureTest.java | 57 + .../impl/DeleteTimeSeriesProcedureTest.java | 67 + .../procedure/impl/DropTriggerProcedureTest.java | 55 + .../thrift/ConfigNodeRPCServiceProcessorTest.java | 4 +- .../confignode1conf/iotdb-confignode.properties | 19 +- .../confignode2conf/iotdb-confignode.properties | 11 +- .../confignode3conf/iotdb-confignode.properties | 11 +- .../org/apache/iotdb/consensus/IStateMachine.java | 33 + .../request/BatchIndexedConsensusRequest.java | 8 +- .../iotdb/consensus/config/MultiLeaderConfig.java | 13 +- .../apache/iotdb/consensus/config/RatisConfig.java | 132 +- .../exception/ConsensusGroupAddPeerException.java | 34 + .../consensus/exception/NodeReadOnlyException.java | 30 + .../multileader/MultiLeaderConsensus.java | 91 +- .../multileader/MultiLeaderServerImpl.java | 337 +++- .../multileader/client/DispatchLogHandler.java | 10 +- .../client/MultiLeaderConsensusClientPool.java | 24 + .../client/SyncMultiLeaderServiceClient.java | 144 ++ .../multileader/logdispatcher/IndexController.java | 43 +- .../multileader/logdispatcher/LogDispatcher.java | 158 +- .../multileader/service/MultiLeaderRPCService.java | 4 +- .../service/MultiLeaderRPCServiceProcessor.java | 179 ++- .../multileader/snapshot/SnapshotFragment.java | 81 + .../snapshot/SnapshotFragmentReader.java | 69 + .../ratis/ApplicationStateMachineProxy.java | 68 +- .../iotdb/consensus/ratis/RatisConsensus.java | 114 +- .../iotdb/consensus/ratis/SnapshotStorage.java | 98 +- .../org/apache/iotdb/consensus/ratis/Utils.java | 7 + .../multileader/MultiLeaderConsensusTest.java | 64 +- .../logdispatcher/IndexControllerTest.java | 41 +- .../multileader/logdispatcher/SyncStatusTest.java | 13 +- .../iotdb/consensus/ratis/RatisConsensusTest.java | 21 + .../apache/iotdb/consensus/ratis/SnapshotTest.java | 2 + docs/Development/HowtoContributeCode.md | 2 +- docs/Download/README.md | 42 +- docs/UserGuide/API/Programming-Java-Native-API.md | 2 +- docs/UserGuide/API/RestService.md | 6 +- docs/UserGuide/API/Status-Codes.md | 5 +- .../Administration-Management/Administration.md | 6 +- docs/UserGuide/{Process-Data => Alert}/Alerting.md | 0 docs/UserGuide/Alert/Triggers.md | 1000 ++++++++++++ docs/UserGuide/Cluster/Cluster-Setup.md | 70 +- .../Data-Concept/Data-Model-and-Terminology.md | 4 +- docs/UserGuide/Data-Concept/Data-Type.md | 2 +- docs/UserGuide/Data-Concept/Time-Partition.md | 18 +- docs/UserGuide/Data-Concept/Time-zone.md | 2 +- docs/UserGuide/Data-Modeling/DataRegion.md | 2 +- docs/UserGuide/Delete-Data/Delete-Data.md | 98 ++ .../{Operate-Metadata => Delete-Data}/TTL.md | 0 .../DBeaver.md | 0 .../Flink-IoTDB.md} | 0 .../Flink-TsFile.md} | 0 .../Grafana-Connector.md} | 0 .../Grafana-Plugin.md} | 0 .../Hive-TsFile.md} | 0 .../MapReduce-TsFile.md} | 0 docs/UserGuide/Ecosystem-Integration/NiFi-IoTDB.md | 115 ++ .../Spark-IoTDB.md} | 0 .../Spark-TsFile.md} | 0 .../Writing-Data-on-HDFS.md} | 0 .../Zeppelin-IoTDB.md | 0 docs/UserGuide/Maintenance-Tools/Log-Tool.md | 68 + .../UserGuide/Maintenance-Tools/MLogParser-Tool.md | 4 +- .../Maintenance-Tools/Maintenance-Command.md | 360 +++-- docs/UserGuide/Maintenance-Tools/Metric-Tool.md | 128 +- .../Maintenance-Tools/Monitor-and-Log-Tools.md | 115 -- docs/UserGuide/Operate-Metadata/Timeseries.md | 3 +- docs/UserGuide/Process-Data/Triggers.md | 1000 ------------ docs/UserGuide/Query-Data/Fill-Null-Value.md | 6 +- docs/UserGuide/Query-Data/Last-Query.md | 18 +- docs/UserGuide/Query-Data/Select-Expression.md | 65 +- .../UserGuide/QuickStart/Command-Line-Interface.md | 16 +- docs/UserGuide/QuickStart/Files.md | 8 +- docs/UserGuide/QuickStart/QuickStart.md | 12 +- .../Reference/ConfigNode-Config-Manual.md | 13 +- docs/UserGuide/Reference/DataNode-Config-Manual.md | 31 +- docs/UserGuide/Reference/SQL-Reference.md | 3 +- docs/UserGuide/Reference/Syntax-Conventions.md | 5 - .../UserGuide/Write-And-Delete-Data/Delete-Data.md | 98 -- .../Write-And-Delete-Data/Load-External-Tsfile.md | 92 -- .../CSV-Tool.md | 0 docs/UserGuide/Write-Data/Load-External-Tsfile.md | 94 ++ .../TsFile-Tool.md | 0 .../Write-Data.md | 0 docs/zh/Development/HowtoContributeCode.md | 2 +- docs/zh/Download/README.md | 42 +- .../UserGuide/API/Programming-Java-Native-API.md | 2 +- docs/zh/UserGuide/API/Programming-MQTT.md | 2 +- docs/zh/UserGuide/API/RestService.md | 8 +- docs/zh/UserGuide/API/Status-Codes.md | 3 +- .../Administration-Management/Administration.md | 6 +- .../UserGuide/{Process-Data => Alert}/Alerting.md | 0 docs/zh/UserGuide/Alert/Triggers.md | 935 +++++++++++ docs/zh/UserGuide/Cluster/Cluster-Setup.md | 68 +- .../Data-Concept/Data-Model-and-Terminology.md | 4 +- docs/zh/UserGuide/Data-Concept/Data-Type.md | 2 +- docs/zh/UserGuide/Data-Concept/Time-Partition.md | 24 +- docs/zh/UserGuide/Data-Concept/Time-zone.md | 2 +- docs/zh/UserGuide/Data-Modeling/DataRegion.md | 2 +- docs/zh/UserGuide/Delete-Data/Delete-Data.md | 92 ++ .../{Operate-Metadata => Delete-Data}/TTL.md | 0 .../DBeaver.md | 0 .../Flink-IoTDB.md} | 0 .../Flink-TsFile.md} | 0 .../Grafana-Connector.md} | 0 .../Grafana-Plugin.md} | 0 .../Hive-TsFile.md} | 0 .../MapReduce-TsFile.md} | 0 .../UserGuide/Ecosystem-Integration/NiFi-IoTDB.md | 115 ++ .../Spark-IoTDB.md} | 0 .../Spark-TsFile.md} | 0 .../Writing-Data-on-HDFS.md} | 0 .../Zeppelin-IoTDB.md | 0 docs/zh/UserGuide/Maintenance-Tools/Log-Tool.md | 68 + .../UserGuide/Maintenance-Tools/MLogParser-Tool.md | 4 +- .../Maintenance-Tools/Maintenance-Command.md | 362 ++--- docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md | 148 +- .../Maintenance-Tools/Monitor-and-Log-Tools.md | 117 -- docs/zh/UserGuide/Operate-Metadata/Timeseries.md | 3 +- docs/zh/UserGuide/Process-Data/Triggers.md | 935 ----------- docs/zh/UserGuide/Query-Data/Fill-Null-Value.md | 6 +- docs/zh/UserGuide/Query-Data/Last-Query.md | 18 +- docs/zh/UserGuide/Query-Data/Select-Expression.md | 63 +- .../UserGuide/QuickStart/Command-Line-Interface.md | 16 +- docs/zh/UserGuide/QuickStart/Files.md | 8 +- docs/zh/UserGuide/QuickStart/QuickStart.md | 8 +- .../Reference/ConfigNode-Config-Manual.md | 17 +- .../UserGuide/Reference/DataNode-Config-Manual.md | 41 +- docs/zh/UserGuide/Reference/SQL-Reference.md | 3 +- docs/zh/UserGuide/Reference/Syntax-Conventions.md | 8 - .../UserGuide/Write-And-Delete-Data/Delete-Data.md | 92 -- .../Write-And-Delete-Data/Load-External-Tsfile.md | 91 -- .../CSV-Tool.md | 0 .../UserGuide/Write-Data/Load-External-Tsfile.md | 93 ++ .../TsFile-Tool.md | 0 .../Write-Data.md | 0 example/ext-pipe-plugin-example/pom.xml | 12 +- .../iotdb/extpipe/ExtPipeSinkWriterFactory.java | 47 +- .../iotdb/extpipe/ExtPipeSinkWriterImpl.java | 124 +- example/influxdb-protocol-example/pom.xml | 39 + .../org/apache/iotdb/influxdb/InfluxDBExample.java | 0 example/inflxudb-protocol-example/pom.xml | 39 - example/pom.xml | 3 + .../main/java/org/apache/iotdb/HttpExample.java | 7 +- .../main/java/org/apache/iotdb/HttpsExample.java | 16 +- .../src/main/java/org/apache/iotdb/SSLClient.java | 65 +- .../org/apache/iotdb/trigger/AlertingExample.java | 108 -- .../org/apache/iotdb/trigger/SimpleTrigger.java | 38 + .../org/apache/iotdb/trigger/TriggerExample.java | 147 -- .../apache/iotdb/trigger/old/AlertingExample.java | 108 ++ .../apache/iotdb/trigger/old/TriggerExample.java | 147 ++ .../pipe/external/api/IExternalPipeSinkWriter.java | 30 +- .../Apache IoTDB ConfigNode Dashboard v0.14.0.json | 12 +- .../Apache IoTDB DataNode Dashboard v0.14.0.json | 22 +- .../standalone/Apache IoTDB Dashboard v0.13.1.json | 1527 ------------------ .../standalone/Apache IoTDB Dashboard v0.14.0.json | 8 +- hive-connector/pom.xml | 2 +- .../iotdb/influxdb/session/InfluxDBSession.java | 16 +- integration-test/checkstyle.xml | 2 +- integration-test/import-control.xml | 7 + .../java/org/apache/iotdb/it/env/AbstractEnv.java | 24 +- .../apache/iotdb/it/env/AbstractNodeWrapper.java | 4 +- .../java/org/apache/iotdb/it/env/Cluster1Env.java | 6 + .../org/apache/iotdb/it/env/ConfigFactory.java | 1 - .../java/org/apache/iotdb/it/env/MppConfig.java | 40 + .../org/apache/iotdb/it/env/RemoteServerEnv.java | 25 + .../apache/iotdb/it/env/StandaloneOnMppEnv.java | 5 + .../iotdb/it/framework/IoTDBTestReporter.java | 18 +- .../org/apache/iotdb/itbase/env/BaseConfig.java | 52 + .../java/org/apache/iotdb/itbase/env/BaseEnv.java | 71 + .../iotdb/confignode/IoTDBClusterPartitionIT.java | 575 +++++++ .../apache/iotdb/confignode/IoTDBConfigNodeIT.java | 848 ++++++++++ .../confignode/IoTDBConfigNodeSnapshotIT.java | 186 +++ .../org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java | 570 +++++++ .../java/org/apache/iotdb/db/it/IoTDBAuthIT.java | 25 +- .../db/it/IoTDBClusterPartitionTableTest.java | 308 ---- .../org/apache/iotdb/db/it/IoTDBCompleteIT.java | 495 ------ .../org/apache/iotdb/db/it/IoTDBConfigNodeIT.java | 848 ---------- .../org/apache/iotdb/db/it/IoTDBDeletionIT.java | 2 +- .../java/org/apache/iotdb/db/it/IoTDBFilterIT.java | 119 ++ .../org/apache/iotdb/db/it/IoTDBNestedQueryIT.java | 2 +- .../db/it/IoTDBSyntaxConventionIdentifierIT.java | 10 + .../it/IoTDBSyntaxConventionStringLiteralIT.java | 8 - .../db/it/alignbydevice/IoTDBAlignByDeviceIT.java | 2 +- .../db/it/aligned/IoTDBAlignedDataDeletionIT.java | 2 +- .../db/it/aligned/IoTDBInsertAlignedValuesIT.java | 34 + .../org/apache/iotdb/db/it/env/StandaloneEnv.java | 63 + .../iotdb/db/it/env/StandaloneEnvConfig.java | 29 + .../apache/iotdb/db/it/groupby/IoTDBHavingIT.java | 125 +- .../it/schema/IoTDBCreateAlignedTimeseriesIT.java | 9 +- .../it/schema/IoTDBDeleteAlignedTimeseriesIT.java | 248 +++ .../db/it/schema/IoTDBDeleteTimeseriesIT.java | 459 ++++++ .../iotdb/db/it/schema/IoTDBSchemaTemplateIT.java | 136 ++ .../org/apache/iotdb/db/it/schema/IoTDBTagIT.java | 23 +- .../org/apache/iotdb/db/it/sync/IoTDBPipeIT.java | 129 ++ .../apache/iotdb/db/it/sync/IoTDBPipeSinkIT.java | 22 +- .../iotdb/session/IoTDBSessionAlignedInsertIT.java | 454 ++++++ .../iotdb/session/IoTDBSessionComplexIT.java | 557 +++++++ .../session/IoTDBSessionDisableMemControlIT.java | 220 +++ .../iotdb/session/IoTDBSessionInsertNulIT.java | 358 +++++ .../apache/iotdb/session/IoTDBSessionSimpleIT.java | 1633 +++++++++++++++++++ .../session/IoTDBSessionSyntaxConventionIT.java | 428 +++++ .../java/org/apache/iotdb/session/SessionTest.java | 180 +++ .../db/engine/trigger/example/Accumulator.java | 2 +- .../iotdb/db/engine/trigger/example/Counter.java | 2 +- .../iotdb/db/integration/IoTDBAuthorizationIT.java | 25 +- .../iotdb/db/integration/IoTDBCompleteIT.java | 491 ------ .../IoTDBCreateAlignedTimeseriesIT.java | 115 -- .../db/integration/IoTDBDeleteTimeseriesIT.java | 215 --- .../db/integration/IoTDBEngineTimeGeneratorIT.java | 2 +- .../db/integration/IoTDBLoadExternalTsfileIT.java | 9 +- .../iotdb/db/integration/IoTDBSeriesReaderIT.java | 2 +- .../apache/iotdb/db/integration/IoTDBTagIT.java | 315 ---- .../aligned/IoTDBDeleteTimeseriesIT.java | 281 ---- .../aligned/IoTDBLoadExternalAlignedTsFileIT.java | 9 +- .../db/integration/sync/IoTDBSyncReceiverIT.java | 5 +- .../sync/IoTDBSyncReceiverLoaderIT.java | 2 +- .../db/integration/sync/IoTDBSyncSenderIT.java | 3 +- .../IoTDBDeletionVersionAdaptionIT.java | 2 +- .../session/IoTDBSessionAlignedABDeviceIT.java | 234 +++ .../session/IoTDBSessionAlignedAggregationIT.java | 262 +++ .../IoTDBSessionAlignedAggregationWithUnSeqIT.java | 195 +++ .../iotdb/session/IoTDBSessionComplexIT.java | 929 ----------- .../session/IoTDBSessionDisableMemControlIT.java | 202 --- .../apache/iotdb/session/IoTDBSessionSimpleIT.java | 1692 -------------------- .../session/IoTDBSessionSyntaxConventionIT.java | 415 ----- .../session/IoTDBSessionVectorABDeviceIT.java | 233 --- .../session/IoTDBSessionVectorAggregationIT.java | 262 --- .../IoTDBSessionVectorAggregationWithUnSeqIT.java | 195 --- .../iotdb/session/IoTDBSessionVectorInsertIT.java | 516 ------ .../java/org/apache/iotdb/session/SessionTest.java | 673 -------- .../apache/iotdb/session/pool/SessionPoolTest.java | 16 +- jdbc/README.md | 2 +- library-udf/pom.xml | 2 +- .../reporter/DropwizardPrometheusReporter.java | 7 +- metrics/interface/pom.xml | 2 +- .../iotdb/metrics/AbstractMetricService.java | 65 +- .../iotdb/metrics/DoNothingMetricService.java | 2 +- .../apache/iotdb/metrics/config/MetricConfig.java | 4 +- .../iotdb/metrics/metricsets/IMetricSet.java | 31 + .../metricsets/predefined/PredefinedMetric.java | 33 + .../predefined/jvm/JvmClassLoaderMetrics.java | 52 + .../predefined/jvm/JvmCompileMetrics.java | 54 + .../metricsets/predefined/jvm/JvmGcMetrics.java | 346 ++++ .../predefined/jvm/JvmMemoryMetrics.java | 133 ++ .../metricsets/predefined/jvm/JvmMetrics.java | 52 + .../predefined/jvm/JvmThreadMetrics.java | 102 ++ .../metricsets/predefined/jvm/JvmUtils.java | 46 + .../predefined/logback/LogbackMetrics.java | 104 ++ .../predefined/logback/MetricsTurboFilter.java | 98 ++ .../iotdb/metrics/predefined/IMetricSet.java | 36 - .../iotdb/metrics/predefined/PredefinedMetric.java | 33 - .../predefined/jvm/JvmClassLoaderMetrics.java | 52 - .../metrics/predefined/jvm/JvmCompileMetrics.java | 50 - .../iotdb/metrics/predefined/jvm/JvmGcMetrics.java | 291 ---- .../metrics/predefined/jvm/JvmMemoryMetrics.java | 104 -- .../iotdb/metrics/predefined/jvm/JvmMetrics.java | 49 - .../metrics/predefined/jvm/JvmThreadMetrics.java | 87 - .../iotdb/metrics/predefined/jvm/JvmUtils.java | 46 - .../metrics/predefined/logback/LogbackMetrics.java | 181 --- .../reporter/MicrometerPrometheusReporter.java | 9 +- node-commons/pom.xml | 37 + .../iotdb/commons/client/ClientPoolFactory.java | 6 +- .../sync/SyncThriftClientWithErrorHandler.java | 6 +- .../apache/iotdb/commons/cluster/NodeStatus.java | 9 +- .../apache/iotdb/commons/cluster/RegionStatus.java | 24 +- .../iotdb/commons/concurrent/ThreadName.java | 62 +- .../apache/iotdb/commons/conf/CommonConfig.java | 92 ++ .../iotdb/commons/conf/CommonDescriptor.java | 20 + .../apache/iotdb/commons/conf/IoTDBConstant.java | 30 +- .../commons/enums/HandleSystemErrorStrategy.java | 48 + .../commons/exception/ConfigurationException.java | 23 +- .../runtime/SerializationRunTimeException.java | 27 + .../exception/sync/PipeDataLoadException.java | 25 + .../commons/exception/sync/PipeException.java | 36 + .../exception/sync/PipeServerException.java | 34 + .../commons/exception/sync/PipeSinkException.java | 42 + .../commons/executable/ExecutableManager.java | 239 +++ .../commons/executable/ExecutableResource.java | 39 + .../iotdb/commons/file/SystemFileFactory.java | 11 + .../iotdb/commons/partition/DataPartition.java | 29 +- .../commons/partition/DataPartitionTable.java | 14 +- .../commons/partition/SchemaPartitionTable.java | 18 +- .../commons/partition/SeriesPartitionTable.java | 19 +- .../org/apache/iotdb/commons/path/AlignedPath.java | 348 ++++ .../apache/iotdb/commons/path/MeasurementPath.java | 262 +++ .../org/apache/iotdb/commons/path/PartialPath.java | 149 +- .../iotdb/commons/path/PathDeserializeUtil.java | 42 + .../apache/iotdb/commons/path/PathPatternNode.java | 276 ++++ .../apache/iotdb/commons/path/PathPatternTree.java | 272 ++++ .../org/apache/iotdb/commons/path/PathType.java | 9 +- .../apache/iotdb/commons/path/PatternTreeMap.java | 199 +++ .../apache/iotdb/commons/service/ServiceType.java | 2 +- .../apache/iotdb/commons/sync/SyncConstant.java | 85 - .../apache/iotdb/commons/sync/SyncPathUtil.java | 143 -- .../iotdb/commons/sync/metadata/SyncMetadata.java | 275 ++++ .../commons/sync/persistence/SyncLogReader.java | 119 ++ .../commons/sync/persistence/SyncLogWriter.java | 95 ++ .../apache/iotdb/commons/sync/pipe/PipeInfo.java | 145 ++ .../iotdb/commons/sync/pipe/PipeMessage.java | 58 + .../apache/iotdb/commons/sync/pipe/PipeStatus.java | 26 + .../iotdb/commons/sync/pipe/SyncOperation.java | 28 + .../iotdb/commons/sync/pipe/TsFilePipeInfo.java | 130 ++ .../iotdb/commons/sync/pipesink/IoTDBPipeSink.java | 177 ++ .../iotdb/commons/sync/pipesink/PipeSink.java | 73 + .../iotdb/commons/sync/utils/SyncConstant.java | 86 + .../iotdb/commons/sync/utils/SyncPathUtil.java | 161 ++ .../iotdb/commons/trigger/TriggerInformation.java | 221 +++ .../apache/iotdb/commons/trigger/TriggerTable.java | 91 ++ .../exception/TriggerExecutionException.java | 30 + .../exception/TriggerJarTooLargeException.java | 30 + .../exception/TriggerManagementException.java | 30 + .../trigger/service/TriggerExecutableManager.java | 51 + .../commons/udf/service/UDFClassLoaderManager.java | 12 +- .../commons/udf/service/UDFExecutableManager.java | 106 +- .../commons/udf/service/UDFExecutableResource.java | 39 - .../udf/service/UDFRegistrationService.java | 9 +- .../apache/iotdb/commons/utils/NodeUrlUtils.java | 11 +- .../apache/iotdb/commons/utils/StatusUtils.java | 2 +- .../commons/utils/ThriftConfigNodeSerDeUtils.java | 19 + .../client/mock/MockInternalRPCService.java | 4 +- .../apache/iotdb/commons/path/PartialPathTest.java | 66 +- .../iotdb/commons/path/PathPatternTreeTest.java | 225 +++ openapi/src/main/openapi3/iotdb-rest.yaml | 10 +- pom.xml | 5 +- .../schemaregion/rocksdb/RSchemaRegion.java | 48 +- .../rocksdb/mnode/RMeasurementMNode.java | 10 +- .../resources/conf/iotdb-datanode.properties | 75 +- .../org/apache/iotdb/db/auth/AuthorityChecker.java | 15 +- .../apache/iotdb/db/client/ConfigNodeClient.java | 158 +- .../iotdb/db/client/DataNodeClientPoolFactory.java | 36 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 380 ++++- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 159 +- .../org/apache/iotdb/db/conf/IoTDBStartCheck.java | 8 +- .../org/apache/iotdb/db/conf/IoTDBStopCheck.java | 76 - .../db/conf/directories/DirectoryManager.java | 5 +- .../iotdb/db/conf/directories/FolderManager.java | 6 +- .../directories/strategy/DirectoryStrategy.java | 4 +- .../db/consensus/DataRegionConsensusImpl.java | 44 +- .../db/consensus/SchemaRegionConsensusImpl.java | 46 + .../consensus/statemachine/BaseStateMachine.java | 5 +- .../statemachine/DataRegionStateMachine.java | 191 ++- .../statemachine/SchemaRegionStateMachine.java | 22 +- .../statemachine/visitor/DataExecutionVisitor.java | 2 +- .../org/apache/iotdb/db/engine/StorageEngine.java | 5 +- .../apache/iotdb/db/engine/StorageEngineV2.java | 142 +- .../iotdb/db/engine/TsFileMetricManager.java | 69 + .../apache/iotdb/db/engine/cache/ChunkCache.java | 16 +- .../iotdb/db/engine/cache/ChunkCacheMetrics.java | 67 + .../db/engine/cache/TimeSeriesMetadataCache.java | 35 +- .../cache/TimeSeriesMetadataCacheMetrics.java | 77 + .../engine/compaction/CompactionTaskManager.java | 6 +- .../compaction/cross/CrossSpaceCompactionTask.java | 29 +- .../RewriteCrossSpaceCompactionSelector.java | 57 +- .../rewrite/task/ReadPointPerformerSubTask.java | 10 +- .../compaction/inner/InnerSpaceCompactionTask.java | 7 + .../utils/AlignedSeriesCompactionExecutor.java | 1 + .../inner/utils/MultiTsFileDeviceIterator.java | 76 +- .../utils/SingleSeriesCompactionExecutor.java | 1 + .../compaction/performer/ICompactionPerformer.java | 4 +- .../impl/ReadChunkCompactionPerformer.java | 15 +- .../impl/ReadPointCompactionPerformer.java | 198 +-- .../compaction/reader/SeriesDataBlockReader.java | 4 +- .../compaction/task/CompactionRecoverTask.java | 10 +- .../writer/AbstractCompactionWriter.java | 12 +- .../writer/CrossSpaceCompactionWriter.java | 67 +- .../writer/InnerSpaceCompactionWriter.java | 50 +- .../apache/iotdb/db/engine/flush/FlushManager.java | 31 +- .../iotdb/db/engine/flush/FlushManagerMBean.java | 2 + .../iotdb/db/engine/flush/FlushManagerMetrics.java | 90 ++ .../iotdb/db/engine/flush/MemTableFlushTask.java | 23 +- .../iotdb/db/engine/load/AlignedChunkData.java | 499 ++++++ .../org/apache/iotdb/db/engine/load/ChunkData.java | 72 + .../iotdb/db/engine/load/LoadTsFileManager.java | 306 ++++ .../iotdb/db/engine/load/NonAlignedChunkData.java | 366 +++++ .../iotdb/db/engine/memtable/AbstractMemTable.java | 126 +- .../engine/memtable/AlignedWritableMemChunk.java | 183 ++- .../memtable/AlignedWritableMemChunkGroup.java | 32 +- .../db/engine/memtable/IWritableMemChunk.java | 16 +- .../db/engine/memtable/IWritableMemChunkGroup.java | 5 +- .../iotdb/db/engine/memtable/WritableMemChunk.java | 29 +- .../db/engine/memtable/WritableMemChunkGroup.java | 64 +- .../iotdb/db/engine/modification/Deletion.java | 54 +- .../iotdb/db/engine/snapshot/SnapshotLoader.java | 15 +- .../iotdb/db/engine/snapshot/SnapshotTaker.java | 28 +- .../iotdb/db/engine/storagegroup/DataRegion.java | 169 +- .../db/engine/storagegroup/DataRegionMetrics.java | 73 + .../db/engine/storagegroup/TsFileManager.java | 14 +- .../db/engine/storagegroup/TsFileProcessor.java | 66 +- .../engine/storagegroup/TsFileProcessorInfo.java | 32 +- .../storagegroup/TsFileProcessorInfoMetrics.java | 74 + .../db/engine/storagegroup/TsFileResource.java | 65 +- .../dataregion/StorageGroupManager.java | 10 - .../storagegroup/timeindex/DeviceTimeIndex.java | 52 + .../storagegroup/timeindex/FileTimeIndex.java | 51 +- .../engine/storagegroup/timeindex/ITimeIndex.java | 24 + .../storagegroup/timeindex/V012FileTimeIndex.java | 32 +- .../iotdb/db/engine/trigger/api/Trigger.java | 1 + .../db/engine/trigger/api/TriggerAttributes.java | 98 -- .../db/engine/trigger/builtin/ForwardTrigger.java | 2 +- .../engine/trigger/executor/TriggerExecutor.java | 4 +- .../engine/trigger/service/TriggerClassLoader.java | 55 - .../trigger/service/TriggerClassLoaderManager.java | 1 + .../service/TriggerRegistrationService.java | 3 +- .../trigger/sink/local/LocalIoTDBHandler.java | 4 +- .../db/exception/VerifyMetadataException.java | 38 + .../metadata/DataTypeMismatchException.java | 4 +- .../metadata/MeasurementAlreadyExistException.java | 2 +- .../metadata/MeasurementInBlackListException.java | 41 + .../schemafile/ColossalRecordException.java | 53 + .../schemafile/SchemaPageOverflowException.java | 3 +- .../schemafile/SegmentNotFoundException.java | 11 + .../schemafile/SegmentOverflowException.java | 7 + .../runtime/SerializationRunTimeException.java | 27 - .../iotdb/db/exception/sql/SemanticException.java | 4 + .../db/exception/sync/PipeDataLoadException.java | 25 - .../iotdb/db/exception/sync/PipeException.java | 36 - .../db/exception/sync/PipeServerException.java | 34 - .../iotdb/db/exception/sync/PipeSinkException.java | 42 - .../iotdb/db/localconfignode/LocalConfigNode.java | 135 +- .../db/localconfignode/LocalDataPartitionInfo.java | 110 ++ .../localconfignode/LocalDataPartitionTable.java | 158 +- .../iotdb/db/metadata/LocalSchemaProcessor.java | 2 +- .../db/metadata/cache/DataNodeSchemaCache.java | 51 +- .../metadata/cache/DataNodeSchemaCacheMetrics.java | 67 + .../apache/iotdb/db/metadata/idtable/IDTable.java | 4 +- .../idtable/entry/InsertMeasurementMNode.java | 10 +- .../db/metadata/lastCache/LastCacheManager.java | 2 +- .../iotdb/db/metadata/logfile/MLogWriter.java | 4 +- .../iotdb/db/metadata/mnode/IMeasurementMNode.java | 6 +- .../iotdb/db/metadata/mnode/MeasurementMNode.java | 14 +- .../iotdb/db/metadata/mtree/IMTreeBelowSG.java | 2 +- .../db/metadata/mtree/MTreeBelowSGCachedImpl.java | 2 +- .../db/metadata/mtree/MTreeBelowSGMemoryImpl.java | 150 +- .../mtree/snapshot/MemMTreeSnapshotUtil.java | 2 + .../store/disk/schemafile/AliasIndexPage.java | 518 ++++++ .../mtree/store/disk/schemafile/ISchemaPage.java | 171 +- .../mtree/store/disk/schemafile/ISegment.java | 71 +- .../store/disk/schemafile/ISegmentedPage.java | 97 ++ .../mtree/store/disk/schemafile/InternalPage.java | 583 +++++++ .../mtree/store/disk/schemafile/RecordUtils.java | 84 +- .../mtree/store/disk/schemafile/SchemaFile.java | 735 +-------- .../store/disk/schemafile/SchemaFileConfig.java | 88 + .../mtree/store/disk/schemafile/SchemaPage.java | 598 +------ .../mtree/store/disk/schemafile/Segment.java | 737 +++------ .../mtree/store/disk/schemafile/SegmentedPage.java | 580 +++++++ .../store/disk/schemafile/WrappedSegment.java | 479 ++++++ .../disk/schemafile/pagemgr/BTreePageManager.java | 496 ++++++ .../disk/schemafile/pagemgr/IPageManager.java | 59 + .../store/disk/schemafile/pagemgr/PageManager.java | 619 +++++++ .../db/metadata/mtree/traverser/Traverser.java | 26 +- .../traverser/collector/MeasurementCollector.java | 2 +- .../apache/iotdb/db/metadata/path/AlignedPath.java | 350 ---- .../iotdb/db/metadata/path/MeasurementPath.java | 231 --- .../db/metadata/path/PathDeserializeUtil.java | 43 - .../db/metadata/path/PatternTreeMapFactory.java | 159 ++ .../db/metadata/rescon/SchemaResourceManager.java | 4 +- .../metadata/rescon/SchemaStatisticsManager.java | 16 - .../rescon/SchemaStatisticsManagerMetrics.java | 67 + .../db/metadata/schemaregion/ISchemaRegion.java | 36 +- .../schemaregion/SchemaRegionMemoryImpl.java | 266 ++- .../schemaregion/SchemaRegionSchemaFileImpl.java | 59 +- .../metadata/schemaregion/SchemaRegionUtils.java | 8 +- .../apache/iotdb/db/metadata/utils/MetaUtils.java | 4 +- .../db/metadata/utils/ResourceByPathUtils.java | 6 +- .../metadata/visitor/SchemaExecutionVisitor.java | 57 +- .../iotdb/db/mpp/aggregation/Accumulator.java | 6 +- .../iotdb/db/mpp/aggregation/Aggregator.java | 42 +- .../iotdb/db/mpp/aggregation/AvgAccumulator.java | 101 +- .../iotdb/db/mpp/aggregation/CountAccumulator.java | 33 +- .../db/mpp/aggregation/ExtremeAccumulator.java | 101 +- .../db/mpp/aggregation/FirstValueAccumulator.java | 138 +- .../mpp/aggregation/FirstValueDescAccumulator.java | 122 +- .../db/mpp/aggregation/LastValueAccumulator.java | 132 +- .../mpp/aggregation/LastValueDescAccumulator.java | 128 +- .../db/mpp/aggregation/MaxTimeAccumulator.java | 23 +- .../db/mpp/aggregation/MaxTimeDescAccumulator.java | 24 +- .../db/mpp/aggregation/MaxValueAccumulator.java | 103 +- .../db/mpp/aggregation/MinTimeAccumulator.java | 24 +- .../db/mpp/aggregation/MinTimeDescAccumulator.java | 21 +- .../db/mpp/aggregation/MinValueAccumulator.java | 103 +- .../iotdb/db/mpp/aggregation/SumAccumulator.java | 103 +- .../slidingwindow/SlidingWindowAggregator.java | 2 + .../iotdb/db/mpp/common/MPPQueryContext.java | 19 +- .../org/apache/iotdb/db/mpp/common/NodeRef.java | 59 + .../iotdb/db/mpp/common/filter/FunctionFilter.java | 2 +- .../iotdb/db/mpp/common/filter/QueryFilter.java | 2 +- .../db/mpp/common/header/ColumnHeaderConstant.java | 53 +- .../iotdb/db/mpp/common/header/DatasetHeader.java | 17 + .../db/mpp/common/header/DatasetHeaderFactory.java | 8 + .../mpp/common/schematree/ClusterSchemaTree.java | 2 +- .../common/schematree/DeviceGroupSchemaTree.java | 2 +- .../db/mpp/common/schematree/DeviceSchemaInfo.java | 2 +- .../db/mpp/common/schematree/ISchemaTree.java | 2 +- .../db/mpp/common/schematree/PathPatternNode.java | 129 -- .../db/mpp/common/schematree/PathPatternTree.java | 266 --- .../visitor/SchemaTreeMeasurementVisitor.java | 2 +- .../iotdb/db/mpp/execution/driver/Driver.java | 1 - .../db/mpp/execution/exchange/LocalSinkHandle.java | 15 +- .../mpp/execution/exchange/LocalSourceHandle.java | 17 +- .../execution/exchange/MPPDataExchangeManager.java | 54 +- .../execution/exchange/MPPDataExchangeService.java | 16 +- .../exchange/MPPDataExchangeServiceMetrics.java | 65 + .../MPPDataExchangeServiceThriftHandler.java | 27 +- ...MppDataExchangeServiceThriftHandlerMetrics.java | 75 + .../mpp/execution/exchange/SharedTsBlockQueue.java | 2 +- .../db/mpp/execution/exchange/SinkHandle.java | 38 +- .../db/mpp/execution/exchange/SourceHandle.java | 173 +- .../execution/executor/RegionExecutionResult.java | 55 + .../mpp/execution/executor/RegionReadExecutor.java | 78 + .../execution/executor/RegionWriteExecutor.java | 473 ++++++ .../fragment/FragmentInstanceContext.java | 5 + .../fragment/FragmentInstanceExecution.java | 10 +- .../fragment/FragmentInstanceManager.java | 27 +- .../fragment/FragmentInstanceStateMachine.java | 4 +- .../iotdb/db/mpp/execution/memory/MemoryPool.java | 12 +- .../db/mpp/execution/operator/AggregationUtil.java | 6 +- .../operator/process/AggregationOperator.java | 3 +- .../process/RawDataAggregationOperator.java | 100 +- .../process/SingleInputAggregationOperator.java | 32 +- .../process/SlidingWindowAggregationOperator.java | 28 + .../operator/process/TransformOperator.java | 11 +- .../process/last/UpdateLastCacheOperator.java | 2 +- .../operator/schema/CountMergeOperator.java | 90 +- .../operator/schema/DevicesSchemaScanOperator.java | 16 +- .../schema/LevelTimeSeriesCountOperator.java | 50 +- .../operator/schema/NodePathsConvertOperator.java | 2 +- .../schema/PathsUsingTemplateScanOperator.java | 14 +- .../operator/schema/SchemaFetchScanOperator.java | 2 +- .../operator/schema/SchemaQueryScanOperator.java | 31 +- .../operator/schema/SchemaTsBlockUtil.java | 57 + .../schema/TimeSeriesSchemaScanOperator.java | 16 +- .../AbstractSeriesAggregationScanOperator.java | 3 +- .../AlignedSeriesAggregationScanOperator.java | 2 +- .../operator/source/AlignedSeriesScanOperator.java | 2 +- .../operator/source/AlignedSeriesScanUtil.java | 2 +- .../db/mpp/execution/operator/window/IWindow.java | 66 + .../execution/operator/window/IWindowManager.java | 91 ++ .../mpp/execution/operator/window/TimeWindow.java | 84 + .../operator/window/TimeWindowManager.java | 133 ++ .../execution/schedule/AbstractDriverThread.java | 15 +- .../db/mpp/execution/schedule/DriverScheduler.java | 6 +- .../mpp/execution/schedule/DriverTaskThread.java | 2 +- .../org/apache/iotdb/db/mpp/plan/Coordinator.java | 4 +- .../apache/iotdb/db/mpp/plan/TestRPCClient.java | 176 ++ .../apache/iotdb/db/mpp/plan/analyze/Analysis.java | 181 +-- .../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java | 1555 +++++++++++------- .../apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 10 +- .../mpp/plan/analyze/ClusterPartitionFetcher.java | 3 +- .../db/mpp/plan/analyze/ClusterSchemaFetcher.java | 201 ++- .../db/mpp/plan/analyze/ConcatPathRewriter.java | 2 +- .../db/mpp/plan/analyze/ExpressionAnalyzer.java | 290 ++-- .../mpp/plan/analyze/ExpressionTypeAnalyzer.java | 310 ++++ .../mpp/plan/analyze/FakePartitionFetcherImpl.java | 79 +- .../db/mpp/plan/analyze/FakeSchemaFetcherImpl.java | 15 +- .../mpp/plan/analyze/GroupByLevelController.java | 150 +- .../db/mpp/plan/analyze/IPartitionFetcher.java | 2 +- .../iotdb/db/mpp/plan/analyze/ISchemaFetcher.java | 12 +- .../iotdb/db/mpp/plan/analyze/SchemaValidator.java | 25 +- .../plan/analyze/StandalonePartitionFetcher.java | 2 +- .../mpp/plan/analyze/StandaloneSchemaFetcher.java | 51 +- .../iotdb/db/mpp/plan/analyze/TypeProvider.java | 15 +- .../db/mpp/plan/analyze/cache/PartitionCache.java | 21 +- .../iotdb/db/mpp/plan/constant/StatementType.java | 4 +- .../db/mpp/plan/execution/QueryExecution.java | 29 +- .../mpp/plan/execution/config/ConfigExecution.java | 14 +- .../plan/execution/config/ConfigTaskVisitor.java | 57 +- .../config/executor/ClusterConfigTaskExecutor.java | 361 ++++- .../config/executor/IConfigTaskExecutor.java | 32 +- .../executor/StandaloneConfigTaskExecutor.java | 174 +- .../config/metadata/CreateTriggerTask.java | 42 + .../config/metadata/DeleteTimeSeriesTask.java | 45 + .../execution/config/metadata/DropTriggerTask.java | 41 + .../config/metadata/ShowConfigNodesTask.java | 1 + .../config/metadata/ShowTriggersTask.java | 97 ++ .../execution/config/sys/sync/CreatePipeTask.java | 4 +- .../execution/config/sys/sync/DropPipeTask.java | 4 +- .../config/sys/sync/ShowPipeSinkTask.java | 27 +- .../execution/config/sys/sync/ShowPipeTask.java | 41 +- .../execution/config/sys/sync/StartPipeTask.java | 4 +- .../execution/config/sys/sync/StopPipeTask.java | 4 +- .../memory/StatementMemorySourceVisitor.java | 3 +- .../iotdb/db/mpp/plan/expression/Expression.java | 27 +- .../binary/ArithmeticBinaryExpression.java | 25 +- .../plan/expression/binary/BinaryExpression.java | 8 +- .../expression/binary/CompareBinaryExpression.java | 54 +- .../expression/binary/LogicBinaryExpression.java | 15 +- .../mpp/plan/expression/leaf/ConstantOperand.java | 7 - .../db/mpp/plan/expression/leaf/LeafOperand.java | 5 +- .../plan/expression/leaf/TimeSeriesOperand.java | 9 +- .../mpp/plan/expression/leaf/TimestampOperand.java | 8 - .../plan/expression/multi/FunctionExpression.java | 48 +- .../plan/expression/ternary/BetweenExpression.java | 20 +- .../plan/expression/ternary/TernaryExpression.java | 11 +- .../db/mpp/plan/expression/unary/InExpression.java | 18 +- .../plan/expression/unary/IsNullExpression.java | 18 +- .../mpp/plan/expression/unary/LikeExpression.java | 20 +- .../plan/expression/unary/LogicNotExpression.java | 20 +- .../plan/expression/unary/NegationExpression.java | 26 +- .../plan/expression/unary/RegularExpression.java | 20 +- .../mpp/plan/expression/unary/UnaryExpression.java | 7 +- .../visitor/ColumnTransformerVisitor.java | 69 +- .../plan/expression/visitor/ExpressionVisitor.java | 63 +- .../visitor/IntermediateLayerVisitor.java | 17 +- .../iotdb/db/mpp/plan/parser/ASTVisitor.java | 146 +- .../db/mpp/plan/parser/StatementGenerator.java | 17 +- .../db/mpp/plan/planner/LocalExecutionPlanner.java | 6 +- .../db/mpp/plan/planner/LogicalPlanBuilder.java | 163 +- .../db/mpp/plan/planner/LogicalPlanVisitor.java | 328 ++-- .../db/mpp/plan/planner/OperatorTreeGenerator.java | 35 +- .../db/mpp/plan/planner/SubPlanTypeExtractor.java | 110 ++ .../SimpleFragmentParallelPlanner.java | 7 +- .../plan/planner/distribution/SourceRewriter.java | 18 +- .../db/mpp/plan/planner/plan/FragmentInstance.java | 5 +- .../db/mpp/plan/planner/plan/PlanFragment.java | 9 +- .../db/mpp/plan/planner/plan/node/PlanNode.java | 2 +- .../db/mpp/plan/planner/plan/node/PlanNodeId.java | 5 + .../mpp/plan/planner/plan/node/PlanNodeType.java | 18 +- .../db/mpp/plan/planner/plan/node/PlanVisitor.java | 10 + .../plan/planner/plan/node/SimplePlanVisitor.java | 30 + .../plan/node/load/LoadSingleTsFileNode.java | 514 ++++++ .../planner/plan/node/load/LoadTsFileNode.java | 107 ++ .../plan/node/load/LoadTsFilePieceNode.java | 170 ++ .../metedata/read/NodePathsSchemaScanNode.java | 2 +- .../node/metedata/read/SchemaFetchScanNode.java | 4 +- .../node/metedata/write/ActivateTemplateNode.java | 2 +- .../write/ConstructSchemaBlackListNode.java | 91 ++ .../metedata/write/CreateMultiTimeSeriesNode.java | 2 +- .../node/metedata/write/DeleteTimeSeriesNode.java | 63 +- .../write/InternalCreateTimeSeriesNode.java | 2 +- .../metedata/write/InvalidateSchemaCacheNode.java | 2 +- .../plan/node/metedata/write/MeasurementGroup.java | 27 + .../write/RollbackSchemaBlackListNode.java | 91 ++ .../plan/node/source/AlignedLastQueryScanNode.java | 4 +- .../source/AlignedSeriesAggregationScanNode.java | 4 +- .../plan/node/source/AlignedSeriesScanNode.java | 4 +- .../plan/node/source/LastQueryScanNode.java | 4 +- .../node/source/SeriesAggregationScanNode.java | 4 +- .../planner/plan/node/source/SeriesScanNode.java | 4 +- .../planner/plan/node/write/DeleteDataNode.java | 88 +- .../plan/node/write/InsertMultiTabletsNode.java | 13 +- .../plan/planner/plan/node/write/InsertNode.java | 23 +- .../planner/plan/node/write/InsertRowNode.java | 45 +- .../planner/plan/node/write/InsertRowsNode.java | 19 +- .../plan/node/write/InsertRowsOfOneDeviceNode.java | 19 +- .../planner/plan/node/write/InsertTabletNode.java | 66 +- .../db/mpp/plan/scheduler/ClusterScheduler.java | 1 + .../scheduler/FixedRateFragInsStateTracker.java | 4 +- .../scheduler/FragmentInstanceDispatcherImpl.java | 115 +- .../db/mpp/plan/scheduler/StandaloneScheduler.java | 4 +- .../scheduler/load/LoadTsFileDispatcherImpl.java | 249 +++ .../plan/scheduler/load/LoadTsFileScheduler.java | 270 ++++ .../db/mpp/plan/statement/StatementVisitor.java | 21 + .../statement/component/GroupByLevelComponent.java | 9 +- .../plan/statement/component/HavingCondition.java | 7 +- .../crud/InsertMultiTabletsStatement.java | 4 +- .../plan/statement/crud/InsertRowStatement.java | 6 +- .../crud/InsertRowsOfOneDeviceStatement.java | 5 +- .../plan/statement/crud/InsertRowsStatement.java | 4 +- .../plan/statement/crud/InsertTabletStatement.java | 18 +- .../plan/statement/crud/LoadTsFileStatement.java | 164 ++ .../db/mpp/plan/statement/crud/QueryStatement.java | 16 +- .../statement/internal/SchemaFetchStatement.java | 2 +- .../statement/metadata/CreateTriggerStatement.java | 121 ++ .../metadata/DeleteTimeSeriesStatement.java | 32 +- .../statement/metadata/DropTriggerStatement.java | 59 + .../metadata/SetStorageGroupStatement.java | 16 + .../statement/metadata/ShowTriggersStatement.java | 52 + .../sys/sync/CreatePipeSinkStatement.java | 2 +- .../statement/sys/sync/CreatePipeStatement.java | 38 + .../dag/builder/EvaluationDAGBuilder.java | 16 +- .../binary/CompareBinaryColumnTransformer.java | 12 +- .../handler/StatementConstructionHandler.java | 17 +- .../mpprest/impl/GrafanaApiServiceImpl.java | 2 +- .../protocol/mpprest/impl/RestApiServiceImpl.java | 3 +- .../iotdb/db/protocol/mqtt/MPPPublishHandler.java | 36 +- .../iotdb/db/protocol/mqtt/PublishHandler.java | 39 +- .../handler/PhysicalPlanConstructionHandler.java | 17 +- .../apache/iotdb/db/qp/executor/PlanExecutor.java | 31 +- .../org/apache/iotdb/db/qp/logical/Operator.java | 4 +- .../iotdb/db/qp/logical/crud/QueryOperator.java | 2 +- .../iotdb/db/qp/logical/sys/LoadFilesOperator.java | 14 +- .../apache/iotdb/db/qp/physical/PhysicalPlan.java | 14 +- .../iotdb/db/qp/physical/crud/QueryPlan.java | 2 +- .../db/qp/physical/crud/RawDataQueryPlan.java | 2 +- .../iotdb/db/qp/physical/crud/SelectIntoPlan.java | 2 +- .../apache/iotdb/db/qp/physical/crud/UDTFPlan.java | 2 +- .../iotdb/db/qp/physical/sys/CreatePipePlan.java | 2 +- .../db/qp/physical/sys/CreatePipeSinkPlan.java | 2 +- .../iotdb/db/qp/physical/sys/OperateFilePlan.java | 9 +- .../qp/physical/sys/PreDeleteTimeSeriesPlan.java | 79 + .../sys/RollbackPreDeleteTimeSeriesPlan.java | 79 + .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 66 +- .../qp/strategy/optimizer/ConcatPathOptimizer.java | 2 +- .../iotdb/db/qp/utils/GroupByLevelController.java | 2 +- .../apache/iotdb/db/qp/utils/WildcardsRemover.java | 2 +- .../iotdb/db/query/context/QueryContext.java | 64 +- .../iotdb/db/query/control/SessionManager.java | 29 +- .../db/query/control/SessionTimeoutManager.java | 12 +- .../dataset/RawQueryDataSetWithoutValueFilter.java | 2 +- .../groupby/GroupByWithValueFilterDataSet.java | 4 +- .../groupby/GroupByWithoutValueFilterDataSet.java | 4 +- .../db/query/executor/AggregationExecutor.java | 4 +- .../iotdb/db/query/executor/LastQueryExecutor.java | 2 +- .../db/query/executor/RawDataQueryExecutor.java | 4 +- .../iotdb/db/query/executor/UDFQueryExecutor.java | 2 +- .../executor/fill/AlignedLastPointReader.java | 2 +- .../groupby/impl/LocalAlignedGroupByExecutor.java | 2 +- .../db/query/pool/RawQueryReadTaskPoolManager.java | 32 +- .../pool/RawQueryReadTaskPoolManagerMetrics.java | 92 ++ .../metadata/DiskAlignedChunkMetadataLoader.java | 2 +- .../series/AlignedSeriesAggregateReader.java | 2 +- .../query/reader/series/AlignedSeriesReader.java | 2 +- .../query/timegenerator/ServerTimeGenerator.java | 2 +- .../iotdb/db/rescon/PrimitiveArrayManager.java | 3 + .../java/org/apache/iotdb/db/service/DataNode.java | 86 +- .../db/service/DataNodeInternalRPCService.java | 16 +- .../service/DataNodeInternalRPCServiceMetrics.java | 72 + .../db/service/DataNodeServerCommandLine.java | 134 +- .../iotdb/db/service/InfluxDBRPCService.java | 4 +- .../java/org/apache/iotdb/db/service/IoTDB.java | 11 +- .../apache/iotdb/db/service/IoTDBShutdownHook.java | 8 +- .../java/org/apache/iotdb/db/service/NewIoTDB.java | 7 +- .../org/apache/iotdb/db/service/RPCService.java | 19 +- .../apache/iotdb/db/service/RPCServiceMetrics.java | 71 + .../iotdb/db/service/RegionMigrateService.java | 163 +- .../service/basic/StandaloneServiceProvider.java | 4 +- .../iotdb/db/service/metrics/MetricService.java | 31 +- .../db/service/metrics/predefined/FileMetrics.java | 133 +- .../service/metrics/predefined/ProcessMetrics.java | 80 +- .../service/metrics/predefined/SystemMetrics.java | 162 +- .../handler/InternalServiceThriftHandler.java | 22 +- .../InternalServiceThriftHandlerMetrics.java | 68 + .../thrift/handler/RPCServiceThriftHandler.java | 19 +- .../handler/RPCServiceThriftHandlerMetrics.java | 65 + .../service/thrift/impl/ClientRPCServiceImpl.java | 70 +- .../impl/DataNodeInternalRPCServiceImpl.java | 694 +++++--- .../service/thrift/impl/DataNodeRegionManager.java | 213 +++ .../db/service/thrift/impl/TSServiceImpl.java | 13 +- .../java/org/apache/iotdb/db/sync/SyncService.java | 253 +-- .../iotdb/db/sync/common/ISyncInfoFetcher.java | 17 +- .../apache/iotdb/db/sync/common/LocalSyncInfo.java | 165 ++ .../iotdb/db/sync/common/LocalSyncInfoFetcher.java | 105 +- .../org/apache/iotdb/db/sync/common/SyncInfo.java | 293 ---- .../db/sync/common/persistence/SyncLogReader.java | 176 -- .../db/sync/common/persistence/SyncLogWriter.java | 144 -- .../iotdb/db/sync/datasource/TsFileOpBlock.java | 694 +++++--- .../iotdb/db/sync/externalpipe/ExtPipePlugin.java | 31 +- .../externalpipe/operation/InsertOperation.java | 2 +- .../iotdb/db/sync/pipedata/TsFilePipeData.java | 8 +- .../sync/pipedata/queue/BufferedPipeDataQueue.java | 5 +- .../db/sync/pipedata/queue/PipeDataQueue.java | 2 + .../db/sync/receiver/load/DeletionLoader.java | 6 +- .../iotdb/db/sync/receiver/load/ILoader.java | 2 +- .../iotdb/db/sync/receiver/load/SchemaLoader.java | 2 +- .../iotdb/db/sync/receiver/load/TsFileLoader.java | 62 +- .../iotdb/db/sync/sender/manager/ISyncManager.java | 44 + .../db/sync/sender/manager/LocalSyncManager.java | 92 ++ .../db/sync/sender/manager/SchemaSyncManager.java | 149 -- .../db/sync/sender/manager/TsFileSyncManager.java | 106 -- .../db/sync/sender/pipe/ExternalPipeSink.java | 35 +- .../iotdb/db/sync/sender/pipe/IoTDBPipeSink.java | 143 -- .../org/apache/iotdb/db/sync/sender/pipe/Pipe.java | 38 +- .../apache/iotdb/db/sync/sender/pipe/PipeInfo.java | 82 - .../iotdb/db/sync/sender/pipe/PipeMessage.java | 76 - .../apache/iotdb/db/sync/sender/pipe/PipeSink.java | 63 - .../iotdb/db/sync/sender/pipe/PipeSinkFactory.java | 41 + .../iotdb/db/sync/sender/pipe/TsFilePipe.java | 386 +++-- .../iotdb/db/sync/sender/pipe/TsFilePipeInfo.java | 63 - .../db/sync/sender/recovery/TsFilePipeLogger.java | 4 +- .../db/sync/transport/client/IoTDBSyncClient.java | 25 +- .../db/sync/transport/client/SenderManager.java | 121 +- .../sync/transport/client/SyncClientFactory.java | 20 +- .../db/sync/transport/server/ReceiverManager.java | 10 +- .../iotdb/db/tools/TsFileSplitByPartitionTool.java | 6 +- .../iotdb/db/trigger/executor/TriggerExecutor.java | 65 + .../db/trigger/service/TriggerClassLoader.java | 55 + .../trigger/service/TriggerClassLoaderManager.java | 84 + .../trigger/service/TriggerManagementService.java | 230 +++ .../org/apache/iotdb/db/utils/CommonUtils.java | 79 + .../apache/iotdb/db/utils/ErrorHandlingUtils.java | 18 +- .../org/apache/iotdb/db/utils/FileLoaderUtils.java | 15 +- .../iotdb/db/utils/HandleSystemErrorStrategy.java | 55 - .../iotdb/db/utils/IExpressionDeserializeUtil.java | 2 +- .../org/apache/iotdb/db/utils/OpenFileNumUtil.java | 5 +- .../java/org/apache/iotdb/db/utils/QueryUtils.java | 2 +- .../org/apache/iotdb/db/utils/SchemaUtils.java | 2 +- .../org/apache/iotdb/db/utils/SetThreadName.java | 44 + .../apache/iotdb/db/utils/TimePartitionUtils.java | 41 + .../apache/iotdb/db/utils/TypeInferenceUtils.java | 2 +- .../db/utils/datastructure/AlignedTVList.java | 293 ++-- .../db/utils/datastructure/BackAlignedTVList.java | 93 ++ .../db/utils/datastructure/BackBinaryTVList.java | 90 ++ .../db/utils/datastructure/BackBooleanTVList.java | 89 + .../db/utils/datastructure/BackDoubleTVList.java | 89 + .../db/utils/datastructure/BackFloatTVList.java | 89 + .../db/utils/datastructure/BackIntTVList.java | 90 ++ .../db/utils/datastructure/BackLongTVList.java | 89 + .../iotdb/db/utils/datastructure/BackwardSort.java | 134 ++ .../iotdb/db/utils/datastructure/BinaryTVList.java | 169 +- .../db/utils/datastructure/BooleanTVList.java | 127 +- .../iotdb/db/utils/datastructure/DoubleTVList.java | 125 +- .../iotdb/db/utils/datastructure/FloatTVList.java | 125 +- .../iotdb/db/utils/datastructure/IntTVList.java | 125 +- .../iotdb/db/utils/datastructure/LongTVList.java | 125 +- .../db/utils/datastructure/QuickAlignedTVList.java | 61 + .../db/utils/datastructure/QuickBinaryTVList.java | 56 + .../db/utils/datastructure/QuickBooleanTVList.java | 53 + .../db/utils/datastructure/QuickDoubleTVList.java | 53 + .../db/utils/datastructure/QuickFloatTVList.java | 53 + .../db/utils/datastructure/QuickIntTVList.java | 53 + .../db/utils/datastructure/QuickLongTVList.java | 53 + .../iotdb/db/utils/datastructure/QuickSort.java | 73 + .../iotdb/db/utils/datastructure/TVList.java | 197 +-- .../utils/datastructure/TVListSortAlgorithm.java | 25 + .../db/utils/datastructure/TimAlignedTVList.java | 137 ++ .../db/utils/datastructure/TimBinaryTVList.java | 130 ++ .../db/utils/datastructure/TimBooleanTVList.java | 130 ++ .../db/utils/datastructure/TimDoubleTVList.java | 130 ++ .../db/utils/datastructure/TimFloatTVList.java | 131 ++ .../iotdb/db/utils/datastructure/TimIntTVList.java | 131 ++ .../db/utils/datastructure/TimLongTVList.java | 130 ++ .../iotdb/db/utils/datastructure/TimSort.java | 190 +++ .../apache/iotdb/db/utils/sync/SyncPipeUtil.java | 79 +- .../java/org/apache/iotdb/db/wal/WALManager.java | 24 +- .../allocation/AbstractNodeAllocationStrategy.java | 8 +- .../org/apache/iotdb/db/wal/buffer/IWALBuffer.java | 4 +- .../org/apache/iotdb/db/wal/buffer/WALBuffer.java | 30 +- .../org/apache/iotdb/db/wal/buffer/WALEntry.java | 11 +- .../apache/iotdb/db/wal/buffer/WALEntryType.java | 9 +- .../apache/iotdb/db/wal/buffer/WALInfoEntry.java | 1 + .../iotdb/db/wal/checkpoint/CheckpointManager.java | 6 +- .../apache/iotdb/db/wal/io/WALByteBufReader.java | 2 +- .../org/apache/iotdb/db/wal/node/IWALNode.java | 4 + .../org/apache/iotdb/db/wal/node/WALFakeNode.java | 6 + .../java/org/apache/iotdb/db/wal/node/WALNode.java | 135 +- .../iotdb/db/wal/recover/WALRecoverManager.java | 8 +- .../file/AbstractTsFileRecoverPerformer.java | 18 +- .../db/wal/recover/file/TsFilePlanRedoer.java | 21 + .../file/UnsealedTsFileRecoverPerformer.java | 4 + .../apache/iotdb/db/conf/IoTDBStopCheckTest.java | 110 -- .../engine/compaction/AbstractCompactionTest.java | 121 +- .../ReadPointCompactionPerformerTest.java | 1273 ++++++++++++++- .../cross/RewriteCompactionFileSelectorTest.java | 30 +- .../cross/RewriteCrossSpaceCompactionTest.java | 2 +- .../inner/InnerCompactionMoreDataTest.java | 2 +- .../compaction/inner/InnerSeqCompactionTest.java | 7 +- .../compaction/inner/InnerUnseqCompactionTest.java | 13 +- .../ReadChunkCompactionPerformerAlignedTest.java | 2 +- .../ReadChunkCompactionPerformerNoAlignedTest.java | 2 +- .../inner/ReadChunkCompactionPerformerOldTest.java | 3 +- .../SizeTieredCompactionRecoverTest.java | 2 +- .../db/engine/memtable/PrimitiveMemTableTest.java | 14 +- .../db/engine/snapshot/IoTDBSnapshotTest.java | 38 + .../db/engine/storagegroup/DataRegionTest.java | 5 +- .../storagegroup/StorageGroupProcessorTest.java | 5 +- .../iotdb/db/engine/storagegroup/TTLTest.java | 2 +- .../engine/storagegroup/TsFileProcessorTest.java | 8 +- .../engine/storagegroup/TsFileProcessorV2Test.java | 2 +- .../db/engine/storagegroup/TsFileResourceTest.java | 92 ++ .../LocalConfigNodeMultiDataRegionTest.java | 98 ++ .../apache/iotdb/db/metadata/MetaUtilsTest.java | 17 +- .../iotdb/db/metadata/SchemaAdvancedTest.java | 2 +- .../apache/iotdb/db/metadata/SchemaBasicTest.java | 6 +- .../org/apache/iotdb/db/metadata/TemplateTest.java | 2 +- .../metadata/idtable/trigger_example/Counter.java | 2 +- .../iotdb/db/metadata/mtree/MTreeBelowSGTest.java | 2 +- .../mtree/schemafile/AliasIndexPageTest.java | 237 +++ .../mtree/schemafile/InternalPageTest.java | 222 +++ .../metadata/mtree/schemafile/RecordUtilTests.java | 21 +- .../metadata/mtree/schemafile/SchemaFileTest.java | 290 +++- .../metadata/mtree/schemafile/SchemaPageTest.java | 71 +- .../db/metadata/mtree/schemafile/SegmentTest.java | 151 -- .../mtree/schemafile/WrappedSegmentTest.java | 248 +++ .../db/metadata/path/MeasurementPathTest.java | 46 + .../iotdb/db/metadata/path/PatternTreeMapTest.java | 191 +++ .../apache/iotdb/db/metric/MetricServiceTest.java | 1 - .../iotdb/db/mpp/aggregation/AccumulatorTest.java | 42 +- .../common/schematree/ClusterSchemaTreeTest.java | 2 +- .../mpp/common/schematree/PathPatternTreeTest.java | 193 --- .../iotdb/db/mpp/execution/DataDriverTest.java | 2 +- .../operator/AggregationOperatorTest.java | 2 +- .../AlignedSeriesAggregationScanOperatorTest.java | 2 +- .../operator/AlignedSeriesScanOperatorTest.java | 4 +- .../operator/DeviceMergeOperatorTest.java | 2 +- .../execution/operator/DeviceViewOperatorTest.java | 2 +- .../execution/operator/LastQueryOperatorTest.java | 2 +- .../operator/LastQuerySortOperatorTest.java | 2 +- .../mpp/execution/operator/LimitOperatorTest.java | 2 +- .../mpp/execution/operator/OffsetOperatorTest.java | 2 +- .../mpp/execution/operator/OperatorMemoryTest.java | 4 +- .../operator/RawDataAggregationOperatorTest.java | 2 +- .../SeriesAggregationScanOperatorTest.java | 2 +- .../execution/operator/SeriesScanOperatorTest.java | 2 +- .../SlidingWindowAggregationOperatorTest.java | 2 +- .../execution/operator/TimeJoinOperatorTest.java | 2 +- .../operator/UpdateLastCacheOperatorTest.java | 2 +- .../operator/schema/CountMergeOperatorTest.java | 2 + .../schema/SchemaFetchScanOperatorTest.java | 4 +- .../plan/analyze/AggregationDescriptorTest.java | 2 +- .../iotdb/db/mpp/plan/analyze/AnalyzeTest.java | 493 +++++- .../mpp/plan/plan/FragmentInstanceSerdeTest.java | 2 +- .../db/mpp/plan/plan/QueryLogicalPlanUtil.java | 4 +- .../distribution/AggregationDistributionTest.java | 4 +- .../distribution/DistributionPlannerBasicTest.java | 6 +- .../mpp/plan/plan/distribution/LastQueryTest.java | 28 +- .../distribution/NoDataRegionPlanningTest.java | 2 +- .../metadata/read/SchemaFetchScanNodeTest.java | 2 +- .../write/DeleteTimeSeriesNodeSerdeTest.java | 15 +- .../node/process/AggregationNodeSerdeTest.java | 2 +- .../node/process/GroupByLevelNodeSerdeTest.java | 2 +- .../plan/plan/node/process/LimitNodeSerdeTest.java | 2 +- .../plan/node/process/OffsetNodeSerdeTest.java | 2 +- .../plan/plan/node/process/SortNodeSerdeTest.java | 2 +- .../plan/node/process/TimeJoinNodeSerdeTest.java | 2 +- .../source/SeriesAggregationScanNodeSerdeTest.java | 2 +- .../plan/node/source/SeriesScanNodeSerdeTest.java | 2 +- .../plan/node/write/WritePlanNodeSplitTest.java | 24 +- .../plan/scheduler/StandaloneSchedulerTest.java | 2 + .../iotdb/db/protocol/mqtt/PublishHandlerTest.java | 7 +- .../iotdb/db/qp/physical/PhysicalPlanTest.java | 12 +- .../reader/series/SeriesAggregateReaderTest.java | 2 +- .../iotdb/db/rescon/ResourceManagerTest.java | 10 +- .../DataNodeInternalRPCServiceImplTest.java | 3 + .../org/apache/iotdb/db/sync/SyncTestUtils.java | 41 + .../db/sync/datasource/PipeOpManagerTest.java | 171 +- .../db/sync/datasource/TsFileOpBlockTest.java | 619 ++++++- .../sync/pipedata/BufferedPipeDataQueueTest.java | 4 +- .../sync/receiver/manager/LocalSyncInfoTest.java | 95 ++ .../db/sync/receiver/manager/SyncInfoTest.java | 101 -- .../db/sync/receiver/recovery/SyncLogTest.java | 128 +- .../iotdb/db/sync/transport/SyncTransportTest.java | 18 +- .../apache/iotdb/db/utils/EnvironmentUtils.java | 10 +- .../org/apache/iotdb/db/utils/SchemaTestUtils.java | 2 +- .../iotdb/db/utils/TsFileRewriteToolTest.java | 4 +- .../iotdb/db/utils/TypeInferenceUtilsTest.java | 8 +- .../db/utils/datastructure/BinaryTVListTest.java | 38 +- .../db/utils/datastructure/BooleanTVListTest.java | 8 +- .../db/utils/datastructure/DoubleTVListTest.java | 10 +- .../db/utils/datastructure/FloatTVListTest.java | 10 +- .../db/utils/datastructure/IntTVListTest.java | 10 +- .../db/utils/datastructure/LongTVListTest.java | 12 +- .../db/utils/datastructure/VectorTVListTest.java | 77 +- .../org/apache/iotdb/db/wal/WALManagerTest.java | 9 +- .../db/wal/allocation/FirstCreateStrategyTest.java | 9 +- .../db/wal/allocation/RoundRobinStrategyTest.java | 9 +- .../org/apache/iotdb/db/wal/io/WALFileTest.java | 14 + .../iotdb/db/wal/node/ConsensusReqReaderTest.java | 275 +++- .../db/wal/recover/WALRecoverManagerTest.java | 5 +- .../db/wal/recover/file/TsFilePlanRedoerTest.java | 37 +- .../datanode1conf/iotdb-datanode.properties | 3 +- .../resources/datanode1conf/iotdb-rest.properties | 61 + .../datanode2conf/iotdb-datanode.properties | 4 +- .../resources/datanode2conf/iotdb-rest.properties | 61 + .../datanode3conf/iotdb-datanode.properties | 1 + .../resources/datanode3conf/iotdb-rest.properties | 61 + .../apache/iotdb/rpc/NoValidValueException.java | 29 + .../java/org/apache/iotdb/rpc/TSStatusCode.java | 18 +- .../main/java/org/apache/iotdb/session/Config.java | 51 - .../java/org/apache/iotdb/session/ISession.java | 438 +++++ .../java/org/apache/iotdb/session/Session.java | 911 +++++++++-- .../org/apache/iotdb/session/SessionConfig.java | 51 + .../apache/iotdb/session/SessionConnection.java | 6 +- .../org/apache/iotdb/session/SessionDataSet.java | 4 +- .../org/apache/iotdb/session/pool/SessionPool.java | 62 +- .../apache/iotdb/session/SessionCacheLeaderUT.java | 12 +- site/src/main/.vuepress/config.js | 126 +- .../apache/iotdb/spark/db/EnvironmentUtils.java | 26 +- thrift-commons/src/main/thrift/common.thrift | 11 + .../src/main/thrift/confignode.thrift | 150 +- .../src/main/thrift/mutlileader.thrift | 65 +- thrift/src/main/thrift/client.thrift | 2 + thrift/src/main/thrift/datanode.thrift | 238 ++- trigger-api/pom.xml | 73 + .../java/org/apache/iotdb/trigger/api/Trigger.java | 79 + .../iotdb/trigger/api/TriggerAttributes.java | 98 ++ .../iotdb/trigger/api/enums/FailureStrategy.java | 66 + .../iotdb/trigger/api/enums/TriggerEvent.java | 53 + .../iotdb/trigger/api/enums/TriggerType.java | 53 + .../iotdb/tsfile/file/header/ChunkHeader.java | 3 +- .../tsfile/file/metadata/AlignedChunkMetadata.java | 2 +- .../iotdb/tsfile/file/metadata/ChunkMetadata.java | 38 +- .../iotdb/tsfile/file/metadata/IChunkMetadata.java | 2 +- .../file/metadata/MetadataIndexConstructor.java | 9 +- .../tsfile/file/metadata/MetadataIndexNode.java | 2 +- .../tsfile/file/metadata/TimeseriesMetadata.java | 37 + .../iotdb/tsfile/file/metadata/TsFileMetadata.java | 9 +- .../iotdb/tsfile/read/TsFileDeviceIterator.java | 14 +- .../iotdb/tsfile/read/TsFileSequenceReader.java | 69 +- .../org/apache/iotdb/tsfile/read/common/Path.java | 18 +- .../apache/iotdb/tsfile/read/common/TimeRange.java | 18 +- .../tsfile/read/common/block/TsBlockUtil.java | 15 +- .../read/reader/chunk/AlignedChunkReader.java | 1 + .../iotdb/tsfile/utils/ReadWriteIOUtils.java | 16 + .../iotdb/tsfile/utils/TsFileGeneratorUtils.java | 107 ++ .../tsfile/write/chunk/AlignedChunkWriterImpl.java | 65 + .../iotdb/tsfile/write/chunk/TimeChunkWriter.java | 52 + .../iotdb/tsfile/write/chunk/ValueChunkWriter.java | 56 + .../write/writer/RestorableTsFileIOWriter.java | 12 + .../iotdb/tsfile/write/writer/TsFileIOWriter.java | 372 ++++- .../write/writer/tsmiterator/DiskTSMIterator.java | 132 ++ .../write/writer/tsmiterator/TSMIterator.java | 147 ++ .../iotdb/tsfile/read/common/TimeRangeTest.java | 19 + .../iotdb/tsfile/utils/TsFileGeneratorForTest.java | 15 +- .../tsfile/write/TsFileIntegrityCheckingTool.java | 251 +++ .../writer/TsFileIOWriterMemoryControlTest.java | 1303 +++++++++++++++ .../zeppelin/iotdb/IoTDBInterpreterTest.java | 4 +- 1175 files changed, 66102 insertions(+), 32323 deletions(-) diff --cc server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java index 1ecaf1ecc5,b314757ef8..c0fc33cde9 --- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java @@@ -23,9 -23,10 +23,10 @@@ import org.apache.iotdb.db.conf.IoTDBCo import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.engine.compaction.CompactionTaskManager; import org.apache.iotdb.db.engine.compaction.cross.ICrossSpaceSelector; -import org.apache.iotdb.db.engine.compaction.cross.utils.AbstractCompactionEstimator; +import org.apache.iotdb.db.engine.compaction.estimator.AbstractCompactionEstimator; import org.apache.iotdb.db.engine.compaction.task.ICompactionSelector; import org.apache.iotdb.db.engine.storagegroup.TsFileManager; + import org.apache.iotdb.db.engine.storagegroup.TsFileNameGenerator; import org.apache.iotdb.db.engine.storagegroup.TsFileResource; import org.apache.iotdb.db.exception.MergeException; import org.apache.iotdb.db.rescon.SystemInfo; diff --cc server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java index d30edf80db,97771dcc0b..3cecd52075 --- a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java @@@ -144,12 -149,13 +157,12 @@@ public class SnapshotLoader try { deleteAllFilesInDataDirs(); LOGGER.info("Remove all data files in original data dir"); + createLinksFromSnapshotDirToDataDirWithLog(); + return loadSnapshot(); } catch (IOException e) { - LOGGER.error("IOException occurs when creating links from snapshot dir to data dir", e); + LOGGER.error("Failed to remove origin data files", e); return null; } - - createLinksFromSnapshotDirToDataDirWithLog(); - return loadSnapshot(); } finally { logAnalyzer.close(); } diff --cc server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java index bde1e083d1,46bb086ff5..d600240aca --- a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java @@@ -72,15 -71,18 +72,19 @@@ public class SnapshotTaker File snapshotLog = new File(snapshotDir, SnapshotLogger.SNAPSHOT_LOG_NAME); try { snapshotLogger = new SnapshotLogger(snapshotLog); - boolean success; + boolean success = true; + snapshotLogger.logSnapshotId(snapshotDir.getName()); - readLockTheFile(); try { + readLockTheFile(); + if (flushBeforeSnapshot) { + try { + dataRegion.writeLock("snapshotTaker"); + dataRegion.syncCloseAllWorkingTsFileProcessors(); + } finally { + dataRegion.writeUnlock(); + } + } success = createSnapshot(seqFiles, snapshotDir.getName()); success = createSnapshot(unseqFiles, snapshotDir.getName()) && success; } finally { @@@ -169,8 -176,15 +179,15 @@@ } private void createHardLink(File target, File source) throws IOException { + if (!target.getParentFile().exists()) { + LOGGER.error("Hard link target dir {} doesn't exist", target.getParentFile()); + } + if (!source.exists()) { + LOGGER.error("Hard link source file {} doesn't exist", source); + } + Files.deleteIfExists(target.toPath()); - Files.createLink(target.getAbsoluteFile().toPath(), source.getAbsoluteFile().toPath()); - snapshotLogger.logFile(source.getAbsolutePath(), target.getAbsolutePath()); + Files.createLink(target.toPath(), source.toPath()); + snapshotLogger.logFile(source); } /** @@@ -216,14 -230,10 +233,15 @@@ } private void cleanUpWhenFail(String snapshotId) { + LOGGER.info("Cleaning up snapshot dir for {}", snapshotId); for (String dataDir : IoTDBDescriptor.getInstance().getConfig().getDataDirs()) { File dataDirForThisSnapshot = - new File(dataDir + File.separator + "snapshot" + File.separator + snapshotId); + new File( + dataDir + + File.separator + + IoTDBConstant.SNAPSHOT_FOLDER_NAME + + File.separator + + snapshotId); if (dataDirForThisSnapshot.exists()) { try { FileUtils.recursiveDeleteFolder(dataDirForThisSnapshot.getAbsolutePath());
