This is an automated email from the ASF dual-hosted git repository. jiangtian pushed a commit to branch expr_catch_up in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 44a1ef6fb1a478bd72b55982fb6ecc725ba6f520 Merge: a5bf5ed66f 732fa7716e Author: jt <[email protected]> AuthorDate: Wed Jun 15 10:16:44 2022 +0800 Merge branch 'master' into expr_catch_up # Conflicts: # service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java .github/workflows/cluster-it.yml | 14 +- .../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 2 + .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 2 +- .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 4 + checkstyle.xml | 30 +- client-py/README.md | 114 +- client-py/SessionExample.py | 55 +- client-py/iotdb/Session.py | 254 +++- client-py/iotdb/dbapi/Connection.py | 91 ++ client-py/iotdb/dbapi/Cursor.py | 282 ++++ .../{tsfile/utils/Pair.py => dbapi/Exceptions.py} | 47 +- .../{tsfile/utils/Pair.py => dbapi/__init__.py} | 12 +- .../utils/Pair.py => dbapi/tests/__init__.py} | 9 - client-py/iotdb/dbapi/tests/test_connection.py | 57 + client-py/iotdb/dbapi/tests/test_cursor.py | 123 ++ client-py/iotdb/template/Template.py | 5 +- client-py/iotdb/template/TemplateNode.py | 3 +- .../Pair.py => template/TemplateQueryType.py} | 25 +- .../iotdb/tsfile/{utils/Pair.py => __init__.py} | 9 - .../tsfile/{utils/Pair.py => common/__init__.py} | 9 - client-py/iotdb/tsfile/utils/Pair.py | 4 +- client-py/tests/test_template.py | 130 +- .../org/apache/iotdb/cluster/ClusterIoTDB.java | 7 +- .../{PhysicalPlanLog.java => RequestLog.java} | 0 .../iotdb/cluster/log/manage/RaftLogManager.java | 5 +- .../serializable/SyncLogDequeSerializer.java | 4 +- .../cluster/server/PullSnapshotHintService.java | 4 +- .../cluster/utils/nodetool/ClusterMonitor.java | 28 +- .../resources/conf/iotdb-confignode.properties | 8 +- .../confignode/client/SyncDataNodeClientPool.java | 46 +- .../iotdb/confignode/conf/ConfigNodeConf.java | 8 +- .../confignode/conf/ConfigNodeStartupCheck.java | 40 +- .../consensus/request/ConfigRequest.java | 33 +- .../consensus/request/auth/AuthorReq.java | 30 +- .../request/read/CountStorageGroupReq.java | 10 +- .../consensus/request/read/GetDataNodeInfoReq.java | 8 +- .../request/read/GetDataPartitionReq.java | 43 +- .../request/read/GetNodePathsPartitionReq.java | 7 +- .../request/read/GetSchemaPartitionReq.java | 26 +- .../request/write/ApplyConfigNodeReq.java | 8 +- .../request/write/CreateDataPartitionReq.java | 87 +- .../consensus/request/write/CreateFunctionReq.java | 13 +- .../consensus/request/write/CreateRegionsReq.java | 26 +- .../request/write/CreateSchemaPartitionReq.java | 57 +- .../request/write/DeleteProcedureReq.java | 7 +- .../consensus/request/write/DeleteRegionsReq.java | 42 +- .../request/write/DeleteStorageGroupReq.java | 27 +- .../consensus/request/write/DropFunctionReq.java | 7 +- .../request/write/PreDeleteStorageGroupReq.java | 9 +- .../request/write/RegisterDataNodeReq.java | 8 +- .../request/write/SetDataReplicationFactorReq.java | 9 +- .../write/SetSchemaReplicationFactorReq.java | 9 +- .../request/write/SetStorageGroupReq.java | 7 +- .../consensus/request/write/SetTTLReq.java | 9 +- .../request/write/SetTimePartitionIntervalReq.java | 9 +- .../request/write/UpdateProcedureReq.java | 7 +- .../consensus/response/DataPartitionResp.java | 10 + .../consensus/response/SchemaPartitionResp.java | 10 + .../statemachine/PartitionRegionStateMachine.java | 4 +- .../exception/StorageGroupNotExistsException.java | 11 +- .../confignode/exception/TimeoutException.java | 11 +- .../confignode/manager/ClusterSchemaManager.java | 43 +- .../iotdb/confignode/manager/ConfigManager.java | 56 +- .../iotdb/confignode/manager/ConsensusManager.java | 2 - .../apache/iotdb/confignode/manager/Manager.java | 8 +- .../iotdb/confignode/manager/PartitionManager.java | 464 +++--- .../confignode/manager/PermissionManager.java | 36 +- .../iotdb/confignode/manager/ProcedureManager.java | 3 +- .../iotdb/confignode/manager/load/LoadManager.java | 125 +- .../manager/load/balancer/PartitionBalancer.java | 71 + .../manager/load/balancer/RegionBalancer.java | 21 +- .../partition/GreedyPartitionAllocator.java | 124 ++ .../balancer/partition/IPartitionAllocator.java | 53 + .../CopySetRegionAllocator.java | 15 +- .../{allocator => region}/IRegionAllocator.java | 6 +- .../iotdb/confignode/persistence/AuthorInfo.java | 29 +- .../confignode/persistence/ClusterSchemaInfo.java | 131 +- .../confignode/persistence/PartitionInfo.java | 645 --------- .../executor/ConfigRequestExecutor.java | 16 +- .../persistence/partition/PartitionInfo.java | 595 ++++++++ .../persistence/partition/RegionGroup.java | 97 ++ .../partition/StorageGroupPartitionTable.java | 331 +++++ .../confignode/procedure/InternalProcedure.java | 3 - .../iotdb/confignode/procedure/Procedure.java | 45 +- .../procedure/StateMachineProcedure.java | 9 +- .../procedure/env/ConfigNodeProcedureEnv.java | 9 +- .../impl/DeleteStorageGroupProcedure.java | 11 +- .../confignode/procedure/store/ProcedureWAL.java | 12 +- .../thrift/ConfigNodeRPCServiceProcessor.java | 51 +- .../consensus/request/ConfigRequestSerDeTest.java | 274 ++-- .../hash/DeviceGroupHashExecutorManualTest.java | 2 +- .../persistence/ClusterSchemaInfoTest.java | 2 +- .../confignode/persistence/PartitionInfoTest.java | 84 +- .../confignode/procedure/entity/IncProcedure.java | 8 +- .../procedure/entity/SleepProcedure.java | 8 +- .../procedure/entity/StuckSTMProcedure.java | 9 +- .../thrift/ConfigNodeRPCServiceProcessorTest.java | 24 +- .../org/apache/iotdb/consensus/common/Peer.java | 7 +- .../common/request/ByteBufferConsensusRequest.java | 4 +- .../common/request/IConsensusRequest.java | 15 +- .../common/request/IndexedConsensusRequest.java | 19 +- .../apache/iotdb/consensus/config/RatisConfig.java | 2 +- .../multileader/MultiLeaderServerImpl.java | 30 +- .../multileader/logdispatcher/LogDispatcher.java | 16 +- .../service/MultiLeaderRPCServiceProcessor.java | 2 +- .../multileader/wal/GetConsensusReqReaderPlan.java | 5 +- .../ratis/ApplicationStateMachineProxy.java | 10 +- .../apache/iotdb/consensus/ratis/RatisClient.java | 49 +- .../iotdb/consensus/ratis/RatisConsensus.java | 2 +- .../iotdb/consensus/ratis/RequestMessage.java | 18 +- .../iotdb/consensus/ratis/SnapshotStorage.java | 59 +- .../multileader/MultiLeaderConsensusTest.java | 18 +- .../apache/iotdb/consensus/ratis/TestUtils.java | 11 +- .../standalone/StandAloneConsensusTest.java | 8 +- docs/Download/README.md | 20 +- docs/UserGuide/API/Programming-Java-Native-API.md | 8 +- .../UserGuide/API/Programming-Python-Native-API.md | 113 +- docs/UserGuide/Maintenance-Tools/Metric-Tool.md | 12 +- docs/UserGuide/Reference/Keywords.md | 24 - docs/UserGuide/Reference/Syntax-Conventions.md | 24 +- docs/UserGuide/UDF-Library/String-Processing.md | 656 +++++++-- docs/zh/Download/README.md | 21 +- .../UserGuide/API/Programming-Java-Native-API.md | 8 +- .../UserGuide/API/Programming-Python-Native-API.md | 112 +- docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md | 11 +- docs/zh/UserGuide/Reference/Keywords.md | 24 - docs/zh/UserGuide/Reference/Syntax-Conventions.md | 29 +- docs/zh/UserGuide/UDF-Library/String-Processing.md | 652 +++++++-- .../iotdb/SyntaxConventionRelatedExample.java | 161 +++ .../iotdb/SyntaxConventionRelatedExample.java | 145 ++ .../java/org/apache/iotdb/flink/IoTDBSink.java | 1 + integration-test/README.md | 27 +- integration-test/pom.xml | 2 +- .../org/apache/iotdb/it/env/ClusterEnvBase.java | 125 +- .../org/apache/iotdb/it/env/ClusterEnvConfig.java | 40 + .../org/apache/iotdb/it/env/ConfigFactory.java | 11 +- .../java/org/apache/iotdb/it/env/ConfigNode.java | 20 +- .../java/org/apache/iotdb/it/env/DataNode.java | 14 +- .../java/org/apache/iotdb/it/env/EnvFactory.java | 2 + .../org/apache/iotdb/it/env/IoTDBTestRunner.java | 44 + .../org/apache/iotdb/it/env/RemoteServerEnv.java | 4 + .../apache/iotdb/itbase/constant/TestConstant.java | 143 ++ .../org/apache/iotdb/itbase/env/BaseConfig.java | 40 + .../java/org/apache/iotdb/itbase/env/BaseEnv.java | 2 + .../itbase/runtime/ClusterResultSetMetaData.java | 239 ++++ .../itbase/runtime/ClusterTestConnection.java | 333 +++++ .../iotdb/itbase/runtime/ClusterTestResultSet.java | 1178 ++++++++++++++++ .../iotdb/itbase/runtime/ClusterTestStatement.java | 297 ++++ .../itbase/runtime/InconsistentDataException.java | 12 +- .../iotdb/itbase/runtime/NodeConnection.java | 85 ++ .../itbase/runtime/ParallelRequestDelegate.java | 60 + .../iotdb/itbase/runtime/RequestDelegate.java | 86 ++ .../iotdb/itbase/runtime/RequestThreadPool.java | 45 +- .../itbase/runtime/SerialRequestDelegate.java | 39 +- .../org/apache/iotdb/db/it/IoTDBExampleIT.java | 3 + .../iotdb/db/it/IoTDBExampleParallel1IT.java | 82 -- .../iotdb/db/it/IoTDBExampleParallel2IT.java | 99 -- .../iotdb/db/it/IoTDBExampleParallel3IT.java | 116 -- .../iotdb/db/it/IoTDBUDTFBuiltinFunctionIT.java | 1233 ++++++++++++++++ .../iotdb/db/it/aligned/AlignedWriteUtil.java | 149 ++ .../db/it/aligned/IoTDBAlignedSeriesQuery2IT.java | 61 + .../db/it/aligned/IoTDBAlignedSeriesQuery3IT.java | 61 + .../db/it/aligned/IoTDBAlignedSeriesQueryIT.java | 1475 ++++++++++++++++++++ .../db/it/aligned/IoTDBInsertAlignedValues2IT.java | 120 ++ .../db/it/aligned/IoTDBInsertAlignedValues3IT.java | 121 ++ .../db/it/aligned/IoTDBInsertAlignedValues4IT.java | 78 ++ .../db/it/aligned/IoTDBInsertAlignedValuesIT.java | 284 ++++ .../it/aligned/IoTDBLastQueryWithDeletion2IT.java | 77 + .../it/aligned/IoTDBLastQueryWithDeletionIT.java | 323 +++++ .../aligned/IoTDBLastQueryWithoutLastCache2IT.java | 63 + .../aligned/IoTDBLastQueryWithoutLastCacheIT.java | 169 +-- ...DBLastQueryWithoutLastCacheWithDeletion2IT.java | 81 ++ ...TDBLastQueryWithoutLastCacheWithDeletionIT.java | 80 ++ ...BRawQueryWithoutValueFilterWithDeletion2IT.java | 80 ++ ...DBRawQueryWithoutValueFilterWithDeletionIT.java | 407 +++--- .../org/apache/iotdb/db/it/env/StandaloneEnv.java | 8 +- .../iotdb/db/it/env/StandaloneEnvConfig.java | 67 + .../apache/iotdb/db/integration/IOTDBInsertIT.java | 6 + .../iotdb/db/integration/IoTDBNestedQueryIT.java | 14 +- .../aligned/IoTDBInsertAlignedValuesIT.java | 391 ------ .../db/integration/aligned/IoTDBLastQuery2IT.java | 65 - .../aligned/IoTDBLastQueryWithDeletion2IT.java | 80 -- .../aligned/IoTDBLastQueryWithDeletionIT.java | 379 ----- .../aligned/IoTDBLastQueryWithoutLastCache2IT.java | 68 - .../aligned/IoTDBLastQueryWithoutLastCacheIT.java | 381 ----- ...DBLastQueryWithoutLastCacheWithDeletion2IT.java | 85 -- ...TDBLastQueryWithoutLastCacheWithDeletionIT.java | 383 ----- .../IoTDBRawQueryWithoutValueFilter2IT.java | 66 - .../IoTDBRawQueryWithoutValueFilter3IT.java | 63 - .../aligned/IoTDBRawQueryWithoutValueFilterIT.java | 633 --------- ...BRawQueryWithoutValueFilterWithDeletion2IT.java | 83 -- .../db/integration/sync/IoTDBSyncReceiverIT.java | 2 +- .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 4 +- .../reporter/MicrometerPrometheusReporter.java | 1 + .../micrometer/MicrometerMetricManagerTest.java | 12 + metrics/pom.xml | 41 + node-commons/pom.xml | 5 + .../commons/client/ClientFactoryProperty.java | 2 +- .../threadpool/ScheduledExecutorUtil.java | 188 +++ .../WrappedScheduledExecutorService.java | 2 + .../WrappedSingleThreadScheduledExecutor.java | 2 + .../iotdb/commons/partition/DataPartition.java | 207 +-- .../commons/partition/DataPartitionTable.java | 183 +++ .../iotdb/commons/partition/SchemaPartition.java | 171 +-- .../commons/partition/SchemaPartitionTable.java | 177 +++ .../commons/partition/SeriesPartitionTable.java | 192 +++ .../org/apache/iotdb/commons/path/PartialPath.java | 17 + .../org/apache/iotdb/commons/path/PathType.java | 10 +- .../BuiltinTimeSeriesGeneratingFunction.java | 21 + .../commons/udf/builtin/String/UDTFConcat.java | 76 + .../commons/udf/builtin/String/UDTFEndsWith.java | 53 + .../commons/udf/builtin/String/UDTFLower.java | 50 + .../commons/udf/builtin/String/UDTFStartsWith.java | 52 + .../commons/udf/builtin/String/UDTFStrCompare.java | 57 + .../commons/udf/builtin/String/UDTFStrLength.java | 50 + .../commons/udf/builtin/String/UDTFStrLocate.java | 62 + .../commons/udf/builtin/String/UDTFSubstr.java | 72 + .../iotdb/commons/udf/builtin/String/UDTFTrim.java | 50 + .../commons/udf/builtin/String/UDTFUpper.java | 50 + .../org/apache/iotdb/commons/utils/AuthUtils.java | 37 + .../commons/utils/BasicStructureSerDeUtil.java | 86 +- .../org/apache/iotdb/commons/utils/FileUtils.java | 12 + .../org/apache/iotdb/commons/utils/PathUtils.java | 4 + .../commons/utils/ThriftCommonsSerDeUtils.java | 34 +- .../commons/utils/ThriftConfigNodeSerDeUtils.java | 10 + .../iotdb/commons/IoTDBThreadPoolFactoryTest.java | 4 +- .../commons/{ => client}/ClientManagerTest.java | 87 +- .../client/mock/MockInternalRPCService.java | 92 ++ .../client/mock/MockInternalRPCServiceMBean.java | 5 +- .../commons/partition/DataPartitionTableTest.java | 124 ++ .../iotdb/commons/partition/DataPartitionTest.java | 69 - .../partition/SchemaPartitionTableTest.java | 101 ++ .../commons/partition/SchemaPartitionTest.java | 65 - .../partition/SeriesPartitionTableTest.java | 111 ++ .../commons/utils/ThriftCommonsSerDeUtilsTest.java | 94 +- .../utils/ThriftConfigNodeSerDeUtilsTest.java | 14 - pom.xml | 21 +- server/pom.xml | 4 + .../src/assembly/resources/sbin/start-datanode.sh | 63 + .../assembly/resources/sbin/start-new-server.bat | 126 ++ .../sbin/{start-server.sh => start-new-server.sh} | 67 +- server/src/assembly/resources/sbin/start-server.sh | 63 + .../org/apache/iotdb/db/auth/AuthorityChecker.java | 8 +- .../org/apache/iotdb/db/auth/AuthorityFetcher.java | 182 --- .../apache/iotdb/db/auth/AuthorizerManager.java | 218 +-- .../iotdb/db/auth/ClusterAuthorityFetcher.java | 364 +++++ .../apache/iotdb/db/auth/IAuthorityFetcher.java | 22 +- .../iotdb/db/auth/StandaloneAuthorityFetcher.java | 131 ++ .../apache/iotdb/db/client/ConfigNodeClient.java | 34 + .../consensus/statemachine/BaseStateMachine.java | 18 +- .../statemachine/DataRegionStateMachine.java | 14 +- .../statemachine/SchemaRegionStateMachine.java | 4 +- .../statemachine/visitor/DataExecutionVisitor.java | 10 - .../org/apache/iotdb/db/engine/StorageEngine.java | 46 +- .../apache/iotdb/db/engine/StorageEngineV2.java | 166 +-- .../engine/compaction/CompactionTaskManager.java | 47 +- .../utils/AlignedSeriesCompactionExecutor.java | 8 +- .../utils/SingleSeriesCompactionExecutor.java | 10 +- .../compaction/task/AbstractCompactionTask.java | 2 +- .../writer/AbstractCompactionWriter.java | 4 +- .../iotdb/db/engine/cq/ContinuousQueryService.java | 4 +- .../iotdb/db/engine/storagegroup/DataRegion.java | 60 +- .../db/engine/storagegroup/TsFileResource.java | 6 +- .../dataregion/StorageGroupManager.java | 4 +- .../runtime/SerializationRunTimeException.java | 10 +- .../sql/MeasurementNotExistException.java | 12 +- .../iotdb/db/localconfignode/LocalConfigNode.java | 505 ++++++- .../localconfignode/LocalDataPartitionTable.java | 50 +- .../db/metadata/cache/DataNodeSchemaCache.java | 17 + .../iotdb/db/metadata/mtree/MTreeAboveSG.java | 24 + .../db/metadata/mtree/MTreeBelowSGCachedImpl.java | 1 + .../db/metadata/mtree/MTreeBelowSGMemoryImpl.java | 1 + .../apache/iotdb/db/metadata/path/AlignedPath.java | 29 + .../iotdb/db/metadata/path/MeasurementPath.java | 21 + .../db/metadata/schemaregion/SchemaEngine.java | 7 + .../metadata/schemaregion/SchemaRegionUtils.java | 5 + .../iotdb/db/metadata/utils/MetaFormatUtils.java | 6 +- .../metadata/visitor/SchemaExecutionVisitor.java | 14 - .../TimeRangeIteratorFactory.java | 12 +- .../iotdb/db/mpp/common/FragmentInstanceId.java | 14 +- .../apache/iotdb/db/mpp/common/PlanFragmentId.java | 9 +- .../org/apache/iotdb/db/mpp/common/QueryId.java | 6 + .../db/mpp/common/schematree/PathPatternNode.java | 13 + .../db/mpp/common/schematree/PathPatternTree.java | 6 + .../iotdb/db/mpp/common/schematree/SchemaTree.java | 7 +- .../execution/datatransfer/DataBlockManager.java | 199 +-- .../execution/datatransfer/DataBlockService.java | 21 +- .../execution/datatransfer/LocalSinkHandle.java | 8 +- .../execution/datatransfer/LocalSourceHandle.java | 46 +- .../execution/datatransfer/SharedTsBlockQueue.java | 6 +- .../db/mpp/execution/datatransfer/SinkHandle.java | 89 +- .../mpp/execution/datatransfer/SourceHandle.java | 349 ++--- .../fragment/FragmentInstanceExecution.java | 35 +- .../fragment/FragmentInstanceManager.java | 82 +- .../fragment/FragmentInstanceStateMachine.java | 7 +- .../schema/NodeManageMemoryMergeOperator.java | 7 +- .../operator/schema/NodePathsConvertOperator.java | 5 +- .../operator/schema/NodePathsCountOperator.java | 38 +- .../execution/schedule/AbstractDriverThread.java | 13 +- .../db/mpp/execution/schedule/DriverScheduler.java | 119 +- .../mpp/execution/schedule/DriverTaskThread.java | 6 +- .../org/apache/iotdb/db/mpp/plan/Coordinator.java | 60 +- .../apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 64 +- .../mpp/plan/analyze/ClusterPartitionFetcher.java | 47 +- .../db/mpp/plan/analyze/ClusterSchemaFetcher.java | 70 +- .../db/mpp/plan/analyze/ExpressionAnalyzer.java | 9 +- .../mpp/plan/analyze/GroupByLevelController.java | 57 +- .../iotdb/db/mpp/plan/analyze/SchemaValidator.java | 6 +- .../plan/analyze/StandalonePartitionFetcher.java | 151 +- .../mpp/plan/analyze/StandaloneSchemaFetcher.java | 237 +++- .../iotdb/db/mpp/plan/analyze/TypeProvider.java | 10 + .../DataNodeEndPoints.java} | 30 +- .../db/mpp/plan/execution/IQueryExecution.java | 2 + .../db/mpp/plan/execution/QueryExecution.java | 99 +- .../execution/config/AuthorizerConfigTask.java | 87 -- .../mpp/plan/execution/config/AuthorizerTask.java | 48 + .../mpp/plan/execution/config/ConfigExecution.java | 32 +- .../plan/execution/config/ConfigTaskVisitor.java | 8 +- .../execution/config/CountStorageGroupTask.java | 51 +- .../plan/execution/config/CreateFunctionTask.java | 74 +- .../execution/config/DeleteStorageGroupTask.java | 69 +- .../plan/execution/config/DropFunctionTask.java | 65 +- .../db/mpp/plan/execution/config/FlushTask.java | 66 + .../db/mpp/plan/execution/config/IConfigTask.java | 7 +- .../plan/execution/config/SetStorageGroupTask.java | 66 +- .../db/mpp/plan/execution/config/SetTTLTask.java | 58 +- .../mpp/plan/execution/config/ShowClusterTask.java | 65 +- .../plan/execution/config/ShowFunctionsTask.java | 7 +- .../execution/config/ShowStorageGroupTask.java | 64 +- .../db/mpp/plan/execution/config/ShowTTLTask.java | 85 +- .../config/executor/ClusterConfigTaskExecutor.java | 328 +++++ .../config/executor/IConfigTaskExecutor.java | 61 + .../executor/StandsloneConfigTaskExecutor.java | 259 ++++ .../plan/execution/memory/MemorySourceHandle.java | 4 +- .../iotdb/db/mpp/plan/expression/Expression.java | 14 + .../plan/expression/binary/BinaryExpression.java | 7 + .../mpp/plan/expression/leaf/ConstantOperand.java | 7 + .../plan/expression/leaf/TimeSeriesOperand.java | 6 + .../mpp/plan/expression/leaf/TimestampOperand.java | 6 + .../plan/expression/multi/FunctionExpression.java | 11 + .../db/mpp/plan/expression/unary/InExpression.java | 18 +- .../mpp/plan/expression/unary/LikeExpression.java | 16 +- .../plan/expression/unary/RegularExpression.java | 16 +- .../mpp/plan/expression/unary/UnaryExpression.java | 6 + .../iotdb/db/mpp/plan/parser/ASTVisitor.java | 47 +- .../db/mpp/plan/planner/LocalExecutionPlanner.java | 60 +- .../distribution/DistributionPlanContext.java | 6 + .../planner/distribution/DistributionPlanner.java | 2 +- .../planner/distribution/ExchangeNodeAdder.java | 19 +- .../plan/planner/distribution/SourceRewriter.java | 5 +- .../db/mpp/plan/planner/plan/FragmentInstance.java | 56 +- .../db/mpp/plan/planner/plan/PlanFragment.java | 16 +- .../plan/planner/plan/node/DeleteRegionNode.java | 109 -- .../plan/planner/plan/node/PlanGraphPrinter.java | 20 +- .../db/mpp/plan/planner/plan/node/PlanNode.java | 44 +- .../db/mpp/plan/planner/plan/node/PlanNodeId.java | 8 +- .../mpp/plan/planner/plan/node/PlanNodeType.java | 11 +- .../db/mpp/plan/planner/plan/node/PlanVisitor.java | 6 +- .../node/metedata/read/CountSchemaMergeNode.java | 7 + .../plan/node/metedata/read/DevicesCountNode.java | 9 + .../node/metedata/read/DevicesSchemaScanNode.java | 12 + .../metedata/read/LevelTimeSeriesCountNode.java | 10 + .../read/NodeManagementMemoryMergeNode.java | 12 + .../node/metedata/read/NodePathsConvertNode.java | 7 + .../node/metedata/read/NodePathsCountNode.java | 7 + .../metedata/read/NodePathsSchemaScanNode.java | 9 + .../node/metedata/read/SchemaFetchMergeNode.java | 7 + .../node/metedata/read/SchemaFetchScanNode.java | 9 + .../node/metedata/read/SchemaQueryMergeNode.java | 7 + .../metedata/read/SchemaQueryOrderByHeatNode.java | 7 + .../node/metedata/read/TimeSeriesCountNode.java | 9 + .../metedata/read/TimeSeriesSchemaScanNode.java | 15 + .../node/metedata/write/AlterTimeSeriesNode.java | 51 +- .../write/CreateAlignedTimeSeriesNode.java | 67 + .../metedata/write/CreateMultiTimeSeriesNode.java | 16 +- .../node/metedata/write/CreateTimeSeriesNode.java | 52 + .../node/metedata/write/DeleteTimeSeriesNode.java | 11 + .../metedata/write/InvalidateSchemaCacheNode.java | 16 + .../plan/node/metedata/write/MeasurementGroup.java | 63 +- .../planner/plan/node/process/AggregationNode.java | 20 +- .../planner/plan/node/process/DeviceMergeNode.java | 13 + .../planner/plan/node/process/DeviceViewNode.java | 25 + .../planner/plan/node/process/ExchangeNode.java | 15 + .../plan/planner/plan/node/process/FillNode.java | 8 + .../plan/planner/plan/node/process/FilterNode.java | 14 + .../planner/plan/node/process/FilterNullNode.java | 8 + .../plan/node/process/GroupByLevelNode.java | 18 + .../plan/node/process/LastQueryMergeNode.java | 16 +- .../plan/planner/plan/node/process/LimitNode.java | 8 + .../plan/planner/plan/node/process/OffsetNode.java | 8 + .../planner/plan/node/process/ProjectNode.java | 11 + .../node/process/SlidingWindowAggregationNode.java | 18 + .../plan/planner/plan/node/process/SortNode.java | 8 + .../planner/plan/node/process/TimeJoinNode.java | 8 + .../planner/plan/node/process/TransformNode.java | 13 + .../planner/plan/node/sink/FragmentSinkNode.java | 11 + .../plan/node/source/AlignedLastQueryScanNode.java | 12 +- .../source/AlignedSeriesAggregationScanNode.java | 35 + .../plan/node/source/AlignedSeriesScanNode.java | 27 +- .../plan/node/source/LastQueryScanNode.java | 8 + .../node/source/SeriesAggregationScanNode.java | 26 + .../planner/plan/node/source/SeriesScanNode.java | 23 + .../planner/plan/node/write/DeleteDataNode.java | 13 + .../plan/node/write/InsertMultiTabletsNode.java | 21 +- .../plan/planner/plan/node/write/InsertNode.java | 20 +- .../planner/plan/node/write/InsertRowNode.java | 94 +- .../planner/plan/node/write/InsertRowsNode.java | 21 +- .../plan/node/write/InsertRowsOfOneDeviceNode.java | 24 +- .../planner/plan/node/write/InsertTabletNode.java | 165 ++- .../plan/parameter/AggregationDescriptor.java | 14 + .../planner/plan/parameter/AggregationStep.java | 7 + .../planner/plan/parameter/FillDescriptor.java | 9 + .../plan/parameter/FilterNullParameter.java | 10 + .../plan/parameter/GroupByLevelDescriptor.java | 8 + .../plan/parameter/GroupByTimeParameter.java | 25 +- .../db/mpp/plan/scheduler/ClusterScheduler.java | 12 +- .../scheduler/FixedRateFragInsStateTracker.java | 9 +- .../scheduler/FragmentInstanceDispatcherImpl.java | 63 +- .../scheduler/SimpleFragInstanceDispatcher.java | 89 -- .../db/mpp/plan/scheduler/StandaloneScheduler.java | 90 +- .../db/mpp/plan/statement/StatementVisitor.java | 5 + .../mpp/plan/statement/literal/BooleanLiteral.java | 8 + .../mpp/plan/statement/literal/DoubleLiteral.java | 8 + .../db/mpp/plan/statement/literal/Literal.java | 4 + .../db/mpp/plan/statement/literal/LongLiteral.java | 8 + .../db/mpp/plan/statement/literal/NullLiteral.java | 7 + .../mpp/plan/statement/literal/StringLiteral.java | 8 + .../db/mpp/plan/statement/sys/FlushStatement.java | 92 ++ .../dag/transformer/unary/InTransformer.java | 14 +- .../dag/transformer/unary/RegularTransformer.java | 4 +- .../apache/iotdb/db/qp/executor/PlanExecutor.java | 9 +- .../apache/iotdb/db/qp/physical/PhysicalPlan.java | 13 +- .../iotdb/db/qp/physical/crud/SelectIntoPlan.java | 2 +- .../iotdb/db/qp/physical/sys/AuthorPlan.java | 26 +- .../qp/physical/sys/CreateMultiTimeSeriesPlan.java | 2 +- .../db/qp/physical/sys/CreateTriggerPlan.java | 2 +- .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 14 +- .../db/query/control/SessionTimeoutManager.java | 4 +- .../query/reader/chunk/MemAlignedPageReader.java | 52 +- .../java/org/apache/iotdb/db/service/DataNode.java | 127 +- .../java/org/apache/iotdb/db/service/IoTDB.java | 37 +- .../apache/iotdb/db/service/IoTDBShutdownHook.java | 9 +- .../iotdb/db/service/{IoTDB.java => NewIoTDB.java} | 87 +- .../org/apache/iotdb/db/service/NewIoTDBMBean.java | 9 +- .../db/service/basic/QueryFrequencyRecorder.java | 4 +- .../iotdb/db/service/metrics/enums/Metric.java | 1 + .../metrics/recorder/CacheMetricsRecorder.java | 65 + .../recorder/CompactionMetricsRecorder.java} | 20 +- .../thrift/impl/DataNodeTSIServiceImpl.java | 99 +- .../service/thrift/impl/InternalServiceImpl.java | 242 ++-- .../org/apache/iotdb/db/sync/sender/pipe/Pipe.java | 4 + .../iotdb/db/sync/sender/pipe/TsFilePipe.java | 12 + .../iotdb/db/sync/sender/service/MsgManager.java | 2 +- .../db/sync/sender/service/SenderService.java | 5 + .../db/sync/sender/service/TransportHandler.java | 21 +- .../db/sync/transport/client/ClientWrapper.java | 125 ++ .../db/sync/transport/client/ITransportClient.java | 2 + .../db/sync/transport/client/TransportClient.java | 258 ++-- .../transport/server/TransportServiceImpl.java | 29 +- .../java/org/apache/iotdb/db/wal/WALManager.java | 22 +- .../org/apache/iotdb/db/wal/buffer/WALBuffer.java | 12 +- .../iotdb/db/auth/AuthorizerManagerTest.java | 38 +- .../db/mpp/aggregation/TimeRangeIteratorTest.java | 22 +- .../db/mpp/common/schematree/SchemaTreeTest.java | 13 + .../db/mpp/execution/ConfigExecutionTest.java | 7 +- .../datatransfer/LocalSourceHandleTest.java | 2 +- .../db/mpp/plan/StandaloneCoordinatorTest.java | 149 ++ .../mpp/plan/plan/FragmentInstanceSerdeTest.java | 15 +- .../distribution/NoDataRegionPlanningTest.java | 84 ++ .../node/process/GroupByLevelNodeSerdeTest.java | 12 +- .../plan/node/write/DeleteRegionNodeSerdeTest.java | 60 - .../plan/scheduler/StandaloneSchedulerTest.java | 518 +++++++ .../iotdb/db/service/InternalServiceImplTest.java | 95 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 16 +- thrift-commons/src/main/thrift/common.thrift | 6 + .../src/main/thrift/confignode.thrift | 31 +- .../src/main/thrift/mutlileader.thrift | 8 +- thrift/src/main/thrift/mpp.thrift | 56 +- .../org/apache/iotdb/tsfile/read/common/Path.java | 15 +- .../block/column/BinaryArrayColumnEncoder.java | 5 +- .../block/column/ByteArrayColumnEncoder.java | 5 +- .../read/common/block/column/ColumnEncoder.java | 9 +- .../common/block/column/ColumnEncoderFactory.java | 3 +- .../read/common/block/column/ColumnEncoding.java | 6 +- .../block/column/Int32ArrayColumnEncoder.java | 8 +- .../block/column/Int64ArrayColumnEncoder.java | 21 +- .../block/column/RunLengthColumnEncoder.java | 54 + .../block/column/RunLengthEncodedColumn.java | 2 +- .../read/common/block/column/TsBlockSerde.java | 19 +- .../java/org/apache/iotdb/tsfile/utils/Pair.java | 8 + .../common/block/BinaryArrayColumnEncoderTest.java | 8 +- .../common/block/ByteArrayColumnEncoderTest.java | 9 +- .../common/block/Int32ArrayColumnEncoderTest.java | 15 +- .../common/block/Int64ArrayColumnEncoderTest.java | 17 +- ...erTest.java => RunLengthColumnEncoderTest.java} | 75 +- 495 files changed, 22436 insertions(+), 9499 deletions(-) diff --cc cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java index d7e0f61491,d23bfdded0..d65e060da9 --- a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java @@@ -33,7 -33,9 +33,8 @@@ import org.apache.iotdb.cluster.log.Sta import org.apache.iotdb.cluster.log.manage.serializable.LogManagerMeta; import org.apache.iotdb.cluster.server.monitor.Timer.Statistic; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; + import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.tsfile.utils.RamUsageEstimator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --cc server/src/main/java/org/apache/iotdb/db/service/basic/QueryFrequencyRecorder.java index 4934992fdd,5c4290f4c4..b46cbb13b0 --- a/server/src/main/java/org/apache/iotdb/db/service/basic/QueryFrequencyRecorder.java +++ b/server/src/main/java/org/apache/iotdb/db/service/basic/QueryFrequencyRecorder.java @@@ -19,8 -19,8 +19,9 @@@ package org.apache.iotdb.db.service.basic; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; + import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil; import org.apache.iotdb.db.conf.IoTDBConfig; +import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@@ -34,22 -34,11 +35,23 @@@ public class QueryFrequencyRecorder private static final Logger QUERY_FREQUENCY_LOGGER = LoggerFactory.getLogger("QUERY_FREQUENCY"); private static final AtomicInteger QUERY_COUNT = new AtomicInteger(0); - public QueryFrequencyRecorder(IoTDBConfig config) { + public static QueryFrequencyRecorder getInstance() { + return QueryFrequencyRecorder.InstanceHolder.instance; + } + + private static class InstanceHolder { + + private InstanceHolder() {} + + private static QueryFrequencyRecorder instance = + new QueryFrequencyRecorder(IoTDBDescriptor.getInstance().getConfig()); + } + + private QueryFrequencyRecorder(IoTDBConfig config) { ScheduledExecutorService timedQuerySqlCountThread = IoTDBThreadPoolFactory.newSingleThreadScheduledExecutor("timedQuerySqlCount"); - timedQuerySqlCountThread.scheduleAtFixedRate( + ScheduledExecutorUtil.safelyScheduleAtFixedRate( + timedQuerySqlCountThread, () -> { if (QUERY_COUNT.get() != 0) { QUERY_FREQUENCY_LOGGER.info( diff --cc service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java index c84dfdc56c,90a36ede1d..49dbee4b38 --- a/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java +++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java @@@ -119,8 -118,10 +119,10 @@@ public enum TSStatusCode NEED_REDIRECTION(707), PARSE_LOG_ERROR(708), ALL_RETRY_FAILED(709), - LEADER_CHANGED(710), - + MIGRATE_REGION_ERROR(710), + CREATE_REGION_ERROR(711), + DELETE_REGION_ERROR(712), - ++ LEADER_CHANGED(713), // configuration CONFIG_ERROR(800),
