未验证 提交 c493621b 编写于 作者: H HTHou

add properties

上级 524c9fe9
......@@ -183,6 +183,12 @@ memtable_size_threshold=1073741824
avg_series_point_number_threshold=100000
# When merge point number reaches this, merge the vmfile to the tsfile.
merge_chunk_point_number=10000
# When vmfiles merge times exceeds this, merge the vmfile to the tsfile.
max_merge_chunk_num_in_tsfile=5
# How many threads can concurrently flush. When <= 0, use CPU core number.
concurrent_flush_thread=0
......
......@@ -248,6 +248,16 @@ public class IoTDBConfig {
*/
private int avgSeriesPointNumberThreshold = 10000;
/**
* When merge point number reaches this, merge the vmfile to the tsfile.
*/
private int mergeChunkPointNumberThreshold = 10000;
/**
* When vmfiles merge times exceeds this, merge the vmfile to the tsfile.
*/
private int maxMergeChunkNumInTsFile = 5;
/**
* whether to cache meta data(ChunkMetaData and TsFileMetaData) or not.
*/
......@@ -1231,6 +1241,21 @@ public class IoTDBConfig {
this.avgSeriesPointNumberThreshold = avgSeriesPointNumberThreshold;
}
public int getMergeChunkPointNumberThreshold() {
return mergeChunkPointNumberThreshold;
}
public void setMergeChunkPointNumberThreshold(int mergeChunkPointNumberThreshold) {
this.mergeChunkPointNumberThreshold = mergeChunkPointNumberThreshold;
}
public int getMaxMergeChunkNumInTsFile() {
return maxMergeChunkNumInTsFile;
}
public void setMaxMergeChunkNumInTsFile(int maxMergeChunkNumInTsFile) {
this.maxMergeChunkNumInTsFile = maxMergeChunkNumInTsFile;
}
public MergeFileStrategy getMergeFileStrategy() {
return mergeFileStrategy;
}
......
......@@ -243,6 +243,14 @@ public class IoTDBDescriptor {
.getProperty("avg_series_point_number_threshold",
Integer.toString(conf.getAvgSeriesPointNumberThreshold()))));
conf.setMergeChunkPointNumberThreshold(Integer.parseInt(properties
.getProperty("merge_chunk_point_number",
Integer.toString(conf.getMergeChunkPointNumberThreshold()))));
conf.setMaxMergeChunkNumInTsFile(Integer.parseInt(properties
.getProperty("max_merge_chunk_num_in_tsfile",
Integer.toString(conf.getMaxMergeChunkNumInTsFile()))));
conf.setEnableVm(Boolean.parseBoolean(properties
.getProperty("enable_vm",
Boolean.toString(conf.isEnableVm()))));
......
......@@ -125,6 +125,7 @@ public class TsFileProcessor {
private boolean sequence;
private long totalMemTableSize;
private int mergeTimes = 0;
private static final String FLUSH_QUERY_WRITE_LOCKED = "{}: {} get flushQueryLock write lock";
private static final String FLUSH_QUERY_WRITE_RELEASE = "{}: {} get flushQueryLock write lock released";
......@@ -698,9 +699,11 @@ public class TsFileProcessor {
}
}
if ((vmPointNum + memTableToFlush.getTotalPointsNum()) / pathMeasurementSchemaMap.size()
> config.getAvgSeriesPointNumberThreshold()) {
> config.getMergeChunkPointNumberThreshold()
|| mergeTimes >= config.getMaxMergeChunkNumInTsFile()) {
isVm = false;
isFull = false;
mergeTimes = 0;
flushTask = new MemTableFlushTask(memTableToFlush, writer, vmTsFileResources, vmWriters,
false, false,
sequence,
......@@ -714,6 +717,7 @@ public class TsFileProcessor {
vmWriters, true, true,
sequence,
storageGroupName);
mergeTimes++;
} else {
isVm = true;
isFull = false;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册