You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2019/06/21 12:04:35 UTC

[incubator-iotdb] branch add_log_for_memTableWrite updated: add memtable_size config

This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch add_log_for_memTableWrite
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/add_log_for_memTableWrite by this push:
     new e72cfe5  add memtable_size config
e72cfe5 is described below

commit e72cfe57b000b897938575d59be045c509037b90
Author: qiaojialin <64...@qq.com>
AuthorDate: Fri Jun 21 20:04:18 2019 +0800

    add memtable_size config
---
 iotdb/iotdb/conf/iotdb-engine.properties                  |  2 ++
 .../main/java/org/apache/iotdb/db/conf/IoTDBConfig.java   | 15 +++++++++++++++
 .../java/org/apache/iotdb/db/conf/IoTDBDescriptor.java    |  5 +++++
 .../org/apache/iotdb/db/engine/memtable/MemTablePool.java |  3 ++-
 4 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/iotdb/iotdb/conf/iotdb-engine.properties b/iotdb/iotdb/conf/iotdb-engine.properties
index 848696c..b8ddb23 100644
--- a/iotdb/iotdb/conf/iotdb-engine.properties
+++ b/iotdb/iotdb/conf/iotdb-engine.properties
@@ -142,6 +142,8 @@ period_time_for_merge_in_second=7200
 # Default is true.
 enable_timing_close_and_merge=true
 
+memtable_size=20
+
 # time zone of server side
 # default value is +08:00
 # eg. +08:00, -01:00
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 275ee80..f66cbfc 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -67,6 +67,12 @@ public class IoTDBConfig {
    */
   private long forceWalPeriodInMs = 10;
 
+
+  /**
+   * max number of MamTable in memory
+   */
+  private int memTableSize = 20;
+
   /**
    * Data directory.
    */
@@ -610,6 +616,15 @@ public class IoTDBConfig {
     this.periodTimeForMerge = periodTimeForMerge;
   }
 
+
+  public int getMemTableSize() {
+    return memTableSize;
+  }
+
+  public void setMemTableSize(int memTableSize) {
+    this.memTableSize = memTableSize;
+  }
+
   public boolean isEnableTimingCloseAndMerge() {
     return enableTimingCloseAndMerge;
   }
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 57eedfe..a5023bc 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -156,6 +156,11 @@ public class IoTDBDescriptor {
       conf.setPeriodTimeForMerge(Long.parseLong(
           properties.getProperty("period_time_for_merge_in_second",
               Long.toString(conf.getPeriodTimeForMerge())).trim()));
+
+      conf.setMemTableSize(Integer.parseInt(
+          properties.getProperty("memtable_size",
+              Integer.toString(conf.getMemTableSize())).trim()));
+
       conf.setEnableTimingCloseAndMerge(Boolean.parseBoolean(properties
           .getProperty("enable_timing_close_and_merge",
                   Boolean.toString(conf.isEnableTimingCloseAndMerge())).trim()));
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/MemTablePool.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/MemTablePool.java
index a1b8e7c..ac11fb1 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/MemTablePool.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/MemTablePool.java
@@ -1,6 +1,7 @@
 package org.apache.iotdb.db.engine.memtable;
 
 import java.util.Stack;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.tsfile.common.constant.SystemConstant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -10,7 +11,7 @@ public class MemTablePool {
 
   private Stack<IMemTable> emptyMemTables;
   // >= number of storage group * 2
-  private int capacity = 20;
+  private int capacity = IoTDBDescriptor.getInstance().getConfig().getMemTableSize();
   private int size = 0;
 
   private static final MemTablePool INSTANCE = new MemTablePool();