Raftstore Config

Learn how to configure Raftstore in TiKV.

We are currently refactoring our documentation. Please excuse any problems you may find and report them here.

This document describes the configuration parameters related to Raftstore.

sync-log

  • Enables or disables synchronous write mode. In the synchronous write mode, each commit is forced to be flushed to raft-log synchronously for persistent storage.
  • Default value: true
Setting this value to false might lead to data loss. It is strongly recommended that you do not modify this configuration.

prevote

  • Enables or disables prevote. Enabling this feature helps reduce jitter on the system after recovery from network partition.
  • Default value: true

raftdb-path

  • The path to the Raft library, which is storage.data-dir/raft by default
  • Default value: "”

raft-base-tick-interval

  • The time interval at which the Raft state machine ticks
  • Default value: 1s
  • Minimum value: greater than 0

raft-heartbeat-ticks

  • The number of passed ticks when the heartbeat is sent. This means that a heartbeat is sent at the time interval of raft-base-tick-interval * raft-heartbeat-ticks.
  • Default value: 2
  • Minimum value: greater than 0

raft-election-timeout-ticks

  • The number of passed ticks when Raft election is initiated. This means that if Raft group is missing the leader, a leader election is initiated approximately after the time interval of raft-base-tick-interval * raft-election-timeout-ticks.
  • Default value: 10
  • Minimum value: raft-heartbeat-ticks

raft-min-election-timeout-ticks

  • The minimum number of ticks during which the Raft election is initiated. If the number is 0, the value of raft-election-timeout-ticks is used. The value of this parameter must be greater than or equal to raft-election-timeout-ticks.
  • Default value: 0
  • Minimum value: 0

raft-max-election-timeout-ticks

  • The maximum number of ticks during which the Raft election is initiated. If the number is 0, the value of raft-election-timeout-ticks * 2 is used.
  • Default value: 0
  • Minimum value: 0

raft-max-size-per-message

  • The soft limit on the size of a single message packet
  • Default value: 1MB
  • Minimum value: 0
  • Unit: MB

raft-max-inflight-msgs

  • The number of Raft logs to be confirmed. If this number is exceeded, log sending slows down.
  • Default value: 256
  • Minimum value: greater than 0

raft-entry-max-size

  • The hard limit on the maximum size of a single log
  • Default value: 8MB
  • Minimum value: 0
  • Unit: MB|GB

raft-log-gc-tick-interval

  • The time interval at which the polling task of deleting Raft logs is scheduled. 0 means that this feature is disabled.
  • Default value: 10s
  • Minimum value: 0

raft-log-gc-threshold

  • The soft limit on the maximum allowable count of residual Raft logs
  • Default value: 50
  • Minimum value: 1

raft-log-gc-count-limit

  • The hard limit on the allowable number of residual Raft logs
  • Default value: the log number that can be accommodated in the 3/4 Region size (calculated as 1MB for each log)
  • Minimum value: 0

raft-log-gc-size-limit

  • The hard limit on the allowable size of residual Raft logs
  • Default value: 3/4 of the Region size
  • Minimum value: greater than 0

raft-entry-cache-life-time

  • The maximum remaining time allowed for the log cache in memory.
  • Default value: 30s
  • Minimum value: 0

raft-reject-transfer-leader-duration

  • The protection time for new nodes, which is used to control the shortest interval to migrate a leader to the newly added node. Setting this value too small might cause the failure of leader transfer.
  • Default value: 3s
  • Minimum value: 0

raftstore.hibernate-regions (Experimental)

  • Enables or disables Hibernate Region. When this option is enabled, a Region idle for a long time is automatically set as hibernated. This reduces the extra overhead caused by heartbeat messages between the Raft leader and the followers for idle Regions. You can use raftstore.peer-stale-state-check-interval to modify the heartbeat interval between the leader and the followers of hibernated Regions.
  • Default value: false

raftstore.peer-stale-state-check-interval

  • Modifies the state check interval for Regions.
  • Default value: 5 min

split-region-check-tick-interval

  • Specifies the interval at which to check whether the Region split is needed. 0 means that this feature is disabled.
  • Default value: 10s
  • Minimum value: 0

region-split-check-diff

  • The maximum value by which the Region data is allowed to exceed before Region split
  • Default value: 1/16 of the Region size.
  • Minimum value: 0

region-compact-check-interval

  • The time interval at which to check whether it is necessary to manually trigger RocksDB compaction. 0 means that this feature is disabled.
  • Default value: 5m
  • Minimum value: 0

clean-stale-peer-delay

  • Delays the time in deleting expired replica data
  • Default value: 10m
  • Minimum value: 0

region-compact-check-step

  • The number of Regions checked at one time for each round of manual compaction
  • Default value: 100
  • Minimum value: 0

region-compact-min-tombstones

  • The number of tombstones required to trigger RocksDB compaction
  • Default value: 10000
  • Minimum value: 0

region-compact-tombstones-percent

  • The proportion of tombstone required to trigger RocksDB compaction
  • Default value: 30
  • Minimum value: 1
  • Maximum value: 100

pd-heartbeat-tick-interval

  • The time interval at which a Region’s heartbeat to PD is triggered. 0 means that this feature is disabled.
  • Default value: 1m
  • Minimum value: 0

pd-store-heartbeat-tick-interval

  • The time interval at which a store’s heartbeat to PD is triggered. 0 means that this feature is disabled.
  • Default value: 10s
  • Minimum value: 0

snap-mgr-gc-tick-interval

  • The time interval at which the recycle of expired snapshot files is triggered. 0 means that this feature is disabled.
  • Default value: 5s
  • Minimum value: 0

snap-gc-timeout

  • The longest time for which a snapshot file is saved
  • Default value: 4h
  • Minimum value: 0

lock-cf-compact-interval

  • The time interval at which TiKV triggers a manual compaction for the Lock Column Family
  • Default value: 256MB
  • Default value: 10m
  • Minimum value: 0

lock-cf-compact-bytes-threshold

  • The size out of which TiKV triggers a manual compaction for the Lock Column Family
  • Default value: 256MB
  • Minimum value: 0
  • Unit: MB

notify-capacity

  • The longest length of the Region message queue.
  • Default value: 40960
  • Minimum value: 0

messages-per-tick

  • The maximum number of messages processed per batch
  • Default value: 4096
  • Minimum value: 0

max-peer-down-duration

  • The longest inactive duration allowed for a peer. A peer with timeout is marked as down, and PD tries to delete it later.
  • Default value: 5m
  • Minimum value: 0

max-leader-missing-duration

  • The longest duration allowed for a peer to be in the state where a Raft group is missing the leader. If this value is exceeded, the peer verifies with PD whether the peer has been deleted.
  • Default value: 2h
  • Minimum value: greater than abnormal-leader-missing-duration

abnormal-leader-missing-duration

  • The longest duration allowed for a peer to be in the state where a Raft group is missing the leader. If this value is exceeded, the peer is seen as abnormal and marked in metrics and logs.
  • Default value: 10m
  • Minimum value: greater than peer-stale-state-check-interval

peer-stale-state-check-interval

  • The time interval to trigger the check for whether a peer is in the state where a Raft group is missing the leader.
  • Default value: 5m
  • Minimum value: greater than 2 * election-timeout

leader-transfer-max-log-lag

  • The maximum number of missing logs allowed for the transferee during a Raft leader transfer
  • Default value: 10
  • Minimum value: 10

snap-apply-batch-size

  • The memory cache size required when the imported snapshot file is written into the disk
  • Default value: 10MB
  • Minimum value: 0
  • Unit: MB

consistency-check-interval

  • The time interval at which the consistency check is triggered. 0 means that this feature is disabled.
  • Default value: 0s
  • Minimum value: 0

raft-store-max-leader-lease

  • The longest trusted period of a Raft leader
  • Default value: 9s
  • Minimum value: 0

allow-remove-leader

  • Determines whether to allow deleting the main switch
  • Default value: false

merge-max-log-gap

  • The maximum number of missing logs allowed when merge is performed
  • Default value: 10
  • Minimum value: greater than raft-log-gc-count-limit

merge-check-tick-interval

  • The time interval at which TiKV checks whether a Region needs merge
  • Default value: 10s
  • Minimum value: greater than 0

use-delete-range

  • Determines whether to delete data from the rocksdb delete_range interface
  • Default value: false

cleanup-import-sst-interval

  • The time interval at which the expired SST file is checked. 0 means that this feature is disabled.
  • Default value: 10m
  • Minimum value: 0

local-read-batch-size

  • The maximum number of read requests processed in one batch
  • Default value: 1024
  • Minimum value: greater than 0

apply-max-batch-size

  • The maximum number of requests for data flushing in one batch
  • Default value: 1024
  • Minimum value: greater than 0

apply-pool-size

  • The allowable number of threads in the pool that flushes data to storage
  • Default value: 2
  • Minimum value: greater than 0

store-max-batch-size

  • The maximum number of requests processed in one batch
  • Default value: 1024
  • Minimum value: greater than 0

store-pool-size

  • The allowable number of threads that process Raft
  • Default value: 2
  • Minimum value: greater than 0

future-poll-size

  • The allowable number of threads that drive future
  • Default value: 1
  • Minimum value: greater than 0