This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 243a6da182 [IOTDB-3469] Support set TTL in new cluster (#6453)
243a6da182 is described below
commit 243a6da182f79e419d19ce820c28220c5cdae17e
Author: 23931017wu <[email protected]>
AuthorDate: Thu Jun 30 08:47:21 2022 +0800
[IOTDB-3469] Support set TTL in new cluster (#6453)
---
.../confignode/client/SyncDataNodeClientPool.java | 15 +++++++++++
.../iotdb/confignode/manager/ConfigManager.java | 29 ++++++++++++++++++++++
.../iotdb/confignode/manager/PartitionManager.java | 4 +++
.../persistence/partition/PartitionInfo.java | 4 +++
.../partition/StorageGroupPartitionTable.java | 18 ++++++++++++++
.../thrift/ConfigNodeRPCServiceProcessor.java | 2 +-
.../thrift/ConfigNodeRPCServiceProcessorTest.java | 2 +-
.../apache/iotdb/db/integration/IoTDBTtlIT.java | 3 ++-
.../apache/iotdb/db/client/ConfigNodeClient.java | 2 +-
.../apache/iotdb/db/engine/StorageEngineV2.java | 14 +++++++++++
.../iotdb/db/localconfignode/LocalConfigNode.java | 4 +++
.../config/executor/ClusterConfigTaskExecutor.java | 2 +-
.../thrift/impl/DataNodeRPCServiceImpl.java | 6 +++++
thrift-commons/src/main/thrift/common.thrift | 7 +++++-
.../src/main/thrift/confignode.thrift | 8 +-----
thrift/src/main/thrift/datanode.thrift | 2 ++
16 files changed, 109 insertions(+), 13 deletions(-)
diff --git
a/confignode/src/main/java/org/apache/iotdb/confignode/client/SyncDataNodeClientPool.java
b/confignode/src/main/java/org/apache/iotdb/confignode/client/SyncDataNodeClientPool.java
index 22f184a345..c06bcf2ce9 100644
---
a/confignode/src/main/java/org/apache/iotdb/confignode/client/SyncDataNodeClientPool.java
+++
b/confignode/src/main/java/org/apache/iotdb/confignode/client/SyncDataNodeClientPool.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
import org.apache.iotdb.common.rpc.thrift.TEndPoint;
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.common.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.commons.client.IClientManager;
import org.apache.iotdb.commons.client.sync.SyncDataNodeInternalServiceClient;
import org.apache.iotdb.mpp.rpc.thrift.TInvalidateCacheReq;
@@ -149,4 +150,18 @@ public class SyncDataNodeClientPool {
public static SyncDataNodeClientPool getInstance() {
return ClientPoolHolder.INSTANCE;
}
+
+ public TSStatus setTTL(TEndPoint endPoint, TSetTTLReq setTTLReq) {
+ TSStatus status;
+ try (SyncDataNodeInternalServiceClient client =
clientManager.borrowClient(endPoint)) {
+ status = client.setTTL(setTTLReq);
+ } catch (IOException e) {
+ LOGGER.error("Can't connect to DataNode {}", endPoint, e);
+ status = new TSStatus(TSStatusCode.TIME_OUT.getStatusCode());
+ } catch (TException e) {
+ LOGGER.error("setTTL on DataNode {} failed", endPoint, e);
+ status = new
TSStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR.getStatusCode());
+ }
+ return status;
+ }
}
diff --git
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index 9b0aab00e4..9f1c5f2f03 100644
---
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@ -20,11 +20,13 @@
package org.apache.iotdb.confignode.manager;
import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation;
+import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType;
import org.apache.iotdb.common.rpc.thrift.TDataNodeInfo;
import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
import org.apache.iotdb.common.rpc.thrift.TFlushReq;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
+import org.apache.iotdb.common.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.exception.IllegalPathException;
@@ -32,6 +34,7 @@ import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.utils.AuthUtils;
import org.apache.iotdb.commons.utils.PathUtils;
import org.apache.iotdb.commons.utils.StatusUtils;
+import org.apache.iotdb.confignode.client.SyncDataNodeClientPool;
import org.apache.iotdb.confignode.conf.ConfigNodeConfig;
import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor;
import org.apache.iotdb.confignode.consensus.request.auth.AuthorPlan;
@@ -214,6 +217,32 @@ public class ConfigManager implements IManager {
public TSStatus setTTL(SetTTLPlan setTTLPlan) {
TSStatus status = confirmLeader();
if (status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ if (!clusterSchemaManager
+ .getStorageGroupNames()
+ .contains(setTTLPlan.getStorageGroup().toString())) {
+ return RpcUtils.getStatus(
+ TSStatusCode.STORAGE_GROUP_NOT_EXIST,
+ "storageGroup " + setTTLPlan.getStorageGroup() + " does not
exist");
+ }
+ Set<TDataNodeLocation> dataNodeLocations =
+ getPartitionManager()
+ .getDataNodeLocation(setTTLPlan.getStorageGroup(),
TConsensusGroupType.DataRegion);
+ if (dataNodeLocations.size() != 0) {
+ for (TDataNodeLocation dataNodeLocation : dataNodeLocations) {
+ List<TDataNodeInfo> onlineDataNodes =
+
getNodeManager().getOnlineDataNodes(dataNodeLocation.getDataNodeId());
+ for (TDataNodeInfo dataNodeInfo : onlineDataNodes) {
+ status =
+ SyncDataNodeClientPool.getInstance()
+ .setTTL(
+ dataNodeInfo.getLocation().getInternalEndPoint(),
+ new TSetTTLReq(setTTLPlan.getStorageGroup(),
setTTLPlan.getTTL()));
+ if (status.getCode() !=
TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ return status;
+ }
+ }
+ }
+ }
return clusterSchemaManager.setTTL(setTTLPlan);
} else {
return status;
diff --git
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/PartitionManager.java
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/PartitionManager.java
index a6a1df64b2..7d20d7cca9 100644
---
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/PartitionManager.java
+++
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/PartitionManager.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.confignode.manager;
import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId;
import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType;
+import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
@@ -424,6 +425,9 @@ public class PartitionManager {
throw new TimeoutException("");
}
+ public Set<TDataNodeLocation> getDataNodeLocation(String storageGroup,
TConsensusGroupType type) {
+ return partitionInfo.getDataNodeLocation(storageGroup, type);
+ }
/**
* Only leader use this interface
*
diff --git
a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
index 8e941639c7..4f56c7847d 100644
---
a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
+++
b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/PartitionInfo.java
@@ -562,6 +562,10 @@ public class PartitionInfo implements SnapshotProcessor {
return
storageGroupPartitionTables.get(storageGroup).getRegionAllocationParticle(type);
}
+ public Set<TDataNodeLocation> getDataNodeLocation(String storageGroup,
TConsensusGroupType type) {
+ return
storageGroupPartitionTables.get(storageGroup).getDataNodeLocation(type);
+ }
+
/**
* Only leader use this interface.
*
diff --git
a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/StorageGroupPartitionTable.java
b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/StorageGroupPartitionTable.java
index 525247728e..1d92dbc3c7 100644
---
a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/StorageGroupPartitionTable.java
+++
b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/StorageGroupPartitionTable.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.confignode.persistence.partition;
import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId;
import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType;
+import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
import org.apache.iotdb.common.rpc.thrift.TRegionInfo;
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
@@ -331,6 +332,23 @@ public class StorageGroupPartitionTable {
return
schemaPartitionTable.filterUnassignedSchemaPartitionSlots(partitionSlots);
}
+ public Set<TDataNodeLocation> getDataNodeLocation(TConsensusGroupType type) {
+ HashSet<TDataNodeLocation> result = new HashSet<>();
+ regionInfoMap.forEach(
+ (consensusGroupId, regionGroup) -> {
+ if (consensusGroupId.getType().equals(type)) {
+ regionGroup
+ .getReplicaSet()
+ .getDataNodeLocations()
+ .forEach(
+ (dataNodeLocation) -> {
+ result.add(dataNodeLocation);
+ });
+ }
+ });
+ return result;
+ }
+
/**
* Only Leader use this interface. Filter unassigned DataPartitionSlots
within the specific
* StorageGroup
diff --git
a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 916333f1c7..ab8d9477ad 100644
---
a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
+++
b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.confignode.service.thrift;
import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation;
import org.apache.iotdb.common.rpc.thrift.TFlushReq;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.common.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.commons.auth.AuthException;
import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.consensus.ConsensusGroupId;
@@ -78,7 +79,6 @@ import
org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionResp;
import org.apache.iotdb.confignode.rpc.thrift.TSetDataReplicationFactorReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaReplicationFactorReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
-import org.apache.iotdb.confignode.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetTimePartitionIntervalReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowRegionResp;
diff --git
a/confignode/src/test/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessorTest.java
b/confignode/src/test/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessorTest.java
index 434e76a721..1ded2abf77 100644
---
a/confignode/src/test/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessorTest.java
+++
b/confignode/src/test/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessorTest.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint;
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
+import org.apache.iotdb.common.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot;
import org.apache.iotdb.commons.auth.entity.PrivilegeType;
import org.apache.iotdb.commons.conf.CommonDescriptor;
@@ -62,7 +63,6 @@ import
org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionResp;
import org.apache.iotdb.confignode.rpc.thrift.TSetDataReplicationFactorReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaReplicationFactorReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
-import org.apache.iotdb.confignode.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetTimePartitionIntervalReq;
import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchemaResp;
diff --git
a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
index 0944b0308b..bbfd40277e 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.integration.env.EnvFactory;
import org.apache.iotdb.itbase.category.ClusterTest;
import org.apache.iotdb.itbase.category.LocalStandaloneTest;
+import org.apache.iotdb.itbase.category.RemoteTest;
import org.apache.iotdb.rpc.TSStatusCode;
import org.junit.After;
@@ -39,7 +40,7 @@ import java.sql.Statement;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-@Category({LocalStandaloneTest.class})
+@Category({LocalStandaloneTest.class, ClusterTest.class, RemoteTest.class})
public class IoTDBTtlIT {
@Before
diff --git
a/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
b/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
index 0a8fb410dd..c7cf3b84a0 100644
--- a/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
+++ b/server/src/main/java/org/apache/iotdb/db/client/ConfigNodeClient.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation;
import org.apache.iotdb.common.rpc.thrift.TEndPoint;
import org.apache.iotdb.common.rpc.thrift.TFlushReq;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.common.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.commons.client.BaseClientFactory;
import org.apache.iotdb.commons.client.ClientFactoryProperty;
import org.apache.iotdb.commons.client.ClientManager;
@@ -57,7 +58,6 @@ import
org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionResp;
import org.apache.iotdb.confignode.rpc.thrift.TSetDataReplicationFactorReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetSchemaReplicationFactorReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
-import org.apache.iotdb.confignode.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetTimePartitionIntervalReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowRegionResp;
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
index ef3b27e856..6337e9e7f1 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.engine;
import org.apache.iotdb.common.rpc.thrift.TFlushReq;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.common.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot;
import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
import org.apache.iotdb.commons.concurrent.ThreadName;
@@ -677,6 +678,19 @@ public class StorageEngineV2 implements IService {
dataRegionMap.put(regionId, newRegion);
}
+ public TSStatus setTTL(TSetTTLReq req) {
+ Map<String, List<DataRegionId>> localDataRegionInfo =
+ StorageEngineV2.getInstance().getLocalDataRegionInfo();
+ List<DataRegionId> dataRegionIdList =
localDataRegionInfo.get(req.storageGroup);
+ for (DataRegionId dataRegionId : dataRegionIdList) {
+ DataRegion dataRegion = dataRegionMap.get(dataRegionId);
+ if (dataRegion != null) {
+ dataRegion.setDataTTL(req.TTL);
+ }
+ }
+ return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
+ }
+
public TsFileFlushPolicy getFileFlushPolicy() {
return fileFlushPolicy;
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalConfigNode.java
b/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalConfigNode.java
index a2226fd82b..19e813a3c5 100644
---
a/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalConfigNode.java
+++
b/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalConfigNode.java
@@ -361,6 +361,10 @@ public class LocalConfigNode {
}
public void setTTL(PartialPath storageGroup, long dataTTL) throws
MetadataException, IOException {
+ if (config.isMppMode() && !config.isClusterMode()) {
+ storageEngine.setTTL(
+ dataPartitionTable.getDataRegionIdsByStorageGroup(storageGroup),
dataTTL);
+ }
storageGroupSchemaManager.setTTL(storageGroup, dataTTL);
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
index 71edb2af9b..37fa9ded56 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
@@ -21,6 +21,7 @@ package
org.apache.iotdb.db.mpp.plan.execution.config.executor;
import org.apache.iotdb.common.rpc.thrift.TFlushReq;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.common.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.commons.client.IClientManager;
import org.apache.iotdb.commons.consensus.PartitionRegionId;
import org.apache.iotdb.commons.exception.IoTDBException;
@@ -31,7 +32,6 @@ import
org.apache.iotdb.confignode.rpc.thrift.TCreateFunctionReq;
import org.apache.iotdb.confignode.rpc.thrift.TDeleteStorageGroupsReq;
import org.apache.iotdb.confignode.rpc.thrift.TDropFunctionReq;
import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
-import org.apache.iotdb.confignode.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
import org.apache.iotdb.confignode.rpc.thrift.TShowRegionResp;
import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
diff --git
a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeRPCServiceImpl.java
b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeRPCServiceImpl.java
index 2ec25c1f38..6ba2645e4c 100644
---
a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeRPCServiceImpl.java
+++
b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeRPCServiceImpl.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint;
import org.apache.iotdb.common.rpc.thrift.TFlushReq;
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
+import org.apache.iotdb.common.rpc.thrift.TSetTTLReq;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.consensus.ConsensusGroupId;
import org.apache.iotdb.commons.consensus.DataRegionId;
@@ -405,6 +406,11 @@ public class DataNodeRPCServiceImpl implements
IDataNodeRPCService.Iface {
return StorageEngineV2.getInstance().operateFlush(req);
}
+ @Override
+ public TSStatus setTTL(TSetTTLReq req) throws TException {
+ return StorageEngineV2.getInstance().setTTL(req);
+ }
+
@Override
public TSStatus deleteRegion(TConsensusGroupId tconsensusGroupId) {
ConsensusGroupId consensusGroupId =
diff --git a/thrift-commons/src/main/thrift/common.thrift
b/thrift-commons/src/main/thrift/common.thrift
index c9b80527f6..5f2f0b168f 100644
--- a/thrift-commons/src/main/thrift/common.thrift
+++ b/thrift-commons/src/main/thrift/common.thrift
@@ -98,4 +98,9 @@ struct TFlushReq {
1: optional string isSeq
2: optional list<string> storageGroups
3: optional i32 dataNodeId
-}
\ No newline at end of file
+}
+
+struct TSetTTLReq {
+ 1: required string storageGroup
+ 2: required i64 TTL
+}
diff --git a/thrift-confignode/src/main/thrift/confignode.thrift
b/thrift-confignode/src/main/thrift/confignode.thrift
index e07cd3e3bb..5c300b5931 100644
--- a/thrift-confignode/src/main/thrift/confignode.thrift
+++ b/thrift-confignode/src/main/thrift/confignode.thrift
@@ -68,12 +68,6 @@ struct TDeleteStorageGroupsReq {
1: required list<string> prefixPathList
}
-struct TSetTTLReq {
- 1: required string storageGroup
- 2: required i64 TTL
-}
-
-
struct TSetSchemaReplicationFactorReq {
1: required string storageGroup
2: required i32 schemaReplicationFactor
@@ -263,7 +257,7 @@ service IConfigNodeRPCService {
common.TSStatus deleteStorageGroups(TDeleteStorageGroupsReq req)
- common.TSStatus setTTL(TSetTTLReq req)
+ common.TSStatus setTTL(common.TSetTTLReq req)
common.TSStatus setSchemaReplicationFactor(TSetSchemaReplicationFactorReq
req)
diff --git a/thrift/src/main/thrift/datanode.thrift
b/thrift/src/main/thrift/datanode.thrift
index d98e0ec754..f8da9cfc3b 100644
--- a/thrift/src/main/thrift/datanode.thrift
+++ b/thrift/src/main/thrift/datanode.thrift
@@ -269,6 +269,8 @@ service IDataNodeRPCService {
common.TSStatus invalidatePermissionCache(TInvalidatePermissionCacheReq req)
common.TSStatus flush(common.TFlushReq req)
+
+ common.TSStatus setTTL(common.TSetTTLReq req)
}
service MPPDataExchangeService {