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));