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 adb2e84  Add array size in iotdb config (#1247)
adb2e84 is described below

commit adb2e84ed126100cbc77bad23c3feb1bca03ccb2
Author: wshao08 <[email protected]>
AuthorDate: Sat May 23 20:35:06 2020 +0800

    Add array size in iotdb config (#1247)
---
 server/src/assembly/resources/conf/iotdb-engine.properties  |  3 +++
 .../src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 13 +++++++++++++
 .../main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java |  3 +++
 .../java/org/apache/iotdb/db/rescon/PrimitiveArrayPool.java |  4 +++-
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties 
b/server/src/assembly/resources/conf/iotdb-engine.properties
index f19b254..6135c24 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -238,6 +238,9 @@ enable_parameter_adapter=true
 # The parameter form is a:b:c, where a, b and c are integers. for example: 
1:1:1 , 6:3:1
 write_read_free_memory_proportion=6:3:1
 
+# primitive array size (length of each array) in array pool
+primitive_array_size=128
+
 
 ####################
 ### Upgrade Configurations
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 e61d5e4..0d04592 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
@@ -529,6 +529,11 @@ public class IoTDBConfig {
    * also be affected.
    */
   private long defaultTTL = Long.MAX_VALUE;
+
+  /**
+   * The default value of primitive array size in array pool
+   */
+  private int primitiveArraySize = 128;
   /**
    * Time range for partitioning data inside each storage group, the unit is 
second
    */
@@ -1493,4 +1498,12 @@ public class IoTDBConfig {
   public void setTagAttributeTotalSize(int tagAttributeTotalSize) {
     this.tagAttributeTotalSize = tagAttributeTotalSize;
   }
+
+  public int getPrimitiveArraySize() {
+    return primitiveArraySize;
+  }
+
+  public void setPrimitiveArraySize(int primitiveArraySize) {
+    this.primitiveArraySize = primitiveArraySize;
+  }
 }
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 1ca12d2..c6dc527 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
@@ -384,6 +384,9 @@ public class IoTDBDescriptor {
           Integer.parseInt(properties.getProperty("tag_attribute_total_size",
               String.valueOf(conf.getTagAttributeTotalSize())))
       );
+      conf.setPrimitiveArraySize((Integer.parseInt(
+          properties.getProperty(
+              "primitive_array_size", 
String.valueOf(conf.getPrimitiveArraySize())))));
 
       // mqtt
       if (properties.getProperty(IoTDBConstant.MQTT_HOST_NAME) != null) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayPool.java 
b/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayPool.java
index d010ed6..a403f28 100644
--- a/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayPool.java
+++ b/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayPool.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.rescon;
 
 import java.util.ArrayDeque;
 import java.util.EnumMap;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
@@ -34,7 +35,8 @@ public class PrimitiveArrayPool {
    */
   private static final EnumMap<TSDataType, ArrayDeque<Object>> 
primitiveArraysMap = new EnumMap<>(TSDataType.class);
 
-  public static final int ARRAY_SIZE = 128;
+  public static final int ARRAY_SIZE =
+      IoTDBDescriptor.getInstance().getConfig().getPrimitiveArraySize();
 
   static {
     primitiveArraysMap.put(TSDataType.BOOLEAN, new ArrayDeque<>());

Reply via email to