You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xu...@apache.org on 2021/12/08 07:02:37 UTC

[iotdb] branch xkf_id_table updated: add config and related docs

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

xuekaifeng pushed a commit to branch xkf_id_table
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/xkf_id_table by this push:
     new d9f31e9  add config and related docs
d9f31e9 is described below

commit d9f31e96fd520b2d2b9ac386f84414f65df69f46
Author: 151250176 <15...@smail.nju.edu.cn>
AuthorDate: Wed Dec 8 14:59:28 2021 +0800

    add config and related docs
---
 docs/UserGuide/Appendix/Config-Manual.md           | 18 +++++++++++++-
 docs/zh/UserGuide/Appendix/Config-Manual.md        | 17 +++++++++++++
 .../resources/conf/iotdb-engine.properties         |  8 +++++++
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 24 +++++++++++++------
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 28 ++++++++++++----------
 5 files changed, 74 insertions(+), 21 deletions(-)

diff --git a/docs/UserGuide/Appendix/Config-Manual.md b/docs/UserGuide/Appendix/Config-Manual.md
index 1c20fc6..049bffd 100644
--- a/docs/UserGuide/Appendix/Config-Manual.md
+++ b/docs/UserGuide/Appendix/Config-Manual.md
@@ -728,7 +728,7 @@ The permission definitions are in ${IOTDB\_CONF}/conf/jmx.access.
 |Description| whether enable data partition. If disabled, all data belongs to partition 0|
 |Type| BOOLEAN |
 |Default|false |
-|Effective|After restart system|
+|Effective|Only allowed to be modified in first start up|
 
 * partition\_interval
 
@@ -737,8 +737,24 @@ The permission definitions are in ${IOTDB\_CONF}/conf/jmx.access.
 |Description| time range for partitioning data inside each storage group, the unit is second|
 |Type| LONG |
 |Default| 604800 |
+|Effective|Only allowed to be modified in first start up|
+
+* enable\_id\_table
+|Name| enable\_id\_table |
+|:---:|:---|
+|Description| whether to use id table. ATTENTION: id table is not compatible with alias |
+|Type| bool |
+|Default| false |
 |Effective|After restart system|
 
+* device\_id\_transformation\_method
+|Name| device\_id\_transformation\_method |
+|:---:|:---|
+|Description| the method to transform device path to device id, can be 'Plain' or 'SHA256' |
+|Type| string |
+|Default| Plain |
+|Effective|Only allowed to be modified in first start up|
+
 ## Enable GC log
 GC log is off by default.
 For performance tuning, you may want to collect the GC info. 
diff --git a/docs/zh/UserGuide/Appendix/Config-Manual.md b/docs/zh/UserGuide/Appendix/Config-Manual.md
index 3c2ec70..fd8d9a3 100644
--- a/docs/zh/UserGuide/Appendix/Config-Manual.md
+++ b/docs/zh/UserGuide/Appendix/Config-Manual.md
@@ -1485,6 +1485,22 @@
 |默认值| 604800 |
 |改后生效方式|仅允许在第一次启动服务前修改|
 
+* enable\_id\_table
+|名字| enable\_id\_table |
+|:---:|:---|
+|描述| 是否开启ID表,加速写入时元数据访问,注意:ID表与别名(alias)不兼容 |
+|类型| bool |
+|默认值| false |
+|改后生效方式|重启服务生效|
+
+* device\_id\_transformation\_method
+|名字| device\_id\_transformation\_method |
+|:---:|:---|
+|描述| 设备路径id化的方式,可以选择Plain或SHA256 |
+|类型| string |
+|默认值| Plain |
+|改后生效方式|仅允许在第一次启动服务前修改|
+
 * concurrent\_writing\_time\_partition
 
 |名字| concurrent\_writing\_time\_partition |
@@ -1512,6 +1528,7 @@
 |默认值| root |
 |改后生效方式|仅允许在第一次启动服务前修改|
 
+
 ## 开启 GC 日志
 GC 日志默认是关闭的。为了性能调优,用户可能会需要收集 GC 信息。
 若要打开 GC 日志,则需要在启动 IoTDB Server 的时候加上"printgc"参数:
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index bbcbc64..7c2353a 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -530,6 +530,14 @@ timestamp_precision=ms
 # Datatype: int
 # query_timeout_threshold=60000
 
+# the method to transform device path to device id, can be 'Plain' or 'SHA256'
+# Datatype: string
+# device_id_transformation_method=Plain
+
+# whether to use id table. ATTENTION: id table is not compatible with alias
+# Datatype: boolean
+# enable_id_table=false
+
 ####################
 ### Metadata Cache Configuration
 ####################
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 c6ebbbf..38030e5 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
@@ -18,6 +18,11 @@
  */
 package org.apache.iotdb.db.conf;
 
+import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
+
+import java.io.File;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.compaction.CompactionPriority;
 import org.apache.iotdb.db.engine.compaction.cross.CrossCompactionStrategy;
@@ -35,16 +40,9 @@ import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.fileSystem.FSType;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
-
 public class IoTDBConfig {
 
   /* Names of Watermark methods */
@@ -783,8 +781,12 @@ public class IoTDBConfig {
 
   private String adminPassword = "root";
 
+  /** the method to transform device path to device id, can be 'Plain' or 'SHA256' */
   private String deviceIDTransformationMethod = "Plain";
 
+  /** whether to use id table. ATTENTION: id table is not compatible with alias */
+  private boolean enableIDTable = false;
+
   public IoTDBConfig() {
     // empty constructor
   }
@@ -2480,4 +2482,12 @@ public class IoTDBConfig {
   public void setDeviceIDTransformationMethod(String deviceIDTransformationMethod) {
     this.deviceIDTransformationMethod = deviceIDTransformationMethod;
   }
+
+  public boolean isEnableIDTable() {
+    return enableIDTable;
+  }
+
+  public void setEnableIDTable(boolean enableIDTable) {
+    this.enableIDTable = enableIDTable;
+  }
 }
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 aaa9dd7..a831a7e 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
@@ -18,6 +18,16 @@
  */
 package org.apache.iotdb.db.conf;
 
+import com.google.common.net.InetAddresses;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.InetAddress;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.UnknownHostException;
+import java.util.Properties;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.compaction.CompactionPriority;
@@ -31,21 +41,9 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.fileSystem.FSType;
 import org.apache.iotdb.tsfile.utils.FilePathUtils;
-
-import com.google.common.net.InetAddresses;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.InetAddress;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.UnknownHostException;
-import java.util.Properties;
-
 public class IoTDBDescriptor {
 
   private static final Logger logger = LoggerFactory.getLogger(IoTDBDescriptor.class);
@@ -713,11 +711,15 @@ public class IoTDBDescriptor {
         conf.setMaxPendingWindowEvaluationTasks(64);
       }
 
-      // device id transformation method
+      // id table related configuration
       conf.setDeviceIDTransformationMethod(
           properties.getProperty(
               "device_id_transformation_method", conf.getDeviceIDTransformationMethod()));
 
+      conf.setEnableIDTable(
+          Boolean.parseBoolean(
+              properties.getProperty("enable_id_table", String.valueOf(conf.isEnableIDTable()))));
+
       // mqtt
       if (properties.getProperty(IoTDBConstant.MQTT_HOST_NAME) != null) {
         conf.setMqttHost(properties.getProperty(IoTDBConstant.MQTT_HOST_NAME));