This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch multitimeseries in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit ad3a18461a5ed1a39b281f7154f764817086c272 Merge: 79ef4a6e4a 465b0cffbe Author: HTHou <[email protected]> AuthorDate: Fri May 13 15:56:59 2022 +0800 Support CreateMultiTimeseries in new cluster confignode/pom.xml | 5 + .../resources/conf/iotdb-confignode.properties | 31 ++- .../iotdb/confignode/conf/ConfigNodeConf.java | 34 +++ .../confignode/conf/ConfigNodeDescriptor.java | 18 ++ .../consensus/request/ConfigRequest.java | 14 +- .../consensus/request/ConfigRequestType.java | 2 + ...torageGroupReq.java => DeleteProcedureReq.java} | 35 ++- .../request/write/DeleteStorageGroupReq.java | 14 +- ...torageGroupReq.java => UpdateProcedureReq.java} | 40 +-- .../statemachine/PartitionRegionStateMachine.java | 34 ++- .../confignode/manager/ClusterSchemaManager.java | 5 + .../iotdb/confignode/manager/ConfigManager.java | 43 ++- .../iotdb/confignode/manager/ConsensusManager.java | 7 +- .../apache/iotdb/confignode/manager/Manager.java | 8 + .../iotdb/confignode/manager/PartitionManager.java | 5 + .../iotdb/confignode/manager/ProcedureManager.java | 183 +++++++++++++ .../iotdb/confignode/persistence/AuthorInfo.java | 6 +- .../confignode/persistence/ClusterSchemaInfo.java | 32 ++- .../confignode/persistence/PartitionInfo.java | 43 +++ .../confignode/persistence/ProcedureInfo.java | 115 ++++++++ .../executor/ConfigRequestExecutor.java | 10 + .../confignode/procedure/ConfigProcedureStore.java | 146 +++++++++++ .../procedure/DeleteStorageGroupProcedure.java | 247 +++++++++++++++++ .../procedure/DeleteStorageGroupState.java | 36 +-- .../confignode/procedure/ProcedureFactory.java | 72 +++++ .../procedure/env/ConfigNodeProcedureEnv.java | 84 ++++++ .../thrift/ConfigNodeRPCServiceProcessor.java | 14 +- .../consensus/request/ConfigRequestSerDeTest.java | 63 ++++- .../confignode/persistence/AuthorInfoTest.java | 292 +++++++++++++++++++++ .../thrift/ConfigNodeRPCServiceProcessorTest.java | 37 +++ .../confignode1conf/iotdb-confignode.properties | 3 +- .../confignode2conf/iotdb-confignode.properties | 3 +- .../confignode3conf/iotdb-confignode.properties | 3 +- .../commons/auth/role/LocalFileRoleAccessor.java | 11 +- .../iotdb/commons/auth/user/BasicUserManager.java | 5 + .../iotdb/commons/auth/user/IUserAccessor.java | 7 + .../commons/auth/user/LocalFileUserAccessor.java | 12 +- .../apache/iotdb/commons/conf/CommonConfig.java | 11 + .../iotdb/commons/conf/CommonDescriptor.java | 1 + .../iotdb/procedure/CompletedProcedureCleaner.java | 17 +- .../apache/iotdb/procedure/InternalProcedure.java | 4 +- .../java/org/apache/iotdb/procedure/Procedure.java | 36 +-- .../apache/iotdb/procedure/ProcedureExecutor.java | 10 +- .../iotdb/procedure/StateMachineProcedure.java | 8 +- .../iotdb/procedure/service/ProcedureServer.java | 3 +- .../service/ProcedureServerProcessor.java | 16 +- ...IProcedureStore.java => IProcedureFactory.java} | 26 +- .../iotdb/procedure/store/IProcedureStore.java | 1 + .../iotdb/procedure/store/ProcedureStore.java | 17 +- .../apache/iotdb/procedure/store/ProcedureWAL.java | 11 +- .../iotdb/procedure/entity/IncProcedure.java | 7 + .../procedure/entity/SimpleLockProcedure.java | 2 + .../iotdb/procedure/entity/SleepProcedure.java | 7 + .../iotdb/procedure/entity/StuckProcedure.java | 4 +- .../iotdb/procedure/entity/StuckSTMProcedure.java | 5 +- .../procedure/entity/TestProcedureFactory.java | 76 ++++++ .../procedure/service/TestProcedureService.java | 2 + .../iotdb/procedure/store/TestProcedureStore.java | 8 +- .../org/apache/iotdb/db/auth/AuthorityChecker.java | 1 - .../apache/iotdb/db/auth}/AuthorizerManager.java | 10 +- .../apache/iotdb/db/client/ConfigNodeClient.java | 6 +- .../consensus/statemachine/BaseStateMachine.java | 2 +- .../statemachine/DataRegionStateMachine.java | 33 ++- .../apache/iotdb/db/engine/StorageEngineV2.java | 4 + .../metadata/visitor/SchemaExecutionVisitor.java | 14 + .../apache/iotdb/db/mpp/plan/analyze/Analysis.java | 14 +- .../apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 2 +- .../mpp/plan/analyze/ClusterPartitionFetcher.java | 33 +++ .../db/mpp/plan/analyze/ClusterSchemaFetcher.java | 5 + .../mpp/plan/analyze/FakePartitionFetcherImpl.java | 3 + .../db/mpp/plan/analyze/FakeSchemaFetcherImpl.java | 3 + .../db/mpp/plan/analyze/IPartitionFetcher.java | 2 + .../iotdb/db/mpp/plan/analyze/ISchemaFetcher.java | 2 + .../plan/analyze/StandalonePartitionFetcher.java | 3 + .../mpp/plan/analyze/StandaloneSchemaFetcher.java | 3 + .../db/mpp/plan/execution/QueryExecution.java | 21 +- .../plan/execution/config/ConfigTaskVisitor.java | 6 + .../execution/config/DeleteStorageGroupTask.java | 101 +++++++ .../plan/execution/memory/MemorySourceHandle.java | 80 ++++++ .../execution/memory/StatementMemorySource.java | 39 ++- .../memory/StatementMemorySourceContext.java | 39 ++- .../memory/StatementMemorySourceVisitor.java | 36 +-- .../iotdb/db/mpp/plan/parser/ASTVisitor.java | 13 + .../db/mpp/plan/planner/plan/FragmentInstance.java | 18 +- .../plan/planner/plan/node/DeleteRegionNode.java | 109 ++++++++ .../db/mpp/plan/planner/plan/node/PlanNode.java | 2 +- .../mpp/plan/planner/plan/node/PlanNodeType.java | 5 +- .../db/mpp/plan/planner/plan/node/PlanVisitor.java | 4 + .../db/mpp/plan/statement/StatementVisitor.java | 10 +- .../metadata/DeleteStorageGroupStatement.java | 61 +++++ .../db/protocol/mqtt/BrokerAuthenticator.java | 4 +- .../protocol/rest/filter/AuthorizationFilter.java | 4 +- .../apache/iotdb/db/qp/executor/PlanExecutor.java | 2 +- .../iotdb/db/query/control/SessionManager.java | 2 +- .../service/thrift/impl/InternalServiceImpl.java | 40 +++ .../db/service/thrift/impl/TSServiceImpl.java | 9 +- .../apache/iotdb/db/auth/AuthorityCheckerTest.java | 3 +- .../auth/authorizer/LocalFileAuthorizerTest.java | 12 +- .../execution/memory/MemorySourceHandleTest.java | 50 ++-- .../plan/node/write/DeleteRegionNodeSerdeTest.java | 60 +++++ .../apache/iotdb/db/utils/EnvironmentUtils.java | 4 +- .../src/main/thrift/confignode.thrift | 8 +- thrift/src/main/thrift/mpp.thrift | 28 ++ 103 files changed, 2553 insertions(+), 348 deletions(-) diff --cc server/src/main/java/org/apache/iotdb/db/metadata/visitor/SchemaExecutionVisitor.java index 6561eb6dee,9988e8b8da..31785a3afd --- a/server/src/main/java/org/apache/iotdb/db/metadata/visitor/SchemaExecutionVisitor.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/visitor/SchemaExecutionVisitor.java @@@ -179,21 -146,18 +182,32 @@@ public class SchemaExecutionVisitor ext node.getTagsList(), node.getAttributesList()); } + + public PhysicalPlan visitCreateMultiTimeSeries( + CreateMultiTimeSeriesNode node, TransformerContext context) { + + CreateMultiTimeSeriesPlan multiPlan = new CreateMultiTimeSeriesPlan(); + multiPlan.setPaths(node.getPaths()); + multiPlan.setDataTypes(node.getDataTypes()); + multiPlan.setEncodings(node.getEncodings()); + multiPlan.setCompressors(node.getCompressors()); + multiPlan.setAlias(node.getAliasList()); + multiPlan.setTags(node.getTagsList()); + multiPlan.setAttributes(node.getAttributesList()); + return multiPlan; + } } + @Override + public TSStatus visitDeleteRegion(DeleteRegionNode node, ISchemaRegion schemaRegion) { + try { + SchemaEngine.getInstance().deleteSchemaRegion((SchemaRegionId) node.getConsensusGroupId()); + } catch (MetadataException e) { + logger.error("{}: MetaData error: ", IoTDBConstant.GLOBAL_DB_NAME, e); + return RpcUtils.getStatus(TSStatusCode.METADATA_ERROR, e.getMessage()); + } + return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS, "Execute successfully"); + } + private static class TransformerContext {} } diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanNodeType.java index 339445a86e,1d52cd0231..4fe62bad82 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanNodeType.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanNodeType.java @@@ -100,7 -99,7 +100,8 @@@ public enum PlanNodeType DEVICE_MERGE((short) 35), SCHEMA_FETCH_MERGE((short) 36), TRANSFORM((short) 37), - CREATE_MULTI_TIME_SERIES((short) 38); - DELETE_REGION((short) 38); ++ DELETE_REGION((short) 38), ++ CREATE_MULTI_TIME_SERIES((short) 39); private final short nodeType; @@@ -201,7 -200,7 +202,9 @@@ case 37: return TransformNode.deserialize(buffer); case 38: + return DeleteRegionNode.deserialize(buffer); ++ case 39: + return CreateMultiTimeSeriesNode.deserialize(buffer); default: throw new IllegalArgumentException("Invalid node type: " + nodeType); } diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java index 59d11c3c9a,77bd11ebd6..16bbdff8dd --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/StatementVisitor.java @@@ -32,8 -32,8 +32,9 @@@ import org.apache.iotdb.db.mpp.plan.sta import org.apache.iotdb.db.mpp.plan.statement.metadata.CountStorageGroupStatement; import org.apache.iotdb.db.mpp.plan.statement.metadata.CountTimeSeriesStatement; import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateAlignedTimeSeriesStatement; +import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateMultiTimeSeriesStatement; import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTimeSeriesStatement; + import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement; import org.apache.iotdb.db.mpp.plan.statement.metadata.SchemaFetchStatement; import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement; import org.apache.iotdb.db.mpp.plan.statement.metadata.SetTTLStatement;
