TiKVコンフィグレーションファイル

TiKV設定ファイルは、コマンドラインパラメータよりも多くのオプションをサポートしています。デフォルトの設定ファイルはetc/config-template.tomlにあり、名前をconfig.tomlに変更することができます。

このドキュメントでは、コマンドラインパラメータに含まれないパラメータについてのみ説明します。詳細については、 コマンドラインパラメータ参照してください。

ヒント:

構成項目の値を調整する必要がある場合は、 設定を変更するを参照してください。

グローバル構成

abort-on-panic

  • TiKVパニック時にプロセスを終了するためにabort()呼び出すかどうかを設定します。このオプションは、TiKVがシステムにコアダンプファイルの生成を許可するかどうかに影響します。

    • この設定項目の値がfalseの場合、TiKV がパニックになると、 exit()呼び出してプロセスを終了します。
    • この設定項目の値がtrueの場合、TiKV パニックが発生すると、TiKV はabort()呼び出してプロセスを終了します。このとき、TiKV は終了時にシステムがコア ダンプ ファイルを生成することを許可します。コア ダンプ ファイルを生成するには、コア ダンプに関連するシステム設定も実行する必要があります (たとえば、 ulimit -cコマンドでコア ダンプ ファイルのサイズ制限を設定し、コア ダンプのパスを設定します。オペレーティング システムによって関連する設定は異なります)。コア ダンプ ファイルがディスク領域を過剰に占有し、TiKV ディスク領域が不足するのを避けるため、コア ダンプの生成パスを TiKV データとは異なるディスク パーティションに設定することをお勧めします。
  • デフォルト値: false

slow-log-file

  • スローログを保存するファイル
  • この設定項目が設定されておらず、 log.file.filename設定されている場合、スローログはlog.file.filenameで指定されたログファイルに出力されます。
  • slow-log-filelog.file.filename設定されていない場合は、すべてのログがデフォルトで「stderr」に出力されます。
  • 両方の設定項目が設定されている場合、通常ログはlog.file.filenameで指定したログファイルに出力され、スローログはslow-log-fileで設定したログファイルに出力されます。
  • デフォルト値: ""

slow-log-threshold

  • スローログを出力する閾値。処理時間がこの閾値よりも長い場合、スローログが出力されます。
  • デフォルト値: "1s"

memory-usage-limit

  • TiKVインスタンスのメモリ使用量の制限。TiKVのメモリ使用量がこのしきい値に近づくと、内部キャッシュが削除され、メモリが解放されます。

  • ほとんどの場合、TiKVインスタンスは利用可能なシステムメモリ全体の75%を使用するように設定されているため、この設定項目を明示的に指定する必要はありません。残りの25%のメモリはOSのページキャッシュ用に予約されています。詳細はstorage.block-cache.capacityご覧ください。

  • 単一の物理マシンに複数のTiKVノードをデプロイする場合でも、この設定項目を設定する必要はありません。この場合、TiKVインスタンスはメモリを5/3 * block-cache.capacity使用します。

  • さまざまなシステムメモリ容量の既定値は次のとおりです。

    • システム=8G ブロックキャッシュ=3.6G メモリ使用量制限=6G ページキャッシュ=2G
    • システム=16G ブロックキャッシュ=7.2G メモリ使用量制限=12G ページキャッシュ=4G
    • システム=32G ブロックキャッシュ=14.4G メモリ使用量制限=24G ページキャッシュ=8G

ログv5.4.0 の新機能

  • ログに関するコンフィグレーション項目。

  • バージョン5.4.0以降、TiKVとTiDBのログ設定項目の整合性log-file保つため、TiKVは以前の設定項目log-rotation-timespan廃止し、 log-level log-format以下の設定項目に変更log-rotation-sizeました。古い設定項目のみを設定し、その値をデフォルト以外の値に設定した場合、古い設定項目と新しい設定項目の互換性は維持されます。古い設定項目と新しい設定項目の両方を設定した場合、新しい設定項目が有効になります。

level v5.4.0 の新機能

  • ログレベル
  • "warn" "fatal" "error" "debug" "info"
  • デフォルト値: "info"

format v5.4.0 の新機能

  • ログ形式
  • オプション"text" : "json"
  • デフォルト値: "text"

enable-timestamp v5.4.0 の新機能

  • ログ内のタイムスタンプを有効にするか無効にするかを決定します
  • オプションfalse : true
  • デフォルト値: true

log.file v5.4.0 の新機能

  • ログ ファイルに関連するコンフィグレーション項目。

filename v5.4.0 の新機能

  • ログファイル。この設定項目が設定されていない場合、ログはデフォルトで「stderr」に出力されます。この設定項目が設定されている場合、ログは対応するファイルに出力されます。
  • デフォルト値: ""

max-sizeバージョン5.4.0の新機能

  • ログファイルの最大サイズ。ファイルサイズがこの設定項目で設定された値より大きい場合、システムは自動的に単一のファイルを複数のファイルに分割します。
  • デフォルト値: 300
  • 最大値: 4096
  • 単位: MiB

max-days v5.4.0 の新機能

  • TiKV がログ ファイルを保持する最大日数。
    • 構成項目が設定されていない場合、またはその値がデフォルト値0に設定されている場合、TiKV はログ ファイルを消去しません。
    • パラメータが0以外の値に設定されている場合、TiKV はmax-days後に期限切れのログ ファイルをクリーンアップします。
  • デフォルト値: 0

max-backupsバージョン5.4.0の新機能

  • TiKV が保持するログ ファイルの最大数。
    • 構成項目が設定されていない場合、またはその値がデフォルト値0に設定されている場合、TiKV はすべてのログ ファイルを保持します。
    • 設定項目が0以外の値に設定されている場合、TiKVは最大でmax-backupsで指定された数の古いログファイルを保持します。たとえば、値が7に設定されている場合、TiKVは最大で 7 つの古いログファイルを保持します。
  • デフォルト値: 0

サーバー

  • サーバーに関連するコンフィグレーション項目。

addr

  • リスニングIPアドレスとリスニングポート
  • デフォルト値: "127.0.0.1:20160"

advertise-addr

  • クライアント通信のリスニングアドレスをアドバタイズする
  • この構成項目が設定されていない場合は、値addrが使用されます。
  • デフォルト値: ""

status-addr

  • 構成項目は、 HTTPアドレスを通じてTiKVステータスを直接報告します。

  • ステータス アドレスを無効にするには、値を""に設定します。

  • デフォルト値: "127.0.0.1:20180"

status-thread-pool-size

  • HTTP API サービスのワーカースレッドの数
  • デフォルト値: 1
  • 最小値: 1

grpc-compression-type

  • gRPCメッセージの圧縮アルゴリズム
  • "deflate" "gzip" : "none"
  • デフォルト値: "none"

grpc-concurrency

grpc-concurrent-stream

  • gRPC ストリームで許可される同時リクエストの最大数
  • デフォルト値: 1024
  • 最小値: 1

grpc-memory-pool-quota

  • gRPC で使用できるメモリサイズを制限します
  • デフォルト値: 制限なし
  • OOMが発生した場合に備えてメモリを制限してください。使用量を制限すると、潜在的なストールにつながる可能性があることに注意してください。

grpc-raft-conn-num

  • Raft通信におけるTiKVノード間の最大接続数
  • デフォルト値: 1
  • 最小値: 1

max-grpc-send-msg-len

  • 送信できる gRPC メッセージの最大長を設定します
  • デフォルト値: 10485760
  • 単位: バイト
  • 最大値: 2147483647

grpc-stream-initial-window-size

  • gRPC ストリームのウィンドウサイズ
  • デフォルト値: 2MiB
  • 単位: KiB|MiB|GiB
  • 最小値: "1KiB"

grpc-keepalive-time

  • gRPCがkeepalive Pingメッセージを送信する時間間隔
  • デフォルト値: "10s"
  • 最小値: "1s"

grpc-keepalive-timeout

  • gRPC ストリームのタイムアウトを無効にします
  • デフォルト値: "3s"
  • 最小値: "1s"

concurrent-send-snap-limit

  • 同時に送信されるスナップショットの最大数
  • デフォルト値: 32
  • 最小値: 1

concurrent-recv-snap-limit

  • 同時に受信できるスナップショットの最大数
  • デフォルト値: 32
  • 最小値: 1

end-point-recursion-limit

  • TiKVがコプロセッサーDAG式をデコードするときに許可される再帰レベルの最大数
  • デフォルト値: 1000
  • 最小値: 1

end-point-request-max-handle-duration

  • タスク処理のために TiDB から TiKV へのプッシュダウン要求に許可される最長時間
  • デフォルト値: "60s"
  • 最小値: "1s"

snap-io-max-bytes-per-sec

  • スナップショット処理時の最大許容ディスク帯域幅
  • デフォルト値: "100MiB"
  • 単位: KiB|MiB|GiB
  • 最小値: "1KiB"

snap-min-ingest-size v8.1.2 の新機能

  • TiKV がスナップショットを処理するときに取り込み方式を採用するかどうかの最小しきい値を指定します。

    • スナップショットのサイズがこのしきい値を超えると、TiKVはスナップショットからSSTファイルをRocksDBにインポートする取り込み方式を採用します。この方式は、大きなファイルの場合、より高速です。
    • スナップショットのサイズがこのしきい値を超えない場合、TiKVは直接書き込み方式を採用し、各データをRocksDBに個別に書き込みます。この方式は、小さなファイルの場合により効率的です。
  • デフォルト値: "2MiB"

  • 単位: KiB|MiB|GiB

  • 最小値: 0

enable-request-batch

  • リクエストをバッチ処理するかどうかを決定します
  • デフォルト値: true

labels

  • { zone = "us-west-1", disk = "ssd" }などのサーバー属性を指定します。
  • デフォルト値: {}

background-thread-count

  • エンドポイント スレッド、 BRスレッド、分割チェック スレッド、リージョンスレッド、および遅延に影響されないタスクのその他のスレッドを含む、バックグラウンド プールの作業スレッド数。
  • デフォルト値: CPU コアの数が 16 未満の場合、デフォルト値は2です。それ以外の場合、デフォルト値は3です。

end-point-slow-log-threshold

  • TiDBのプッシュダウンリクエストがスローログを出力するまでの時間閾値。処理時間がこの閾値を超えると、スローログが出力されます。
  • デフォルト値: "1s"
  • 最小値: 0

raft-client-queue-size

  • TiKVにおけるRaftメッセージのキューサイズを指定します。時間内に送信されないメッセージが多すぎてバッファがいっぱいになったり、メッセージが破棄されたりする場合は、システムの安定性を向上させるために、より大きな値を指定できます。
  • デフォルト値: 8192

simplify-metrics v6.2.0 の新機能

  • 返される監視メトリックを簡素化するかどうかを指定します。値をtrueに設定すると、TiKV は一部のメトリックを除外することで、各リクエストに対して返されるデータの量を削減します。
  • デフォルト値: false

forward-max-connections-per-address v5.0.0 の新機能

  • サービスとサーバーへのリクエスト転送用の接続プールのサイズを設定します。値が小さすぎると、リクエストのレイテンシーと負荷分散に影響します。
  • デフォルト値: 4

読み取りプール.統合

読み取りリクエストを処理する単一スレッドプールに関するコンフィグレーション項目。このスレッドプールは、バージョン4.0以降、従来のstorageスレッドプールとコプロセッサスレッドプールに代わるものです。

min-thread-count

  • 統合読み取りプールの最小作業スレッド数
  • デフォルト値: 1

max-thread-count

  • 統合読み取りプールまたはUnifyReadPoolスレッドプールの最大作業スレッド数。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
  • 値の範囲: [min-thread-count, MAX(4, CPU quota * 10)]MAX(4, CPU quota * 10) 4CPU quota * 10うち大きい方の値を取得します。
  • デフォルト値: MAX(4, CPU * 0.8)

注記:

スレッド数を増やすとコンテキストスイッチが増加し、パフォーマンスが低下する可能性があります。この設定項目の値を変更することは推奨されません。

stack-size

  • 統合スレッドプール内のスレッドのスタックサイズ
  • タイプ: 整数 + 単位
  • デフォルト値: "10MiB"
  • 単位: KiB|MiB|GiB
  • 最小値: "2MiB"
  • 最大値: システムで実行されたulimit -sHコマンドの結果出力される Kbyte 数。

max-tasks-per-worker

  • 統合読み取りプール内の 1 つのスレッドに許可されるタスクの最大数。値を超えるとServer Is Busyが返されます。
  • デフォルト値: 2000
  • 最小値: 2

auto-adjust-pool-size v6.3.0 の新機能

  • スレッドプールサイズを自動調整するかどうかを制御します。有効にすると、現在のCPU使用率に基づいてUnifyReadPoolスレッドプールサイズが自動的に調整され、TiKVの読み取りパフォーマンスが最適化されます。スレッドプールの指定可能な範囲は[max-thread-count, MAX(4, CPU)]です。最大値はmax-thread-countと同じです。
  • デフォルト値: false

読み取りプール。storage

storageスレッド プールに関連するコンフィグレーション項目。

use-unified-pool

  • storageリクエストに統合スレッドプール( readpool.unifiedで設定)を使用するかどうかを決定します。このパラメータの値がfalse場合、このセクションの残りのパラメータ( readpool.storage )で設定された別のスレッドプールが使用されます。
  • デフォルト値: このセクション ( readpool.storage ) に他の設定がない場合、デフォルト値はtrueです。それ以外の場合は、下位互換性のため、デフォルト値はfalseです。このオプションを有効にする前に、必要に応じてreadpool.unifiedの設定を変更してください。

high-concurrency

  • 高優先度readリクエストを処理する同時スレッドの許容数
  • 8cpu num16の場合、デフォルト値はcpu_num * 0.5です。9 cpu num 8より小さい場合、デフォルト値は4です。15 16 cpu num場合、デフォルト値は8です。
  • 最小値: 1

normal-concurrency

  • 通常優先度readリクエストを処理できる同時スレッドの許容数
  • 8cpu num16の場合、デフォルト値はcpu_num * 0.5です。9 cpu num 8より小さい場合、デフォルト値は4です。15 16 cpu num場合、デフォルト値は8です。
  • 最小値: 1

low-concurrency

  • 低優先度readリクエストを処理する同時スレッドの許容数
  • 8cpu num16の場合、デフォルト値はcpu_num * 0.5です。9 cpu num 8より小さい場合、デフォルト値は4です。15 16 cpu num場合、デフォルト値は8です。
  • 最小値: 1

max-tasks-per-worker-high

  • 高優先度スレッド プール内の 1 つのスレッドに許可されるタスクの最大数。値を超えるとServer Is Busy返されます。
  • デフォルト値: 2000
  • 最小値: 2

max-tasks-per-worker-normal

  • 通常優先度のスレッド プール内の 1 つのスレッドに許可されるタスクの最大数。値を超えるとServer Is Busy返されます。
  • デフォルト値: 2000
  • 最小値: 2

max-tasks-per-worker-low

  • 低優先度スレッド プール内の 1 つのスレッドに許可されるタスクの最大数。値を超えるとServer Is Busy返されます。
  • デフォルト値: 2000
  • 最小値: 2

stack-size

  • ストレージ読み取りスレッドプール内のスレッドのスタックサイズ
  • タイプ: 整数 + 単位
  • デフォルト値: "10MiB"
  • 単位: KiB|MiB|GiB
  • 最小値: "2MiB"
  • 最大値: システムで実行されたulimit -sHコマンドの結果出力される Kbyte 数。

readpool.coprocessor

コプロセッサースレッド プールに関連するコンフィグレーション項目。

use-unified-pool

  • コプロセッサリクエストに統合スレッドプール( readpool.unifiedで設定)を使用するかどうかを決定します。このパラメータの値がfalse場合、このセクションの残りのパラメータ( readpool.coprocessor )で設定される別のスレッドプールが使用されます。
  • デフォルト値:このセクション( readpool.coprocessor )のパラメータがいずれも設定されていない場合、デフォルト値はtrueです。それ以外の場合は、下位互換性のためデフォルト値はfalseです。このパラメータを有効にする前に、 readpool.unifiedの設定項目を調整してください。

high-concurrency

  • チェックポイントなどの高優先度コプロセッサー要求を処理する同時スレッドの許容数
  • デフォルト値: CPU * 0.8
  • 最小値: 1

normal-concurrency

  • 通常優先度のコプロセッサー要求を処理する同時スレッドの許容数
  • デフォルト値: CPU * 0.8
  • 最小値: 1

low-concurrency

  • テーブルスキャンなどの低優先度コプロセッサー要求を処理する同時スレッドの許容数
  • デフォルト値: CPU * 0.8
  • 最小値: 1

max-tasks-per-worker-high

  • 高優先度スレッドプール内の1つのスレッドに許可されるタスク数。この数を超えると、 Server Is Busy返されます。
  • デフォルト値: 2000
  • 最小値: 2

max-tasks-per-worker-normal

  • 通常優先度のスレッドプール内の1つのスレッドに許可されるタスク数。この数を超えると、 Server Is Busy返されます。
  • デフォルト値: 2000
  • 最小値: 2

max-tasks-per-worker-low

  • 低優先度スレッドプール内の1つのスレッドに許可されるタスク数。この数を超えると、 Server Is Busy返されます。
  • デフォルト値: 2000
  • 最小値: 2

stack-size

  • コプロセッサースレッドプール内のスレッドのスタックサイズ
  • タイプ: 整数 + 単位
  • デフォルト値: "10MiB"
  • 単位: KiB|MiB|GiB
  • 最小値: "2MiB"
  • 最大値: システムで実行されたulimit -sHコマンドの結果出力される Kbyte 数。

storage

storageに関するコンフィグレーション項目。

data-dir

  • RocksDBディレクトリのstorageパス
  • デフォルト値: "./"

engine v6.6.0 の新機能

  • エンジンの種類を指定します。この設定は新しいクラスターを作成するときにのみ指定でき、一度指定した後は変更できません。

  • デフォルト値: "raft-kv"

  • 値のオプション:

    • "raft-kv" : TiDB v6.6.0 より前のバージョンのデフォルトのエンジン タイプ。
    • "partitioned-raft-kv" : TiDB v6.6.0 で導入された新しいstorageエンジン タイプ。

scheduler-concurrency

  • キーの同時操作を防止するメモリロック機構を内蔵。各キーには異なるスロットにハッシュが保存されています。
  • デフォルト値: 524288
  • 最小値: 1

scheduler-worker-pool-size

  • スケジューラスレッドプール内のスレッド数。スケジューラスレッドは主に、データ書き込み前のトランザクションの整合性チェックに使用されます。CPUコア数が16以上の場合、デフォルト値は8です。それ以外の場合、デフォルト値は4です。スケジューラスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
  • デフォルト値: 4
  • 値の範囲: [1, MAX(4, CPU)]MAX(4, CPU)場合、 CPU CPU コアの数を意味します。 MAX(4, CPU) 4CPUうち大きい方の値になります。

scheduler-pending-write-threshold

  • 書き込みキューの最大サイズ。この値を超えると、TiKVへの新しい書き込みに対してServer Is Busyエラーが返されます。
  • デフォルト値: "100MiB"
  • 単位: MiB|GiB

enable-async-apply-prewrite

  • 非同期コミットトランザクションが、事前書き込みリクエストを適用する前にTiKVクライアントに応答するかどうかを決定します。この設定項目を有効にすると、適用期間が長い場合のレイテンシーを簡単に短縮できます。また、適用期間が安定していない場合は遅延ジッターを削減できます。
  • デフォルト値: false

reserve-space

  • TiKVを起動すると、ディスク保護のためディスク上に一定の領域が予約されます。ディスク残量が予約領域を下回ると、TiKVは一部の書き込み操作を制限します。予約領域は2つの部分に分かれており、予約領域の80%はディスク容量不足時の操作に必要な追加ディスク領域として使用され、残りの20%は一時ファイルの保存に使用されます。領域確保のプロセスにおいて、余分なディスク領域の使用によってstorageが枯渇した場合、この一時ファイルはサービスを復旧するための最後の保護として機能します。
  • 一時ファイルの名前はspace_placeholder_fileで、ディレクトリstorage.data-dirにあります。TiKV のディスク容量が不足してオフラインになった場合、TiKV を再起動すると、一時ファイルは自動的に削除され、TiKV は空き容量の確保を試みます。
  • 残り容量が不足している場合、TiKVは一時ファイルを作成しません。保護の有効性は、確保された領域のサイズに依存します。確保された領域のサイズは、ディスク容量の5%とこの設定値のいずれか大きい方の値になります。この設定項目の値が"0MiB"の場合、TiKVはこのディスク保護機能を無効にします。
  • デフォルト値: "5GiB"
  • 単位: MiB|GiB

enable-ttl

  • TTLは「Time to live(存続時間)」の略です。この項目を有効にすると、TiKVはTTLに達したデータを自動的に削除します。TTLの値を設定するには、クライアント経由でデータを書き込む際にリクエストでTTLを指定する必要があります。TTLが指定されていない場合、TiKVは対応するデータを自動的に削除しません。
  • デフォルト値: false

ttl-check-poll-interval

  • 物理領域を再利用するためにデータをチェックする間隔。データがTTLに達した場合、TiKVはチェック中に物理領域を強制的に再利用します。
  • デフォルト値: "12h"
  • 最小値: "0s"

background-error-recovery-window v6.1.0 の新機能

  • RocksDBが回復可能なバックグラウンドエラーを検出した後、TiKVが回復するまでの最大許容時間です。バックグラウンドSSTファイルが破損している場合、RocksDBは破損したSSTファイルが属するピアを特定した後、ハートビートを介してPDに報告します。PDは、このピアを削除するためのスケジュール操作を実行します。最終的に、破損したSSTファイルは直接削除され、TiKVのバックグラウンドは再び正常に動作します。
  • 破損したSSTファイルは、リカバリが完了するまでまだ存在します。その間、RocksDBはデータの書き込みを続行できますが、破損した部分のデータを読み取るとエラーが報告されます。
  • この時間枠内にリカバリが完了しない場合、TiKV はpanicに陥ります。
  • デフォルト値: 1時間

api-version v6.1.0 の新機能

  • TiKV が RawKV ストアとして機能する場合に TiKV によって使用されるstorage形式とインターフェース バージョン。
  • 値のオプション:
    • 1 : API V1を使用し、クライアントから渡されたデータをエンコードせずにそのまま保存します。v6.1.0より前のバージョンでは、TiKVはデフォルトでAPI V1を使用します。
    • 2 : API V2 を使用します:
      • データはマルチバージョン同時実行制御 (MVCC)形式で保存され、タイムスタンプは tikv-server によって PD (TSO) から取得されます。
      • データはさまざまな使用方法に応じてスコープが設定され、API V2 は単一クラスター内での TiDB、トランザクション KV、および RawKV アプリケーションの共存をサポートします。
      • API V2を使用する場合は、同時にstorage.enable-ttl = true設定する必要があります。API V2はTTL機能をサポートしているため、 enable-ttl明示的にオンにする必要があります。そうしないと、 storage.enable-ttlデフォルトでfalseに設定されるため、競合が発生します。
      • API V2 を有効にすると、古いデータを再利用するために少なくとも 1 つの tidb-server インスタンスをデプロイする必要があります。この tidb-server インスタンスは、読み取りと書き込みのサービスを同時に提供できます。高可用性を確保するには、複数の tidb-server インスタンスをデプロイできます。
      • API V2にはクライアントのサポートが必要です。詳細については、API V2のクライアントの該当マニュアルを参照してください。
      • v6.2.0以降、RawKVの変更データキャプチャ(CDC)がサポートされました。1を参照してくださいRawKV CDC
  • デフォルト値: 1
  • API V1とAPI V2はstorage形式が異なります。TiKVにTiDBデータのみが含まれている場合のみ、API V2を直接有効化または無効化できます。それ以外の場合は、新しいクラスターをデプロイし、 RawKV バックアップと復元使用してデータを移行する必要があります。
  • API V2 を有効にした後は、TiKV クラスターを v6.1.0 より前のバージョンにダウングレードすることはできません。ダウングレードすると、データが破損する可能性があります。

txn-status-cache-capacityバージョン7.6.0の新機能

  • TiKVのトランザクションステータスキャッシュの容量を設定します。このパラメータは変更しないでください。
  • デフォルト値: 5120000

storage.block-cache

複数の RocksDBカラムファミリ (CF) 間でのブロックキャッシュの共有に関連するコンフィグレーション項目。

capacity

  • 共有ブロックキャッシュのサイズ。

  • デフォルト値:

    • storage.engine="raft-kv"場合、デフォルト値はシステムメモリの合計サイズの 45% になります。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値はシステムメモリの合計サイズの 30% になります。
  • 単位: KiB|MiB|GiB

low-pri-pool-ratio v8.0.0 の新機能

  • Titanコンポーネントが使用できるブロックキャッシュ全体の割合を制御します。
  • デフォルト値: 0.2

storage.フロー制御

TiKVのフロー制御メカニズムに関するコンフィグレーション項目。このメカニズムはRocksDBの書き込みストールメカニズムに代わるもので、スケジューラレイヤーでフローを制御することで、 RaftstoreまたはApplyスレッドのスタックによる二次災害を回避します。

enable

  • フロー制御メカニズムを有効にするかどうかを決定します。有効にすると、TiKVはKvDBの書き込みストールメカニズムとRaftDB(memtableを除く)の書き込みストールメカニズムを自動的に無効にします。
  • デフォルト値: true

memtables-threshold

  • kvDB memtableの数がこのしきい値に達すると、フロー制御メカニズムが動作を開始します。1 enable trueに設定すると、この設定項目はrocksdb.(defaultcf|writecf|lockcf).max-write-buffer-numberオーバーライドします。
  • デフォルト値: 5

l0-files-threshold

  • kvDB L0ファイルの数がこのしきい値に達すると、フロー制御メカニズムが作動を開始します。1 enable trueに設定すると、この設定項目はrocksdb.(defaultcf|writecf|lockcf).level0-slowdown-writes-triggerオーバーライドします。
  • デフォルト値: 20

soft-pending-compaction-bytes-limit

  • KvDB内の保留中の圧縮バイトがこのしきい値に達すると、フロー制御メカニズムは一部の書き込み要求を拒否し、 ServerIsBusyエラーを報告します。3 enable trueに設定すると、この設定項目はrocksdb.(defaultcf|writecf|lockcf).soft-pending-compaction-bytes-limitオーバーライドします。
  • デフォルト値: "192GiB"

hard-pending-compaction-bytes-limit

  • KvDB内の保留中の圧縮バイトがこのしきい値に達すると、フロー制御メカニズムはすべての書き込み要求を拒否し、 ServerIsBusyエラーを報告します。3 enable trueに設定されている場合、この設定項目はrocksdb.(defaultcf|writecf|lockcf).hard-pending-compaction-bytes-limitオーバーライドします。
  • デフォルト値: "1024GiB"

storage.io-レート制限

I/O レート リミッターに関連するコンフィグレーション項目。

max-bytes-per-sec

  • サーバーが1秒間にディスクに書き込む、またはディスクから読み取ることができる最大I/Oバイト数を制限します(以下のmodeの設定項目によって決定されます)。この制限に達すると、TiKVはフォアグラウンド操作よりもバックグラウンド操作のスロットリングを優先します。この設定項目の値は、ディスクの最適なI/O帯域幅(例えば、クラウドディスクベンダーが指定する最大I/O帯域幅)に設定する必要があります。この設定値が0に設定されている場合、ディスクI/O操作は制限されません。
  • デフォルト値: "0MiB"

mode

  • どのタイプのI/O操作をカウントし、しきい値max-bytes-per-sec未満に制限するかを決定します。現在、書き込み専用モードのみがサポートされています。
  • "all-io" "write-only"オプション: "read-only"
  • デフォルト値: "write-only"

日付

enable-forwarding v5.0.0 の新機能

  • ネットワーク分離の可能性がある場合に、TiKV の PD クライアントがフォロワー経由でリーダーにリクエストを転送するかどうかを制御します。
  • デフォルト値: false
  • 環境に分離されたネットワークが存在する可能性がある場合は、このパラメータを有効にすると、サービスが利用できない期間を短縮できます。
  • 分離、ネットワーク中断、またはダウンタイムが発生したかどうかを正確に判断できない場合、このメカニズムを使用すると誤判断のリスクがあり、可用性とパフォーマンスの低下につながります。ネットワーク障害が発生していない場合は、このパラメータを有効にすることは推奨されません。

endpoints

  • PD のエンドポイント。複数のエンドポイントを指定する場合は、カンマで区切る必要があります。
  • デフォルト値: ["127.0.0.1:2379"]

retry-interval

  • PD 接続を再試行する間隔。
  • デフォルト値: "300ms"

retry-log-every

  • PDクライアントがエラーを検知した際にエラー報告をスキップする頻度を指定します。例えば、値が5の場合、PDクライアントはエラーを検知した後、4回ごとにエラー報告をスキップし、5回ごとにエラーを報告します。
  • この機能を無効にするには、値を1に設定します。
  • デフォルト値: 10

retry-max-count

  • PD接続の初期化を再試行する最大回数
  • 再試行を無効にするには、値を0に設定します。再試行回数の制限を解除するには、値を-1に設定します。
  • デフォルト値: -1

ラフトストア

Raftstoreに関連するコンフィグレーション項目。

prevote

  • prevote有効または無効にします。この機能を有効にすると、ネットワーク パーティションからの回復後にシステムのジッターが軽減されます。
  • デフォルト値: true

capacity

  • storage容量。データの保存に許容される最大サイズです。1 capacity指定しない場合は、現在のディスクの容量が優先されます。同じ物理ディスクに複数のTiKVインスタンスをデプロイするには、このパラメータをTiKV設定に追加します。詳細はハイブリッド展開の主なパラメータ参照してください。
  • デフォルト値: 0
  • 単位: KiB|MiB|GiB

raftdb-path

  • Raftライブラリへのパス(デフォルトではstorage.data-dir/raft
  • デフォルト値: ""

raft-base-tick-interval

注記:

この構成項目は SQL ステートメントで照会することはできませんが、構成ファイルで構成できます。

  • Raftステートマシンが刻む時間間隔
  • デフォルト値: "1s"
  • 最小値: 0より大きい

raft-heartbeat-ticks

注記:

この構成項目は SQL ステートメントで照会することはできませんが、構成ファイルで構成できます。

  • ハートビート送信時に経過したティック数。これは、ハートビートがraft-base-tick-interval * raft-heartbeat-ticksの時間間隔で送信されることを意味します。
  • デフォルト値: 2
  • 最小値: 0より大きい

raft-election-timeout-ticks

注記:

この構成項目は SQL ステートメントで照会することはできませんが、構成ファイルで構成できます。

  • Raft選出が開始されるまでの経過ティック数。これは、 Raftグループにリーダーがいない場合、約raft-base-tick-interval * raft-election-timeout-ticksの時間間隔後にリーダー選出が開始されることを意味します。
  • デフォルト値: 10
  • 最小値: raft-heartbeat-ticks

raft-min-election-timeout-ticks

注記:

この構成項目は SQL ステートメントで照会することはできませんが、構成ファイルで構成できます。

  • Raft選出が開始される最小ティック数。値が0の場合、値raft-election-timeout-ticksが使用されます。このパラメータの値はraft-election-timeout-ticks以上である必要があります。
  • デフォルト値: 0
  • 最小値: 0

raft-max-election-timeout-ticks

注記:

この構成項目は SQL ステートメントで照会することはできませんが、構成ファイルで構成できます。

  • Raft選出が開始される最大ティック数。この数値が0の場合、 raft-election-timeout-ticks * 2の値が使用されます。
  • デフォルト値: 0
  • 最小値: 0

raft-max-size-per-msg

  • 単一メッセージパケットのサイズに対するソフト制限
  • デフォルト値: "1MiB"
  • 最小値: 0より大きい
  • 最大値: 3GiB
  • 単位: KiB|MiB|GiB

raft-max-inflight-msgs

  • 確認するRaftログの数。この数を超えると、 Raftステートマシンはログ送信を遅くします。
  • デフォルト値: 256
  • 最小値: 0より大きい
  • 最大値: 16384

raft-entry-max-size

  • 単一ログの最大サイズに対するハード制限
  • デフォルト値: "8MiB"
  • 最小値: 0
  • 単位: MiB|GiB

raft-log-compact-sync-intervalバージョン5.3の新機能

  • 不要なRaftログを圧縮する時間間隔
  • デフォルト値: "2s"
  • 最小値: "0s"

raft-log-gc-tick-interval

  • Raftログを削除するポーリング タスクがスケジュールされる時間間隔。1 0 、この機能が無効であることを意味します。
  • デフォルト値: "3s"
  • 最小値: "0s"

raft-log-gc-threshold

  • 残存Raftログの最大許容数に関するソフト制限
  • デフォルト値: 50
  • 最小値: 1

raft-log-gc-count-limit

  • 許容される残存Raftログ数のハードリミット
  • デフォルト値: 3/4リージョンサイズに収容できるログ数 (ログ 1 つあたり 1MiB として計算)
  • 最小値: 0

raft-log-gc-size-limit

  • 残余Raftの許容サイズに関する厳密な制限
  • デフォルト値:リージョンサイズの3/4
  • 最小値: 0より大きい

raft-log-reserve-max-ticksバージョン5.3の新機能

  • この設定項目で設定されたティック数が経過した後、残りのRaftログの数がraft-log-gc-thresholdで設定された値に達していなくても、TiKV はこれらのログに対してガベージコレクション(GC) を実行します。
  • デフォルト値: 6
  • 最小値: 0より大きい

raft-engine-purge-interval

  • ディスク容量をできるだけ早く再利用するために、古いTiKVログファイルをパージする間隔。RaftRaftは交換可能なコンポーネントであるため、一部の実装ではパージ処理が必要になります。
  • デフォルト値: "10s"

raft-entry-cache-life-time

  • メモリ内のログキャッシュに許容される最大残り時間
  • デフォルト値: "30s"
  • 最小値: 0

max-apply-unpersisted-log-limitバージョン8.1.0の新機能

  • コミットされているが永続化されていない、適用可能なRaftログの最大数。

    • この設定項目を0より大きい値に設定すると、TiKVノードはコミット済みだが永続化されていないRaftログを事前に適用できるようになり、そのノードにおけるIOジッターによるロングテールレイテンシーを効果的に削減します。ただし、TiKVのメモリ使用量とRaftログが占有するディスク容量が増加する可能性があります。
    • この設定項目を0に設定すると、この機能は無効になります。つまり、TiKVはRaftログがコミットされ、永続化されるまで待機してから適用する必要があります。このデフォルトの動作は、v8.1.0より前の動作と一致しています。
  • デフォルト値: 0

  • 最小値: 0

hibernate-regions

  • リージョンの休止状態を有効または無効にします。このオプションを有効にすると、長時間アイドル状態になっているリージョンは自動的に休止状態になります。これにより、アイドル状態のリージョンにおけるRaftリーダーとフォロワー間のハートビートメッセージによって発生する余分なオーバーヘッドが軽減されます。1 peer-stale-state-check-interval指定すると、休止状態のリージョンにおけるリーダーとフォロワー間のハートビート間隔を変更できます。
  • デフォルト値: v5.0.2 以降ではtrue 、v5.0.2 より前のバージョンではfalse

split-region-check-tick-interval

  • リージョン分割が必要かどうかを確認する間隔を指定します。1 0 、この機能が無効であることを意味します。
  • デフォルト値: "10s"
  • 最小値: 0

region-split-check-diff

  • リージョン分割前にリージョンデータが超過できる最大値
  • デフォルト値:リージョンサイズの 1/16。
  • 最小値: 0

region-compact-check-interval

  • RocksDB 圧縮を手動でトリガーする必要があるかどうかを確認する時間間隔。1 0 、この機能が無効であることを意味します。
  • デフォルト値: "5m"
  • 最小値: 0

region-compact-check-step

  • 手動圧縮の各ラウンドで一度にチェックされる領域の数

  • デフォルト値:

    • storage.engine="raft-kv"場合、デフォルト値は100です。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値は5です。
  • 最小値: 0

region-compact-min-tombstones

  • RocksDBの圧縮をトリガーするために必要なトゥームストーンの数
  • デフォルト値: 10000
  • 最小値: 0

region-compact-tombstones-percent

  • RocksDBの圧縮をトリガーするために必要なトゥームストーンの割合
  • デフォルト値: 30
  • 最小値: 1
  • 最大値: 100

region-compact-min-redundant-rows v7.1.0 の新機能

  • RocksDB 圧縮をトリガーするために必要な冗長 MVCC 行の数。
  • デフォルト値: 50000
  • 最小値: 0

region-compact-redundant-rows-percent v7.1.0 の新機能

  • RocksDB 圧縮をトリガーするために必要な冗長 MVCC 行の割合。
  • デフォルト値: 20
  • 最小値: 1
  • 最大値: 100

report-region-buckets-tick-interval v6.1.0 の新機能

  • enable-region-bucketが true の場合、TiKV がバケット情報を PD に報告する間隔。
  • デフォルト値: 10s

pd-heartbeat-tick-interval

  • PD へのリージョンのハートビートがトリガーされる時間間隔。1 0 、この機能が無効であることを意味します。
  • デフォルト値: "1m"
  • 最小値: 0

pd-store-heartbeat-tick-interval

  • ストアの PD へのハートビートがトリガーされる時間間隔。1 0 、この機能が無効であることを意味します。
  • デフォルト値: "10s"
  • 最小値: 0

pd-report-min-resolved-ts-intervalバージョン7.6.0の新機能

注記:

この設定項目の名前はreport-min-resolved-ts-intervalから変更されました。v7.6.0以降、 report-min-resolved-ts-interval無効になりました。

  • TiKVがPDリーダーに解決済みTSを報告する最小間隔を指定します0に設定すると、報告は無効になります。
  • デフォルト値: "1s" (正の最小値)。v6.3.0より前のバージョンでは、デフォルト値は"0s"です。
  • 最小値: 0
  • 単位:秒

snap-mgr-gc-tick-interval

  • 期限切れのスナップショット ファイルのリサイクルがトリガーされる時間間隔。1 0 、この機能が無効であることを意味します。
  • デフォルト値: "1m"
  • 最小値: 0

snap-gc-timeout

  • スナップショットファイルが保存される最長時間
  • デフォルト値: "4h"
  • 最小値: 0

snap-generator-pool-size v5.4.0 の新機能

  • snap-generatorスレッド プールのサイズを構成します。
  • リカバリシナリオにおいて、TiKV でリージョンのスナップショット生成を高速化するには、対応するワーカーのsnap-generator番目のスレッド数を増やす必要があります。この設定項目を使用して、 snap-generator番目のスレッドプールのサイズを増やすことができます。
  • デフォルト値: 2
  • 最小値: 1

lock-cf-compact-interval

  • TiKVがロックカラムファミリーの手動圧縮をトリガーする時間間隔
  • デフォルト値: "10m"
  • 最小値: 0

lock-cf-compact-bytes-threshold

  • TiKVがロックカラムファミリーの手動圧縮をトリガーするサイズ
  • デフォルト値: "256MiB"
  • 最小値: 0
  • 単位: MiB

notify-capacity

  • リージョンメッセージ キューの最長の長さ。
  • デフォルト値: 40960
  • 最小値: 0

messages-per-tick

  • バッチごとに処理されるメッセージの最大数
  • デフォルト値: 4096
  • 最小値: 0

max-peer-down-duration

  • ピアに許可される最長時間の非アクティブ期間。タイムアウトが発生したピアはdownとマークされ、PD は後でそのピアを削除しようとします。
  • デフォルト値: "10m"
  • 最小値: Hibernateリージョンが有効な場合、最小値はpeer-stale-state-check-interval * 2です。Hibernateリージョンが無効な場合、最小値は0です。

max-leader-missing-duration

  • Raftグループにリーダーが存在しない状態がピアに許される最長時間。この値を超えると、ピアはPDを使用して、ピアが削除されたかどうかを確認します。
  • デフォルト値: "2h"
  • 最小値: abnormal-leader-missing-durationより大きい

abnormal-leader-missing-duration

  • Raftグループにリーダーが存在しない状態がピアに許容される最長時間。この値を超えると、ピアは異常とみなされ、メトリックとログにマークが付けられます。
  • デフォルト値: "10m"
  • 最小値: peer-stale-state-check-intervalより大きい

peer-stale-state-check-interval

  • ピアがRaftグループにリーダーがいない状態にあるかどうかのチェックをトリガーする時間間隔。
  • デフォルト値: "5m"
  • 最小値: 2 * election-timeoutより大きい

leader-transfer-max-log-lag

  • Raftリーダーの転送中に転送先に許可される失われたログの最大数
  • デフォルト値: 128
  • 最小値: 10

max-snapshot-file-raw-size v6.1.0 の新機能

  • スナップショット ファイルのサイズがこの設定値を超えると、このファイルは複数のファイルに分割されます。
  • デフォルト値: 100MiB
  • 最小値: 100MiB

snap-apply-batch-size

  • インポートされたスナップショットファイルをディスクに書き込むときに必要なメモリキャッシュサイズ
  • デフォルト値: "10MiB"
  • 最小値: 0
  • 単位: MiB

consistency-check-interval

  • 整合性チェックがトリガーされる時間間隔。1 0 、この機能が無効であることを意味します。
  • デフォルト値: "0s"
  • 最小値: 0

raft-store-max-leader-lease

  • Raftリーダーの最も長い信頼期間
  • デフォルト値: "9s"
  • 最小値: 0

right-derive-when-split

  • リージョンを分割する際、新しいリージョンの開始キーを指定します。この設定項目をtrueに設定すると、開始キーは最大分割キーになります。この設定項目をfalseに設定すると、開始キーは元のリージョンの開始キーになります。
  • デフォルト値: true

merge-max-log-gap

  • merge実行した場合に許容される欠落ログの最大数
  • デフォルト値: 10
  • 最小値: raft-log-gc-count-limitより大きい

merge-check-tick-interval

  • TiKVがリージョンのマージが必要かどうかを確認する時間間隔
  • デフォルト値: "2s"
  • 最小値: 0より大きい

use-delete-range

  • rocksdb delete_rangeインターフェースからデータを削除するかどうかを決定します
  • デフォルト値: false

cleanup-import-sst-interval

  • 期限切れの SST ファイルをチェックする時間間隔。1 0 、この機能が無効であることを意味します。
  • デフォルト値: "10m"
  • 最小値: 0

local-read-batch-size

  • 1バッチで処理される読み取り要求の最大数
  • デフォルト値: 1024
  • 最小値: 0より大きい

apply-yield-write-size v6.4.0 の新機能

  • 適用スレッドが1回のポーリングで1つのFSM(有限状態機械)に書き込める最大バイト数。これはソフトリミットです。
  • デフォルト値: "32KiB"
  • 最小値: 0より大きい
  • 単位: KiB|MiB|GiB

apply-max-batch-size

  • Raftステートマシンは、BatchSystemによってデータ書き込みリクエストをバッチ処理します。この設定項目は、1バッチでリクエストを処理できるRaftステートマシンの最大数を指定します。
  • デフォルト値: 256
  • 最小値: 0より大きい
  • 最大値: 10240

apply-pool-size

  • ディスクにデータをフラッシュするプール内のスレッドの許容数。これはApplyスレッドプールのサイズです。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
  • デフォルト値: 2
  • 値の範囲: [1, CPU * 10] CPU CPU コアの数を意味します。

store-max-batch-size

  • Raftステートマシンは、BatchSystemによってログをディスクにフラッシュするリクエストをバッチ処理します。この設定項目は、1回のバッチ処理でリクエストを処理できるRaftステートマシンの最大数を指定します。
  • hibernate-regionsが有効な場合、デフォルト値は256です。5 hibernate-regions無効な場合、デフォルト値は1024です。
  • 最小値: 0より大きい
  • 最大値: 10240

store-pool-size

  • Raft を処理するプール内で許容されるスレッド数。これはRaftstoreスレッドプールのサイズです。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
  • デフォルト値: 2
  • 値の範囲: [1, CPU * 10] CPU CPU コアの数を意味します。

store-io-pool-size v5.3.0 の新機能

  • Raft I/Oタスクを処理するスレッドの許容数。これはStoreWriterスレッドプールのサイズです。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
  • デフォルト値: 1 (v8.0.0 より前のバージョンのデフォルト値は0です)
  • 最小値: 0

future-poll-size

  • future駆動するスレッドの許容数
  • デフォルト値: 1
  • 最小値: 0より大きい

cmd-batch

  • リクエストのバッチ処理を有効にするかどうかを制御します。有効にすると、書き込みパフォーマンスが大幅に向上します。
  • デフォルト値: true

inspect-interval

  • TiKVは一定の間隔でRaftstoreコンポーネントのレイテンシーを検査します。このパラメータは検査間隔を指定します。レイテンシーがこの値を超えると、検査はタイムアウトとしてマークされます。
  • タイムアウト検査の比率に基づいて、TiKV ノードが遅いかどうかを判断します。
  • デフォルト値: "100ms"
  • 最小値: "1ms"

raft-write-size-limit v5.3.0 の新機能

  • Raftデータがディスクに書き込まれるしきい値を決定します。データサイズがこの設定項目の値より大きい場合、データはディスクに書き込まれます。1の値がstore-io-pool-size 0場合、この設定項目は有効になりません。
  • デフォルト値: 1MiB
  • 最小値: 0

evict-cache-on-memory-ratioバージョン 7.5.0 の新機能

  • TiKV のメモリ使用量がシステム使用可能メモリの 90% を超え、 Raftエントリ キャッシュが占有するメモリが使用メモリ* evict-cache-on-memory-ratioを超えると、TiKV はRaftエントリ キャッシュを排除します。
  • この値が0に設定されている場合、この機能は無効であることを意味します。
  • デフォルト値: 0.1
  • 最小値: 0

periodic-full-compact-start-times v7.6.0 の新機能

  • TiKVが定期的なフルコンパクションを開始する特定の時刻を設定します。配列で複数のスケジュールを指定できます。例:
    • periodic-full-compact-start-times = ["03:00", "23:00"] TiKV ノードのローカル タイム ゾーンに基づいて、TiKV が毎日午前 3 時と午後 11 時に完全圧縮を実行することを示します。
    • periodic-full-compact-start-times = ["03:00 +0000", "23:00 +0000"] 、TiKV が UTC タイムゾーンで毎日午前 3:00 と午後 11:00 に完全圧縮を実行することを示します。
    • periodic-full-compact-start-times = ["03:00 +0800", "23:00 +0800"] 、TiKV が UTC+08:00 タイムゾーンで毎日午前 3:00 と午後 11:00 に完全圧縮を実行することを示します。
  • デフォルト値: [] 。定期的な完全圧縮はデフォルトで無効になっていることを意味します。

periodic-full-compact-start-max-cpuバージョン7.6.0の新機能

  • TiKV 定期完全圧縮の最大 CPU 使用率を制限します。
  • デフォルト値: 0.1 。これは、定期的な圧縮プロセスの最大 CPU 使用率が 10% であることを意味します。

follower-read-max-log-gap v7.4.0 の新機能

  • 読み取りリクエストの処理時にフォロワーが遅延できるログの最大数。この制限を超えると、読み取りリクエストは拒否されます。
  • デフォルト値: 100

inspect-cpu-util-thdバージョン7.6.0の新機能

  • 低速ノード検出中に TiKV ノードがビジー状態かどうかを判断するための CPU 使用率しきい値。
  • 値の範囲: [0, 1]
  • デフォルト値: 0.4 、つまり40%です。

inspect-kvdb-intervalバージョン8.1.2の新機能

  • TiKVで低速ノードを検出する際にKVディスクをチェックする間隔とタイムアウト。KVDBとRaftDBが同じマウントパスを共有している場合、この値は0 (検出なし)に上書きされます。
  • デフォルト値: 2s

min-pending-apply-region-countバージョン8.0.0の新機能

  • TiKV の起動時にRaftログの適用がビジー状態にあるリージョンの最大数。Raftstoreは、このようなリージョンの数がこの値を下回っている場合にのみリーダー転送を受け入れるため、ローリング再起動時の可用性の低下を軽減できます。
  • デフォルト値: 10

request-voter-replicated-index-interval v6.6.0 の新機能

  • Witness ノードが投票ノードから複製されたRaftログ位置を定期的に取得する間隔を制御します。
  • デフォルト値: 5m 、つまり 5 分です。

slow-trend-unsensitive-cause v6.6.0 の新機能

  • TiKVがSlowTrend検出アルゴリズムを使用する場合、この設定項目はレイテンシー検出の感度を制御します。値が高いほど、感度は低くなります。
  • デフォルト値: 10

slow-trend-unsensitive-result v6.6.0 の新機能

  • TiKVがSlowTrend検出アルゴリズムを使用する場合、この設定項目はQPS検出の感度を制御します。値が高いほど感度は低くなります。
  • デフォルト値: 0.5

コプロセッサ

コプロセッサーに関連するコンフィグレーション項目。

split-region-on-table

  • テーブルごとにリージョンを分割するかどうかを決定します。この機能はTiDBモードでのみ使用することをお勧めします。
  • デフォルト値: false

batch-split-limit

  • バッチ処理におけるリージョン分割のしきい値。この値を大きくすると、リージョン分割が高速化されます。
  • デフォルト値: 10
  • 最小値: 1

region-max-size

  • リージョンの最大サイズ。この値を超えると、 リージョン は複数の Region に分割されます。
  • デフォルト値: region-split-size / 2 * 3
  • 単位: KiB|MiB|GiB

region-split-size

  • 新しく分割されたリージョンのサイズ。この値は推定値です。
  • デフォルト値: "96MiB"
  • 単位: KiB|MiB|GiB

region-max-keys

  • リージョン内で許容されるキーの最大数。この値を超えると、リージョンは複数のリージョンに分割されます。
  • デフォルト値: region-split-keys / 2 * 3

region-split-keys

  • 新しく分割されたリージョン内のキーの数。この値は推定値です。
  • デフォルト値: 960000

consistency-check-method

  • データの整合性チェックの方法を指定します
  • MVCCデータの整合性チェックの場合は値を"mvcc"に設定し、生データの整合性チェックの場合は値を"raw"に設定します。
  • デフォルト値: "mvcc"

コプロセッサv2

coprocessor-plugin-directory

  • コンパイルされたコプロセッサプラグインが配置されているディレクトリのパス。このディレクトリ内のプラグインはTiKVによって自動的にロードされます。
  • この構成項目が設定されていない場合、コプロセッサ プラグインは無効になります。
  • デフォルト値: "./coprocessors"

enable-region-bucket v6.1.0 の新機能

  • リージョンをバケットと呼ばれるより小さな範囲に分割するかどうかを決定します。バケットは、スキャンの同時実行性を向上させるための同時実行クエリの単位として使用されます。バケットの設計の詳細については、 動的サイズリージョンを参照してください。
  • デフォルト値: false

region-bucket-size v6.1.0 の新機能

  • enable-region-bucketが true の場合のバケットのサイズ。
  • デフォルト値: v7.3.0 以降、デフォルト値は96MiBから50MiBに変更されます。

ロックスdb

RocksDBに関連するコンフィグレーション項目

max-background-jobs

  • RocksDBのバックグラウンドスレッドの数。RocksDBスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
  • デフォルト値:
    • CPU コア数が 10 の場合、デフォルト値は9です。
    • CPU コア数が 8 の場合、デフォルト値は7です。
    • CPU コア数がNの場合、デフォルト値はmax(2, min(N - 1, 9))です。
  • 最小値: 2

max-background-flushes

  • 同時バックグラウンド メンバーテーブル フラッシュ ジョブの最大数
  • デフォルト値:
    • CPU コア数が 10 の場合、デフォルト値は3です。
    • CPU コア数が 8 の場合、デフォルト値は2です。
    • CPU コア数がNの場合、デフォルト値は[(max-background-jobs + 3) / 4]です。
  • 最小値: 1

max-sub-compactions

  • RocksDBで同時に実行されるサブコンパクション操作の数
  • デフォルト値: 3
  • 最小値: 1

max-open-files

  • RocksDBが開くことができるファイルの総数
  • デフォルト値: 40960
  • 最小値: -1

max-manifest-file-size

  • RocksDBマニフェストファイルの最大サイズ
  • デフォルト値: "128MiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

create-if-missing

  • DBスイッチを自動的に作成するかどうかを決定します
  • デフォルト値: true

wal-recovery-mode

  • WALリカバリモード
  • オプションの値:
    • "tolerate-corrupted-tail-records" : すべてのログで不完全な末尾データを持つレコードを許容し、破棄します。
    • "absolute-consistency" : 破損したログが見つかった場合はリカバリを中止します
    • "point-in-time" : 最初の破損したログに遭遇するまでログを順番に回復します
    • "skip-any-corrupted-records" :災害後の復旧。データは可能な限り復旧され、破損したレコードはスキップされます。
  • デフォルト値: "point-in-time"

wal-dir

  • WALファイルが保存されるディレクトリ。指定されていない場合、WALファイルはデータと同じディレクトリに保存されます。
  • デフォルト値: ""

wal-ttl-seconds

  • アーカイブされたWALファイルの有効期間。この値を超えると、システムはこれらのファイルを削除します。
  • デフォルト値: 0
  • 最小値: 0
  • 単位: 秒

wal-size-limit

  • アーカイブされたWALファイルのサイズ制限。この値を超えると、システムはこれらのファイルを削除します。
  • デフォルト値: 0
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

max-total-wal-size

  • 合計での最大 RocksDB WAL サイズは、 data-dirファイルのうち*.logのサイズです。

  • デフォルト値:

    • storage.engine="raft-kv"場合、デフォルト値は"4GiB"です。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値は1です。

stats-dump-period

  • 統計がログに出力される間隔。

  • デフォルト値:

    • storage.engine="raft-kv"場合、デフォルト値は"10m"です。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値は"0"です。

compaction-readahead-size

  • RocksDBの圧縮中に先読み機能を有効にし、先読みデータのサイズを指定します。機械式ディスクを使用している場合は、少なくとも2MiBに設定することをお勧めします。
  • デフォルト値: 0
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

writable-file-max-buffer-size

  • WritableFileWriteで使用される最大バッファサイズ
  • デフォルト値: "1MiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

use-direct-io-for-flush-and-compaction

  • バックグラウンドフラッシュとコンパクションにおいて、読み取りと書き込みの両方にO_DIRECT使用するかどうかを決定します。このオプションのパフォーマンスへの影響: O_DIRECT有効にすると、OSバッファキャッシュのバイパスと汚染を防止しますが、後続のファイル読み取りではバッファキャッシュへの内容の再読み込みが必要になります。
  • デフォルト値: false

rate-bytes-per-sec

  • Titanが無効になっている場合、この設定項目はRocksDBコンパクションのI/Oレートを制限し、トラフィックピーク時のフォアグラウンドの読み取りおよび書き込みパフォーマンスへのRocksDBコンパクションの影響を軽減します。Titanが有効になっている場合、この設定項目はRocksDBコンパクションとTitan GCの合計I/Oレートを制限します。RocksDBコンパクションとTitan GCのI/OまたはCPU消費量が大きすぎる場合は、ディスクI/O帯域幅と実際の書き込みトラフィックに応じて、この設定項目を適切な値に設定してください。
  • デフォルト値: 10GiB
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

rate-limiter-refill-period

  • I/Oトークンの補充頻度を制御します。値が小さいほどI/Oバーストは減少しますが、CPUオーバーヘッドが増加します。
  • デフォルト値: "100ms"

rate-limiter-mode

  • RocksDBの圧縮レート制限モード
  • "write-only" "all-io" : "read-only"
  • デフォルト値: "write-only"

rate-limiter-auto-tuned v5.0 の新機能

  • RocksDBの圧縮レートリミッターの設定を、最近のワークロードに基づいて自動的に最適化するかどうかを決定します。この設定を有効にすると、圧縮保留バイト数が通常よりもわずかに多くなります。
  • デフォルト値: true

enable-pipelined-write

  • パイプライン書き込みを有効にするかどうかを制御します。この設定を有効にすると、以前のパイプライン書き込みが使用されます。この設定を無効にすると、新しいパイプラインコミットメカニズムが使用されます。
  • デフォルト値: false

bytes-per-sync

  • ファイルが非同期的に書き込まれている間に、OSがファイルをディスクに増分的に同期する速度
  • デフォルト値: "1MiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

wal-bytes-per-sync

  • WALファイルが書き込まれている間にOSがWALファイルをディスクに増分的に同期する速度
  • デフォルト値: "512KiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

info-log-max-size

  • 情報ログの最大サイズ
  • デフォルト値: "1GiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

info-log-roll-time

  • 情報ログが切り捨てられる時間間隔。値が0sの場合、ログは切り捨てられません。
  • デフォルト値: "0s"

info-log-keep-log-file-num

  • 保存されるログファイルの最大数
  • デフォルト値: 10
  • 最小値: 0

info-log-dir

  • ログが保存されるディレクトリ
  • デフォルト値: ""

info-log-level

  • RocksDBのログレベル
  • デフォルト値: "info"

write-buffer-flush-oldest-first v6.6.0 の新機能

  • 現在の RocksDB のmemtableのメモリ使用量がしきい値に達したときに使用するフラッシュ戦略を指定します。

  • デフォルト値: false

  • 値のオプション:

    • データ量が最も大きいfalse : memtableが SST ファイルにフラッシュされます。
    • true :最初のmemtable SSTファイルにフラッシュされます。この戦略はコールドデータのmemtableクリアできるため、コールドデータとホットデータが明確に区別できるシナリオに適しています。

write-buffer-limit v6.6.0 の新機能

  • 単一の TiKV 内のすべての RocksDB インスタンスの合計メモリ制限をmemtable指定します。3 0制限がないことを意味します。

  • デフォルト値:

    • storage.engine="raft-kv"場合、デフォルト値は0となり、制限がないことを意味します。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値はシステムメモリの合計サイズの 20% になります。
  • 単位: KiB|MiB|GiB

track-and-verify-wals-in-manifest v6.5.9、v7.1.5、v7.5.2、v8.0.0 の新機能

  • RocksDB MANIFESTファイルにWrite Ahead Log(WAL)ファイルに関する情報を記録するかどうか、および起動時にWALファイルの整合性を検証するかどうかを制御します。詳細については、RocksDB MANIFESTでWALを追跡するを参照してください。
  • デフォルト値: true
  • 値のオプション:
    • true : WAL ファイルに関する情報を MANIFEST ファイルに記録し、起動時に WAL ファイルの整合性を検証します。
    • false : MANIFEST ファイルに WAL ファイルに関する情報を記録せず、起動時に WAL ファイルの整合性を検証しません。

enable-multi-batch-write v6.2.0 の新機能

  • RocksDB 書き込み最適化を有効にするかどうかを制御します。これにより、WriteBatch の内容を memtable に同時に書き込むことができ、書き込みレイテンシーが短縮されます。
  • デフォルト値: なし。ただし、明示的にfalseに設定した場合、またはrocksdb.enable-pipelined-writeまたはrocksdb.enable-unordered-write有効になっている場合を除き、デフォルトで有効になります。

rocksdb.titan

Titan に関連するコンフィグレーション項目。

enabled

注記:

  • ワイド テーブルと JSON データの書き込みおよびポイント クエリのパフォーマンスを向上させるために、TiDB v7.6.0 以降では既定値がfalseからtrueに変更され、Titan がデフォルトで有効になります。
  • v7.6.0 以降のバージョンにアップグレードされた既存のクラスターは元の構成を保持します。つまり、Titan が明示的に有効になっていない場合は、引き続き RocksDB が使用されます。
  • TiDB v7.6.0以降にアップグレードする前にクラスタでTitanが有効になっている場合、アップグレード後もTitanは保持され、アップグレード前のmin-blob-size設定が保持されます。アップグレード前に明示的に値を設定しない場合は、アップグレード後のクラスタ構成の安定性を確保するために、以前のバージョン1KiBのデフォルト値が保持されます。
  • Titan を有効または無効にします。
  • デフォルト値: true

dirname

  • Titan Blobファイルが保存されているディレクトリ
  • デフォルト値: "titandb"

disable-gc

  • Titan が BLOB ファイルに対して実行するガベージ コレクション (GC) を無効にするかどうかを決定します。
  • デフォルト値: false

max-background-gc

  • Titan の GC スレッドの最大数。TiKVの「詳細」 > 「スレッド CPU」 > 「RocksDB CPU」パネルで、Titan GC スレッドが長時間にわたって満杯になっていることが確認された場合は、Titan GC スレッドプールのサイズを増やすことを検討してください。
  • デフォルト値: 1 。v8.0.0 より前では、デフォルト値は4です。
  • 最小値: 1

rocksdb.defaultcf | rocksdb.writecf | rocksdb.lockcf | rocksdb.raftcf

rocksdb.defaultcf rocksdb.writecf rocksdb.lockcfするコンフィグレーション項目。

block-size

  • RocksDBブロックのデフォルトサイズ
  • defaultcfwritecfのデフォルト値: "32KiB"
  • lockcfのデフォルト値: "16KiB"
  • 最小値: "1KiB"
  • 単位: KiB|MiB|GiB

block-cache-size

  • RocksDB ブロックのキャッシュ サイズ。
  • defaultcfのデフォルト値: Total machine memory * 25%
  • writecfのデフォルト値: Total machine memory * 15%
  • lockcfのデフォルト値: Total machine memory * 2%
  • 最小値: 0
  • 単位: KiB|MiB|GiB

disable-block-cache

  • ブロックキャッシュを有効または無効にする
  • デフォルト値: false

cache-index-and-filter-blocks

  • インデックスとフィルタのキャッシュを有効または無効にする
  • デフォルト値: true

pin-l0-filter-and-index-blocks

  • レベル 0 SST ファイルのインデックス ブロックとフィルター ブロックをメモリに固定するかどうかを決定します。
  • デフォルト値: true

use-bloom-filter

  • ブルームフィルターを有効または無効にする
  • デフォルト値: true

optimize-filters-for-hits

  • フィルタのヒット率を最適化するかどうかを決定します
  • defaultcfのデフォルト値: true
  • writecflockcfのデフォルト値: false

optimize-filters-for-memory v7.2.0 の新機能

  • メモリの内部断片化を最小限に抑えるブルーム/リボン フィルターを生成するかどうかを決定します。
  • この構成項目はformat-version >= 5 の場合にのみ有効になることに注意してください。
  • デフォルト値: false

whole-key-filtering

  • キー全体をブルームフィルターに入れるかどうかを決定します
  • defaultcflockcfのデフォルト値: true
  • writecfのデフォルト値: false

bloom-filter-bits-per-key

  • ブルームフィルターが各キーに予約する長さ
  • デフォルト値: 10
  • 単位: バイト

block-based-bloom-filter

  • 各ブロックがブルームフィルターを作成するかどうかを決定します
  • デフォルト値: false

ribbon-filter-above-level v7.2.0 の新機能

  • この値以上のレベルにはリボンフィルターを使用し、この値未満のレベルには非ブロックベースのブルームフィルターを使用するかどうかを決定します。この設定項目が設定されている場合、 block-based-bloom-filter無視されます。
  • この構成項目はformat-version >= 5 の場合にのみ有効になることに注意してください。
  • デフォルト値: false

read-amp-bytes-per-bit

  • 読み取り増幅の統計を有効または無効にします。
  • オプションの値: 0 (無効)、> 0 (有効)。
  • デフォルト値: 0
  • 最小値: 0

compression-per-level

  • 各レベルのデフォルトの圧縮アルゴリズム
  • defaultcfのデフォルト値: ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"]
  • writecfのデフォルト値: ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"]
  • lockcfのデフォルト値: ["no", "no", "no", "no", "no", "no", "no"]

bottommost-level-compression

  • 最レイヤーの圧縮アルゴリズムを設定します。この設定項目はcompression-per-level設定を上書きします。
  • RocksDB は、データが LSM ツリーに書き込まれた時点から、 compression-per-levelレイヤーで指定された最後の圧縮アルゴリズムを最下層に直接採用しません。3 bottommost-level-compression 、最レイヤーが最初から圧縮効果が最も高い圧縮アルゴリズムを使用できるようになります。
  • 最レイヤーに圧縮アルゴリズムを設定しない場合は、この構成項目の値をdisableに設定します。
  • デフォルト値: "zstd"

write-buffer-size

  • メモリテーブルのサイズ
  • defaultcfwritecfのデフォルト値: "128MiB"
  • lockcfのデフォルト値:
    • storage.engine="raft-kv"場合、デフォルト値は"32MiB"です。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値は"4MiB"です。
  • 最小値: 0
  • 単位: KiB|MiB|GiB

max-write-buffer-number

  • memtableの最大数。1 storage.flow-control.enable trueに設定すると、 storage.flow-control.memtables-thresholdこの構成項目を上書きします。
  • デフォルト値: 5
  • 最小値: 0

min-write-buffer-number-to-merge

  • フラッシュをトリガーするために必要な最小のmemtable数
  • デフォルト値: 1
  • 最小値: 0

max-bytes-for-level-base

  • ベースレベル(レベル1)の最大バイト数。通常、memtableのサイズの4倍に設定されます。レベル1のデータサイズが制限値max-bytes-for-level-baseに達すると、レベル1のSSTファイルと、それらに重複するレベル2のSSTファイルが圧縮されます。
  • defaultcfwritecfのデフォルト値: "512MiB"
  • lockcfのデフォルト値: "128MiB"
  • 最小値: 0
  • 単位: KiB|MiB|GiB
  • 不要な圧縮を減らすために、 max-bytes-for-level-baseの値はL0のデータ量とほぼ同じに設定することをお勧めします。たとえば、圧縮方法が「no:no:lz4:lz4:lz4:lz4:lz4」の場合、L0とL1は圧縮されておらず、L0の圧縮のトリガー条件はSSTファイルの数が4(デフォルト値)に達することであるため、 max-bytes-for-level-base値はwrite-buffer-size * 4にする必要があります。L0とL1の両方で圧縮が採用されている場合、memtableから圧縮されたSSTファイルのサイズを把握するには、RocksDBログを分析する必要があります。たとえば、ファイルサイズが32MiBの場合、 max-bytes-for-level-baseの値を128MiB( 32 MiB * 4 )に設定することをお勧めします。

target-file-size-base

  • ベースレベルでのターゲットファイルのサイズ。値がenable-compaction-guard true場合、この値はcompaction-guard-max-output-file-sizeで上書きされます。
  • デフォルト値: "8MiB"
  • 最小値: 0
  • 単位: KiB|MiB|GiB

level0-file-num-compaction-trigger

  • 圧縮をトリガーするL0のファイルの最大数
  • defaultcfwritecfのデフォルト値: 4
  • lockcfのデフォルト値: 1
  • 最小値: 0

level0-slowdown-writes-trigger

  • 書き込み停止を引き起こすL0ファイルの最大数。1 storage.flow-control.enable trueに設定した場合、 storage.flow-control.l0-files-thresholdこの設定項目を上書きします。
  • デフォルト値: 20
  • 最小値: 0

level0-stop-writes-trigger

  • 書き込みを完全にブロックするために必要なL0のファイルの最大数
  • デフォルト値: 36
  • 最小値: 0

max-compaction-bytes

  • 圧縮ごとにディスクに書き込まれる最大バイト数
  • デフォルト値: "2GiB"
  • 最小値: 0
  • 単位: KiB|MiB|GiB

compaction-pri

  • 圧縮の優先タイプ
  • オプションの値:
    • "by-compensated-size" : ファイル サイズの順にファイルを圧縮し、大きなファイルは優先順位を高くして圧縮します。
    • "oldest-largest-seq-first" : 更新時刻が最も古いファイルの圧縮を優先します。この値は、狭い範囲でホットキーを更新する場合にのみ使用してください。
    • "oldest-smallest-seq-first" : 長期間にわたって次のレベルに圧縮されない範囲を持つファイルの圧縮を優先します。キー空間全体でホットキーをランダムに更新する場合、この値により書き込み増幅がわずかに軽減される可能性があります。
    • "min-overlapping-ratio" : オーバーラップ率の高いファイルの圧縮を優先します。ファイルの各レベルが小さい場合( the file size in the next level ÷ the file size in this levelの結果が小さい場合)、TiKV はこのファイルを最初に圧縮します。多くの場合、この値は書き込み増幅を効果的に削減できます。
  • defaultcfwritecfのデフォルト値: "min-overlapping-ratio"
  • lockcfのデフォルト値: "by-compensated-size"

dynamic-level-bytes

  • 動的レベルバイトを最適化するかどうかを決定します
  • デフォルト値: true

num-levels

  • RocksDBファイルの最大レベル数
  • デフォルト値: 7

max-bytes-for-level-multiplier

  • 各レイヤーのデフォルトの増幅倍数
  • デフォルト値: 10

compaction-style

  • 圧縮方法
  • "universal" "fifo" : "level"
  • デフォルト値: "level"

disable-auto-compactions

  • 自動圧縮を無効にするかどうかを決定します。
  • デフォルト値: false

soft-pending-compaction-bytes-limit

  • 保留中の圧縮バイトのソフト制限。1 storage.flow-control.enable trueに設定した場合、 storage.flow-control.soft-pending-compaction-bytes-limitこの設定項目を上書きします。
  • デフォルト値: "192GiB"
  • 単位: KiB|MiB|GiB

hard-pending-compaction-bytes-limit

  • 保留中の圧縮バイト数のハードリミット。1 true storage.flow-control.enable設定した場合、 storage.flow-control.hard-pending-compaction-bytes-limitこの設定項目を上書きします。
  • デフォルト値: "256GiB"
  • 単位: KiB|MiB|GiB

enable-compaction-guard

  • コンパクションガードを有効または無効にします。これは、TiKVリージョンの境界でSSTファイルを分割する最適化です。この最適化により、コンパクションI/Oが削減され、TiKVはより大きなSSTファイルサイズ(つまり、全体的なSSTファイルの数が少ない)を使用できるようになります。また、リージョンの移行時に古いデータを効率的にクリーンアップできます。
  • defaultcfwritecfのデフォルト値: true
  • lockcfのデフォルト値: false

compaction-guard-min-output-file-size

  • 圧縮ガードが有効になっている場合のSSTファイルの最小サイズ。この設定により、圧縮ガードが有効になっているときにSSTファイルが小さすぎる状態になるのを防ぎます。
  • デフォルト値: "8MiB"
  • 単位: KiB|MiB|GiB

compaction-guard-max-output-file-size

  • 圧縮ガードが有効な場合のSSTファイルの最大サイズ。この設定により、圧縮ガードが有効な場合にSSTファイルが大きくなりすぎるのを防ぎます。この設定は、同じカラムファミリーのtarget-file-size-baseオーバーライドします。
  • デフォルト値: "128MiB"
  • 単位: KiB|MiB|GiB

format-version v6.2.0 の新機能

  • SSTファイルのフォーマットバージョン。この設定項目は新しく書き込まれるテーブルにのみ影響します。既存のテーブルの場合、バージョン情報はフッターから読み取られます。

  • オプションの値:

    • 0 : すべてのTiKVバージョンで読み取り可能です。デフォルトのチェックサムタイプはCRC32であり、このバージョンではチェックサムタイプの変更はサポートされていません。
    • 1 : すべてのTiKVバージョンで読み取り可能です。xxHashなどのデフォルト以外のチェックサムタイプをサポートします。RocksDBは、チェックサムタイプがCRC32以外の場合にのみデータを書き込みます。(バージョン0は自動的にアップグレードされます)
    • 2 : すべてのTiKVバージョンで読み取り可能です。LZ4、BZip2、Zlib圧縮方式を使用して圧縮ブロックのエンコーディングを変更します。
    • 3 : TiKV v2.1以降のバージョンで読み取ることができます。インデックスブロック内のキーのエンコーディングを変更します。
    • 4 : TiKV v3.0以降のバージョンで読み取ることができます。インデックスブロック内の値のエンコーディングを変更します。
    • 5 : TiKV v6.1以降のバージョンで読み取り可能です。フルフィルターとパーティションフィルターは、異なるスキーマを使用した、より高速で正確なブルームフィルター実装を使用します。
  • デフォルト値:

    • storage.engine="raft-kv"場合、デフォルト値は2です。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値は5です。

ttlバージョン7.2.0の新機能

  • TTLよりも古い更新を含むSSTファイルは自動的に圧縮対象として選択されます。これらのSSTファイルは、最下層または最下層ファイルまで圧縮されるように、段階的に圧縮されます。
  • デフォルト値: "0s" 。これは、デフォルトでは SST ファイルが選択されていないことを意味します。
  • 単位: s(秒)|h(時間)|d(日)

periodic-compaction-seconds v7.2.0 の新機能

  • 定期的な圧縮の時間間隔。この値より古い更新を含む SST ファイルが圧縮対象として選択され、これらの SST ファイルが元々存在していたレベルと同じレベルに書き換えられます。
  • デフォルト値: "0s" 。定期的な圧縮はデフォルトで無効になっていることを意味します。
  • 単位: s(秒)|h(時間)|d(日)

max-compactionsバージョン6.6.0の新機能

  • 同時実行可能な圧縮タスクの最大数。値0制限なしを意味します。
  • デフォルト値: 0

rocksdb.defaultcf.titan

注記:

Titan はrocksdb.defaultcfでのみ有効化できます。 rocksdb.writecfでは Titan を有効化できません。

rocksdb.defaultcf.titanに関連するコンフィグレーション項目です。

min-blob-size

注記:

  • TiDB v7.6.0以降、ワイドテーブルおよびJSONデータの書き込みとポイントクエリのパフォーマンスを向上させるため、Titanがデフォルトで有効化されました。デフォルト値はmin-blob-sizeでしたが、 1KiBから32KiBに変更されました。つまり、 32KiB超える値はTitanに保存され、その他のデータは引き続きRocksDBに保存されます。
  • 構成の一貫性を確保するために、既存のクラスターを TiDB v7.6.0 以降のバージョンにアップグレードする場合、アップグレード前にmin-blob-size明示的に設定しないと、TiDB は以前のデフォルト値1KiBを保持します。
  • 32KiBより小さい値は、範囲スキャンのパフォーマンスに影響を与える可能性があります。ただし、ワークロードが主に大量の書き込みとポイントクエリである場合は、パフォーマンスを向上させるために値をmin-blob-sizeに下げることを検討してください。
  • BLOBファイルに格納される最小値。指定されたサイズより小さい値はLSMツリーに格納されます。
  • デフォルト値: "32KiB"
  • 最小値: 0
  • 単位: KiB|MiB|GiB

blob-file-compression

注記:

  • Snappy 圧縮ファイルは公式Snappyフォーマットである必要があります。その他の Snappy 圧縮形式はサポートされていません。
  • TiDB v7.6.0 以降、デフォルト値blob-file-compression"lz4"から"zstd"に変更されます。
  • BLOBファイルで使用される圧縮アルゴリズム
  • "bzip2" "zlib" "lz4" "no" "snappy" "lz4hc" "zstd"
  • デフォルト値: "zstd"

zstd-dict-size

  • zstd 辞書の圧縮サイズ。デフォルト値は"0KiB"で、これは zstd 辞書の圧縮を無効にすることを意味します。この場合、Titan は単一の値に基づいてデータを圧縮しますが、RocksDB はブロックに基づいてデータを圧縮します (デフォルトでは32KiB )。Titan 値の平均サイズが32KiB未満の場合、Titan の圧縮率は RocksDB よりも低くなります。JSON を例にとると、Titan のストア サイズは RocksDB よりも 30% ~ 50% 大きくなる可能性があります。実際の圧縮率は、値の内容が圧縮に適しているかどうか、および異なる値間の類似性によって異なります。 zstd-dict-size構成すると (たとえば、 16KiBに設定すると)、zstd 辞書の圧縮を有効にして圧縮率を上げることができます。実際のストア サイズは RocksDB よりも小さくなる可能性があります。ただし、zstd 辞書の圧縮により、特定のワークロードで約 10% のパフォーマンス低下が発生する可能性があります。
  • デフォルト値: "0KiB"
  • 単位: KiB|MiB|GiB

blob-cache-size

  • BLOBファイルのキャッシュサイズ
  • デフォルト値: "0GiB"
  • 最小値: 0
  • 推奨値: 0 。TiKV v8.0.0以降、設定項目shared-blob-cacheが導入され、デフォルトで有効になっているため、 blob-cache-size別途設定する必要はありません。7 blob-cache-size設定は、 shared-blob-cache falseに設定されている場合にのみ有効になります。
  • 単位: KiB|MiB|GiB

shared-blob-cache (v8.0.0 の新機能)

  • Titan BLOB ファイルと RocksDB ブロック ファイルの共有キャッシュを有効にするかどうかを制御します。
  • デフォルト値: true 。共有キャッシュが有効な場合、ブロックファイルの優先度が高くなります。つまり、TiKVはブロックファイルのキャッシュニーズを満たすことを優先し、残りのキャッシュをBLOBファイルに使用します。

min-gc-batch-size

  • GCを1回実行するために必要なBlobファイルの最小合計サイズ
  • デフォルト値: "16MiB"
  • 最小値: 0
  • 単位: KiB|MiB|GiB

max-gc-batch-size

  • 一度にGCを実行できるBlobファイルの最大合計サイズ
  • デフォルト値: "64MiB"
  • 最小値: 0
  • 単位: KiB|MiB|GiB

discardable-ratio

  • BLOBファイル内の古いデータ(対応するキーが更新または削除されたデータ)の割合が以下のしきい値を超えると、Titan GCがトリガーされます。TitanがこのBLOBファイルの有効なデータを別のファイルに書き込む際、 discardable-ratio値を使用して、書き込み増幅とスペース増幅の上限を推定できます(圧縮が無効の場合)。

    書き込み増幅の上限 = 1 / discardable-ratio

    空間増幅の上限 = 1 / (1 - discardable-ratio )

    これら2つの式から、値discardable_ratioを減らすとスペース増幅は減少しますが、TitanでのGCの頻度は増加します。値を増やすとTitan GCの頻度が減少し、I/O帯域幅とCPU使用率が低下しますが、ディスク使用量は増加します。

  • デフォルト値: 0.5

  • 最小値: 0

  • 最大値: 1

sample-ratio

  • GC 中にファイルをサンプリングするときの (Blob ファイルから読み取られたデータ / Blob ファイル全体) の比率
  • デフォルト値: 0.1
  • 最小値: 0
  • 最大値: 1

merge-small-file-threshold

  • BLOBファイルのサイズがこの値より小さい場合でも、そのBLOBファイルはGCの対象として選択される可能性があります。この場合、 discardable-ratio無視されます。
  • デフォルト値: "8MiB"
  • 最小値: 0
  • 単位: KiB|MiB|GiB

blob-run-mode

  • Titanの実行モードを指定します。
  • オプションの値:
    • normal : 値のサイズがmin-blob-size超えると、データを BLOB ファイルに書き込みます。
    • read-only : BLOB ファイルへの新しいデータの書き込みを拒否しますが、BLOB ファイルから元のデータは読み取ります。
    • fallback : BLOB ファイル内のデータを LSM に書き戻します。
  • デフォルト値: normal

level-merge

  • 読み取りパフォーマンスを最適化するかどうかを決定します。1 level-merge有効にすると、書き込み増幅が強化されます。
  • デフォルト値: false

ラフトDB

raftdbに関連するコンフィグレーション項目

max-background-jobs

max-sub-compactions

  • RocksDBで実行される同時サブコンパクション操作の数
  • デフォルト値: 2
  • 最小値: 1

max-open-files

  • RocksDBが開くことができるファイルの総数
  • デフォルト値: 40960
  • 最小値: -1

max-manifest-file-size

  • RocksDBマニフェストファイルの最大サイズ
  • デフォルト値: "20MiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

create-if-missing

  • 値がtrueの場合、データベースが存在しない場合に作成されます。
  • デフォルト値: true

stats-dump-period

  • 統計がログに出力される間隔
  • デフォルト値: 10m

wal-dir

  • Raft RocksDB WALファイルが保存されるディレクトリ。WALの絶対ディレクトリパスです。この設定項目をrocksdb.wal-dirと同じ値に設定しないでください
  • この構成項目が設定されていない場合、ログ ファイルはデータと同じディレクトリに保存されます。
  • マシンにディスクが 2 つある場合、RocksDB データと WAL ログを別のディスクに保存すると、パフォーマンスが向上します。
  • デフォルト値: ""

wal-ttl-seconds

  • アーカイブされたWALファイルを保持する期間を指定します。この値を超えると、システムはこれらのファイルを削除します。
  • デフォルト値: 0
  • 最小値: 0
  • 単位:秒

wal-size-limit

  • アーカイブされたWALファイルのサイズ制限。この値を超えると、システムはこれらのファイルを削除します。
  • デフォルト値: 0
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

max-total-wal-size

  • RocksDB WALの合計最大サイズ
  • デフォルト値:
    • storage.engine="raft-kv"場合、デフォルト値は"4GiB"です。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値は1です。

compaction-readahead-size

  • RocksDB の圧縮中に先読み機能を有効にするかどうか、および先読みデータのサイズを指定するかどうかを制御します。
  • 機械式ディスクを使用する場合は、値を少なくとも2MiBに設定することをお勧めします。
  • デフォルト値: 0
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

writable-file-max-buffer-size

  • WritableFileWriteで使用される最大バッファサイズ
  • デフォルト値: "1MiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

use-direct-io-for-flush-and-compaction

  • バックグラウンドフラッシュとコンパクションにおいて、読み取りと書き込みの両方にO_DIRECT使用するかどうかを決定します。このオプションのパフォーマンスへの影響: O_DIRECT有効にすると、OSバッファキャッシュのバイパスと汚染を防止しますが、後続のファイル読み取りではバッファキャッシュへの内容の再読み込みが必要になります。
  • デフォルト値: false

enable-pipelined-write

  • パイプライン書き込みを有効にするかどうかを制御します。この設定を有効にすると、以前のパイプライン書き込みが使用されます。この設定を無効にすると、新しいパイプラインコミットメカニズムが使用されます。
  • デフォルト値: true

allow-concurrent-memtable-write

  • 同時メモリテーブル書き込みを有効にするかどうかを制御します。
  • デフォルト値: true

bytes-per-sync

  • ファイルが非同期的に書き込まれている間に、OSがファイルをディスクに増分的に同期する速度
  • デフォルト値: "1MiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

wal-bytes-per-sync

  • WALファイルが書き込まれるときにOSがWALファイルをディスクに増分同期する速度
  • デフォルト値: "512KiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

info-log-max-size

  • 情報ログの最大サイズ
  • デフォルト値: "1GiB"
  • 最小値: 0
  • 単位: B|KiB|MiB|GiB

info-log-roll-time

  • 情報ログを切り捨てる間隔。値が0sの場合、ログは切り捨てられません。
  • デフォルト値: "0s" (ログは切り捨てられない)

info-log-keep-log-file-num

  • RaftDB に保存される情報ログファイルの最大数
  • デフォルト値: 10
  • 最小値: 0

info-log-dir

  • 情報ログが保存されるディレクトリ
  • デフォルト値: ""

info-log-level

  • RaftDBのログレベル
  • デフォルト値: "info"

いかだエンジン

Raft Engineに関連するコンフィグレーション項目。

注記:

  • Raft Engine を初めて有効にすると、TiKV は RocksDB からRaft Engineにデータを転送します。そのため、TiKV が起動するまで数十秒ほど待つ必要があります。
  • TiDB v5.4.0 のRaft Engineのデータ形式は、以前の TiDB バージョンと互換性がありません。そのため、TiDB クラスターを v5.4.0 から以前のバージョンにダウングレードする必要がある場合は、ダウングレードする前に、 Raft Engineをenableからfalseに設定して無効化し、TiKV を再起動して設定を有効にしてください。

enable

  • Raftログの保存にRaft Engineを使用するかどうかを決定します。有効にすると、 raftdbの設定は無視されます。
  • デフォルト値: true

dir

  • raft ログファイルが保存されるディレクトリ。ディレクトリが存在しない場合は、TiKV の起動時に作成されます。
  • この構成項目が設定されていない場合は{data-dir}/raft-engine使用されます。
  • マシンに複数のディスクがある場合は、TiKV のパフォーマンスを向上させるために、 Raft Engineのデータを別のディスクに保存することをお勧めします。
  • デフォルト値: ""

batch-compression-threshold

  • ログバッチのしきい値サイズを指定します。この設定値より大きいログバッチは圧縮されます。この設定項目を0に設定すると、圧縮は無効になります。
  • デフォルト値: "8KiB"

bytes-per-sync

  • バッファリングされた書き込みの最大累積サイズを指定します。この設定値を超えると、バッファリングされた書き込みはディスクにフラッシュされます。
  • この構成項目を0に設定すると、増分同期は無効になります。
  • v6.5.0 より前では、デフォルト値は"4MiB"です。

target-file-size

  • ログファイルの最大サイズを指定します。ログファイルがこの値より大きい場合、ログファイルはローテーションされます。
  • デフォルト値: "128MiB"

purge-threshold

  • メインログキューのしきい値サイズを指定します。この設定値を超えると、メインログキューは消去されます。
  • この設定を使用して、 Raft Engineのディスク領域の使用量を調整できます。
  • デフォルト値: "10GiB"

recovery-mode

  • 回復中にファイルの破損を処理する方法を決定します。
  • "tolerate-any-corruption" "tolerate-tail-corruption"オプション: "absolute-consistency"
  • デフォルト値: "tolerate-tail-corruption"

recovery-read-block-size

  • リカバリ中にログ ファイルを読み取るための最小 I/O サイズ。
  • デフォルト値: "16KiB"
  • 最小値: "512B"

recovery-threads

  • ログ ファイルをスキャンして回復するために使用されるスレッドの数。
  • デフォルト値: 4
  • 最小値: 1

memory-limit

  • Raft Engineのメモリ使用量の制限を指定します。
  • この構成値が設定されていない場合、使用可能なシステムメモリの 15% が使用されます。
  • デフォルト値: Total machine memory * 15%

format-version v6.3.0 の新機能

注記:

format-version 2に設定した後、TiKV クラスターを v6.3.0 から以前のバージョンにダウングレードする必要がある場合は、ダウングレード前に次の手順を実行します。

  1. enablefalseに設定してRaft Engineを無効にし、TiKV を再起動して設定を有効にします。
  2. format-version1に設定します。
  3. enabletrueに設定してRaft Engineを有効にし、TiKV を再起動して設定を有効にします。
  • Raft Engineのログ ファイルのバージョンを指定します。
  • 値のオプション:
    • 1 : TiKV v6.3.0 より前のバージョンのデフォルトのログファイルバージョン。TiKV >= v6.1.0 で読み取ることができます。
    • 2 : ログのリサイクルをサポートします。TiKV >= v6.3.0 で読み取ることができます。
  • デフォルト値:
    • storage.engine="raft-kv"場合、デフォルト値は2です。
    • storage.engine="partitioned-raft-kv"場合、デフォルト値は5です。

enable-log-recycleバージョン6.3.0の新機能

注記:

この構成項目は、 format-version >= 2 の場合にのみ使用できます。

  • Raft Engineで古いログファイルをリサイクルするかどうかを指定します。有効にすると、論理的にパージされたログファイルがリサイクル用に予約されます。これにより、書き込みワークロードのロングテールレイテンシーが削減されます。
  • デフォルト値: true

prefill-for-recycle v7.0.0 の新機能

注記:

この構成項目は、 enable-log-recycle trueに設定されている場合にのみ有効になります。

  • Raft Engineのログリサイクル用に空のログファイルを生成するかどうかを決定します。有効にすると、 Raft Engineは初期化中にログリサイクル用の空のログファイルを自動的にバッチ処理し、初期化直後にログリサイクルが有効になります。
  • デフォルト値: false

compression-level v7.4.0 の新機能

  • Raft EngineがRaftログファイルを書き込む際に使用するLZ4アルゴリズムの圧縮効率を設定します。値が小さいほど圧縮速度は速くなりますが、圧縮率は低くなります。
  • 範囲: [1, 16]
  • デフォルト値: 1

安全

セキュリティに関するコンフィグレーション項目。

ca-path

  • CAファイルのパス
  • デフォルト値: ""

cert-path

  • X.509証明書を含むPrivacy Enhanced Mail(PEM)ファイルのパス
  • デフォルト値: ""

key-path

  • X.509キーを含むPEMファイルのパス
  • デフォルト値: ""

cert-allowed-cn

  • クライアントが提示する証明書で許容されるX.509共通名のリスト。提示された共通名がリスト内のエントリのいずれかと完全に一致する場合にのみ、リクエストが許可されます。
  • デフォルト値: [] 。これは、クライアント証明書の CN チェックがデフォルトで無効になっていることを意味します。

redact-info-log v4.0.8 の新機能

  • この設定項目は、ログ編集を有効または無効にします。設定値がtrueに設定されている場合、ログ内のすべてのユーザーデータは?に置き換えられます。
  • デフォルト値: false

セキュリティ.暗号化

保存時の暗号化 (TDE)に関連するコンフィグレーション項目。

data-encryption-method

  • データファイルの暗号化方法
  • 値のオプション: "plaintext""aes128-ctr""aes192-ctr""aes256-ctr"、および "sm4-ctr" (v6.3.0 以降でサポート)
  • 「プレーンテキスト」以外の値は暗号化が有効になっていることを意味し、その場合はマスター キーを指定する必要があります。
  • デフォルト値: "plaintext"

data-key-rotation-period

  • TiKV がデータ暗号化キーをローテーションする頻度を指定します。
  • デフォルト値: 7d

enable-file-dictionary-log

  • TiKV が暗号化メタデータを管理するときに、I/O とミューテックスの競合を減らすための最適化を有効にします。
  • この構成パラメータが有効になっている場合(デフォルト)に互換性の問題を回避するには、詳細については保存時の暗号化- TiKVバージョン間の互換性参照してください。
  • デフォルト値: true

master-key

previous-master-key

  • 新しいマスターキーをローテーションする際に使用する古いマスターキーを指定します。設定形式はmaster-keyと同じです。マスターキーの設定方法については、 保存時の暗号化- 暗号化の設定参照してください。

輸入

TiDB Lightning のインポートとBR復元に関連するコンフィグレーション項目。

num-threads

  • RPCリクエストを処理するスレッドの数
  • デフォルト値: 8
  • 最小値: 1

stream-channel-window

  • ストリームチャンネルのウィンドウサイズ。チャンネルがいっぱいになると、ストリームはブロックされます。
  • デフォルト値: 128

memory-use-ratio v6.5.0 の新機能

  • v6.5.0以降、PITRはメモリ内のバックアップログファイルへの直接アクセスとデータの復元をサポートします。この設定項目は、PITRに使用可能なメモリとTiKVの総メモリの比率を指定します。
  • 値の範囲: [0.0, 0.5]
  • デフォルト値: 0.3 。これは、システムメモリの30%がPITRに使用できることを意味します。値が0.0場合、PITRはログファイルをローカルディレクトリにダウンロードすることで実行されます。

注記:

v6.5.0 より前のバージョンでは、ポイントインタイムリカバリ (PITR) は、バックアップ ファイルをローカル ディレクトリにダウンロードすることによるデータの復元のみをサポートします。

GC

batch-keys

  • 1回のバッチでガベージコレクションされるキーの数
  • デフォルト値: 512

max-write-bytes-per-sec

  • GC ワーカーが 1 秒間に RocksDB に書き込むことができる最大バイト数。
  • 値が0に設定されている場合、制限はありません。
  • デフォルト値: "0"

enable-compaction-filter v5.0 の新機能

  • 圧縮フィルタ機能でGCを有効にするかどうかを制御します
  • デフォルト値: true

ratio-threshold

  • GC をトリガーするガベージ率のしきい値。
  • デフォルト値: 1.1

num-threads v6.5.8、v7.1.4、v7.5.1、v7.6.0 の新機能

  • enable-compaction-filter場合の GC スレッド数はfalseです。
  • デフォルト値: 1

バックアップ

BRバックアップに関連するコンフィグレーション項目。

num-threads

  • バックアップを処理するワーカースレッドの数
  • デフォルト値: MIN(CPU * 0.5, 8)
  • 値の範囲: [1, CPU]
  • 最小値: 1

batch-size

  • 1回のバッチでバックアップするデータ範囲の数
  • デフォルト値: 8

sst-max-size

  • バックアップSSTファイルサイズのしきい値。TiKVリージョン内のバックアップファイルのサイズがこのしきい値を超える場合、ファイルは複数のファイルにバックアップされ、TiKVリージョンは複数のリージョン範囲に分割されます。分割されたリージョン内の各ファイルのサイズは、 sst-max-sizeと同じ(またはわずかに大きい)です。
  • たとえば、リージョン[a,e)のバックアップ ファイルのサイズがsst-max-sizeより大きい場合、ファイルはリージョン[a,b) [c,d)複数のファイルにバックアップされ、 [d,e) [b,c)のサイズは[a,b) [b,c)と同じ (またはsst-max-sizeに大きい[c,d)になります。
  • デフォルト値: "144MiB"

enable-auto-tune v5.4.0 の新機能

  • クラスタリソースの使用率が高い場合に、クラスタへの影響を軽減するために、バックアップタスクで使用されるリソースを制限するかどうかを制御します。詳細については、 BRオートチューンを参照してください。
  • デフォルト値: true

s3-multi-part-sizeバージョン5.3.2の新機能

注記:

この設定は、S3 のレート制限によるバックアップ失敗に対処するために導入されました。この問題はバックアップデータのstorage構造の改善で修正されました。そのため、この設定はバージョン 6.1.1 以降では非推奨となり、推奨されなくなりました。

  • バックアップ中にS3へのマルチパートアップロードを実行する際に使用するパートサイズ。この設定値を調整することで、S3に送信されるリクエストの数を制御できます。
  • S3にデータをバックアップし、バックアップファイルがこの設定項目の値より大きい場合、 マルチパートアップロード自動的に有効になります。圧縮率に基づくと、96MiBのリージョンで生成されるバックアップファイルは約10MiB~30MiBになります。
  • デフォルト値: 5MiB

backup.hadoop

home

  • HDFSシェルコマンドの場所を指定し、TiKVがシェルコマンドを見つけられるようにします。この設定項目は環境変数$HADOOP_HOMEと同じ効果を持ちます。
  • デフォルト値: ""

linux-user

  • TiKV が HDFS シェル コマンドを実行する Linux ユーザーを指定します。
  • この構成項目が設定されていない場合、TiKV は現在の Linux ユーザーを使用します。
  • デフォルト値: ""

ログバックアップ

ログバックアップに関連するコンフィグレーション項目。

v6.2.0の新機能enable

  • ログ バックアップを有効にするかどうかを決定します。
  • デフォルト値: true

file-size-limit v6.2.0 の新機能

  • 保存されるバックアップ ログ データのサイズ制限。
  • デフォルト値: 256MiB
  • 注: 通常、値file-size-limitは外部storageに表示されるバックアップファイルのサイズよりも大きくなります。これは、バックアップファイルが外部storageにアップロードされる前に圧縮されるためです。

initial-scan-pending-memory-quota v6.2.0 の新機能

  • ログ バックアップ中に増分スキャン データを保存するために使用されるキャッシュのクォータ。
  • デフォルト値: min(Total machine memory * 10%, 512 MiB)

initial-scan-rate-limit v6.2.0 の新機能

  • ログバックアップ中の増分データスキャンにおけるスループットのレート制限。これは、ディスクから1秒あたりに読み取ることができるデータの最大量を意味します。数値のみ(例: 60 )を指定した場合、単位はKiBではなくByteになります。
  • デフォルト値: 60MiB
  • 最小値: 1MiB

max-flush-interval v6.2.0 の新機能

  • ログバックアップでバックアップデータを外部storageに書き込む最大間隔。
  • デフォルト値: 3分

num-threads v6.2.0 の新機能

  • ログ バックアップで使用されるスレッドの数。
  • デフォルト値: CPU * 0.5
  • 値の範囲: [2, 12]

temp-pathバージョン6.2.0の新機能

  • ログ ファイルが外部storageにフラッシュされる前に書き込まれる一時パス。
  • デフォルト値: ${deploy-dir}/data/log-backup-temp

CDC

TiCDC に関連するコンフィグレーション項目。

min-ts-interval

  • 解決された TS が計算され転送される間隔。
  • デフォルト値: "1s"

注記:

バージョン6.5.0では、CDCレイテンシーを削減するため、デフォルト値のmin-ts-interval"1s"から"200ms"に変更されました。バージョン6.5.1以降では、ネットワークトラフィックを削減するため、このデフォルト値は"1s"に戻されます。

old-value-cache-memory-quota

  • TiCDC によるメモリ使用量の上限の古い値。
  • デフォルト値: 512MiB

sink-memory-quota

  • TiCDC データ変更イベントによるメモリ使用量の上限。
  • デフォルト値: 512MiB

incremental-scan-speed-limit

  • 履歴データが増分スキャンされる最大速度。
  • デフォルト値: "128MiB" 、これは 1 秒あたり 128 MiB を意味します。

incremental-scan-threads

  • 履歴データを増分スキャンするタスクのスレッド数。
  • デフォルト値: 4 、つまり 4 つのスレッドを意味します。

incremental-scan-concurrency

  • 履歴データを増分スキャンするタスクの同時実行の最大数。
  • デフォルト値: 6 。最大 6 つのタスクを同時に実行できることを意味します。
  • 注意: incremental-scan-concurrencyの値はincremental-scan-threadsの値以上である必要があります。そうでない場合、TiKV は起動時にエラーを報告します。

incremental-scan-concurrency-limit v7.6.0 の新機能

  • 実行待ちの履歴データの増分スキャンタスクの最大キュー長。実行待ちのタスク数がこの制限を超えると、新しいタスクは拒否されます。
  • デフォルト値: 10000 。これは、最大 10000 個のタスクを実行キューに入れることができることを意味します。
  • 注意: incremental-scan-concurrency-limit incremental-scan-concurrencyである必要があります。そうでない場合、TiKV はincremental-scan-concurrency使用してこの構成を上書きします。

resolved-ts

ステイル読み取り要求に対応するために解決済みの TS を維持することに関連するコンフィグレーション項目。

enable

  • すべてのリージョンの解決済み TS を維持するかどうかを決定します。
  • デフォルト値: true

advance-ts-interval

  • 解決された TS が計算され転送される間隔。
  • デフォルト値: "20s"

scan-lock-pool-size

  • 解決済み TS を初期化するときに TiKV が MVCC (マルチバージョン同時実行制御) ロック データをスキャンするために使用するスレッドの数。
  • デフォルト値: 2 、つまり 2 つのスレッドを意味します。

pessimistic-txn

悲観的トランザクションの使用については、 TiDB 悲観的トランザクションモードを参照してください。

wait-for-lock-timeout

  • TiKVにおける悲観的トランザクションが、他のトランザクションによるロックの解放を待機する最長時間。タイムアウトが発生した場合、TiDBにエラーが返され、TiDBはロックの追加を再試行します。ロック待機タイムアウトはinnodb_lock_wait_timeoutに設定されます。
  • デフォルト値: "1s"
  • 最小値: "1ms"

wake-up-delay-duration

  • 悲観的トランザクションがロックを解除すると、ロックを待機しているすべてのトランザクションのうち、最小のstart_ts持つトランザクションのみが起動されます。他のトランザクションはwake-up-delay-duration後に起動されます。
  • デフォルト値: "20ms"

pipelined

  • この設定項目は、悲観的ロックの追加をパイプライン処理で実行できるようにします。この機能を有効にすると、TiKVはデータがロック可能であることを検出すると、直ちにTiDBに後続のリクエストの実行と悲観的ロックの非同期書き込みを通知します。これにより、レイテンシーが大幅に削減され、悲観的トランザクションのパフォーマンスが大幅に向上します。ただし、悲観的ロックの非同期書き込みが失敗する可能性は依然として低く、悲観的トランザクションのコミットが失敗する可能性があります。
  • デフォルト値: true

in-memory v6.0.0 の新機能

  • インメモリ悲観的ロック機能を有効にします。この機能を有効にすると、悲観的トランザクションは、ロックをディスクに書き込んだり、他のレプリカに複製したりするのではなく、メモリ内にロックを保存しようとします。これにより、悲観的トランザクションのパフォーマンスが向上します。ただし、悲観的ロックが失われ、悲観的トランザクションのコミットが失敗する可能性は依然として低くなります。
  • デフォルト値: true
  • in-memory pipelinedの値がtrue場合にのみ有効になることに注意してください。

クォータ

クォータリミッターに関連するコンフィグレーション項目。

max-delay-duration v6.0.0 の新機能

  • 単一の読み取りまたは書き込み要求がフォアグラウンドで処理されるまでに強制的に待機する最大時間。
  • デフォルト値: 500ms
  • 推奨設定:ほとんどの場合、デフォルト値を使用することをお勧めします。インスタンスでメモリ不足(OOM)やパフォーマンスの急激な変動が発生する場合は、値を1秒に設定することで、リクエストの待機時間を1秒未満に短縮できます。

フォアグラウンドクォータリミッター

フォアグラウンド クォータ リミッターに関連するコンフィグレーション項目。

TiKV がデプロイされているマシンのリソースが限られている場合(たとえば、CPU が 4v でメモリが 16 G しかない場合)を考えてみましょう。このような状況では、TiKV のフォアグラウンドで処理される読み取りおよび書き込み要求が多すぎる可能性があり、バックグラウンドで使用される CPU リソースがそのような要求の処理に占有され、TiKV のパフォーマンスの安定性に影響を及ぼします。この状況を回避するには、フォアグラウンド クォータ関連の設定項目を使用して、フォアグラウンドで使用される CPU リソースを制限できます。要求によって Quota Limiter がトリガーされると、その要求は TiKV が CPU リソースを解放するまでしばらく待機する必要があります。正確な待機時間は要求の数によって決まり、最大待機時間はmax-delay-durationの値以下になります。

foreground-cpu-time v6.0.0 の新機能

  • 読み取りおよび書き込み要求を処理するために TiKV フォアグラウンドで使用される CPU リソースのソフト制限。
  • デフォルト値: 0 (制限なしを意味します)
  • 単位: millicpu (たとえば、 1500フォアグラウンド要求が 1.5v CPU を消費することを意味します)
  • 推奨設定:4コア以上のインスタンスの場合は、デフォルト値の0使用します。4コアのインスタンスの場合は、 10001500範囲で設定するとバランスが取れます。2コアのインスタンスの場合は、 1200未満の値にしてください。

foreground-write-bandwidth v6.0.0 の新機能

  • トランザクションがデータを書き込む帯域幅のソフト制限。
  • デフォルト値: 0KiB (制限なしを意味します)
  • 推奨設定:ほとんどの場合、デフォルト値の0使用します。ただし、 foreground-cpu-time設定では書き込み帯域幅を制限するのに十分でない場合は、例外的に、コア数が4以下のインスタンスでは50MiB未満の値を設定することをお勧めします。

foreground-read-bandwidth v6.0.0 の新機能

  • トランザクションとコプロセッサーがデータを読み取る帯域幅のソフト制限。
  • デフォルト値: 0KiB (制限なしを意味します)
  • 推奨設定:ほとんどの場合、デフォルト値の0使用します。ただし、 foreground-cpu-time設定では読み取り帯域幅を制限するのに十分でない場合は、例外的に、コア数が4以下のインスタンスでは20MiB未満の値を設定することをお勧めします。

バックグラウンドクォータリミッター

バックグラウンド クォータ リミッターに関連するコンフィグレーション項目。

TiKV がデプロイされているマシンのリソースが限られている場合、たとえば、4v CPU と 16 Gメモリしかないとします。このような状況では、TiKV のバックグラウンドで過剰な計算や読み取り/書き込み要求が処理され、フォアグラウンドで使用される CPU リソースがそのような要求の処理に占有され、TiKV のパフォーマンスの安定性に影響する可能性があります。この状況を回避するには、バックグラウンド クォータ関連の設定項目を使用して、バックグラウンドで使用される CPU リソースを制限できます。要求が Quota Limiter をトリガーすると、その要求は TiKV が CPU リソースを解放するまでしばらく待機する必要があります。正確な待機時間は要求の数によって異なり、最大待機時間はmax-delay-durationの値以下になります。

background-cpu-time v6.2.0 の新機能

  • 読み取りおよび書き込み要求を処理するために TiKV バックグラウンドで使用される CPU リソースのソフト制限。
  • デフォルト値: 0 (制限なしを意味します)
  • 単位: millicpu (たとえば、 1500バックグラウンド リクエストが 1.5v CPU を消費することを意味します)

background-write-bandwidth v6.2.0 の新機能

注記:

この設定項目はSHOW CONFIG結果として返されますが、現在設定しても効果はありません。

  • バックグラウンド トランザクションがデータを書き込む帯域幅のソフト制限。
  • デフォルト値: 0KiB (制限なしを意味します)

background-read-bandwidth v6.2.0 の新機能

注記:

この設定項目はSHOW CONFIG結果として返されますが、現在設定しても効果はありません。

  • バックグラウンド トランザクションとコプロセッサーがデータを読み取る帯域幅のソフト制限。
  • デフォルト値: 0KiB (制限なしを意味します)

enable-auto-tune v6.2.0 の新機能

  • クォータの自動調整を有効にするかどうかを決定します。この設定項目を有効にすると、TiKVはTiKVインスタンスの負荷に基づいて、バックグラウンドリクエストのクォータを動的に調整します。
  • デフォルト値: false (自動調整が無効であることを意味します)

causal-ts v6.1.0 の新機能

TiKV API V2が有効な場合にタイムスタンプの取得に関連するコンフィグレーション項目( storage.api-version = 2 )。

書き込みレイテンシーを削減するため、TiKVは定期的にタイムスタンプのバッチを取得し、ローカルにキャッシュします。キャッシュされたタイムスタンプは、PDへの頻繁なアクセスを回避し、TSOサービスの短期的な障害を許容するのに役立ちます。

alloc-ahead-buffer v6.4.0 の新機能

  • 事前に割り当てられた TSO キャッシュ サイズ (期間内)。
  • TiKV がこの設定項目で指定された期間に基づいて TSO キャッシュを事前割り当てすることを示します。TiKV は前回の期間に基づいて TSO の使用量を推定し、 alloc-ahead-buffer満たす TSO をローカルに要求してキャッシュします。
  • この設定項目は、TiKV API V2が有効になっている場合にPD障害に対する許容度を高めるためによく使用されます( storage.api-version = 2 )。
  • この設定項目の値を大きくすると、TSO消費量とTiKVのメモリオーバーヘッドが増加する可能性があります。十分なTSOを確保するには、PDのtso-update-physical-interval設定項目を減らすことをお勧めします。
  • テストによると、デフォルト値がalloc-ahead-buffer場合、PD リーダーが失敗して別のノードに切り替わると、書き込み要求のレイテンシーが短期的に増加し、QPS が減少 (約 15%) します。
  • 業務への影響を回避するには、PD でtso-update-physical-interval = "1ms"設定し、TiKV で次の設定項目を設定します。
    • causal-ts.alloc-ahead-buffer = "6s"
    • causal-ts.renew-batch-max-size = 65536
    • causal-ts.renew-batch-min-size = 2048
  • デフォルト値: 3s

renew-interval

  • ローカルにキャッシュされたタイムスタンプが更新される間隔。
  • renew-interval間隔で、TiKV はタイムスタンプの一括更新を開始し、前期間のタイムスタンプ消費量とalloc-ahead-bufferの設定に応じて、キャッシュされたタイムスタンプの数を調整します。このパラメータを大きすぎる値に設定すると、最新の TiKV ワークロードの変更が時間内に反映されません。このパラメータを小さすぎる値に設定すると、PD の負荷が増加します。書き込みトラフィックの変動が激しい場合、タイムスタンプが頻繁に枯渇する場合、および書き込みレイテンシーが増加する場合は、このパラメータを小さい値に設定できます。同時に、PD の負荷も考慮する必要があります。
  • デフォルト値: "100ms"

renew-batch-min-size

  • タイムスタンプ要求内の TSO の最小数。
  • TiKVは、前期間のタイムスタンプ消費量に応じて、キャッシュされるタイムスタンプの数を調整します。必要なTSOが少数の場合、TiKVは要求されるTSOの数をrenew-batch-min-size達するまで減らします。アプリケーションで大規模なバースト書き込みトラフィックが頻繁に発生する場合は、必要に応じてこのパラメータを大きく設定できます。このパラメータは、単一のtikvサーバーのキャッシュサイズであることに注意してください。パラメータを大きすぎる値に設定し、クラスターに多数のtikvサーバーが含まれている場合、TSOの消費が急激に増加します。
  • GrafanaのTiKV-RAW > Causal timestampパネルでは、 TSOバッチサイズは、アプリケーションのワークロードに応じて動的に調整された、ローカルにキャッシュされたタイムスタンプの数です。このメトリックを参照してrenew-batch-min-size調整できます。
  • デフォルト値: 100

renew-batch-max-size v6.4.0 の新機能

  • タイムスタンプ要求内の TSO の最大数。
  • デフォルトのTSO物理時間更新間隔( 50ms )では、PDは最大262144個のTSOを提供します。要求されたTSOがこの数を超えると、PDはそれ以上のTSOを提供しなくなります。この設定項目は、TSOの枯渇と、TSO枯渇が他の業務に及ぼす悪影響を回避するために使用されます。高可用性を向上させるためにこの設定項目の値を増やす場合は、十分なTSOを確保するために、同時にtso-update-physical-intervalの値を減らす必要があります。
  • デフォルト値: 8192

リソース管理

TiKVstorageレイヤーのリソース制御に関するコンフィグレーション項目。

enabled v6.6.0 の新機能

  • 対応するリソースグループのいずれかリクエストユニット(RU)に基づいて、ユーザーのフォアグラウンド読み取り/書き込み要求のスケジュールを有効にするかどうかを制御します。TiDBリソースグループとリソース制御の詳細については、 TiDB リソース制御参照してください。
  • この設定項目を有効にすると、TiDB で`tidb_enable_resource_control有効になっている場合にのみ機能します。この設定項目を有効にすると、TiKV は優先度キューを使用して、フォアグラウンドユーザーからのキューに入れられた読み取り/書き込み要求をスケジュールします。要求のスケジュール優先度は、その要求を受信するリソースグループが既に消費しているリソース量に反比例し、対応するリソースグループのクォータに正比例します。
  • デフォルト値: true 。リソース グループの RU に基づくスケジュールが有効であることを意味します。

スプリット

ロードベーススプリットに関連するコンフィグレーション項目です。

byte-threshold v5.0 の新機能

  • リージョンがホットスポットとして識別されるトラフィックしきい値を制御します。

  • デフォルト値:

qps-threshold

  • リージョンがホットスポットとして識別される QPS しきい値を制御します。

  • デフォルト値:

region-cpu-overload-threshold-ratio v6.2.0の新機能

  • リージョンがホットスポットとして識別される CPU 使用率のしきい値を制御します。

  • デフォルト値:

メモリv7.5.0 の新機能

enable-heap-profiling v7.5.0 の新機能

  • TiKV のメモリ使用量を追跡するためにヒープ プロファイリングを有効にするかどうかを制御します。
  • デフォルト値: true

profiling-sample-per-bytes v7.5.0 の新機能

  • ヒープ プロファイリングによって毎回サンプリングされるデータの量を、最も近い 2 の累乗に切り上げて指定します。
  • デフォルト値: 512KiB

enable-thread-exclusive-arena v8.1.0 の新機能

  • 各 TiKV スレッドのメモリ使用量を追跡するために、TiKV スレッド レベルでメモリ割り当てステータスを表示するかどうかを制御します。
  • デフォルト値: true

このページは役に立ちましたか?