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/24 08:41:29 UTC

[incubator-iotdb] branch feature_async_close_tsfile updated: add memtable_number config

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

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


The following commit(s) were added to refs/heads/feature_async_close_tsfile by this push:
     new 4463e19  add memtable_number config
4463e19 is described below

commit 4463e190229a026492e91ba33f2bfdf2da8bf7db
Author: qiaojialin <64...@qq.com>
AuthorDate: Mon Jun 24 16:41:14 2019 +0800

    add memtable_number config
---
 iotdb/iotdb/conf/iotdb-engine.properties           |  3 +++
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 22 ++++++++++------------
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  4 ++++
 .../iotdb/db/engine/memtable/MemTablePool.java     |  2 +-
 4 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/iotdb/iotdb/conf/iotdb-engine.properties b/iotdb/iotdb/conf/iotdb-engine.properties
index 5f04f08..66d0cf2 100644
--- a/iotdb/iotdb/conf/iotdb-engine.properties
+++ b/iotdb/iotdb/conf/iotdb-engine.properties
@@ -155,6 +155,9 @@ period_time_for_merge_in_second=7200
 # Default is true.
 enable_timing_close_and_merge=true
 
+# total number of memtables in memtable pool
+memtable_number=23
+
 # 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 33b7231..c3d2c88 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
@@ -114,6 +114,8 @@ public class IoTDBConfig {
    */
   private String derbyHome = "derby";
 
+  private int memtableNumber = 23;
+
   /**
    * Data directory of Write ahead log folder.
    */
@@ -172,11 +174,6 @@ public class IoTDBConfig {
    */
   private int concurrentFlushThread = Runtime.getRuntime().availableProcessors();
 
-  /**
-   * Maximum number of active mem tables.
-   */
-  private int maxActiveMemTableSize = 100;
-
   private ZoneId zoneID = ZoneId.systemDefault();
   /**
    * BufferWriteProcessor and OverflowProcessor will immediately flush if this threshold is
@@ -617,6 +614,14 @@ public class IoTDBConfig {
     this.periodTimeForFlush = periodTimeForFlush;
   }
 
+  public int getMemtableNumber() {
+    return memtableNumber;
+  }
+
+  public void setMemtableNumber(int memtableNumber) {
+    this.memtableNumber = memtableNumber;
+  }
+
   public long getPeriodTimeForMerge() {
     return periodTimeForMerge;
   }
@@ -845,11 +850,4 @@ public class IoTDBConfig {
     this.rpcImplClassName = rpcImplClassName;
   }
 
-  public int getMaxActiveMemTableSize() {
-    return maxActiveMemTableSize;
-  }
-
-  public void setMaxActiveMemTableSize(int maxActiveMemTableSize) {
-    this.maxActiveMemTableSize = maxActiveMemTableSize;
-  }
 }
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 f6ecec3..9bf3a13 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
@@ -118,6 +118,10 @@ public class IoTDBDescriptor {
       conf.setEnableWal(Boolean.parseBoolean(properties.getProperty("enable_wal",
           Boolean.toString(conf.isEnableWal()))));
 
+      conf.setMemtableNumber(Integer
+          .parseInt(properties.getProperty("memtable_number",
+              Integer.toString(conf.getMemtableNumber()))));
+
       conf.setFlushWalThreshold(Integer
           .parseInt(properties.getProperty("flush_wal_threshold",
                   Integer.toString(conf.getFlushWalThreshold()))));
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 349d3fc..51936e0 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
@@ -35,7 +35,7 @@ public class MemTablePool {
    * TODO check this parameter to ensure that capaity * MaxMemTable Size < JVM memory / 2
    */
   private static final int capacity = IoTDBDescriptor.getInstance().getConfig()
-      .getMaxActiveMemTableSize();
+      .getMemtableNumber();
 
   private int size = 0;