blob: 067e1ed1a35b0a4b227c6c5accac221bef834af9 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
####################
### RPC Configuration
####################
# could set 0.0.0.0, 127.0.0.1(for local test) or ipv4 address
# Datatype: String
rpc_address=0.0.0.0
# Datatype: int
rpc_port=6667
####################
### Shuffle Configuration
####################
# Datatype: int
mpp_data_exchange_port=8777
# Datatype: int
# mpp_data_exchange_core_pool_size=10
# Datatype: int
# mpp_data_exchange_max_pool_size=10
# Datatype: int
# mpp_data_exchange_keep_alive_time_in_ms=1000
# Datatype: String
# used for communication between cluster nodes.
# could set 0.0.0.0, 127.0.0.1(for local test) or ipv4 address.
internal_address=0.0.0.0
# Datatype: int
# port for coordinator's communication between cluster nodes.
internal_port=9003
# Datatype: int
# port for consensus's communication for data region between cluster nodes.
data_region_consensus_port=40010
# Datatype: int
# port for consensus's communication for schema region between cluster nodes.
schema_region_consensus_port=50010
# At least one running ConfigNode should be set for joining the cluster
# Format: ip:port
# where the ip should be consistent with the target ConfigNode's confignode_internal_address,
# and the port should be consistent with the target ConfigNode's confignode_internal_port.
# When successfully connecting to the ConfigNodeGroup, DataNode will get all online
# config nodes and store them in memory.
# Datatype: String
# Notice: The ip for any target_config_node should never be 0.0.0.0
target_config_nodes=127.0.0.1:22277
# Datatype: boolean
# rpc_thrift_compression_enable=false
# if true, a snappy based compression method will be called before sending data by the network
# Datatype: boolean
# this feature is under development, set this as false before it is done.
# rpc_advanced_compression_enable=false
# Datatype: int
# rpc_selector_thread_num=1
# Datatype: int
# rpc_min_concurrent_client_num=1
# Datatype: int
# rpc_max_concurrent_client_num=65535
# thrift max frame size, 512MB by default
# Datatype: int
# thrift_max_frame_size=536870912
# thrift init buffer size
# Datatype: int
# thrift_init_buffer_size=1024
# Thrift socket and connection timeout between raft nodes, in milliseconds.
# Datatype: int
# connection_timeout_ms=20000
# The maximum number of clients that can be idle for a node's InternalService.
# When the number of idle clients on a node exceeds this number, newly returned clients will be released
# Datatype: int
# core_connection_for_internal_service=100
# The maximum number of clients that can be applied for a node's InternalService
# Datatype: int
# max_connection_for_internal_service=100
# selector thread (TAsyncClientManager) nums for async thread in a clientManager
# Datatype: int
# selector_thread_nums_of_client_manager=1
####################
### Write Ahead Log Configuration
####################
# Write mode of wal
# The details of these three modes are as follows:
# 1. DISABLE: the system will disable wal.
# 2. SYNC: the system will submit wal synchronously, write request will not return until its wal is fsynced to the disk successfully.
# 3. ASYNC: the system will submit wal asynchronously, write request will return immediately no matter its wal is fsynced to the disk successfully.
# The write performance order is DISABLE > ASYNC > SYNC, but only SYNC mode can ensure data durability.
# wal_mode=ASYNC
# wal dirs
# If this property is unset, system will save the data in the default relative path directory under the IoTDB folder(i.e., %IOTDB_HOME%/data).
# If it is absolute, system will save the data in the exact location it points to.
# If it is relative, system will save the data in the relative path directory it indicates under the IoTDB folder.
# If there are more than one directory, please separate them by commas ",".
# Note: If wal_dirs is assigned an empty string(i.e.,zero-size), it will be handled as a relative path.
# For windows platform
# If its prefix is a drive specifier followed by "\\", or if its prefix is "\\\\", then the path is absolute. Otherwise, it is relative.
# wal_dirs=data\\wal
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# wal_dirs=data/wal
# Max number of wal nodes, each node corresponds to one wal directory
# The default value 0 means twice the number of wal dirs.
# Notice: this value affects write performance significantly.
# For non-SSD disks, values between one third and half of storage groups number are recommended.
# Datatype: int
# max_wal_nodes_num=0
# Duration a wal flush operation will wait before calling fsync
# A duration greater than 0 batches multiple wal fsync calls into one. This is useful when disks are slow or WAL write contention exists.
# Notice: this value affects write performance significantly, values in the range of 0ms-10ms are recommended.
# Datatype: long
# fsync_wal_delay_in_ms=3
# Buffer size of each wal node
# If it's a value smaller than 0, use the default value 16 * 1024 * 1024 bytes (16MB).
# Datatype: int
# wal_buffer_size_in_byte=16777216
# Blocking queue capacity of each wal buffer, restricts maximum number of WALEdits cached in the blocking queue.
# Datatype: int
# wal_buffer_queue_capacity=50
# Size threshold of each wal file
# When a wal file's size exceeds this, the wal file will be closed and a new wal file will be created.
# If it's a value smaller than 0, use the default value 10 * 1024 * 1024 (10MB).
# Datatype: long
# wal_file_size_threshold_in_byte=10485760
# Minimum ratio of effective information in wal files
# This value should be between 0.0 and 1.0
# If effective information ratio is below this value, MemTable snapshot or flush will be triggered.
# Increase this value when wal occupies too much disk space. But, if this parameter is too large, the write performance may decline.
# Datatype: double
# wal_min_effective_info_ratio=0.1
# MemTable size threshold for triggering MemTable snapshot in wal
# When a memTable's size (in byte) exceeds this, wal can flush this memtable to disk, otherwise wal will snapshot this memtable in wal.
# If it's a value smaller than 0, use the default value 8 * 1024 * 1024 bytes (8MB).
# Datatype: long
# wal_memtable_snapshot_threshold_in_byte=8388608
# MemTable's max snapshot number in wal
# If one memTable's snapshot number in wal exceeds this value, it will be flushed to disk.
# Datatype: int
# max_wal_memtable_snapshot_num=1
# The period when outdated wal files are periodically deleted
# If this value is too large, outdated wal files may not able to be deleted in time.
# If it's a value smaller than 0, use the default value 20 * 1000 ms (20 seconds).
# Datatype: long
# delete_wal_files_period_in_ms=20000
# The minimum size of wal files when throttle down in MultiLeader consensus
# If it's a value smaller than 0, use the default value 50 * 1024 * 1024 * 1024 bytes (50GB).
# Datatype: long
# multi_leader_throttle_threshold_in_byte=53687091200
# Maximum wait time of write cache in MultiLeader consensus
# If this value is less than or equal to 0, use the default value Long.MAX_VALUE.
# Datatype: long
# multi_leader_cache_window_time_in_ms=-1
####################
### Directory Configuration
####################
# system dir
# If this property is unset, system will save the data in the default relative path directory under the IoTDB folder(i.e., %IOTDB_HOME%/data/system).
# If it is absolute, system will save the data in exact location it points to.
# If it is relative, system will save the data in the relative path directory it indicates under the IoTDB folder.
# For windows platform
# If its prefix is a drive specifier followed by "\\", or if its prefix is "\\\\", then the path is absolute. Otherwise, it is relative.
# system_dir=data\\system
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# system_dir=data/system
# data dirs
# If this property is unset, system will save the data in the default relative path directory under the IoTDB folder(i.e., %IOTDB_HOME%/data/data).
# If it is absolute, system will save the data in exact location it points to.
# If it is relative, system will save the data in the relative path directory it indicates under the IoTDB folder.
# If there are more than one directory, please separate them by commas ",".
# Note: If data_dirs is assigned an empty string(i.e.,zero-size), it will be handled as a relative path.
# For windows platform
# If its prefix is a drive specifier followed by "\\", or if its prefix is "\\\\", then the path is absolute. Otherwise, it is relative.
# data_dirs=data\\data
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# data_dirs=data/data
# multi_dir_strategy
# The strategy is used to choose a directory from data_dirs for the system to store a new tsfile.
# System provides four strategies to choose from, or user can create his own strategy by extending org.apache.iotdb.db.conf.directories.strategy.DirectoryStrategy.
# The info of the four strategies are as follows:
# 1. SequenceStrategy: the system will choose the directory in sequence.
# 2. MaxDiskUsableSpaceFirstStrategy: the system will choose the directory whose disk has the maximum space.
# 3. MinFolderOccupiedSpaceFirstStrategy: the system will choose the directory whose folder has the minimum occupied space.
# 4. RandomOnDiskUsableSpaceStrategy: the system will randomly choose the directory based on usable space of disks. The more usable space, the greater the chance of being chosen;
# Set SequenceStrategy,MaxDiskUsableSpaceFirstStrategy and MinFolderOccupiedSpaceFirstStrategy to apply the corresponding strategy.
# If this property is unset, system will use MaxDiskUsableSpaceFirstStrategy as default strategy.
# For this property, fully-qualified class name (include package name) and simple class name are both acceptable.
# multi_dir_strategy=MaxDiskUsableSpaceFirstStrategy
# consensus dir
# If this property is unset, system will save the data in the default relative path directory under the IoTDB folder(i.e., %IOTDB_HOME%/data).
# If it is absolute, system will save the data in the exact location it points to.
# If it is relative, system will save the data in the relative path directory it indicates under the IoTDB folder.
# Note: If consensus_dir is assigned an empty string(i.e.,zero-size), it will be handled as a relative path.
# For windows platform
# If its prefix is a drive specifier followed by "\\", or if its prefix is "\\\\", then the path is absolute. Otherwise, it is relative.
# consensus_dir=data\\consensus
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# consensus_dir=data/consensus
# TSFile storage file system. Currently, TsFiles are supported to be stored in LOCAL file system or HDFS.
# Datatype: FSType
# tsfile_storage_fs=LOCAL
# If using HDFS, the absolute file path of Hadoop core-site.xml should be configured
# Datatype: String
# core_site_path=/etc/hadoop/conf/core-site.xml
# If using HDFS, the absolute file path of Hadoop hdfs-site.xml should be configured
# Datatype: String
# hdfs_site_path=/etc/hadoop/conf/hdfs-site.xml
# If using HDFS, hadoop ip can be configured. If there are more than one hdfs_ip, Hadoop HA is used
# Datatype: String
# hdfs_ip=localhost
# If using HDFS, hadoop port can be configured
# Datatype: String
# hdfs_port=9000
# If there are more than one hdfs_ip, Hadoop HA is used. Below are configuration for HA
# If using Hadoop HA, nameservices of hdfs can be configured
# Datatype: String
# dfs_nameservices=hdfsnamespace
# If using Hadoop HA, namenodes under dfs nameservices can be configured
# Datatype: String
# dfs_ha_namenodes=nn1,nn2
# If using Hadoop HA, automatic failover can be enabled or disabled
# Datatype: boolean
# dfs_ha_automatic_failover_enabled=true
# If using Hadoop HA and enabling automatic failover, the proxy provider can be configured
# Datatype: String
# dfs_client_failover_proxy_provider=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
# If using kerberos to authenticate hdfs, this should be true
# Datatype: boolean
# hdfs_use_kerberos=false
# Full path of kerberos keytab file
# Datatype: String
# kerberos_keytab_file_path=/path
# Kerberos pricipal
# Datatype: String
# kerberos_principal=your principal
####################
### Storage Engine Configuration
####################
# Use this value to set timestamp precision as "ms", "us" or "ns".
# Once the precision is been set, it can not be changed.
# Datatype: String
timestamp_precision=ms
# Default TTL for storage groups that are not set TTL by statements, If not set (default),
# the TTL will be unlimited.
# Notice: if this property is changed, previous created storage group which are not set TTL will
# also be affected. And negative values are accepted, which means you can only insert future
# data.
# Datatype: long
# Unit: ms
# default_ttl=36000000
# What will the system do when unrecoverable error occurs.
# Datatype: String
# Optional strategies are as follows:
# 1. CHANGE_TO_READ_ONLY: set system status to read-only and the system only accepts query operations.
# 2. SHUTDOWN: the system will be shutdown.
# handle_system_error=CHANGE_TO_READ_ONLY
# Size of log buffer in each metadata operation plan(in byte).
# If the size of a metadata operation plan is larger than this parameter, then it will be rejected by SchemaRegion
# If it sets a value smaller than 0, use the default value 1024*1024
# Datatype: int
# mlog_buffer_size=1048576
# The cycle when metadata log is periodically forced to be written to disk(in milliseconds)
# If sync_mlog_period_in_ms = 0 it means force metadata log to be written to disk after each refreshment
# Set this parameter to 0 may slow down the operation on slow disk.
# sync_mlog_period_in_ms=100
# When a memTable's size (in byte) exceeds this, the memtable is flushed to disk. The default threshold is 1 GB.
# Datatype: long
# memtable_size_threshold=1073741824
# Whether to timed flush sequence tsfiles' memtables.
# Datatype: boolean
# enable_timed_flush_seq_memtable=false
# If a memTable's created time is older than current time minus this, the memtable will be flushed to disk.
# Only check sequence tsfiles' memtables.
# The default flush interval is 60 * 60 * 1000. (unit: ms)
# Datatype: long
# seq_memtable_flush_interval_in_ms=3600000
# The interval to check whether sequence memtables need flushing.
# The default flush check interval is 10 * 60 * 1000. (unit: ms)
# Datatype: long
# seq_memtable_flush_check_interval_in_ms=600000
# Whether to timed flush unsequence tsfiles' memtables.
# Datatype: boolean
# enable_timed_flush_unseq_memtable=true
# If a memTable's created time is older than current time minus this, the memtable will be flushed to disk.
# Only check unsequence tsfiles' memtables.
# The default flush interval is 60 * 60 * 1000. (unit: ms)
# Datatype: long
# unseq_memtable_flush_interval_in_ms=3600000
# The interval to check whether unsequence memtables need flushing.
# The default flush check interval is 10 * 60 * 1000. (unit: ms)
# Datatype: long
# unseq_memtable_flush_check_interval_in_ms=600000
# The sort algorithms used in the memtable's TVList
# TIM: default tim sort,
# QUICK: quick sort,
# BACKWARD: backward sort
# tvlist_sort_algorithm=TIM
# When the average point number of timeseries in memtable exceeds this, the memtable is flushed to disk. The default threshold is 100000.
# Datatype: int
# avg_series_point_number_threshold=100000
# When a chunk in memtable reaches this threshold, flush the memtable to disk.
# The default threshold is 20 MB.
# Datatype: long
# max_chunk_raw_size_threshold = 20971520
# How many threads can concurrently flush. When <= 0, use CPU core number.
# Datatype: int
# concurrent_flush_thread=0
# How many threads can concurrently execute query statement. When <= 0, use CPU core number.
# Datatype: int
# concurrent_query_thread=0
# How many threads can concurrently read data for raw data query. When <= 0, use CPU core number.
# Datatype: int
# concurrent_sub_rawQuery_thread=8
# Blocking queue size for read task in raw data query. Must >= 1.
# Datatype: int
# raw_query_blocking_queue_capacity=5
# whether take over the memory management by IoTDB rather than JVM when serializing memtable as bytes in memory
# (i.e., whether use ChunkBufferPool), value true, false
# Datatype: boolean
# chunk_buffer_pool_enable=false
# The amount of data iterate each time in server (the number of data strips, that is, the number of different timestamps.)
# Datatype: int
# batch_size=100000
# max size for tag and attribute of one time series
# the unit is byte
# Datatype: int
# tag_attribute_total_size=700
# interval num for tag and attribute records when force flushing to disk
# When a certain amount of tag and attribute records is reached, they will be force flushed to disk
# It is possible to lose at most tag_attribute_flush_interval records
# tag_attribute_flush_interval=1000
# In one insert (one device, one timestamp, multiple measurements),
# if enable partial insert, one measurement failure will not impact other measurements
# Datatype: boolean
# enable_partial_insert=true
# the interval to log recover progress of each vsg when starting iotdb
# Datatype: int
# recovery_log_interval_in_ms=5000
# Add a switch to drop ouf-of-order data
# Out-of-order data will impact the aggregation query a lot. Users may not care about discarding some out-of-order data.
# Datatype: boolean
# enable_discard_out_of_order_data=false
####################
### Memory Control Configuration
####################
# Whether to enable memory control
# Datatype: boolean
# enable_mem_control=true
# Memory Allocation Ratio: Write, Read, Schema and Free Memory.
# The parameter form is a:b:c:d, where a, b, c and d are integers. for example: 1:1:1:1 , 6:2:1:1
# If you have high level of writing pressure and low level of reading pressure, please adjust it to for example 6:1:1:2
# write_read_schema_free_memory_proportion=4:3:1:2
# Schema Memory Allocation Ratio: SchemaRegion, SchemaCache, PartitionCache and LastCache.
# The parameter form is a:b:c:d, where a, b, c and d are integers. for example: 1:1:1:1 , 6:2:1:1
# In cluster mode, we recommend 5:3:1:1. In standalone mode, we recommend 8:1:0:1
# schema_memory_allocate_proportion=5:3:1:1
# Memory allocation ratio in StorageEngine: MemTable, Compaction
# The parameter form is a:b:c:d, where a, b, c and d are integers. for example: 8:2 , 7:3
# storage_engine_memory_proportion=8:2
# Max number of concurrent writing time partitions in one storage group
# This parameter is used to control total memTable number when memory control is disabled
# The max number of memTable is 4 * concurrent_writing_time_partition * storage group number
# Datatype: long
# concurrent_writing_time_partition=1
# primitive array size (length of each array) in array pool
# Datatype: int
# primitive_array_size=32
# the percentage of write memory for chunk metadata remains in a single file writer when flushing memtable
# Datatype: double
# chunk_metadata_size_proportion_in_write=0.1
# Ratio of write memory for invoking flush disk, 0.4 by default
# If you have extremely high write load (like batch=1000), it can be set lower than the default value like 0.2
# Datatype: double
# flush_proportion=0.4
# Ratio of write memory allocated for buffered arrays, 0.6 by default
# Datatype: double
# buffered_arrays_memory_proportion=0.6
# Ratio of write memory for rejecting insertion, 0.8 by default
# If you have extremely high write load (like batch=1000) and the physical memory size is large enough,
# it can be set higher than the default value like 0.9
# Datatype: double
# reject_proportion=0.8
# If memory (in byte) of storage group increased more than this threshold, report to system. The default value is 16MB
# Datatype: long
# storage_group_report_threshold=16777216
# allowed max numbers of deduplicated path in one query
# it's just an advised value, the real limitation will be the smaller one between this and the one we calculated
# Datatype: int
# max_deduplicated_path_num=1000
# When an inserting is rejected, waiting period (in ms) to check system again, 50 by default.
# If the insertion has been rejected and the read load is low, it can be set larger.
# Datatype: int
# check_period_when_insert_blocked=50
# When the waiting time (in ms) of an inserting exceeds this, throw an exception. 10000 by default.
# If the insertion has been rejected and the read load is low, it can be set larger
# Datatype: int
# max_waiting_time_when_insert_blocked=10000
# size of ioTaskQueue. The default value is 10
# Datatype: int
# io_task_queue_size_for_flushing=10
# If true, we will estimate each query's possible memory footprint before executing it and deny it if its estimated memory exceeds current free memory
# Datatype: bool
# enable_query_memory_estimation=true
####################
### Upgrade Configurations
####################
# When there exists old version(0.9.x/v1) data, how many thread will be set up to perform upgrade tasks, 1 by default.
# Set to 1 when less than or equal to 0.
# Datatype: int
# upgrade_thread_num=1
####################
### Query Configurations
####################
# the default time period that used in fill query, -1 by default means infinite past time
# Datatype: int, Unit: ms
# default_fill_interval=-1
# the max execution time of a DriverTask
# Datatype: int, Unit: ms
# driver_task_execution_time_slice_in_ms=100
# the max capacity of a TsBlock
# Datatype: int, Unit: byte
# max_tsblock_size_in_bytes=1048576
# the max number of lines in a single TsBlock
# Datatype: int
# max_tsblock_line_numbers=1000
####################
### Compaction Configurations
####################
# sequence space compaction: only compact the sequence files
# Datatype: boolean
# enable_seq_space_compaction=true
# unsequence space compaction: only compact the unsequence files
# Datatype: boolean
# enable_unseq_space_compaction=true
# cross space compaction: compact the unsequence files into the overlapped sequence files
# Datatype: boolean
# enable_cross_space_compaction=true
# the selector of cross space compaction task
# Options: rewrite
# cross_selector=rewrite
# the compaction performer of cross space compaction task
# Options: read_point
# cross_performer=read_point
# the selector of inner sequence space compaction task
# Options: size_tiered
# inner_seq_selector=size_tiered
# the performer of inner sequence space compaction task
# Options: read_chunk
# inner_seq_performer=read_chunk
# the selector of inner unsequence space compaction task
# Options: size_tiered
# inner_unseq_selector=size_tiered
# the performer of inner unsequence space compaction task
# Options: read_point
# inner_unseq_performer=read_point
# The priority of compaction execution
# INNER_CROSS: prioritize inner space compaction, reduce the number of files first
# CROSS_INNER: prioritize cross space compaction, eliminate the unsequence files first
# BALANCE: alternate two compaction types
# compaction_priority=BALANCE
# size proportion for chunk metadata maintains in memory when compacting
# Datatype: double
# chunk_metadata_size_proportion_in_compaction=0.05
# The target tsfile size in compaction
# Datatype: long, Unit: byte
# target_compaction_file_size=1073741824
# The target chunk size in compaction, default is 1MB
# Datatype: long, Unit: byte
# target_chunk_size=1048576
# The target point nums in one chunk in compaction
# Datatype: long
# target_chunk_point_num=100000
# If the chunk size is lower than this threshold, it will be deserialize into points, default is 128 byte
# Datatype: long, Unit:byte
# chunk_size_lower_bound_in_compaction=128
# If the chunk size is lower than this threshold, it will be deserialize into points
# Datatype: long
# chunk_point_num_lower_bound_in_compaction=100
# The max file when selecting inner space compaction candidate files
# Datatype: int
# max_inner_compaction_candidate_file_num=30
# The max file when selecting cross space compaction candidate files
# At least one unseq file with it's overlapped seq files will be selected even exceeded this number
# Datatype: int
# max_cross_compaction_candidate_file_num=1000
# The max total size when selecting cross space compaction candidate files
# At least one unseq file with it's overlapped seq files will be selected even exceeded this number
# Datatype: long, Unit: byte
# max_cross_compaction_candidate_file_size=5368709120
# If one merge file selection runs for more than this time, it will be ended and its current
# selection will be used as final selection.
# When < 0, it means time is unbounded.
# Datatype: long, Unit: ms
# cross_compaction_file_selection_time_budget=30000
# How many threads will be set up to perform compaction, 10 by default.
# Set to 1 when less than or equal to 0.
# Datatype: int
# concurrent_compaction_thread=10
# The interval of compaction task schedule
# Datatype: long, Unit: ms
# compaction_schedule_interval_in_ms=60000
# The interval of compaction task submission
# Datatype: long, Unit: ms
# compaction_submission_interval_in_ms=60000
# The limit of write throughput merge can reach per second
# Datatype: int
# compaction_write_throughput_mb_per_sec=16
# The maximum session idle time. unit: ms
# Idle sessions are the ones that performs neither query or non-query operations for a period of time
# Set to 0 to disable session timeout
# Datatype: int
# session_timeout_threshold=0
# The max executing time of query. unit: ms
# Datatype: int
# query_timeout_threshold=60000
# The maximum allowed concurrently executing queries
# Datatype: int
# max_allowed_concurrent_queries=1000
# The number of sub compaction threads to be set up to perform compaction.
# Currently only works for nonAligned data in cross space compaction and unseq inner space compaction.
# Set to 1 when less than or equal to 0.
# Datatype: int
# sub_compaction_thread_num=4
####################
### Metadata Cache Configuration
####################
# whether to cache meta data(BloomFilter, ChunkMetadata and TimeSeriesMetadata) or not.
# Datatype: boolean
# meta_data_cache_enable=true
# Read memory Allocation Ratio: BloomFilterCache : ChunkCache : TimeSeriesMetadataCache : Coordinator : Operators : DataExchange : timeIndex in TsFileResourceList : others.
# The parameter form is a:b:c:d:e:f:g:h, where a, b, c, d, e, f, g and h are integers. for example: 1:1:1:1:1:1:1:1 , 1:100:200:50:200:200:200:50
# chunk_timeseriesmeta_free_memory_proportion=1:100:200:50:200:200:200:50
####################
### LAST Cache Configuration
####################
# Whether to enable LAST cache
# Datatype: boolean
# enable_last_cache=true
####################
### External sort Configuration
####################
# Is external sort enable
# Datatype: boolean
# enable_external_sort=true
# The maximum number of simultaneous chunk reading for a single time series.
# If the num of simultaneous chunk reading is greater than external_sort_threshold, external sorting is used.
# When external_sort_threshold increases, the number of chunks sorted at the same time in memory may increase and this will occupy more memory.
# When external_sort_threshold decreases, triggering external sorting will increase the time-consuming.
# Datatype: int
# external_sort_threshold=1000
####################
### PIPE Server Configuration
####################
# White IP list of Sync client.
# Please use the form of network segment to present the range of IP, for example: 192.168.0.0/16
# If there are more than one IP segment, please separate them by commas
# The default is to allow all IP to sync
# Datatype: String
# ip_white_list=0.0.0.0/0
####################
### PIPE Sender Configuration
####################
# The maximum number of retry when syncing a file to receiver fails.
# max_number_of_sync_file_retry=5
####################
### performance statistic configuration
####################
# Uncomment following fields to configure the tracing root directory.
# For Window platform, the index is as follows:
# tracing_dir=data\\tracing
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# tracing_dir=data/tracing
####################
### Configurations for watermark module
####################
# Datatype: boolean
# watermark_module_opened=false
# Datatype: String
# watermark_secret_key=IoTDB*2019@Beijing
# Datatype: String
# watermark_bit_string=100101110100
# Datatype: String
# watermark_method=GroupBasedLSBMethod(embed_row_cycle=2,embed_lsb_num=5)
####################
### Configurations for creating schema automatically
####################
# Whether creating schema automatically is enabled
# Datatype: boolean
# enable_auto_create_schema=true
# Storage group level when creating schema automatically is enabled
# e.g. root.sg0.d1.s2
# we will set root.sg0 as the storage group if storage group level is 1
# Datatype: int
# default_storage_group_level=1
# ALL data types: BOOLEAN, INT32, INT64, FLOAT, DOUBLE, TEXT
# register time series as which type when receiving boolean string "true" or "false"
# Datatype: TSDataType
# boolean_string_infer_type=BOOLEAN
# register time series as which type when receiving an integer string "67"
# Datatype: TSDataType
# integer_string_infer_type=FLOAT
# register time series as which type when receiving an integer string and using float may lose precision
# num > 2 ^ 24
# Datatype: TSDataType
# long_string_infer_type=DOUBLE
# register time series as which type when receiving a floating number string "6.7"
# Datatype: TSDataType
# floating_string_infer_type=FLOAT
# register time series as which type when receiving the Literal NaN. Values can be DOUBLE, FLOAT or TEXT
# Datatype: TSDataType
# nan_string_infer_type=DOUBLE
# BOOLEAN encoding when creating schema automatically is enabled
# Datatype: TSEncoding
# default_boolean_encoding=RLE
# INT32 encoding when creating schema automatically is enabled
# Datatype: TSEncoding
# default_int32_encoding=RLE
# INT64 encoding when creating schema automatically is enabled
# Datatype: TSEncoding
# default_int64_encoding=RLE
# FLOAT encoding when creating schema automatically is enabled
# Datatype: TSEncoding
# default_float_encoding=GORILLA
# DOUBLE encoding when creating schema automatically is enabled
# Datatype: TSEncoding
# default_double_encoding=GORILLA
# TEXT encoding when creating schema automatically is enabled
# Datatype: TSEncoding
# default_text_encoding=PLAIN
####################
### Configurations for tsfile-format
####################
# Datatype: int
# group_size_in_byte=134217728
# The memory size for each series writer to pack page, default value is 64KB
# Datatype: int
# page_size_in_byte=65536
# The maximum number of data points in a page, default 1024*1024
# Datatype: int
# max_number_of_points_in_page=1048576
# Max size limitation of input string
# Datatype: int
# max_string_length=128
# Floating-point precision
# Datatype: int
# float_precision=2
# Encoder configuration
# Encoder of time series, supports TS_2DIFF, PLAIN and RLE(run-length encoding), REGULAR and default value is TS_2DIFF
# time_encoder=TS_2DIFF
# Encoder of value series. default value is PLAIN.
# For int, long data type, also supports TS_2DIFF and RLE(run-length encoding), GORILLA and ZIGZAG.
# value_encoder=PLAIN
# Compression configuration
# Data compression method, supports UNCOMPRESSED, SNAPPY or LZ4. Default value is SNAPPY
# compressor=SNAPPY
# Maximum degree of a metadataIndex node, default value is 256
# Datatype: int
# max_degree_of_index_node=256
# time interval in minute for calculating query frequency
# Datatype: int
# frequency_interval_in_minute=1
# time cost(ms) threshold for slow query
# Datatype: long
# slow_query_threshold=5000
# Signal-noise-ratio (SNR) of FREQ encoding
# Datatype: double
# freq_snr=40.0
# Block size of FREQ encoding
# Datatype: integer
# freq_block_size=1024
####################
### MQTT Broker Configuration
####################
# whether to enable the mqtt service.
# Datatype: boolean
# enable_mqtt_service=false
# the mqtt service binding host.
# Datatype: String
# mqtt_host=0.0.0.0
# the mqtt service binding port.
# Datatype: int
# mqtt_port=1883
# the handler pool size for handing the mqtt messages.
# Datatype: int
# mqtt_handler_pool_size=1
# the mqtt message payload formatter.
# Datatype: String
# mqtt_payload_formatter=json
# max length of mqtt message in byte
# Datatype: int
# mqtt_max_message_size=1048576
####################
### Authorization Configuration
####################
# which class to serve for authorization. By default, it is LocalFileAuthorizer.
# Another choice is org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer
# authorizer_provider_class=org.apache.iotdb.commons.auth.authorizer.LocalFileAuthorizer
# If OpenIdAuthorizer is enabled, then openID_url must be set.
# openID_url=
# admin username, default is root
# Datatype: string
# admin_name=root
# encryption provider class
# iotdb_server_encrypt_decrypt_provider=org.apache.iotdb.commons.security.encrypt.MessageDigestEncrypt
# encryption provided class parameter
# iotdb_server_encrypt_decrypt_provider_parameter=
# admin password, default is root
# Datatype: string
# admin_password=root
# Cache size of user and role
# Datatype: int
# author_cache_size=1000
# Cache expire time of user and role
# Datatype: int
# author_cache_expire_time=30
####################
### UDF Configuration
####################
# Used to estimate the memory usage of text fields in a UDF query.
# It is recommended to set this value to be slightly larger than the average length of all text
# records.
# Datatype: int
# udf_initial_byte_array_length_for_memory_control=48
# How much memory may be used in ONE UDF query (in MB).
# The upper limit is 20% of allocated memory for read.
# Datatype: float
# udf_memory_budget_in_mb=30.0
# UDF memory allocation ratio.
# The parameter form is a:b:c, where a, b, and c are integers.
# udf_reader_transformer_collector_memory_proportion=1:1:1
# Uncomment the following field to configure the udf root directory.
# For Window platform
# If its prefix is a drive specifier followed by "\\", or if its prefix is "\\\\", then the path is
# absolute. Otherwise, it is relative.
# udf_root_dir=ext\\udf
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# udf_root_dir=ext/udf
####################
### Trigger Configuration
####################
# The size of log buffer for every trigger management operation plan. If the size of a trigger
# management operation plan is larger than this parameter, the trigger management operation plan
# will be rejected by TriggerManager.
# Datatype: int
# tlog_buffer_size=1048576
# Uncomment the following field to configure the trigger root directory.
# For Window platform
# If its prefix is a drive specifier followed by "\\", or if its prefix is "\\\\", then the path is
# absolute. Otherwise, it is relative.
# trigger_root_dir=ext\\trigger
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# trigger_root_dir=ext/trigger
# How many threads can be used for evaluating sliding windows. When <= 0, use CPU core number.
# Datatype: int
# concurrent_window_evaluation_thread=0
# Max number of window evaluation tasks that can be pending for execution. When <= 0, the value is
# 64 by default.
# Datatype: int
# max_pending_window_evaluation_tasks=64
####################
### Continuous Query Configuration
####################
# How many thread will be set up to perform continuous queries. When <= 0, use max(1, CPU core number / 2).
# Datatype: int
# continuous_query_execution_thread=2
# Maximum number of continuous query tasks that can be pending for execution. When <= 0, the value is
# 64 by default.
# Datatype: int
# max_pending_continuous_query_tasks=64
# Minimum every interval to perform continuous query.
# The every interval of continuous query instances should not be lower than this limit.
# Datatype: duration
# continuous_query_min_every_interval=1s
# The size of log buffer for every CQ management operation plan. If the size of a CQ
# management operation plan is larger than this parameter, the CQ management operation plan
# will be rejected by CQManager.
# Datatype: int
# cqlog_buffer_size=1048576
####################
### Select-Into Configuration
####################
# The maximum number of rows can be processed in insert-tablet-plan when executing select-into statements.
# When <= 0, use 10000.
# Datatype: int
# select_into_insert_tablet_plan_row_limit=10000
####################
### Insert-Tablets Configuration
####################
# When the insert plan column count reaches the specified threshold, which means that the plan is relatively large. At this time, may be enabled multithreading.
# If the tablet is small, the time of each insertion is short.
# If we enable multithreading, we also need to consider the switching loss between threads,
# so we need to judge the size of the tablet.
# Datatype: int
# insert_multi_tablet_enable_multithreading_column_threshold=10
####################
### Index Configuration
####################
# Uncomment following fields to configure the index root directory.
# For Window platform, the index is as follows:
# index_root_dir=data\\index
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# index_root_dir=data/index
# Is index enable
# Datatype: boolean
# enable_index=false
# How many threads can concurrently build index. When <= 0, use CPU core number.
# Datatype: int
# concurrent_index_build_thread=0
# the default size of sliding window used for the subsequence matching in index framework
# Datatype: int
# default_index_window_range=10
# buffer parameter for index processor.
# Datatype: long
# index_buffer_size=134217728
# whether enable data partition. If disabled, all data belongs to partition 0
# Datatype: boolean
# enable_partition=false
# time range for partitioning data inside each storage group, the unit is second
# Datatype: long
# partition_interval=86400
# time range for partitioning data inside each data region, the unit is millisecond
# Datatype: long
# time_partition_interval_for_storage=86400000
####################
### Influx DB RPC Service Configuration
####################
# Datatype: boolean
# enable_influxdb_rpc_service=false
# Datatype: int
# influxdb_rpc_port=8086
####################
### Group By Fill Configuration
####################
# Datatype: float
# group_by_fill_cache_size_in_mb=1.0
####################
### Schema Engine Configuration
####################
# Choose the mode of schema engine. The value could be Memory,Schema_File and Rocksdb_based. If the provided value doesn't match any pre-defined value, Memory mode will be used as default.
# Datatype: string
# schema_engine_mode=Memory
# cache size for SchemaRegion.
# This cache is used to improve insert speed where all path check and TSDataType will be cached in SchemaRegion with corresponding Path.
# Datatype: int
# schema_region_device_node_cache_size=10000
# thread pool size for read operation in DataNode's coordinator.
# Datatype: int
# coordinator_read_executor_size=20
# thread pool size for write operation in DataNode's coordinator.
# Datatype: int
# coordinator_write_executor_size=50
# cache size for partition.
# This cache is used to improve partition fetch from config node.
# Datatype: int
# partition_cache_size=1000
####################
### Schema File Configuration
####################
# The minimum size (in bytes) allocated for a node in schema file
# A large number for this will make it faster while occupying more space, or otherwise
# The default 0 means if a flushed internal(entity) had less than 20 children, it will get a segment with the size calculated from total size of its children
# If no child, it would get a segment of 25 bytes, which is the size of segment header
# Datatype: short
# minimum_schema_file_segment_in_bytes=0
# The cache size for schema page in one schema file
# A bigger cache makes it faster but costs more space and more volatile when evicts item from cache
# Datatype: int
# page_cache_in_schema_file=1024
####################
### Trigger Forward
####################
# Number of queues per forwarding trigger
trigger_forward_max_queue_number=8
# The length of one of the queues per forwarding trigger
trigger_forward_max_size_per_queue=2000
# Trigger forwarding data size per batch
trigger_forward_batch_size=50
# Trigger HTTP forward pool size
trigger_forward_http_pool_size=200
# Trigger HTTP forward pool max connection for per route
trigger_forward_http_pool_max_per_route=20
# Trigger MQTT forward pool size
trigger_forward_mqtt_pool_size=4
#######################
### LocalConfigNode ###
#######################
# number of data regions per user-defined storage group
# a data region is the unit of parallelism in memory as all ingestions in one data region are serialized
# recommended value is [data region number] = [CPU core number] / [user-defined storage group number]
# Datatype: int
# data_region_num=1
####################
### External Lib Configuration
####################
# external lib directory for properties loader
# For Window platform
# If its prefix is a drive specifier followed by "\\", or if its prefix is "\\\\", then the path is
# absolute. Otherwise, it is relative.
# external_properties_loader_dir=ext\\loader
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# external_properties_loader_dir=ext/loader
# external lib directory for limiter
# For Window platform
# If its prefix is a drive specifier followed by "\\", or if its prefix is "\\\\", then the path is
# absolute. Otherwise, it is relative.
# external_limiter_dir=ext\\limiter
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# external_limiter_dir=ext/limiter