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

####################
### Config Node RPC Configuration
####################

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

# Used for RPC communication inside cluster.
# Datatype: int
cn_internal_port=10710

# Used for consensus communication among ConfigNodes inside cluster.
# Datatype: int
cn_consensus_port=10720

####################
### Target Config Nodes
####################

# For the first ConfigNode to start, cn_target_config_node_list points to its own cn_internal_address:cn_internal_port.
# For other ConfigNodes that to join the cluster, cn_target_config_node_list points to any running ConfigNode's cn_internal_address:cn_internal_port.
# Note: Currently only endpoints that point to a single confignode are supported
# Format: address:port   e.g. 127.0.0.1:10710
# Datatype: String
cn_target_config_node_list=127.0.0.1:10710

####################
### Directory configuration
####################

# system dir
# If this property is unset, system will save the data in the default relative path directory under the confignode folder(i.e., %CONFIGNODE_HOME%/data/confignode/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 confignode 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.
# cn_system_dir=data\\confignode\\system
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# cn_system_dir=data/confignode/system

# consensus dir
# If this property is unset, system will save the data in the default relative path directory under the confignode folder(i.e., %CONFIGNODE_HOME%/data/confignode/consensus).
# 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 confignode folder.
# Note: If data_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.
# cn_consensus_dir=data\\confignode\\consensus
# For Linux platform
# If its prefix is "/", then the path is absolute. Otherwise, it is relative.
# cn_consensus_dir=data/confignode/consensus

####################
### thrift rpc configuration
####################

# this feature is under development, set this as false before it is done.
# Datatype: boolean
# cn_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.
# cn_rpc_advanced_compression_enable=false

# Datatype: int
# cn_rpc_max_concurrent_client_num=65535

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

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

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

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

# The maximum number of clients that can be idle for a node in a clientManager.
# When the number of idle clients on a node exceeds this number, newly returned clients will be released
# Datatype: int
# cn_core_client_count_for_each_node_in_client_manager=200

# 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
# cn_max_client_count_for_each_node_in_client_manager=300

####################
### 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
# cn_metric_reporter_list=

# The type of metric framework which manage metrics
# Options: [MICROMETER, DROPWIZARD]
# Datatype: String
# cn_metric_frame_type=MICROMETER

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

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

# The port of prometheus reporter of metric module
# Datatype: int
# cn_metric_prometheus_reporter_port=9091