This is an automated email from the ASF dual-hosted git repository.
jiangtian 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 cbdade41d5a Use milliseconds to express TTL (#12757)
cbdade41d5a is described below
commit cbdade41d5ac7cf88dbcd25d5ce98086cbf3995c
Author: 周沛辰 <[email protected]>
AuthorDate: Mon Jun 24 09:35:36 2024 +0800
Use milliseconds to express TTL (#12757)
* use ms unit with ttl
* fix IT
* fix IT
* fix IT
* remove ttl column when showing databases
* add log when integer overflow in CommonDateTimeUtils
---
.../org/apache/iotdb/db/it/IoTDBRestServiceIT.java | 15 ++++-----
.../iotdb/db/it/auth/IoTDBSeriesPermissionIT.java | 2 +-
.../pipe/it/autocreate/IoTDBPipeDataSinkIT.java | 2 +-
.../pipe/it/autocreate/IoTDBPipeExtractorIT.java | 2 +-
.../pipe/it/manual/IoTDBPipeMetaHistoricalIT.java | 6 ++--
.../iotdb/confignode/manager/TTLManager.java | 12 -------
.../manager/schema/ClusterSchemaManager.java | 5 ---
.../common/header/ColumnHeaderConstant.java | 3 +-
.../operator/schema/source/DeviceSchemaSource.java | 2 +-
.../analyze/cache/schema/DataNodeTTLCache.java | 31 ++++++++++++++++--
.../statement/metadata/ShowDatabaseStatement.java | 37 ++++++----------------
.../apache/iotdb/commons/conf/IoTDBConstant.java | 1 -
.../apache/iotdb/commons/schema/ttl/TTLCache.java | 18 +++--------
.../iotdb/commons/utils/CommonDateTimeUtils.java | 10 ++++++
14 files changed, 68 insertions(+), 78 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
index 8f843d1148c..655d34a1636 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
@@ -53,6 +53,7 @@ import java.util.Base64;
import java.util.List;
import java.util.Map;
+import static
org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant.COLUMN_TTL;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -1063,7 +1064,7 @@ public class IoTDBRestServiceIT {
new ArrayList<Object>() {
{
add("Device");
- add("TTL");
+ add(COLUMN_TTL);
}
};
List<Object> values1 =
@@ -1093,7 +1094,6 @@ public class IoTDBRestServiceIT {
new ArrayList<Object>() {
{
add("Database");
- add("TTL");
add("SchemaReplicationFactor");
add("DataReplicationFactor");
add("TimePartitionInterval");
@@ -1307,7 +1307,7 @@ public class IoTDBRestServiceIT {
add("Device");
add("IsAligned");
add("Template");
- add("TTL");
+ add(COLUMN_TTL);
}
};
List<Object> values1 =
@@ -1345,7 +1345,7 @@ public class IoTDBRestServiceIT {
add("Database");
add("IsAligned");
add("Template");
- add("TTL");
+ add(COLUMN_TTL);
}
};
List<Object> values1 =
@@ -1715,7 +1715,7 @@ public class IoTDBRestServiceIT {
new ArrayList<Object>() {
{
add("Device");
- add("TTL");
+ add(COLUMN_TTL);
}
};
List<Object> values1 =
@@ -1745,7 +1745,6 @@ public class IoTDBRestServiceIT {
new ArrayList<Object>() {
{
add("Database");
- add("TTL");
add("SchemaReplicationFactor");
add("DataReplicationFactor");
add("TimePartitionInterval");
@@ -1959,7 +1958,7 @@ public class IoTDBRestServiceIT {
add("Device");
add("IsAligned");
add("Template");
- add("TTL");
+ add(COLUMN_TTL);
}
};
List<Object> values1 =
@@ -1998,7 +1997,7 @@ public class IoTDBRestServiceIT {
add("Database");
add("IsAligned");
add("Template");
- add("TTL");
+ add(COLUMN_TTL);
}
};
List<Object> values1 =
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBSeriesPermissionIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBSeriesPermissionIT.java
index 0a64ea299c5..9bd2c82b385 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBSeriesPermissionIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBSeriesPermissionIT.java
@@ -163,7 +163,7 @@ public class IoTDBSeriesPermissionIT {
showStorageGroupsColumnHeaders.stream()
.map(ColumnHeader::getColumnName)
.toArray(String[]::new),
- new String[] {"root.test,10000,1,1,604800000,"},
+ new String[] {"root.test,1,1,604800000,"},
"test1",
"test123");
resultSetEqualTest(
diff --git
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeDataSinkIT.java
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeDataSinkIT.java
index 8cd8d66d387..27893c49381 100644
---
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeDataSinkIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeDataSinkIT.java
@@ -249,7 +249,7 @@ public class IoTDBPipeDataSinkIT extends
AbstractPipeDualAutoIT {
TestUtils.assertDataEventuallyOnEnv(
receiverEnv,
"show devices root.ln.wf01.wt02",
- "Device,IsAligned,Template,TTL,",
+ "Device,IsAligned,Template,TTL(ms),",
Collections.singleton("root.ln.wf01.wt02,true,null,INF,"));
}
}
diff --git
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeExtractorIT.java
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeExtractorIT.java
index 2a4439eb605..aea757e63b3 100644
---
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeExtractorIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeExtractorIT.java
@@ -497,7 +497,7 @@ public class IoTDBPipeExtractorIT extends
AbstractPipeDualAutoIT {
TestUtils.assertDataEventuallyOnEnv(
receiverEnv,
"show devices",
- "Device,IsAligned,Template,TTL,",
+ "Device,IsAligned,Template,TTL(ms),",
new HashSet<>(
Arrays.asList(
"root.nonAligned.1TS,false,null,INF,",
diff --git
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
index 858af4cb576..c785ac7f385 100644
---
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
@@ -150,10 +150,10 @@ public class IoTDBPipeMetaHistoricalIT extends
AbstractPipeDualManualIT {
TestUtils.assertDataEventuallyOnEnv(
receiverEnv,
"show databases",
-
"Database,TTL,SchemaReplicationFactor,DataReplicationFactor,TimePartitionInterval,",
+
"Database,SchemaReplicationFactor,DataReplicationFactor,TimePartitionInterval,",
// Receiver's SchemaReplicationFactor/DataReplicationFactor shall be
3/2 regardless of the
// sender
- Collections.singleton("root.ln,3600000,3,2,604800000,"));
+ Collections.singleton("root.ln,3,2,604800000,"));
TestUtils.assertDataEventuallyOnEnv(
receiverEnv,
"select * from root.**",
@@ -245,7 +245,7 @@ public class IoTDBPipeMetaHistoricalIT extends
AbstractPipeDualManualIT {
TestUtils.assertDataAlwaysOnEnv(
receiverEnv,
"show databases",
-
"Database,TTL,SchemaReplicationFactor,DataReplicationFactor,TimePartitionInterval,",
+
"Database,SchemaReplicationFactor,DataReplicationFactor,TimePartitionInterval,",
Collections.emptySet());
TestUtils.assertDataAlwaysOnEnv(
receiverEnv, "select * from root.**", "Time",
Collections.emptySet());
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/TTLManager.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/TTLManager.java
index 6bebe7c6864..63a8c03d720 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/TTLManager.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/TTLManager.java
@@ -22,7 +22,6 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.commons.utils.CommonDateTimeUtils;
import org.apache.iotdb.commons.utils.PathUtils;
import org.apache.iotdb.confignode.consensus.request.read.ttl.ShowTTLPlan;
import
org.apache.iotdb.confignode.consensus.request.write.database.DatabaseSchemaPlan;
@@ -63,10 +62,6 @@ public class TTLManager {
errorStatus.setMessage("The TTL should be positive.");
return errorStatus;
}
- ttl =
- CommonDateTimeUtils.convertMilliTimeWithPrecision(
- ttl,
CommonDescriptor.getInstance().getConfig().getTimestampPrecision());
- ttl = ttl <= 0 ? Long.MAX_VALUE : ttl;
SetTTLPlan setTTLPlan =
new SetTTLPlan(
PathUtils.splitPathToDetachedNodes(databaseSchemaPlan.getSchema().getName()),
ttl);
@@ -93,13 +88,6 @@ public class TTLManager {
// if path matches database, then set both path and path.**
setTTLPlan.setDataBase(configManager.getPartitionManager().isDatabaseExist(path.getFullPath()));
- long ttl =
- CommonDateTimeUtils.convertMilliTimeWithPrecision(
- setTTLPlan.getTTL(),
-
CommonDescriptor.getInstance().getConfig().getTimestampPrecision());
- ttl = ttl <= 0 ? Long.MAX_VALUE : ttl;
- setTTLPlan.setTTL(ttl);
-
return configManager.getProcedureManager().setTTL(setTTLPlan,
isGeneratedByPipe);
}
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java
index fd978ceb833..382253d6bfc 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java
@@ -29,7 +29,6 @@ import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathPatternTree;
import org.apache.iotdb.commons.schema.SchemaConstant;
import org.apache.iotdb.commons.service.metric.MetricService;
-import org.apache.iotdb.commons.utils.CommonDateTimeUtils;
import org.apache.iotdb.commons.utils.PathUtils;
import org.apache.iotdb.commons.utils.StatusUtils;
import org.apache.iotdb.confignode.client.CnToDnRequestType;
@@ -401,10 +400,6 @@ public class ClusterSchemaManager {
if (ttl <= 0 || ttl ==
CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs()) {
continue;
}
- ttl =
- CommonDateTimeUtils.convertMilliTimeWithPrecision(
- ttl,
CommonDescriptor.getInstance().getConfig().getTimestampPrecision());
- ttl = ttl <= 0 ? Long.MAX_VALUE : ttl;
infoMap.put(database, ttl);
} catch (DatabaseNotExistsException e) {
LOGGER.warn("Database: {} doesn't exist", databases, e);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
index e7e93d4fb3b..ada11aa41c5 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
@@ -52,7 +52,7 @@ public class ColumnHeaderConstant {
public static final String TEMPLATE = "Template";
public static final String COUNT = "Count";
- public static final String COLUMN_TTL = "TTL";
+ public static final String COLUMN_TTL = "TTL(ms)";
public static final String SCHEMA_REPLICATION_FACTOR =
"SchemaReplicationFactor";
public static final String DATA_REPLICATION_FACTOR = "DataReplicationFactor";
public static final String TIME_PARTITION_INTERVAL = "TimePartitionInterval";
@@ -252,7 +252,6 @@ public class ColumnHeaderConstant {
public static final List<ColumnHeader> showStorageGroupsColumnHeaders =
ImmutableList.of(
new ColumnHeader(DATABASE, TSDataType.TEXT),
- new ColumnHeader(COLUMN_TTL, TSDataType.TEXT),
new ColumnHeader(SCHEMA_REPLICATION_FACTOR, TSDataType.INT32),
new ColumnHeader(DATA_REPLICATION_FACTOR, TSDataType.INT32),
new ColumnHeader(TIME_PARTITION_INTERVAL, TSDataType.INT64));
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceSchemaSource.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceSchemaSource.java
index d1f6029f04c..7abd3232b3d 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceSchemaSource.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceSchemaSource.java
@@ -101,7 +101,7 @@ public class DeviceSchemaSource implements
ISchemaSource<IDeviceSchemaInfo> {
.getColumnBuilder(0)
.writeBinary(new Binary(device.getFullPath(),
TSFileConfig.STRING_CHARSET));
int templateId = device.getTemplateId();
- long ttl =
DataNodeTTLCache.getInstance().getTTL(device.getPartialPath().getNodes());
+ long ttl =
DataNodeTTLCache.getInstance().getTTLInMS(device.getPartialPath().getNodes());
// TODO: make it more readable, like "30 days" or "10 hours"
String ttlStr = ttl == Long.MAX_VALUE ? IoTDBConstant.TTL_INFINITE :
String.valueOf(ttl);
if (hasSgCol) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/DataNodeTTLCache.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/DataNodeTTLCache.java
index 10395b258f6..5c762305159 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/DataNodeTTLCache.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/DataNodeTTLCache.java
@@ -18,8 +18,10 @@
*/
package org.apache.iotdb.db.queryengine.plan.analyze.cache.schema;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.schema.ttl.TTLCache;
+import org.apache.iotdb.commons.utils.CommonDateTimeUtils;
import org.apache.iotdb.commons.utils.PathUtils;
import org.apache.iotdb.commons.utils.TestOnly;
@@ -82,16 +84,36 @@ public class DataNodeTTLCache {
}
}
+ /** Get ttl with time precision conversion. */
public long getTTL(String path) throws IllegalPathException {
lock.readLock().lock();
try {
- return ttlCache.getClosestTTL(PathUtils.splitPathToDetachedNodes(path));
+ long ttl =
ttlCache.getClosestTTL(PathUtils.splitPathToDetachedNodes(path));
+ return ttl == Long.MAX_VALUE
+ ? ttl
+ : CommonDateTimeUtils.convertMilliTimeWithPrecision(
+ ttl,
CommonDescriptor.getInstance().getConfig().getTimestampPrecision());
} finally {
lock.readLock().unlock();
}
}
+ /** Get ttl with time precision conversion. */
public long getTTL(String[] path) {
+ lock.readLock().lock();
+ try {
+ long ttl = ttlCache.getClosestTTL(path);
+ return ttl == Long.MAX_VALUE
+ ? ttl
+ : CommonDateTimeUtils.convertMilliTimeWithPrecision(
+ ttl,
CommonDescriptor.getInstance().getConfig().getTimestampPrecision());
+ } finally {
+ lock.readLock().unlock();
+ }
+ }
+
+ /** Get ttl without time precision conversion. */
+ public long getTTLInMS(String[] path) {
lock.readLock().lock();
try {
return ttlCache.getClosestTTL(path);
@@ -100,8 +122,11 @@ public class DataNodeTTLCache {
}
}
- /** Get ttl of one specific path node. If this node does not set ttl, then
return -1. */
- public long getNodeTTL(String path) throws IllegalPathException {
+ /**
+ * Get ttl of one specific path node without time precision conversion. If
this node does not set
+ * ttl, then return -1.
+ */
+ public long getNodeTTLInMS(String path) throws IllegalPathException {
lock.readLock().lock();
try {
return ttlCache.getLastNodeTTL(PathUtils.splitPathToDetachedNodes(path));
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/ShowDatabaseStatement.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/ShowDatabaseStatement.java
index cda2cf4af4c..290d2eaf0f3 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/ShowDatabaseStatement.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/ShowDatabaseStatement.java
@@ -19,17 +19,14 @@
package org.apache.iotdb.db.queryengine.plan.statement.metadata;
-import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.commons.schema.ttl.TTLCache;
import org.apache.iotdb.confignode.rpc.thrift.TDatabaseInfo;
import org.apache.iotdb.db.queryengine.common.header.ColumnHeader;
import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
import org.apache.iotdb.db.queryengine.common.header.DatasetHeader;
import org.apache.iotdb.db.queryengine.common.header.DatasetHeaderFactory;
import org.apache.iotdb.db.queryengine.plan.analyze.QueryType;
-import
org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache;
import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult;
import org.apache.iotdb.db.queryengine.plan.statement.IConfigStatement;
import org.apache.iotdb.db.queryengine.plan.statement.StatementVisitor;
@@ -93,35 +90,21 @@ public class ShowDatabaseStatement extends ShowStatement
implements IConfigState
for (Map.Entry<String, TDatabaseInfo> entry :
storageGroupInfoMap.entrySet()) {
String storageGroup = entry.getKey();
TDatabaseInfo storageGroupInfo = entry.getValue();
- long ttl =
- DataNodeTTLCache.getInstance()
- .getNodeTTL(
- storageGroup
- + IoTDBConstant.PATH_SEPARATOR
- + IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD);
- String ttlStr = String.valueOf(ttl);
- if (ttl == TTLCache.NULL_TTL) {
- ttlStr = "null";
- } else if (ttl == Long.MAX_VALUE) {
- ttlStr = IoTDBConstant.TTL_INFINITE;
- }
+
builder.getTimeColumnBuilder().writeLong(0L);
builder
.getColumnBuilder(0)
.writeBinary(new Binary(storageGroup, TSFileConfig.STRING_CHARSET));
-
- builder.getColumnBuilder(1).writeBinary(new Binary(ttlStr,
TSFileConfig.STRING_CHARSET));
-
-
builder.getColumnBuilder(2).writeInt(storageGroupInfo.getSchemaReplicationFactor());
-
builder.getColumnBuilder(3).writeInt(storageGroupInfo.getDataReplicationFactor());
-
builder.getColumnBuilder(4).writeLong(storageGroupInfo.getTimePartitionInterval());
+
builder.getColumnBuilder(1).writeInt(storageGroupInfo.getSchemaReplicationFactor());
+
builder.getColumnBuilder(2).writeInt(storageGroupInfo.getDataReplicationFactor());
+
builder.getColumnBuilder(3).writeLong(storageGroupInfo.getTimePartitionInterval());
if (isDetailed) {
-
builder.getColumnBuilder(5).writeInt(storageGroupInfo.getSchemaRegionNum());
-
builder.getColumnBuilder(6).writeInt(storageGroupInfo.getMinSchemaRegionNum());
-
builder.getColumnBuilder(7).writeInt(storageGroupInfo.getMaxSchemaRegionNum());
-
builder.getColumnBuilder(8).writeInt(storageGroupInfo.getDataRegionNum());
-
builder.getColumnBuilder(9).writeInt(storageGroupInfo.getMinDataRegionNum());
-
builder.getColumnBuilder(10).writeInt(storageGroupInfo.getMaxDataRegionNum());
+
builder.getColumnBuilder(4).writeInt(storageGroupInfo.getSchemaRegionNum());
+
builder.getColumnBuilder(5).writeInt(storageGroupInfo.getMinSchemaRegionNum());
+
builder.getColumnBuilder(6).writeInt(storageGroupInfo.getMaxSchemaRegionNum());
+
builder.getColumnBuilder(7).writeInt(storageGroupInfo.getDataRegionNum());
+
builder.getColumnBuilder(8).writeInt(storageGroupInfo.getMinDataRegionNum());
+
builder.getColumnBuilder(9).writeInt(storageGroupInfo.getMaxDataRegionNum());
}
builder.declarePosition();
}
diff --git
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index 1803b028f0c..023e9114491 100644
---
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
+++
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -171,7 +171,6 @@ public class IoTDBConstant {
public static final String STATEMENT = "statement";
public static final String COLUMN_DATABASE = "database";
- public static final String COLUMN_TTL = "ttl";
public static final String COLUMN_FUNCTION_NAME = "function name";
public static final String COLUMN_FUNCTION_TYPE = "function type";
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 8e1f99e69a7..f67856a47f9 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
@@ -21,7 +21,6 @@ package org.apache.iotdb.commons.schema.ttl;
import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.exception.IllegalPathException;
-import org.apache.iotdb.commons.utils.CommonDateTimeUtils;
import org.apache.iotdb.commons.utils.PathUtils;
import org.apache.tsfile.utils.ReadWriteIOUtils;
@@ -47,12 +46,9 @@ public class TTLCache {
public TTLCache() {
ttlCacheTree = new CacheNode(IoTDBConstant.PATH_ROOT);
- long defaultTTL =
- CommonDateTimeUtils.convertMilliTimeWithPrecision(
- CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs(),
-
CommonDescriptor.getInstance().getConfig().getTimestampPrecision());
- defaultTTL = defaultTTL <= 0 ? Long.MAX_VALUE : defaultTTL;
- ttlCacheTree.addChild(IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD, defaultTTL);
+ ttlCacheTree.addChild(
+ IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD,
+ CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs());
ttlCount = 1;
}
@@ -93,9 +89,7 @@ public class TTLCache {
if (nodes[0].equals(IoTDBConstant.PATH_ROOT)
&& nodes[1].equals(IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD)) {
ttlCacheTree.getChild(IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD).ttl =
- CommonDateTimeUtils.convertMilliTimeWithPrecision(
- CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs(),
-
CommonDescriptor.getInstance().getConfig().getTimestampPrecision());
+ CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs();
return;
}
}
@@ -231,9 +225,7 @@ public class TTLCache {
ttlCacheTree.removeAllChildren();
ttlCacheTree.addChild(
IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD,
- CommonDateTimeUtils.convertMilliTimeWithPrecision(
- CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs(),
-
CommonDescriptor.getInstance().getConfig().getTimestampPrecision()));
+ CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs());
}
static class CacheNode {
diff --git
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/utils/CommonDateTimeUtils.java
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/utils/CommonDateTimeUtils.java
index 3366011bc4b..b4f03f11150 100644
---
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/utils/CommonDateTimeUtils.java
+++
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/utils/CommonDateTimeUtils.java
@@ -21,10 +21,14 @@ package org.apache.iotdb.commons.utils;
import org.apache.iotdb.commons.conf.CommonDescriptor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.time.Duration;
import java.util.function.BiConsumer;
public class CommonDateTimeUtils {
+ protected static final Logger LOGGER =
LoggerFactory.getLogger(CommonDateTimeUtils.class);
public CommonDateTimeUtils() {
// Empty constructor
@@ -42,6 +46,12 @@ public class CommonDateTimeUtils {
default:
break;
}
+ // To avoid integer overflow
+ if (result < 0) {
+ LOGGER.warn(
+ "Integer overflow when converting {}ms to {}{}.", milliTime, result,
timePrecision);
+ result = Long.MAX_VALUE;
+ }
return result;
}