TiDB User Day 2025 | 10月3日(金) 10:00〜17:00 開催!登録する
Scaling Metadata Management

※このブログは2025年6月5日に公開された英語ブログ 「Scaling Metadata Management: Innovations in TiDB’s Placement Driver」 の拙訳です。

TiDB がより大規模環境での運用に対応するようになるにつれて、メタデータ管理の中核であるPlacement Driver (PD) も、増大する需要に対応するために進化する必要があります。本ブログでは、スケーラビリティのボトルネック、安定性のリスク、ストレージの制約といったPDの課題に対して、TiDBがどのように対処しているかを解説します。

本ブログでは、以下の内容を取り上げます:

  • モジュールの分離とスケーラビリティを実現するための、マイクロサービスアーキテクチャへの移行。
  • メタデータ管理の効率化を目指した、Active Followers や現在計画中の Router Service といった技術革新。
  • 高可用性と安定性を確保するためのガバナンス戦略。

大規模環境での最適化に取り組んでいる方も、TiDBのアーキテクチャに関心がある方も、本記事ではPD (Placement Driver) が現代の分散型ワークロードに対応するためにどのように進化しているかをご紹介します。それでは、詳しく見ていきましょう!

Placement Driver (PD) とは?

Placement Driver (PD) は、TiDBの頭脳として、メタデータの管理、ワークロードのバランス調整、そして分散システム間の一貫性の維持を担っています。主な役割は以下の通りです:

  • TiKVノード間におけるデータの分布に関するリアルタイムのメタデータを管理する。
  • TiDBクラスタのトポロジ (構成情報) の管理
  • 単調増加するタイムスタンプをグローバルに割り当てる。
  • 各ノード間の負荷と容量のバランス調整

PDは、TiDBの分散アーキテクチャにおける円滑な運用と調整を確実なものにします。

TiDB's placement driver (PD) architecture.
図1. TiDBの分散アーキテクチャの構成概要

TiDBのメタデータ管理コントローラーの内部構造

PD (Placement Driver) の機能は、いくつかの専門的なモジュールに分散されています。それぞれのモジュールは、目的に応じて最適化されています。

主な PD モジュール

図2. 特定のタスクごとに分散された TiDBのPD機能の構成

タイムスタンプオラクル (TSO) モジュール (高優先度・高QPS):

  • トランザクションの整合性を保つために、単調増加するグローバルなタイムスタンプを割り当てます。
  • TiDBのトランザクションモデルにおいて重要な役割を担っているため、強力なリーダーによる運用が必要です。

スケジューリングモジュール (バックグラウンドタスク):

  • TiKVノード間でリージョンのスケジューリングを行い、ワークロードの分散を管理します。
  • 強力なリーダーを必要とせずに動作しますが、大規模クラスタではオペレーター実行時にボトルネックが発生することがあります。

ルーターモジュール (高優先度・高QPS):

  • リージョンの追加、更新、削除などのメタデータ操作を担当します。
  • 強力なリーダーモデルによるスケーラビリティの制約を克服するために、最適化が必要です。
  • 以下の2種類のハートビートを処理します:
    • リージョンメタデータ:DDLやDML操作に不可欠な高優先度データ
    • リージョン統計情報:スケジューリングサービスがオペレーター生成に利用する低優先度データ

イノベーションの機会

TiDBはこれらの課題に対して、以下のような革新的な取り組みを進めています:

  • リソースの分離:モジュールの切り離しにより、優先度の異なるタスク間の干渉を防ぎます。
  • 柔軟なスケーリング:メタデータ管理のようなQPSの高いタスクの強いリーダーモデルへの依存を低減します。
  • フォロワー活用:読み取り負荷の高いタスクにPDのフォロワーノードを活用することで、すでに最大4.5倍の性能向上を実現しています。

スケーラビリティ向上のための Placement Driver サービスの分離

これらの制約を克服するために、TiDB は PD をマイクロサービスアーキテクチャへと移行しました。これにより、主要なモジュールを独立したサービスとして分離し、より高いスケーラビリティと信頼性を実現しています。

主なPlacement Driver マイクロサービス

図3. スケーラビリティ向上を実現するTiDBの新しいPDアーキテクチャ

TSO サービス:

  • TiDB 8.0以降、独立したサービスとして稼働し、干渉なく高スループットを実現しています。

スケジューリングサービス:

  • TiDB 8.0で分離され、スケジューリングを独立して処理。多少の遅延を許容しながらも、重要なタスクを妨げることはありません。

ルーターサービス (計画中):

  • ルーターモジュールはステートレスなサービスに移行し、高QPSのメタデータ操作を並列処理することでボトルネックを解消します。
ルーターサービスにおけるハートビート最適化
  • 専用のメタデータアクセス:計画されているルーターサービスはメタデータを独立して処理し、ハートビートが重要なタスクを圧迫するのを防ぎます。
  • 統計更新の分離:リージョン統計の更新は別に処理し、メタデータ操作への影響を最小限に抑えます。

サービス分離による成果

  • 安定性:タイムスタンプ割り当てなどの重要なタスクがバックグラウンドジョブの影響を受けません。
  • 効率性:各サービスがそれぞれのワークロードに最適化できます。

レジリエントでスケーラブルなメタデータ管理コントローラーの構築

TiDBはPDのマイクロサービスアーキテクチャを支えるために、以下のガバナンス戦略を導入しています。

  • インフラの更新:サービスレジストリ、ディスカバリー、ノードバランサー、APIゲートウェイによって運用が効率化されています。
  • 安定性の向上:レートリミッター、サーキットブレーカー、最適化されたリトライ戦略により、負荷の高い状況下でも信頼性の高いパフォーマンスを実現しています。

TiDBがPDをマイクロサービスアーキテクチャに移行するのに伴い、サービスガバナンスも進化し、レジリエンス、高可用性 (HA)、安定性を強化しています。これらのアップデートは、ステートレスおよびステートフルコンポーネントの双方のニーズに対応しつつ、PDを最新のワークロードに対応可能なものにしています。

高可用性の強化

  • ステートレスサービス:マイクロサービス化によりフェイルオーバーやリカバリーが簡素化され、障害発生時の迅速な対応が可能です。
  • ステートフルコンポーネント:ステートレスサービスが合理化されたことで、負荷の高いワークロード下でもステートフルモジュールのHAが確保され、信頼性を維持できるようになりました。

主なインフラストラクチャの更新

マイクロサービスモデルを支えるために、TiDBは以下の重要コンポーネントを導入しています。

  • サービスレジストリとディスカバリー:クラスタ内のサービス管理と連携を自動化します。
  • ノードバランサー:Active Followersおよびステートレスサービス間でワークロードを分散し、パフォーマンスを最適化します。
  • APIゲートウェイ:安全かつ効率的な通信のためにトラフィック制御を集中管理します。
  • 強化されたPDクライアント:新しいツールとのシームレスな統合を実現する統一インターフェースを提供します。

安定性の強化

新たな安定化策により、PDは負荷の高い状況でも安定して動作します。

  • レートリミッター:受信リクエストの負荷を制御
  • サーキットブレーカー:連鎖的な障害の発生を防止
  • タイムアウトとリトライの最適化:一時的な問題からの回復を効率化

よりスマートでスケーラブルなPD

これらの管理機構の更新により、PDは堅牢かつ効率的に動作し、大規模なワークロードの要求に対応可能となります。マイクロサービスの柔軟性と高可用性・安定性の強化を組み合わせることで、TiDBはPDを未来に対応したメタデータ管理ソリューションとして位置づけています。

PDのスケーラビリティの向上:メタデータ管理における強力なリーダーの役割

分散システム全体で一貫したタイムスタンプを保証するTSOサービスは、集中管理された時刻管理のために強力なリーダーに依存しています。しかし、スケジューリングサービス、ルーターサービス、アドミンコントロールサービスのようなモジュールは、必ずしも強力なリーダーを必要としません。
これまで、すべてのPDモジュールは強力なリーダーモデルの下で動作しており、そのため水平方向のスケーラビリティが制限され、効率の低下を招いていました。

アクティブフォロワー

PDはアクティブフォロワーを導入し、フォロワーノードがメタデータの読み書きを処理できるようにすることで、リーダーノードの負荷を大幅に軽減しました:

  • 仕組み:フォロワー・ノードは、アイドル状態のリソースを活用して、GetRegionリクエストのようなQPSの高いオペレーションを処理します。クライアント側のリトライメカニズムにより、古いメタデータを読み込む際の一貫性を確保します。
  • パフォーマンスの向上:内部テストでは、5つのPDノードでGetRegionリクエスト処理が最大4.5倍向上しています。この機能はTiDB 7.6で実験的、TiDB 8.5で一般提供となり、フォロワーノードを活用してスケーラビリティを向上させる可能性を示しています。
How TiDB handles Active Followers for enhanced metadata management.
図4. TiDBによるアクティブフォロワーの扱い方

ステートレス・ルーターサービス (計画中)

計画中のルーターサービスでは、ルーターモジュールをステートレスなマイクロサービスへと変換し、ロジック処理をステート管理から切り離すことで、リニアなスケーリングを可能にします:

  • 並列性の向上:各ルーターサービスノードはメタデータの更新 (ハートビート)を独立して処理し、その結果をキャッシュとストレージレイヤーの両方に保存するため、競合が減少します。
  • ハートビートの最適化:
    • 専用のメタデータアクセス: 優先度の高いリージョンのメタデータ操作 (GetRegionなど) は、ハートビートの影響を受けなくなります。
    • 統計情報の更新の分離:スケジューリングサービスで必要とされるリージョン統計の更新は、干渉を減らすために別々に処理されます。
How the planned Router Service transforms the Router Module into a stateless microservice for enhanced metadata management.
図5. 計画中のルーター・サービスがルーター・モジュールをステートレス・マイクロサービスに変換する仕組み。

TiKVベースのストレージ

TiDB は、LevelDBから拡張性の高い分散ストレージエンジンであるTiKVに移行することで、PDのストレージレイヤーを再設計する計画を進めています。

  • 2層構造
    • 第1階層:リージョンをTiKVノードにマッピング
    • 第2階層:運用のための詳細なリージョンメタデータを保存
  • メリット:コンピュートレイヤーとストレージレイヤーを分離することで、それぞれを独立してスケーリング可能になり、PDはボトルネックなしに増大するワークロードを処理できるようになりました。

これらの機能強化により、PDは効率的に拡張できるようになり、最新のデプロイメントの増大する要求に対応できるようになります。

図6. TiKV上でPDのストレージレイヤーがより効率的にスケーリングする仕組み

残されたスケーラビリティの課題

これまでの進化にもかかわらず、いくつかの課題が残っています:

  • 単一リーダーへの依存:Active Followersのような機能によってリーダーのボトルネックは軽減されていますが、依然として多くのサービスが強力なリーダーに依存しており、完全な水平スケーラビリティの実現を妨げています。
  • スケジューリングサービスのボトルネック
    • スケジューリングサービスはいまだに強力なリーダーモードで動作しており、統計ハートビートが集中した際にはボトルネックに直面する可能性があります。
    • ただし、このサービスは優先度が低いため、ある程度の遅延を許容でき、過剰なハートビートは破棄しても全体の機能には影響しません。
  • ストレージレイヤーとコンピュートレイヤーの結合:これらのリソースを完全に独立してスケーリング可能にするためには、さらなる分離が必要です。

結論:メタデータ管理の未来を切り開く

マイクロサービスの導入は、PDのアーキテクチャにとって大きな飛躍を意味します。今後、ステートレスなルーターサービスの導入やリーダー依存の低減といった改善が進めば、最新の大規模TiDBクラスタの要求を満たすPDの可能性がさらに広がるでしょう。

TiDBのPDは、大規模で最新のワークロードに対応するために進化を続けています。
TSOサービス、スケジューリングサービス、アクティブフォロワーといった既存機能がすでにパフォーマンスが向上しており、今後のルーターサービスやTiKVとの統合により、PDはさらにスケーラブルで信頼性が高く、効率的なものになります。これらの技術革新は、モジュール間の干渉や強力なリーダーのボトルネックといった現実的な課題に対処し、PDを堅牢なメタデータ管理ソリューションとして位置づけています。

TiDBが大規模環境でメタデータをどのように処理しているかを体験してみませんか? 無料でTiDBクラスタを立ち上げて、リアルタイムなメタデータ操作、弾力的なスケーリング、そして高可用な分散パフォーマンスをぜひご体感ください。


Have questions? Let us know how we can help.

Contact Us

TiDB Cloud Dedicated

TiDB Cloudのエンタープライズ版。
専用VPC上に構築された専有DBaaSでAWSとGoogle Cloudで利用可能。

TiDB Cloud Starter

TiDB Cloudのライト版。
TiDBの機能をフルマネージド環境で使用でき無料かつお客様の裁量で利用開始。