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/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 9b968de [IOTDB-719] add avg_series_point_number_threshold in config
(#1278)
9b968de is described below
commit 9b968de7ad9a4e47902edbdb39ed4c69256cded2
Author: Jialin Qiao <[email protected]>
AuthorDate: Thu May 28 16:30:20 2020 +0800
[IOTDB-719] add avg_series_point_number_threshold in config (#1278)
* add avg_series_point_number_threshold in config
---
docs/UserGuide/Server/Config Manual.md | 36 +++++++++++++++++++
docs/zh/UserGuide/Server/Config Manual.md | 36 +++++++++++++++++++
.../resources/conf/iotdb-engine.properties | 2 ++
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 13 +++++++
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 8 +++--
.../iotdb/db/engine/flush/TsFileFlushPolicy.java | 8 ++---
.../iotdb/db/engine/memtable/AbstractMemTable.java | 40 ++++++++++++++++++++--
.../apache/iotdb/db/engine/memtable/IMemTable.java | 10 ++++++
.../db/engine/memtable/IWritableMemChunk.java | 5 ++-
.../iotdb/db/engine/memtable/WritableMemChunk.java | 4 +--
.../db/engine/storagegroup/TsFileProcessor.java | 24 +++++++++++--
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 10 ++++--
.../iotdb/db/qp/physical/crud/InsertPlan.java | 24 ++++++-------
.../iotdb/db/utils/datastructure/TVList.java | 4 ++-
.../iotdb/db/engine/storagegroup/TTLTest.java | 9 ++---
.../apache/iotdb/db/utils/EnvironmentUtils.java | 1 +
16 files changed, 198 insertions(+), 36 deletions(-)
diff --git a/docs/UserGuide/Server/Config Manual.md
b/docs/UserGuide/Server/Config Manual.md
index 86f8165..dbc40fb 100644
--- a/docs/UserGuide/Server/Config Manual.md
+++ b/docs/UserGuide/Server/Config Manual.md
@@ -272,6 +272,42 @@ The permission definitions are in
${IOTDB\_CONF}/conf/jmx.access.
|Default| true |
|Effective|Trigger|
+* enable\_parameter\_adapter
+
+|Name| enable\_parameter\_adapter |
+|:---:|:---|
+|Description| enable dynamically adjusting system to avoid OOM|
+|Type|Bool|
+|Default| true |
+|Effective|After restart system|
+
+* memtable\_size\_threshold
+
+|Name| memtable\_size\_threshold |
+|:---:|:---|
+|Description| max memtable size|
+|Type|Long|
+|Default| 1073741824 |
+|Effective| when enable\_parameter\_adapter is false & After restart system|
+
+* avg\_series\_point\_number\_threshold
+
+|Name| avg\_series\_point\_number\_threshold |
+|:---:|:---|
+|Description| max average number of point of each series in memtable|
+|Type|Int32|
+|Default| 5000 |
+|Effective|After restart system|
+
+* tsfile\_size\_threshold
+
+|Name| tsfile\_size\_threshold |
+|:---:|:---|
+|Description| max tsfile size|
+|Type|Long|
+|Default| 536870912 |
+|Effective| when enable\_parameter\_adapter is false & After restart system|
+
* enable\_partition
|Name| enable\_partition |
diff --git a/docs/zh/UserGuide/Server/Config Manual.md
b/docs/zh/UserGuide/Server/Config Manual.md
index d75c978..7589fed 100644
--- a/docs/zh/UserGuide/Server/Config Manual.md
+++ b/docs/zh/UserGuide/Server/Config Manual.md
@@ -253,6 +253,42 @@
|默认值| 0 |
|改后生效方式|重启服务器生效|
+* enable\_parameter\_adapter
+
+|Name| enable\_parameter\_adapter |
+|:---:|:---|
+|Description| 开启自动调整系统参数,避免爆内存|
+|Type|Bool|
+|Default| true |
+|Effective|重启服务器生效|
+
+* memtable\_size\_threshold
+
+|Name| memtable\_size\_threshold |
+|:---:|:---|
+|Description| 内存缓冲区 memtable 阈值|
+|Type|Long|
+|Default| 1073741824 |
+|Effective|enable\_parameter\_adapter为false时生效、重启服务器生效|
+
+* avg\_series\_point\_number\_threshold
+
+|Name| avg\_series\_point\_number\_threshold |
+|:---:|:---|
+|Description| 内存中平均每个时间序列点数最大值,达到触发flush|
+|Type|Int32|
+|Default| 5000 |
+|Effective|重启服务器生效|
+
+* tsfile\_size\_threshold
+
+|Name| tsfile\_size\_threshold |
+|:---:|:---|
+|Description| 每个 tsfile 大小|
+|Type|Long|
+|Default| 536870912 |
+|Effective|enable\_parameter\_adapter为false时生效、重启服务器生效|
+
* enable\_partition
|Name| enable\_partition |
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties
b/server/src/assembly/resources/conf/iotdb-engine.properties
index e892740..19f1f40 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -181,6 +181,8 @@ tsfile_size_threshold=536870912
# When a memTable's size (in byte) exceeds this, the memtable is flushed to
disk. The default threshold is 1 GB.
memtable_size_threshold=1073741824
+avg_series_point_number_threshold=5000
+
# How many threads can concurrently flush. When <= 0, use CPU core number.
concurrent_flush_thread=0
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 64d87fa..1aecad9 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
@@ -230,6 +230,11 @@ public class IoTDBConfig {
private long memtableSizeThreshold = 128 * 1024 * 1024L;
/**
+ * When average series point number reaches this, flush the memtable to disk
+ */
+ private int avgSeriesPointNumberThreshold = 5000;
+
+ /**
* whether to cache meta data(ChunkMetaData and TsFileMetaData) or not.
*/
private boolean metaDataCacheEnable = true;
@@ -1106,6 +1111,14 @@ public class IoTDBConfig {
this.memtableSizeThreshold = memtableSizeThreshold;
}
+ public int getAvgSeriesPointNumberThreshold() {
+ return avgSeriesPointNumberThreshold;
+ }
+
+ public void setAvgSeriesPointNumberThreshold(int
avgSeriesPointNumberThreshold) {
+ this.avgSeriesPointNumberThreshold = avgSeriesPointNumberThreshold;
+ }
+
public MergeFileStrategy getMergeFileStrategy() {
return mergeFileStrategy;
}
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 40599ff..fe033ee 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
@@ -226,7 +226,7 @@ public class IoTDBDescriptor {
long tsfileSizeThreshold = Long.parseLong(properties
.getProperty("tsfile_size_threshold",
Long.toString(conf.getTsFileSizeThreshold())).trim());
- if (tsfileSizeThreshold > 0) {
+ if (tsfileSizeThreshold >= 0) {
conf.setTsFileSizeThreshold(tsfileSizeThreshold);
}
@@ -237,6 +237,10 @@ public class IoTDBDescriptor {
conf.setMemtableSizeThreshold(memTableSizeThreshold);
}
+ conf.setAvgSeriesPointNumberThreshold(Integer.parseInt(properties
+ .getProperty("avg_series_point_number_threshold",
+ Integer.toString(conf.getAvgSeriesPointNumberThreshold()))));
+
conf.setSyncEnable(Boolean
.parseBoolean(properties.getProperty("is_sync_enable",
Boolean.toString(conf.isSyncEnable()))));
@@ -583,7 +587,7 @@ public class IoTDBDescriptor {
long tsfileSizeThreshold = Long.parseLong(properties
.getProperty("tsfile_size_threshold",
Long.toString(conf.getTsFileSizeThreshold())).trim());
- if (tsfileSizeThreshold > 0 && !conf.isEnableParameterAdapter()) {
+ if (tsfileSizeThreshold >= 0 && !conf.isEnableParameterAdapter()) {
conf.setTsFileSizeThreshold(tsfileSizeThreshold);
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/flush/TsFileFlushPolicy.java
b/server/src/main/java/org/apache/iotdb/db/engine/flush/TsFileFlushPolicy.java
index 7df2508..400a1e1 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/flush/TsFileFlushPolicy.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/flush/TsFileFlushPolicy.java
@@ -40,14 +40,14 @@ public interface TsFileFlushPolicy {
@Override
public void apply(StorageGroupProcessor storageGroupProcessor,
TsFileProcessor tsFileProcessor,
boolean isSeq) {
- logger.info("The memtable size {} reaches the threshold, async flush it
to tsfile: {}",
- tsFileProcessor.getWorkMemTableMemory(),
- tsFileProcessor.getTsFileResource().getFile().getAbsolutePath());
-
if (tsFileProcessor.shouldClose()) {
storageGroupProcessor.asyncCloseOneTsFileProcessor(isSeq,
tsFileProcessor);
+ logger.info("Async close tsfile: {}",
+ tsFileProcessor.getTsFileResource().getFile().getAbsolutePath());
} else {
tsFileProcessor.asyncFlush();
+ logger.info("Async flush a memtable to tsfile: {}",
+ tsFileProcessor.getTsFileResource().getFile().getAbsolutePath());
}
}
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
index dde8bee..5661dda 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.engine.modification.Deletion;
import org.apache.iotdb.db.engine.modification.Modification;
import org.apache.iotdb.db.engine.querycontext.ReadOnlyMemChunk;
@@ -41,10 +42,22 @@ import
org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
public abstract class AbstractMemTable implements IMemTable {
private final Map<String, Map<String, IWritableMemChunk>> memTableMap;
+
private long version = Long.MAX_VALUE;
+
private List<Modification> modifications = new ArrayList<>();
+
+ private int avgSeriesPointNumThreshold =
IoTDBDescriptor.getInstance().getConfig()
+ .getAvgSeriesPointNumberThreshold();
+
private long memSize = 0;
+ private int seriesNumber = 0;
+
+ private long totalPointsNum = 0;
+
+ private long totalPointsNumThreshold = 0;
+
public AbstractMemTable() {
this.memTableMap = new HashMap<>();
}
@@ -75,6 +88,8 @@ public abstract class AbstractMemTable implements IMemTable {
Map<String, IWritableMemChunk> memSeries = memTableMap.get(deviceId);
if (!memSeries.containsKey(measurement)) {
memSeries.put(measurement, genMemSeries(schema));
+ seriesNumber++;
+ totalPointsNumThreshold += avgSeriesPointNumThreshold;
}
return memSeries.get(measurement);
}
@@ -91,6 +106,8 @@ public abstract class AbstractMemTable implements IMemTable {
write(insertPlan.getDeviceId(), insertPlan.getMeasurements()[i],
insertPlan.getSchemas()[i], insertPlan.getTime(), value);
}
+
+ totalPointsNum += insertPlan.getValues().length;
}
@Override
@@ -98,8 +115,8 @@ public abstract class AbstractMemTable implements IMemTable {
throws WriteProcessException {
try {
write(insertTabletPlan, start, end);
- long recordSizeInByte = MemUtils.getRecordSize(insertTabletPlan, start,
end);
- memSize += recordSizeInByte;
+ memSize += MemUtils.getRecordSize(insertTabletPlan, start, end);
+ totalPointsNum += insertTabletPlan.getMeasurements().length * (end -
start);
} catch (RuntimeException e) {
throw new WriteProcessException(e.getMessage());
}
@@ -124,6 +141,14 @@ public abstract class AbstractMemTable implements
IMemTable {
}
+ public int getSeriesNumber() {
+ return seriesNumber;
+ }
+
+ public long getTotalPointsNum() {
+ return totalPointsNum;
+ }
+
@Override
public long size() {
long sum = 0;
@@ -141,10 +166,18 @@ public abstract class AbstractMemTable implements
IMemTable {
}
@Override
+ public boolean reachTotalPointNumThreshold() {
+ return totalPointsNum >= totalPointsNumThreshold;
+ }
+
+ @Override
public void clear() {
memTableMap.clear();
modifications.clear();
memSize = 0;
+ seriesNumber = 0;
+ totalPointsNum = 0;
+ totalPointsNumThreshold = 0;
}
@Override
@@ -190,7 +223,8 @@ public abstract class AbstractMemTable implements IMemTable
{
if (chunk == null) {
return;
}
- chunk.delete(timestamp);
+ int deletedPointsNumber = chunk.delete(timestamp);
+ totalPointsNum -= deletedPointsNumber;
}
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
index c84d497..203b1b0 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
@@ -56,6 +56,16 @@ public interface IMemTable {
*/
long memSize();
+ /**
+ * @return whether the average number of points in each WritableChunk
reaches the threshold
+ */
+ boolean reachTotalPointNumThreshold();
+
+ int getSeriesNumber();
+
+ long getTotalPointsNum();
+
+
void insert(InsertPlan insertPlan) throws WriteProcessException;
/**
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
index abd8887..02bb35f 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
@@ -98,5 +98,8 @@ public interface IWritableMemChunk {
return Long.MIN_VALUE;
}
- void delete(long upperBound);
+ /**
+ * @return how many points are deleted
+ */
+ int delete(long upperBound);
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
index 68547a2..4e115b6 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
@@ -215,8 +215,8 @@ public class WritableMemChunk implements IWritableMemChunk {
}
@Override
- public void delete(long upperBound) {
- list.delete(upperBound);
+ public int delete(long upperBound) {
+ return list.delete(upperBound);
}
@Override
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
index 9433bcb..31c76f2 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
@@ -70,6 +70,9 @@ public class TsFileProcessor {
private static final Logger logger =
LoggerFactory.getLogger(TsFileProcessor.class);
private final String storageGroupName;
+
+ private IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
+
/**
* sync this object in query() and asyncTryToFlush()
*/
@@ -260,8 +263,24 @@ public class TsFileProcessor {
boolean shouldFlush() {
- return workMemTable != null
- && workMemTable.memSize() > getMemtableSizeThresholdBasedOnSeriesNum();
+ if (workMemTable == null) {
+ return false;
+ }
+
+ if (workMemTable.memSize() >= getMemtableSizeThresholdBasedOnSeriesNum()) {
+ logger.info("The memtable size {} of tsfile {} reaches the threshold",
+ workMemTable.memSize(), tsFileResource.getFile().getAbsolutePath());
+ return true;
+ }
+
+ if (workMemTable.reachTotalPointNumThreshold()) {
+ logger.info("The avg series points num {} of tsfile {} reaches the
threshold",
+ workMemTable.getTotalPointsNum() / workMemTable.getSeriesNumber(),
+ tsFileResource.getFile().getAbsolutePath());
+ return true;
+ }
+
+ return false;
}
/**
@@ -272,7 +291,6 @@ public class TsFileProcessor {
* size. We need to adjust it according to the number of timeseries in a
specific storage group.
*/
private long getMemtableSizeThresholdBasedOnSeriesNum() {
- IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
if(!config.isEnableParameterAdapter()){
return config.getMemtableSizeThreshold();
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 38ab58a..ca9c13b 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -877,7 +877,13 @@ public class PlanExecutor implements IPlanExecutor {
if
(!IoTDBDescriptor.getInstance().getConfig().isAutoCreateSchemaEnabled()) {
throw new PathNotExistException(deviceId + PATH_SEPARATOR +
measurement);
}
- TSDataType dataType =
TypeInferenceUtils.getPredictedDataType(insertPlan.getValues()[i]);
+ TSDataType dataType;
+ if (insertPlan.getStrValues() != null) {
+ // infer type for insert sql
+ dataType =
TypeInferenceUtils.getPredictedDataType(insertPlan.getStrValues()[i]);
+ } else {
+ dataType =
TypeInferenceUtils.getPredictedDataType(insertPlan.getValues()[i]);
+ }
Path path = new Path(deviceId, measurement);
internalCreateTimeseries(path.toString(), dataType);
}
@@ -886,7 +892,7 @@ public class PlanExecutor implements IPlanExecutor {
// reset measurement to common name instead of alias
measurementList[i] = measurementNode.getName();
- if(insertPlan.getStrValueList() == null) {
+ if(insertPlan.getStrValues() == null) {
checkType(insertPlan, i, measurementNode.getSchema().getType());
}
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
index 8174fc2..b2c2c2a 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java
@@ -50,16 +50,16 @@ public class InsertPlan extends PhysicalPlan {
private TSDataType[] types;
private MeasurementSchema[] schemas;
- public String[] getStrValueList() {
- return strValueList;
+ public String[] getStrValues() {
+ return strValues;
}
- public void setStrValueList(String[] strValueList) {
- this.strValueList = strValueList;
+ public void setStrValues(String[] strValues) {
+ this.strValues = strValues;
}
// only for sql
- private String[] strValueList;
+ private String[] strValues;
public InsertPlan() {
super(false, OperatorType.INSERT);
@@ -140,7 +140,7 @@ public class InsertPlan extends PhysicalPlan {
// build types and values
this.types = new TSDataType[measurements.length];
this.values = new Object[measurements.length];
- this.strValueList = insertValues;
+ this.strValues = insertValues;
canbeSplit = false;
}
@@ -157,18 +157,14 @@ public class InsertPlan extends PhysicalPlan {
return schemas;
}
- public void setSchemas(MeasurementSchema[] schemas) {
+ public void setSchemas(MeasurementSchema[] schemas) throws
QueryProcessException {
this.schemas = schemas;
- if (strValueList != null) {
+ if (strValues != null) {
for (int i = 0; i < schemas.length; i++) {
types[i] = schemas[i].getType();
- try {
- values[i] = CommonUtils.parseValue(types[i], strValueList[i]);
- } catch (QueryProcessException e) {
- e.printStackTrace();
- }
+ values[i] = CommonUtils.parseValue(types[i], strValues[i]);
}
- strValueList = null;
+ strValues = null;
}
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
index 72568a8..63ac17f 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
@@ -202,7 +202,7 @@ public abstract class TVList {
PrimitiveArrayPool.getInstance().release(timestamps.remove(timestamps.size() -
1));
}
- public void delete(long upperBound) {
+ public int delete(long upperBound) {
int newSize = 0;
minTime = Long.MAX_VALUE;
for (int i = 0; i < size; i++) {
@@ -212,6 +212,7 @@ public abstract class TVList {
minTime = time < minTime ? time : minTime;
}
}
+ int deletedNumber = size - newSize;
size = newSize;
// release primitive arrays that are empty
int newArrayNum = newSize / ARRAY_SIZE;
@@ -222,6 +223,7 @@ public abstract class TVList {
releaseLastTimeArray();
releaseLastValueArray();
}
+ return deletedNumber;
}
protected void cloneAs(TVList cloneList) {
diff --git
a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
index 18598a4..3023367 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
@@ -126,7 +126,7 @@ public class TTLTest {
}
@Test
- public void testTTLWrite() throws WriteProcessException {
+ public void testTTLWrite() throws WriteProcessException,
QueryProcessException {
InsertPlan insertPlan = new InsertPlan();
insertPlan.setDeviceId(sg1);
insertPlan.setTime(System.currentTimeMillis());
@@ -153,7 +153,7 @@ public class TTLTest {
storageGroupProcessor.insert(insertPlan);
}
- private void prepareData() throws WriteProcessException {
+ private void prepareData() throws WriteProcessException,
QueryProcessException {
InsertPlan insertPlan = new InsertPlan();
insertPlan.setDeviceId(sg1);
insertPlan.setTime(System.currentTimeMillis());
@@ -234,7 +234,8 @@ public class TTLTest {
}
@Test
- public void testTTLRemoval() throws StorageEngineException,
WriteProcessException {
+ public void testTTLRemoval()
+ throws StorageEngineException, WriteProcessException,
QueryProcessException {
prepareData();
storageGroupProcessor.syncCloseAllWorkingTsFileProcessors();
@@ -345,7 +346,7 @@ public class TTLTest {
}
@Test
- public void testTTLCleanFile() throws WriteProcessException {
+ public void testTTLCleanFile() throws WriteProcessException,
QueryProcessException {
prepareData();
storageGroupProcessor.syncCloseAllWorkingTsFileProcessors();
diff --git
a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
index d64a8b3..302ddaa 100644
--- a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
@@ -187,6 +187,7 @@ public class EnvironmentUtils {
IoTDBDescriptor.getInstance().getConfig().setThriftServerAwaitTimeForStopService(0);
//we do not start 8181 port in test.
IoTDBDescriptor.getInstance().getConfig().setEnableMetricService(false);
+
IoTDBDescriptor.getInstance().getConfig().setAvgSeriesPointNumberThreshold(Integer.MAX_VALUE);
if (daemon == null) {
daemon = new IoTDB();
}