仕切られたRaftKV
v6.6.0 より前は、TiKV の Raft ベースのstorageエンジンは単一の RocksDB インスタンスを使用して、TiKV インスタンスのすべてのリージョンのデータを保存していました。
大規模なクラスターをより安定してサポートするために、TiDB v6.6.0 以降では、複数の RocksDB インスタンスを使用して TiKVリージョンデータを保存する新しい TiKVstorageエンジンが導入され、各リージョンのデータは個別の RocksDB インスタンスに個別に保存されます。
新しいエンジンは、各 RocksDB インスタンス内のファイルの数とレベルをより適切に制御し、リージョン間のデータ操作の物理的な分離を実現し、より多くのデータの安定した管理をサポートします。これは、パーティショニングを通じて複数の RocksDB インスタンスを管理する TiKV として見ることができます。そのため、この機能は Partitioned Raft KV と呼ばれています。
アプリケーションシナリオ
TiKV クラスターに次の特性がある場合、この機能を使用できます。
- 単一の TiKV インスタンスは、より多くのデータをサポートする必要があります。
 - 書き込みリクエストが多いです。
 - スケールインおよびスケールアウト操作は頻繁に行われます。
 - ワークロードの読み取りおよび書き込みが大幅に増加します。
 - TiKV には十分なメモリがあります。
 
この機能の利点は、書き込みパフォーマンスの向上、スケーリング速度の高速化、および同じハードウェアでサポートされるデータ量の増加です。より大きなクラスター規模もサポートできます。
使用法
Partitioned Raft KV を有効にするには、クラスター作成時に構成項目storage.engine ~ "partitioned-raft-kv"を設定します。同時に、構成項目rocksdb.write-buffer-flush-oldest-firstとrocksdb.write-buffer-limitを使用して、 Raft KV を使用するときに RocksDB のメモリ使用量を制御できます。
制限
パーティション化されたRaft KV には次の制限があります。
- EBS ボリューム スナップショット バックアップはまだサポートされていません。
 - オンラインの安全でない復元や Titan はまだサポートされていません。
 - tikv-ctl コマンドライン ツールはまだサポートされていません。
 - TiFlashにはまだ対応していません。
 - クラスターの初期化後は、この機能を有効または無効にすることはできません。