#
# 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.
#

####################
### Data Node RPC Configuration
####################

# Used for connection of IoTDB native clients(Session)
# Could set 127.0.0.1(for local test) or ipv4 address
# Datatype: String
dn_rpc_address=0.0.0.0

# Used for connection of IoTDB native clients(Session)
# Bind with dn_rpc_address
# Datatype: int
dn_rpc_port=6667

# Used for communication inside cluster.
# could set 127.0.0.1(for local test) or ipv4 address.
# Datatype: String
dn_internal_address=127.0.0.1

# Used for communication inside cluster.
# Bind with dn_internal_address
# Datatype: int
dn_internal_port=10730

# Port for data exchange among DataNodes inside cluster
# Bind with dn_internal_address
# Datatype: int
dn_mpp_data_exchange_port=10740

# port for consensus's communication for schema region inside cluster.
# Bind with dn_internal_address
# Datatype: int
dn_schema_region_consensus_port=10750

# port for consensus's communication for data region inside cluster.
# Bind with dn_internal_address
# Datatype: int
dn_data_region_consensus_port=10760

# Datatype: long
# The time of data node waiting for the next retry to join into the cluster.
# dn_join_cluster_retry_interval_ms=5000

####################
### SSL Configuration
####################

# Does dn_rpc_port enable SSL
# enable_thrift_ssl=false

# Rest Service enabled SSL
# enable_https=false

# SSL key store path
# linux e.g. /home/iotdb/server.keystore (absolute path) or server.keystore (relative path)
# windows e.g. C:\\iotdb\\server.keystore (absolute path) or server.keystore (relative path)
# key_store_path=

# SSL key store password
# key_store_pwd=

####################
### Seed ConfigNode
####################

# dn_seed_config_node points to any running ConfigNode's cn_internal_address:cn_internal_port.
# Note: After this DataNode successfully joins the cluster for the first time, this parameter is no longer used.
# Each node automatically maintains the list of ConfigNodes and traverses connections when restarting.
# Format: address:port   e.g. 127.0.0.1:10710
# Datatype: String
dn_seed_config_node=127.0.0.1:10710

####################
### Connection Configuration
####################

# 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
# dn_session_timeout_threshold=0

# Datatype: boolean
# dn_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.
# dn_rpc_advanced_compression_enable=false

# Datatype: int
# dn_rpc_selector_thread_count=1

# Datatype: int
# dn_rpc_min_concurrent_client_num=1

# Datatype: int
# dn_rpc_max_concurrent_client_num=65535

# thrift max frame size, 512MB by default
# Datatype: int
# dn_thrift_max_frame_size=536870912

# thrift init buffer size
# Datatype: int
# dn_thrift_init_buffer_size=1024

# Thrift socket and connection timeout between raft nodes, in milliseconds.
# Datatype: int
# dn_connection_timeout_ms=60000

# selector thread (TAsyncClientManager) nums for async thread in a clientManager
# Datatype: int
# dn_selector_thread_count_of_client_manager=1

# The maximum number of clients that can be allocated for a node in a clientManager.
# When the number of the client to a single node exceeds this number, the thread for applying for a client will be blocked
# for a while, then ClientManager will throw ClientManagerException if there are no clients after the block time.
# Datatype: int
# dn_max_client_count_for_each_node_in_client_manager=300

####################
### 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/datanode/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.
# dn_system_dir=data\\datanode\\system
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# dn_system_dir=data/datanode/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/datanode/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.
# dn_data_dirs=data\\datanode\\data
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# dn_data_dirs=data/datanode/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.
# Set SequenceStrategy or MaxDiskUsableSpaceFirstStrategy to apply the corresponding strategy.
# If this property is unset, system will use SequenceStrategy as default strategy.
# For this property, fully-qualified class name (include package name) and simple class name are both acceptable.
# dn_multi_dir_strategy=SequenceStrategy

# 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/datanode).
# 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.
# dn_consensus_dir=data\\datanode\\consensus
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# dn_consensus_dir=data/datanode/consensus

# 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/datanode).
# 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.
# dn_wal_dirs=data\\datanode\\wal
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# dn_wal_dirs=data/datanode/wal

# tracing dir
# Uncomment following fields to configure the tracing root directory.
# For Windows platform, the index is as follows:
# dn_tracing_dir=datanode\\tracing
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# dn_tracing_dir=datanode/tracing

# sync 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/datanode).
# 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 sync_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.
# dn_sync_dir=data\\datanode\\sync
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# dn_sync_dir=data/datanode/sync

# sort_tmp_dir
# This property is used to configure the temporary directory for sorting operation.
# 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/datanode).
# 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 sort_tmp_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.
# sort_tmp_dir=data\\datanode\\tmp
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# sort_tmp_dir=data/datanode/tmp

# pipe_receiver_file_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%/${dn_system_dir}/pipe/receiver).
# 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 pipe_receiver_file_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.
# pipe_receiver_file_dirs=data\\datanode\\system\\pipe\\receiver
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# pipe_receiver_file_dirs=data/datanode/system/pipe/receiver

####################
### Metric Configuration
####################

# The reporters of metric module to report metrics
# If there are more than one reporter, please separate them by commas ",".
# Options: [JMX, PROMETHEUS]
# Datatype: String
# dn_metric_reporter_list=

# The level of metric module
# Options: [OFF, CORE, IMPORTANT, NORMAL, ALL]
# Datatype: String
# dn_metric_level=CORE

# The period of async collection of some metrics in second
# Datatype: int
# dn_metric_async_collect_period=5

# The port of prometheus reporter of metric module
# Datatype: int
dn_metric_prometheus_reporter_port=9092

# The type of internal reporter in metric module, used for checking flushed point number
# Options: [MEMORY, IOTDB]
# Datatype: String
# dn_metric_internal_reporter_type=MEMORY

####################
### REST Service Configuration
####################

# Is the REST service enabled
# enable_rest_service=false

# the binding port of the REST service
# rest_service_port=18080

# Whether to display rest service interface information through swagger. eg: http://ip:port/swagger.json
# enable_swagger=false

# the default row limit to a REST query response when the rowSize parameter is not given in request
# rest_query_default_row_size_limit=10000

# the expiration time of the user login information cache (in seconds)
# cache_expire_in_seconds=28800

# maximum number of users can be stored in the user login cache.
# cache_max_num=100

# init capacity of users can be stored in the user login cache.
# cache_init_num=10

# Is client authentication required
# client_auth=false

# SSL trust store path
# trust_store_path=""

# SSL trust store password.
# trust_store_pwd=""

# SSL timeout (in seconds)
# idle_timeout_in_seconds=50000
