Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2b6e347
implement sql parse of deactivate template
MarcosZyk Oct 17, 2022
f204fae
define configNode interface and implement configTask
MarcosZyk Oct 17, 2022
21555cc
implement template set info check
MarcosZyk Oct 18, 2022
a2546f0
refine package structure and set up DeactivateTemplateProcedure
MarcosZyk Oct 19, 2022
8c363b0
extract RegionTask
MarcosZyk Oct 19, 2022
0eb6406
set up state transmission
MarcosZyk Oct 19, 2022
975fb47
Revert "extract RegionTask"
MarcosZyk Oct 19, 2022
8444f82
extract DataNodeRegionGroupUtil
MarcosZyk Oct 19, 2022
4c7ab81
extract DataNodeRegionTask
MarcosZyk Oct 19, 2022
895a5bc
define dataNode internal Rpc interface
MarcosZyk Oct 19, 2022
f46603c
implement procedure
MarcosZyk Oct 20, 2022
7fdeb57
set up dataNode execution framework
MarcosZyk Oct 20, 2022
ca51bb1
refactor template activation operation and implement deactivate template
MarcosZyk Oct 20, 2022
5f6b616
process pre deactivated template in schema fetch
MarcosZyk Oct 20, 2022
8537e7e
Merge branch 'master' into deactivate_template
MarcosZyk Oct 20, 2022
88666ca
add license and java doc
MarcosZyk Oct 20, 2022
75e4834
add User Guide
MarcosZyk Oct 20, 2022
d95451b
fix error and add java doc
MarcosZyk Oct 21, 2022
e076afe
improve show paths using template efficiency
MarcosZyk Oct 21, 2022
9a37301
improve deactivate template with specified path pattern
MarcosZyk Oct 21, 2022
961fe20
add java doc and fix filter bug
MarcosZyk Oct 21, 2022
341b4ff
fix black list process
MarcosZyk Oct 21, 2022
0e2c098
add IT and fix revealed bugs
MarcosZyk Oct 21, 2022
645a9a5
fix activate template recover bug
MarcosZyk Oct 21, 2022
c81f498
fix schema region recover bug
MarcosZyk Oct 23, 2022
75f1fb4
improve IT
MarcosZyk Oct 23, 2022
87562fc
Merge branch 'master' into deactivate_template
MarcosZyk Oct 23, 2022
4ec54b7
add ser deser test
MarcosZyk Oct 23, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ ddlStatement
: setStorageGroup | createStorageGroup | createTimeseries
| createSchemaTemplate | createTimeseriesOfSchemaTemplate
| createFunction | createTrigger | createContinuousQuery
| alterTimeseries | deleteStorageGroup | deleteTimeseries | deletePartition
| alterTimeseries | deleteStorageGroup | deleteTimeseries | deletePartition | deleteTimeseriesOfSchemaTemplate
| dropFunction | dropTrigger | dropContinuousQuery | dropSchemaTemplate
| setTTL | unsetTTL | startTrigger | stopTrigger | setSchemaTemplate | unsetSchemaTemplate
| showStorageGroup | showDevices | showTimeseries | showChildPaths | showChildNodes
Expand Down Expand Up @@ -206,6 +206,11 @@ deletePartition
: DELETE PARTITION prefixPath INTEGER_LITERAL(COMMA INTEGER_LITERAL)*
;

// Delete Timeseries of Schema Template
deleteTimeseriesOfSchemaTemplate
: (DELETE TIMESERIES OF | DEACTIVATE) SCHEMA? TEMPLATE (templateName=identifier) ? FROM prefixPath (COMMA prefixPath)*
;

// Drop Function
dropFunction
: DROP FUNCTION udfName=identifier
Expand Down Expand Up @@ -361,7 +366,7 @@ showPathsSetSchemaTemplate

// Show Paths Using Schema Template
showPathsUsingSchemaTemplate
: SHOW PATHS USING SCHEMA? TEMPLATE templateName=identifier
: SHOW PATHS prefixPath? USING SCHEMA? TEMPLATE templateName=identifier
;

// Count Storage Group
Expand Down
4 changes: 4 additions & 0 deletions antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,10 @@ DATANODES
: D A T A N O D E S
;

DEACTIVATE
: D E A C T I V A T E
;

DEBUG
: D E B U G
;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ public enum DataNodeRequestType {
ROLLBACK_SCHEMA_BLACK_LIST,
FETCH_SCHEMA_BLACK_LIST,
INVALIDATE_MATCHED_SCHEMA_CACHE,
DELETE_DATA_FOR_DELETE_TIMESERIES,
DELETE_TIMESERIES
DELETE_DATA_FOR_DELETE_SCHEMA,
DELETE_TIMESERIES,

CONSTRUCT_SCHEMA_BLACK_LIST_WITH_TEMPLATE,
ROLLBACK_SCHEMA_BLACK_LIST_WITH_TEMPLATE,
DEACTIVATE_TEMPLATE
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,18 @@
import org.apache.iotdb.confignode.client.DataNodeRequestType;
import org.apache.iotdb.confignode.client.async.handlers.AsyncClientHandler;
import org.apache.iotdb.confignode.client.async.handlers.rpc.AsyncTSStatusRPCHandler;
import org.apache.iotdb.confignode.client.async.handlers.rpc.DeleteTimeSeriesRPCHandler;
import org.apache.iotdb.confignode.client.async.handlers.rpc.DeleteSchemaRPCHandler;
import org.apache.iotdb.confignode.client.async.handlers.rpc.FetchSchemaBlackListRPCHandler;
import org.apache.iotdb.mpp.rpc.thrift.TActiveTriggerInstanceReq;
import org.apache.iotdb.mpp.rpc.thrift.TConstructSchemaBlackListReq;
import org.apache.iotdb.mpp.rpc.thrift.TConstructSchemaBlackListWithTemplateReq;
import org.apache.iotdb.mpp.rpc.thrift.TCreateDataRegionReq;
import org.apache.iotdb.mpp.rpc.thrift.TCreateFunctionRequest;
import org.apache.iotdb.mpp.rpc.thrift.TCreatePipeOnDataNodeReq;
import org.apache.iotdb.mpp.rpc.thrift.TCreateSchemaRegionReq;
import org.apache.iotdb.mpp.rpc.thrift.TCreateTriggerInstanceReq;
import org.apache.iotdb.mpp.rpc.thrift.TDeleteDataForDeleteTimeSeriesReq;
import org.apache.iotdb.mpp.rpc.thrift.TDeactivateTemplateReq;
import org.apache.iotdb.mpp.rpc.thrift.TDeleteDataForDeleteSchemaReq;
import org.apache.iotdb.mpp.rpc.thrift.TDeleteTimeSeriesReq;
import org.apache.iotdb.mpp.rpc.thrift.TDropFunctionRequest;
import org.apache.iotdb.mpp.rpc.thrift.TDropTriggerInstanceReq;
Expand All @@ -47,6 +49,7 @@
import org.apache.iotdb.mpp.rpc.thrift.TOperatePipeOnDataNodeReq;
import org.apache.iotdb.mpp.rpc.thrift.TRegionRouteReq;
import org.apache.iotdb.mpp.rpc.thrift.TRollbackSchemaBlackListReq;
import org.apache.iotdb.mpp.rpc.thrift.TRollbackSchemaBlackListWithTemplateReq;
import org.apache.iotdb.mpp.rpc.thrift.TUpdateConfigNodeGroupReq;
import org.apache.iotdb.mpp.rpc.thrift.TUpdateTriggerLocationReq;

Expand Down Expand Up @@ -220,13 +223,13 @@ private void sendAsyncRequestToDataNode(
case CONSTRUCT_SCHEMA_BLACK_LIST:
client.constructSchemaBlackList(
(TConstructSchemaBlackListReq) clientHandler.getRequest(requestId),
(DeleteTimeSeriesRPCHandler)
(DeleteSchemaRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
break;
case ROLLBACK_SCHEMA_BLACK_LIST:
client.rollbackSchemaBlackList(
(TRollbackSchemaBlackListReq) clientHandler.getRequest(requestId),
(DeleteTimeSeriesRPCHandler)
(DeleteSchemaRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
break;
case FETCH_SCHEMA_BLACK_LIST:
Expand All @@ -241,16 +244,16 @@ private void sendAsyncRequestToDataNode(
(AsyncTSStatusRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
break;
case DELETE_DATA_FOR_DELETE_TIMESERIES:
client.deleteDataForDeleteTimeSeries(
(TDeleteDataForDeleteTimeSeriesReq) clientHandler.getRequest(requestId),
(DeleteTimeSeriesRPCHandler)
case DELETE_DATA_FOR_DELETE_SCHEMA:
client.deleteDataForDeleteSchema(
(TDeleteDataForDeleteSchemaReq) clientHandler.getRequest(requestId),
(DeleteSchemaRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
break;
case DELETE_TIMESERIES:
client.deleteTimeSeries(
(TDeleteTimeSeriesReq) clientHandler.getRequest(requestId),
(DeleteTimeSeriesRPCHandler)
(DeleteSchemaRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
break;
case PRE_CREATE_PIPE:
Expand All @@ -265,6 +268,23 @@ private void sendAsyncRequestToDataNode(
(AsyncTSStatusRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
break;
case CONSTRUCT_SCHEMA_BLACK_LIST_WITH_TEMPLATE:
client.constructSchemaBlackListWithTemplate(
(TConstructSchemaBlackListWithTemplateReq) clientHandler.getRequest(requestId),
(DeleteSchemaRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
break;
case ROLLBACK_SCHEMA_BLACK_LIST_WITH_TEMPLATE:
client.rollbackSchemaBlackListWithTemplate(
(TRollbackSchemaBlackListWithTemplateReq) clientHandler.getRequest(requestId),
(DeleteSchemaRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
break;
case DEACTIVATE_TEMPLATE:
client.deactivateTemplate(
(TDeactivateTemplateReq) clientHandler.getRequest(requestId),
(DeleteSchemaRPCHandler)
clientHandler.createAsyncRPCHandler(requestId, targetDataNode));
default:
LOGGER.error(
"Unexpected DataNode Request Type: {} when sendAsyncRequestToDataNode",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import org.apache.iotdb.confignode.client.DataNodeRequestType;
import org.apache.iotdb.confignode.client.async.handlers.rpc.AbstractAsyncRPCHandler;
import org.apache.iotdb.confignode.client.async.handlers.rpc.AsyncTSStatusRPCHandler;
import org.apache.iotdb.confignode.client.async.handlers.rpc.DeleteTimeSeriesRPCHandler;
import org.apache.iotdb.confignode.client.async.handlers.rpc.DeleteSchemaRPCHandler;
import org.apache.iotdb.confignode.client.async.handlers.rpc.FetchSchemaBlackListRPCHandler;
import org.apache.iotdb.mpp.rpc.thrift.TFetchSchemaBlackListResp;

Expand Down Expand Up @@ -153,9 +153,12 @@ public AbstractAsyncRPCHandler<?> createAsyncRPCHandler(
switch (requestType) {
case CONSTRUCT_SCHEMA_BLACK_LIST:
case ROLLBACK_SCHEMA_BLACK_LIST:
case DELETE_DATA_FOR_DELETE_TIMESERIES:
case DELETE_DATA_FOR_DELETE_SCHEMA:
case DELETE_TIMESERIES:
return new DeleteTimeSeriesRPCHandler(
case CONSTRUCT_SCHEMA_BLACK_LIST_WITH_TEMPLATE:
case ROLLBACK_SCHEMA_BLACK_LIST_WITH_TEMPLATE:
case DEACTIVATE_TEMPLATE:
return new DeleteSchemaRPCHandler(
requestType,
requestId,
targetDataNode,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@
import java.util.Map;
import java.util.concurrent.CountDownLatch;

public class DeleteTimeSeriesRPCHandler extends AsyncTSStatusRPCHandler {
public class DeleteSchemaRPCHandler extends AsyncTSStatusRPCHandler {

private static final Logger LOGGER = LoggerFactory.getLogger(DeleteTimeSeriesRPCHandler.class);
private static final Logger LOGGER = LoggerFactory.getLogger(DeleteSchemaRPCHandler.class);

public DeleteTimeSeriesRPCHandler(
public DeleteSchemaRPCHandler(
DataNodeRequestType requestType,
int requestId,
TDataNodeLocation targetDataNode,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
import org.apache.iotdb.confignode.consensus.request.read.template.GetAllTemplateSetInfoPlan;
import org.apache.iotdb.confignode.consensus.request.read.template.GetPathsSetTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.read.template.GetSchemaTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.read.template.GetTemplateSetInfoPlan;
import org.apache.iotdb.confignode.consensus.request.write.confignode.ApplyConfigNodePlan;
import org.apache.iotdb.confignode.consensus.request.write.confignode.RemoveConfigNodePlan;
import org.apache.iotdb.confignode.consensus.request.write.datanode.RegisterDataNodePlan;
Expand Down Expand Up @@ -272,6 +273,9 @@ public static ConfigPhysicalPlan create(ByteBuffer buffer) throws IOException {
case SetSchemaTemplate:
req = new SetSchemaTemplatePlan();
break;
case GetTemplateSetInfo:
req = new GetTemplateSetInfoPlan();
break;
case GetNodePathsPartition:
req = new GetNodePathsPartitionPlan();
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,6 @@ public enum ConfigPhysicalPlanType {
UpdateTriggersOnTransferNodes,
UpdateTriggerLocation,
GetTransferringTriggers,
GetTriggerLocation
GetTriggerLocation,
GetTemplateSetInfo
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.iotdb.confignode.consensus.request.read.template;

import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathDeserializeUtil;
import org.apache.iotdb.confignode.consensus.request.ConfigPhysicalPlan;
import org.apache.iotdb.confignode.consensus.request.ConfigPhysicalPlanType;
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;

import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;

public class GetTemplateSetInfoPlan extends ConfigPhysicalPlan {

private List<PartialPath> patternList;

public GetTemplateSetInfoPlan() {
super(ConfigPhysicalPlanType.GetTemplateSetInfo);
}

public GetTemplateSetInfoPlan(List<PartialPath> patternList) {
super(ConfigPhysicalPlanType.GetTemplateSetInfo);
this.patternList = patternList;
}

public List<PartialPath> getPatternList() {
return patternList;
}

@Override
protected void serializeImpl(DataOutputStream stream) throws IOException {
ReadWriteIOUtils.write(ConfigPhysicalPlanType.GetTemplateSetInfo.ordinal(), stream);
ReadWriteIOUtils.write(patternList.size(), stream);
for (PartialPath pattern : patternList) {
pattern.serialize(stream);
}
}

@Override
protected void deserializeImpl(ByteBuffer buffer) throws IOException {
int size = ReadWriteIOUtils.readInt(buffer);
patternList = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
patternList.add((PartialPath) PathDeserializeUtil.deserialize(buffer));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.iotdb.confignode.consensus.response;

import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.consensus.common.DataSet;
import org.apache.iotdb.db.metadata.template.Template;

import java.util.List;
import java.util.Map;

public class TemplateSetInfoResp implements DataSet {

private TSStatus status;
private Map<PartialPath, List<Template>> patternTemplateMap;

public TemplateSetInfoResp() {}

public TSStatus getStatus() {
return status;
}

public void setStatus(TSStatus status) {
this.status = status;
}

public Map<PartialPath, List<Template>> getPatternTemplateMap() {
return patternTemplateMap;
}

public void setPatternTemplateMap(Map<PartialPath, List<Template>> patternTemplateMap) {
this.patternTemplateMap = patternTemplateMap;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import org.apache.iotdb.confignode.consensus.request.read.template.GetAllTemplateSetInfoPlan;
import org.apache.iotdb.confignode.consensus.request.read.template.GetPathsSetTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.read.template.GetSchemaTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.read.template.GetTemplateSetInfoPlan;
import org.apache.iotdb.confignode.consensus.request.write.storagegroup.AdjustMaxRegionGroupCountPlan;
import org.apache.iotdb.confignode.consensus.request.write.storagegroup.DeleteStorageGroupPlan;
import org.apache.iotdb.confignode.consensus.request.write.storagegroup.SetDataReplicationFactorPlan;
Expand All @@ -52,6 +53,7 @@
import org.apache.iotdb.confignode.consensus.response.PathInfoResp;
import org.apache.iotdb.confignode.consensus.response.StorageGroupSchemaResp;
import org.apache.iotdb.confignode.consensus.response.TemplateInfoResp;
import org.apache.iotdb.confignode.consensus.response.TemplateSetInfoResp;
import org.apache.iotdb.confignode.exception.StorageGroupNotExistsException;
import org.apache.iotdb.confignode.manager.node.NodeManager;
import org.apache.iotdb.confignode.manager.partition.PartitionManager;
Expand Down Expand Up @@ -553,6 +555,11 @@ public byte[] getAllTemplateSetInfo() {
return resp.getTemplateInfo();
}

public TemplateSetInfoResp getTemplateSetInfo(List<PartialPath> patternList) {
return (TemplateSetInfoResp)
getConsensusManager().read(new GetTemplateSetInfoPlan(patternList)).getDataset();
}

private NodeManager getNodeManager() {
return configManager.getNodeManager();
}
Expand Down
Loading