You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2019/09/23 08:10:46 UTC
[incubator-iotdb] branch dev_TTL updated: add default ttl
This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch dev_TTL
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/dev_TTL by this push:
new 485b144 add default ttl
485b144 is described below
commit 485b1449852649afff2f0cdade41ab7c3b051b83
Author: jt <jt...@163.com>
AuthorDate: Mon Sep 23 15:59:42 2019 +0800
add default ttl
---
server/src/assembly/resources/conf/iotdb-engine.properties | 3 +++
.../src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 13 +++++++++++++
.../main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java | 3 +++
.../iotdb/db/engine/storagegroup/StorageGroupProcessor.java | 2 +-
.../src/main/java/org/apache/iotdb/db/metadata/MTree.java | 2 ++
.../java/org/apache/iotdb/db/service/TSServiceImpl.java | 3 ++-
6 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index eacc84b..b5c8298 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -165,6 +165,9 @@ concurrent_flush_thread=0
# (i.e., whether use ChunkBufferPool), value true, false
chunk_buffer_pool_enable=false
+# default TTL for new storage groups, in ms
+# default_ttl=36000000
+
####################
### Merge Configurations
####################
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 85e25a3..4781455 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -346,6 +346,11 @@ public class IoTDBConfig {
*/
private String hdfsPort = "9000";
+ /**
+ * defaultTTL for new storage groups, in ms.
+ */
+ private long defaultTTL = Long.MAX_VALUE;
+
public IoTDBConfig() {
// empty constructor
}
@@ -951,4 +956,12 @@ public class IoTDBConfig {
public void setHdfsPort(String hdfsPort) {
this.hdfsPort = hdfsPort;
}
+
+ public long getDefaultTTL() {
+ return defaultTTL;
+ }
+
+ public void setDefaultTTL(long defaultTTL) {
+ this.defaultTTL = defaultTTL;
+ }
}
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 544d0b4..5dc0cf9 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -274,6 +274,9 @@ public class IoTDBDescriptor {
conf.setHdfsIp(properties.getProperty("hdfs_ip"));
conf.setHdfsPort(properties.getProperty("hdfs_port"));
+ conf.setDefaultTTL(Long.parseLong(properties.getProperty("default_ttl",
+ String.valueOf(conf.getDefaultTTL()))));
+
// At the same time, set TSFileConfig
TSFileDescriptor.getInstance().getConfig().setTSFileStorageFs(properties.getProperty("tsfile_storage_fs"));
TSFileDescriptor.getInstance().getConfig().setHdfsIp(properties.getProperty("hdfs_ip"));
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index f26ed15..b1744e9 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -348,7 +348,7 @@ public class StorageGroupProcessor {
public boolean insert(InsertPlan insertPlan) throws QueryProcessorException {
// reject insertions that are out of ttl
if (!checkTTL(insertPlan.getTime())) {
- throw new OutOfTTLException(insertPlan.getTime(), System.currentTimeMillis() - dataTTL);
+ return false;
}
writeLock();
try {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
index 0e405d4..b9a5a3c 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
@@ -29,6 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Stack;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.exception.PathErrorException;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -199,6 +200,7 @@ public class MTree implements Serializable {
}
cur = cur.getChild(nodeNames[i]);
cur.setStorageLevel(true);
+ cur.setDataTTL(IoTDBDescriptor.getInstance().getConfig().getDefaultTTL());
setDataFileName(path, cur);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index 4aee53a..24941d6 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -52,6 +52,7 @@ import org.apache.iotdb.db.engine.StorageEngine;
import org.apache.iotdb.db.engine.flush.pool.FlushTaskPoolManager;
import org.apache.iotdb.db.exception.ArgsErrorException;
import org.apache.iotdb.db.exception.MetadataErrorException;
+import org.apache.iotdb.db.exception.NotStorageGroupException;
import org.apache.iotdb.db.exception.OutOfTTLException;
import org.apache.iotdb.db.exception.PathErrorException;
import org.apache.iotdb.db.exception.ProcessorException;
@@ -1218,7 +1219,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
logger.debug("meet error while processing non-query. ", e);
if (e.getCause() instanceof OutOfTTLException) {
return getStatus(TSStatusCode.OUT_OF_TTL_ERROR, e.getMessage());
- } else if (e.getCause() instanceof PathErrorException) {
+ } else if (e.getCause() instanceof NotStorageGroupException) {
return getStatus(TSStatusCode.NOT_A_STORAGE_GROUP_ERROR, e.getMessage());
} else {
return getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage());