TiKVの概要

TiKV は分散型のトランザクション キー値データベースであり、 ACID準拠のトランザクション API を提供します。 RocksDB に格納されたRaftコンセンサスアルゴリズムおよびコンセンサス状態の実装により、TiKV は複数のレプリカ間のデータの一貫性と高可用性を保証します。 TiDB 分散データベースのストレージレイヤーとして、TiKV は読み取りおよび書き込みサービスを提供し、アプリケーションから書き込まれたデータを永続化します。また、TiDB クラスターの統計データも格納します。

アーキテクチャの概要

TiKV は、Google Spanner の設計に基づいて、マルチラフト グループ レプリカ メカニズムを実装します。リージョンは、キーと値のデータ移動の基本単位であり、ストア内のデータ範囲を参照します。各リージョンは複数のノードに複製されます。これらの複数のレプリカがRaftグループを形成します。リージョンのレプリカはピアと呼ばれます。通常、 リージョンには 3 つのピアがあります。それらの 1 つはリーダーであり、読み取りおよび書き込みサービスを提供します。 PD コンポーネントは、すべてのリージョンのバランスを自動的に調整して、TiKV クラスター内のすべてのノード間で読み取りと書き込みのスループットのバランスがとれるようにします。 PD と慎重に設計されたRaftグループにより、TiKV は水平方向のスケーラビリティに優れ、100 TB を超えるデータを格納するように簡単に拡張できます。

TiKV Architecture

リージョンと RocksDB

各ストア内には RocksDB データベースがあり、データはローカル ディスクに保存されます。すべてのリージョンデータは、各ストアの同じ RocksDB インスタンスに保存されます。 Raftコンセンサス アルゴリズムに使用されるすべてのログは、各 Store の別の RocksDB インスタンスに保存されます。これは、シーケンシャル I/O のパフォーマンスがランダム I/O よりも優れているためです。 raft ログとリージョンデータを格納するさまざまな RocksDB インスタンスを使用して、TiKV は raft ログと TiKV リージョンのすべてのデータ書き込み操作を 1 つの I/O 操作に結合して、パフォーマンスを向上させます。

リージョンとRaftのコンセンサスアルゴリズム

リージョンのレプリカ間のデータの一貫性は、 Raftコンセンサス アルゴリズムによって保証されます。 リージョンのリーダーのみが書き込みサービスを提供でき、データがリージョンの大部分のレプリカに書き込まれた場合にのみ、書き込み操作が成功します。

リージョンのサイズがしきい値 (デフォルトでは 144 MB) を超えると、TiKV はリージョンを 2 つ以上のリージョンに分割します。この操作により、クラスター内のすべてのリージョンのサイズがほぼ同じになることが保証され、PD コンポーネントが TiKV クラスター内のノード間でリージョンのバランスを取るのに役立ちます。 リージョンのサイズがしきい値よりも小さい場合、TiKV は 2 つの小さい隣接する Region を 1 つのリージョンにマージします。

PD がレプリカを 1 つの TiKV ノードから別のノードに移動する場合、まずターゲット ノードに学習者レプリカを追加します。学習者レプリカのデータがリーダー レプリカのデータとほぼ同じになった後、PD はそれをフォロワー レプリカに変更し、削除します。ソース ノードのフォロワー レプリカ。

あるノードから別のノードへのリーダー レプリカの移動には、同様のメカニズムがあります。違いは、ラーナー レプリカがフォロワー レプリカになった後、フォロワー レプリカが自身をリーダーとして選択するための選択を積極的に提案する「リーダー転送」操作があることです。最後に、新しいリーダーはソース ノードの古いリーダー レプリカを削除します。

分散トランザクション

TiKV は分散トランザクションをサポートしています。ユーザー (または TiDB) は、同じリージョンに属しているかどうかを気にすることなく、複数のキーと値のペアを書き込むことができます。 TiKV は 2 フェーズ コミットを使用してACID制約を実現します。詳細はTiDB 楽観的トランザクション モデルを参照してください。

TiKV コプロセッサー

TiDB は、一部のデータ計算ロジックを TiKV Coprocessor にプッシュします。 TiKV Coprocessor は、各リージョンの計算を処理します。 TiKV Coprocessor に送信される各リクエストには、1 つのリージョンのデータのみが含まれます。

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.