用語集
A
酸
ACIDは、トランザクションの4つの主要なプロパティである、アトミック性、一貫性、分離、および耐久性を指します。これらの各プロパティについて、以下で説明します。
原子性とは、操作のすべての変更が実行されるか、実行されないことを意味します。 TiDBは、トランザクションの原子性を実現するために、主キーを格納する領域の原子性を保証します。
一貫性とは、トランザクションが常にデータベースをある一貫性のある状態から別の状態に移行することを意味します。 TiDBでは、データをメモリに書き込む前にデータの整合性が確保されます。
分離とは、処理中のトランザクションが完了するまで他のトランザクションから見えないことを意味します。これにより、同時トランザクションは一貫性を犠牲にすることなくデータの読み取りと書き込みを行うことができます。 TiDBは現在、分離レベル
REPEATABLE READ
をサポートしています。耐久性とは、トランザクションがコミットされると、システム障害が発生した場合でもコミットされたままになることを意味します。 TiKVは永続ストレージを使用して耐久性を確保します。
C
継続的なプロファイリング
TiDB 5.3.0で導入された継続的プロファイリングは、システムコールレベルでリソースのオーバーヘッドを監視する方法です。継続的プロファイリングのサポートにより、TiDBは、データベースのソースコードを直接調べるのと同じくらい明確なパフォーマンスの洞察を提供し、研究開発および運用および保守担当者がフレームグラフを使用してパフォーマンスの問題の根本原因を特定するのに役立ちます。詳細については、 TiDBダッシュボードインスタンスプロファイリング-継続的なプロファイリングを参照してください。
私
インデックスマージ
インデックスマージは、テーブルにアクセスするためにTiDBv4.0で導入されたメソッドです。このメソッドを使用すると、TiDBオプティマイザーはテーブルごとに複数のインデックスを使用し、各インデックスによって返された結果をマージできます。一部のシナリオでは、このメソッドは全表スキャンを回避することでクエリをより効率的にします。 v5.4以降、インデックスマージはGA機能になりました。
L
リーダー/フォロワー/学習者
リーダー/フォロワー/学習者はそれぞれ、 仲間のラフトグループの役割に対応します。リーダーはすべてのクライアント要求を処理し、フォロワーにデータを複製します。グループリーダーが失敗した場合、フォロワーの1人が新しいリーダーとして選出されます。学習者は投票権のないフォロワーであり、レプリカの追加プロセスでのみ機能します。
O
古い値
TiCDCによって出力された増分変更ログの「元の値」。 TiCDCによって出力される増分変更ログに「元の値」が含まれるかどうかを指定できます。
オペレーター
オペレーターは、スケジューリングの目的でリージョンに適用されるアクションのコレクションです。オペレーターは、「リージョン2のリーダーをストア5に移行する」、「リージョン2のレプリカをストア1、4、5に移行する」などのスケジューリングタスクを実行します。
演算子は、 スケジューラーで計算および生成することも、外部APIで作成することもできます。
オペレーターステップ
オペレーターステップは、オペレーターの実行におけるステップです。通常、オペレーターには複数のオペレーターステップが含まれます。
現在、PDによって生成される利用可能なステップは次のとおりです。
TransferLeader
:指定されたメンバーにリーダーシップを移しますAddPeer
:指定されたストアにピアを追加しますRemovePeer
:リージョンのピアを削除しますAddLearner
:指定したストアに学習者を追加しますPromoteLearner
:指定された学習者を投票メンバーに昇格させますSplitRegion
:指定したリージョンを2つに分割します
P
保留中/ダウン
「保留中」と「ダウン」は、ピアの2つの特別な状態です。保留中は、フォロワーまたは学習者のRaftログがリーダーのそれとは大きく異なることを示します。保留中のフォロワーをリーダーとして選出することはできません。 「ダウン」とは、ピアがリーダーへの応答を長時間停止する状態を指します。これは通常、対応するノードがダウンしているか、ネットワークから分離されていることを意味します。
述語列
ほとんどの場合、SQLステートメントを実行するとき、オプティマイザーは一部の列( WHERE
、およびJOIN
GROUP BY
の列など)の統計のみを使用しORDER BY
。これらの使用される列は、述語列と呼ばれます。詳細については、 一部の列の統計を収集するを参照してください。
R
Raft Engine
Raft Engineは、ログ構造設計の組み込み永続ストレージエンジンです。これは、TiKVがマルチラフトログを保存するために構築されています。 v5.4以降、TiDBはログストレージエンジンとしてRaft Engineの使用をサポートしています(実験的機能、デフォルトでは無効になっています)。詳細については、 Raft Engineを参照してください。
地域/ピア/いかだグループ
リージョンは、TiKVの最小のデータストレージであり、それぞれがデータの範囲(デフォルトでは96 MiB)を表します。各リージョンには、デフォルトで3つのレプリカがあります。リージョンのレプリカはピアと呼ばれます。同じリージョンの複数のピアは、Raftコンセンサスアルゴリズムを介してデータを複製するため、ピアはRaftインスタンスのメンバーでもあります。 TiKVはマルチラフトを使用してデータを管理します。つまり、リージョンごとに、対応する孤立したRaftグループがあります。
リージョン分割
リージョンは、データの書き込みが増えるにつれて生成されます。分割のプロセスは、リージョン分割と呼ばれます。
リージョン分割のメカニズムは、1つの初期リージョンを使用してキースペース全体をカバーし、リージョンのサイズまたはキーの数がしきい値に達するたびに既存のリージョンを分割して新しいリージョンを生成することです。
戻す
復元は、バックアップ操作の逆です。これは、準備されたバックアップからデータを取得することにより、システムを以前の状態に戻すプロセスです。
S
スケジューラー
スケジューラは、スケジューリングタスクを生成するPDのコンポーネントです。 PDの各スケジューラーは独立して実行され、さまざまな目的を果たします。一般的に使用されるスケジューラーは次のとおりです。
balance-leader-scheduler
:リーダーの分布のバランスをとるbalance-region-scheduler
:ピアの分散のバランスを取りますhot-region-scheduler
:暑い地域の分布のバランスをとるevict-leader-{store-id}
:ノードのすべてのリーダーを削除します(多くの場合、ローリングアップグレードに使用されます)
店
ストアとは、TiKVクラスタのストレージノード( tikv-server
のインスタンス)を指します。各ストアには、対応するTiKVインスタンスがあります。
T
Top SQL
Top SQLは、v5.4で導入された実験的機能です。これは、指定された時間範囲でTiDBまたはTiKVノードの高負荷に寄与するSQLクエリを見つけるのに役立ちます。詳細については、 Top SQLユーザードキュメントを参照してください。
TSO
TiKVは分散ストレージシステムであるため、単調に増加するタイムスタンプを割り当てるには、グローバルタイミングサービスであるTimestamp Oracle(TSO)が必要です。 TiKVでは、このような機能はPDによって提供され、Google スパナでは、この機能は複数の原子時計とGPSによって提供されます。