DataNode Configuration Parameters

We use the same configuration files for IoTDB DataNode and Standalone version, all under the conf.

  • datanode-env.sh/bat:Environment configurations, in which we could set the memory allocation of DataNode and Standalone.

  • iotdb-datanode.properties:IoTDB DataNode system configurations.

Hot Modification Configuration

For the convenience of users, IoTDB provides users with hot modification function, that is, modifying some configuration parameters in iotdb-datanode.properties and iotdb-common.properties during the system operation and applying them to the system immediately. In the parameters described below, these parameters whose way of Effective is hot-load support hot modification.

Trigger way: The client sends the command(sql) load configuration to the IoTDB server.

Environment Configuration File(datanode-env.sh/bat)DataNode Config Manual - 图1open in new window

The environment configuration file is mainly used to configure the Java environment related parameters when DataNode is running, such as JVM related configuration. This part of the configuration is passed to the JVM when the DataNode starts.

The details of each parameter are as follows:

  • MAX_HEAP_SIZE
NameMAX_HEAP_SIZE
DescriptionThe maximum heap memory size that IoTDB can use
TypeString
DefaultOn Linux or MacOS, the default is one quarter of the memory. On Windows, the default value for 32-bit systems is 512M, and the default for 64-bit systems is 2G.
EffectiveAfter restarting system
  • HEAP_NEWSIZE
NameHEAP_NEWSIZE
DescriptionThe minimum heap memory size that IoTDB will use when startup
TypeString
DefaultOn Linux or MacOS, the default is min{cores * 100M, one quarter of MAX_HEAP_SIZE}. On Windows, the default value for 32-bit systems is 512M, and the default for 64-bit systems is 2G.
EffectiveAfter restarting system
  • MAX_DIRECT_MEMORY_SIZE
NameMAX_DIRECT_MEMORY_SIZE
DescriptionThe max direct memory that IoTDB could use
TypeString
DefaultEqual to the MAX_HEAP_SIZE
EffectiveAfter restarting system
  • JMX_LOCAL
NameJMX_LOCAL
DescriptionJMX monitoring mode, configured as yes to allow only local monitoring, no to allow remote monitoring
TypeEnum String: “true”, “false”
Defaulttrue
EffectiveAfter restarting system
  • JMX_PORT
NameJMX_PORT
DescriptionJMX listening port. Please confirm that the port is not a system reserved port and is not occupied
TypeShort Int: [0,65535]
Default31999
EffectiveAfter restarting system
  • JMX_IP
NameJMX_IP
DescriptionJMX listening address. Only take effect if JMX_LOCAL=false. 0.0.0.0 is never allowed
TypeString
Default127.0.0.1
EffectiveAfter restarting system

JMX Authorization

We STRONGLY RECOMMENDED you CHANGE the PASSWORD for the JMX remote connection.

The user and passwords are in ${IOTDB_CONF}/conf/jmx.password.

The permission definitions are in ${IOTDB_CONF}/conf/jmx.access.

DataNode/Standalone Configuration File (iotdb-datanode.properties)

Data Node RPC Configuration

  • dn_rpc_address
Namedn_rpc_address
DescriptionThe client rpc service listens on the address.
TypeString
Default127.0.0.1
EffectiveAfter restarting system
  • dn_rpc_port
Namedn_rpc_port
DescriptionThe client rpc service listens on the port.
TypeShort Int : [0,65535]
Default6667
EffectiveAfter restarting system
  • dn_internal_address
Namedn_internal_address
DescriptionDataNode internal service host/IP
Typestring
Default127.0.0.1
EffectiveAfter restarting system
  • dn_internal_port
Namedn_internal_port
DescriptionDataNode internal service port
Typeint
Default10730
EffectiveAfter restarting system
  • dn_mpp_data_exchange_port
Namempp_data_exchange_port
DescriptionMPP data exchange port
Typeint
Default10740
EffectiveAfter restarting system
  • dn_schema_region_consensus_port
Namedn_schema_region_consensus_port
DescriptionDataNode Schema replica communication port for consensus
Typeint
Default10750
EffectiveAfter restarting system
  • dn_data_region_consensus_port
Namedn_data_region_consensus_port
DescriptionDataNode Data replica communication port for consensus
Typeint
Default10760
EffectiveAfter restarting system
  • dn_join_cluster_retry_interval_ms
Namedn_join_cluster_retry_interval_ms
DescriptionThe time of data node waiting for the next retry to join into the cluster
Typelong
Default5000
EffectiveAfter restarting system

Target Config Nodes

  • dn_target_config_node_list
Namedn_target_config_node_list
DescriptionConfigNode Address for DataNode to join cluster
TypeString
Default127.0.0.1:10710
EffectiveAfter restarting system

Connection Configuration

  • dn_rpc_thrift_compression_enable
Namedn_rpc_thrift_compression_enable
DescriptionWhether enable thrift’s compression (using GZIP).
TypeBoolean
Defaultfalse
EffectiveAfter restarting system
  • dn_rpc_advanced_compression_enable
Namedn_rpc_advanced_compression_enable
DescriptionWhether enable thrift’s advanced compression.
TypeBoolean
Defaultfalse
EffectiveAfter restarting system
  • dn_rpc_selector_thread_count
Namedn_rpc_selector_thread_count
DescriptionThe number of rpc selector thread.
Typeint
Defaultfalse
EffectiveAfter restarting system
  • dn_rpc_min_concurrent_client_num
Namedn_rpc_min_concurrent_client_num
DescriptionMinimum concurrent rpc connections
TypeShort Int : [0,65535]
Description1
EffectiveAfter restarting system
  • dn_rpc_max_concurrent_client_num
Namedn_rpc_max_concurrent_client_num
DescriptionMax concurrent rpc connections
TypeShort Int : [0,65535]
Description65535
EffectiveAfter restarting system
  • dn_thrift_max_frame_size
Namedn_thrift_max_frame_size
DescriptionMax size of bytes of each thrift RPC request/response
TypeLong
UnitByte
Default536870912
EffectiveAfter restarting system
  • dn_thrift_init_buffer_size
Namedn_thrift_init_buffer_size
DescriptionInitial size of bytes of buffer that thrift used
Typelong
Default1024
EffectiveAfter restarting system
  • dn_core_client_count_for_each_node_in_client_manager
Namedn_core_client_count_for_each_node_in_client_manager
DescriptionNumber of core clients routed to each node in a ClientManager
Typeint
Default200
EffectiveAfter restarting system
  • dn_max_client_count_for_each_node_in_client_manager
Namedn_max_client_count_for_each_node_in_client_manager
DescriptionNumber of max clients routed to each node in a ClientManager
Typeint
Default300
EffectiveAfter restarting system

Dictionary Configuration

  • dn_system_dir
Namedn_system_dir
DescriptionThe directories of system files. It is recommended to use an absolute path.
TypeString
Defaultdata/datanode/system (Windows: data\datanode\system)
EffectiveAfter restarting system
  • dn_data_dirs
Namedn_data_dirs
DescriptionThe directories of data files. Multiple directories are separated by comma. The starting directory of the relative path is related to the operating system. It is recommended to use an absolute path. If the path does not exist, the system will automatically create it.
TypeString[]
Defaultdata/datanode/data (Windows: data\datanode\data)
Effectivehot-load
  • dn_multi_dir_strategy
Namedn_multi_dir_strategy
DescriptionIoTDB’s strategy for selecting directories for TsFile in tsfile_dir. You can use a simple class name or a full name of the class. The system provides the following three strategies:
1. SequenceStrategy: IoTDB selects the directory from tsfile_dir in order, traverses all the directories in tsfile_dir in turn, and keeps counting;
2. MaxDiskUsableSpaceFirstStrategy: IoTDB first selects the directory with the largest free disk space in tsfile_dir;
3. MinFolderOccupiedSpaceFirstStrategy: IoTDB prefers the directory with the least space used in tsfile_dir;
4. UserDfineStrategyPackage (user-defined policy)
You can complete a user-defined policy in the following ways:
1. Inherit the cn.edu.tsinghua.iotdb.conf.directories.strategy.DirectoryStrategy class and implement its own Strategy method;
2. Fill in the configuration class with the full class name of the implemented class (package name plus class name, UserDfineStrategyPackage);
3. Add the jar file to the project.
TypeString
DefaultMaxDiskUsableSpaceFirstStrategy
Effectivehot-load
  • dn_consensus_dir
Namedn_consensus_dir
DescriptionThe directories of consensus files. It is recommended to use an absolute path.
TypeString
Defaultdata/datanode/consensus
EffectiveAfter restarting system
  • dn_wal_dir
Namedn_wal_dir
DescriptionWrite Ahead Log storage path. It is recommended to use an absolute path.
TypeString
Defaultdata/datanode/wal
EffectiveAfter restarting system
  • dn_tracing_dir
Namedn_tracing_dir
DescriptionThe tracing root directory path. It is recommended to use an absolute path.
TypeString
Defaultdatanode/tracing
EffectiveAfter restarting system
  • dn_sync_dir
Namedn_sync_dir
DescriptionThe directories of sync files. It is recommended to use an absolute path.
TypeString
Defaultdata/datanode/sync
EffectiveAfter restarting system

Metric Configuration

Enable GC log

GC log is off by default. For performance tuning, you may want to collect the GC info.

To enable GC log, just add a parameter “printgc” when you start the DataNode.

  1. nohup sbin/start-datanode.sh printgc >/dev/null 2>&1 &

Or

  1. sbin\start-datanode.bat printgc

GC log is stored at IOTDB_HOME/logs/gc.log. There will be at most 10 gc.log.* files and each one can reach to 10MB.