diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/PartitionTableAutoCleaner.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/PartitionTableAutoCleaner.java index 71dfde6932a2..a4918e6bfb6e 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/PartitionTableAutoCleaner.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/PartitionTableAutoCleaner.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.Map; +import java.util.TreeMap; import static org.apache.iotdb.confignode.manager.partition.PartitionManager.CONSENSUS_WRITE_ERROR; @@ -54,13 +55,10 @@ public PartitionTableAutoCleaner(ConfigManager configManager) { @Override protected void periodicExecute(Env env) { List databases = configManager.getClusterSchemaManager().getDatabaseNames(); - Map databaseTTLMap = - configManager.getClusterSchemaManager().getTTLInfoForUpgrading(); + Map databaseTTLMap = new TreeMap<>(); for (String database : databases) { - long subTreeMaxTTL = configManager.getTTLManager().getDatabaseMaxTTL(database); - databaseTTLMap.put( - database, Math.max(subTreeMaxTTL, databaseTTLMap.getOrDefault(database, -1L))); - long databaseTTL = databaseTTLMap.get(database); + long databaseTTL = configManager.getTTLManager().getDatabaseMaxTTL(database); + databaseTTLMap.put(database, databaseTTL); if (!configManager.getPartitionManager().isDatabaseExist(database) || databaseTTL < 0 || databaseTTL == Long.MAX_VALUE) { diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/ttl/TTLCache.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/ttl/TTLCache.java index e44e2d3f37c8..f7305074a95d 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/ttl/TTLCache.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/ttl/TTLCache.java @@ -290,6 +290,9 @@ public void removeAllChildren() { } public CacheNode getChild(String name) { + if (name.startsWith("root.")) { + name = name.substring("root.".length()); + } return children.get(name); }