You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/11/16 12:22:42 UTC
[iotdb] 01/02: init
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch fix_ttl_lost
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 03e38f626a248fe575e9e0b20e35d927007add6b
Author: HTHou <hh...@outlook.com>
AuthorDate: Wed Nov 16 19:11:25 2022 +0800
init
---
.../consensus/response/DataNodeRegisterResp.java | 8 +++++
.../confignode/manager/ClusterSchemaManager.java | 38 ++++++++++++++++++++++
.../iotdb/confignode/manager/ConfigManager.java | 1 +
.../src/main/thrift/confignode.thrift | 1 +
4 files changed, 48 insertions(+)
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeRegisterResp.java b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeRegisterResp.java
index a4d9a13b72..05fefc2cf6 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeRegisterResp.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/DataNodeRegisterResp.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TCQConfig;
import org.apache.iotdb.confignode.rpc.thrift.TDataNodeRegisterResp;
import org.apache.iotdb.confignode.rpc.thrift.TGlobalConfig;
import org.apache.iotdb.confignode.rpc.thrift.TRatisConfig;
+import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupInfo;
import org.apache.iotdb.consensus.common.DataSet;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -43,6 +44,8 @@ public class DataNodeRegisterResp implements DataSet {
private List<ByteBuffer> allTriggerInformation;
private List<ByteBuffer> allUDFInformation;
+ private List<TStorageGroupInfo> allDatabasesInformation;
+
public DataNodeRegisterResp() {
this.dataNodeId = null;
this.globalConfig = null;
@@ -92,6 +95,10 @@ public class DataNodeRegisterResp implements DataSet {
this.allUDFInformation = allUDFInformation;
}
+ public void setAllDatabasesInformation(List<TStorageGroupInfo> allDatabasesInformation) {
+ this.allDatabasesInformation = allDatabasesInformation;
+ }
+
public TDataNodeRegisterResp convertToRpcDataNodeRegisterResp() {
TDataNodeRegisterResp resp = new TDataNodeRegisterResp();
resp.setStatus(status);
@@ -107,6 +114,7 @@ public class DataNodeRegisterResp implements DataSet {
resp.setCqConfig(cqConfig);
resp.setAllTriggerInformation(allTriggerInformation);
resp.setAllUDFInformation(allUDFInformation);
+ resp.setAllDatabaseInformation(allDatabasesInformation);
}
return resp;
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
index e7377349c2..d83536ef73 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
@@ -206,6 +206,44 @@ public class ClusterSchemaManager {
return new TShowStorageGroupResp().setStorageGroupInfoMap(infoMap).setStatus(StatusUtils.OK);
}
+ public TShowStorageGroupResp showAllTTL() {
+ StorageGroupSchemaResp storageGroupSchemaResp =
+ (StorageGroupSchemaResp) getMatchedStorageGroupSchema(getStorageGroupPlan);
+ if (storageGroupSchemaResp.getStatus().getCode()
+ != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ // Return immediately if some StorageGroups doesn't exist
+ return new TShowStorageGroupResp().setStatus(storageGroupSchemaResp.getStatus());
+ }
+
+ Map<String, TStorageGroupInfo> infoMap = new ConcurrentHashMap<>();
+ for (TStorageGroupSchema storageGroupSchema : storageGroupSchemaResp.getSchemaMap().values()) {
+ String name = storageGroupSchema.getName();
+ TStorageGroupInfo storageGroupInfo = new TStorageGroupInfo();
+ storageGroupInfo.setName(name);
+ storageGroupInfo.setTTL(storageGroupSchema.getTTL());
+ storageGroupInfo.setSchemaReplicationFactor(storageGroupSchema.getSchemaReplicationFactor());
+ storageGroupInfo.setDataReplicationFactor(storageGroupSchema.getDataReplicationFactor());
+ storageGroupInfo.setTimePartitionInterval(storageGroupSchema.getTimePartitionInterval());
+
+ try {
+ storageGroupInfo.setSchemaRegionNum(
+ getPartitionManager().getRegionCount(name, TConsensusGroupType.SchemaRegion));
+ storageGroupInfo.setDataRegionNum(
+ getPartitionManager().getRegionCount(name, TConsensusGroupType.DataRegion));
+ } catch (StorageGroupNotExistsException e) {
+ // Return immediately if some StorageGroups doesn't exist
+ return new TShowStorageGroupResp()
+ .setStatus(
+ new TSStatus(TSStatusCode.STORAGE_GROUP_NOT_EXIST.getStatusCode())
+ .setMessage(e.getMessage()));
+ }
+
+ infoMap.put(name, storageGroupInfo);
+ }
+
+ return new TShowStorageGroupResp().setStorageGroupInfoMap(infoMap).setStatus(StatusUtils.OK);
+ }
+
/**
* Update TTL for the specific StorageGroup or all databases in a path
*
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 542e65b261..7e88a3cfff 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
@@ -264,6 +264,7 @@ public class ConfigManager implements IManager {
dataSet.setTriggerInformation(
triggerManager.getTriggerTable(false).getAllTriggerInformation());
dataSet.setAllUDFInformation(udfManager.getUDFTable().getAllUDFInformation());
+ dataSet.setAllDatabasesInformation(clusterSchemaManager.getAllTTLInfo());
} finally {
triggerManager.getTriggerInfo().releaseTriggerTableLock();
udfManager.getUdfInfo().releaseUDFTableLock();
diff --git a/thrift-confignode/src/main/thrift/confignode.thrift b/thrift-confignode/src/main/thrift/confignode.thrift
index f88d36f301..8fa1737a3f 100644
--- a/thrift-confignode/src/main/thrift/confignode.thrift
+++ b/thrift-confignode/src/main/thrift/confignode.thrift
@@ -39,6 +39,7 @@ struct TDataNodeRegisterResp {
7: optional list<binary> allTriggerInformation
8: optional TCQConfig cqConfig
9: optional list<binary> allUDFInformation
+ 10: optional list<TStorageGroupInfo> allDatabaseInformation
}
struct TGlobalConfig {