This is an automated email from the ASF dual-hosted git repository. marklau99 pushed a commit to branch IOTDB-4584 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 9149f8545e7a238e52d39dd28cc0d85b3278fdbb Author: LiuXuxin <[email protected]> AuthorDate: Mon Oct 10 15:44:25 2022 +0800 control the size of metadata when start flushing memtable --- .../java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java | 6 ++++++ .../java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java index 6c6ab965b6..2a21c7c1ef 100644 --- a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java @@ -111,6 +111,12 @@ public class MemTableFlushTask { : memTable.memSize() / memTable.getSeriesNumber() * config.getIoTaskQueueSizeForFlushing(); + long memorySizeForMetadata = + (long) + (IoTDBDescriptor.getInstance().getConfig().getChunkMetadataSizeProportionInWrite() + * estimatedTemporaryMemSize); + writer.setMemorySizeForMetadata(memorySizeForMetadata); + estimatedTemporaryMemSize += memorySizeForMetadata; SystemInfo.getInstance().applyTemporaryMemoryForFlushing(estimatedTemporaryMemSize); } long start = System.currentTimeMillis(); diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java index f2e73d56ae..ab7cfa02c2 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java @@ -691,4 +691,8 @@ public class TsFileIOWriter implements AutoCloseable { public String getCurrentChunkGroupDeviceId() { return currentChunkGroupDeviceId; } + + public void setMemorySizeForMetadata(long size) { + maxMetadataSize = size; + } }
