📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

階層型ストレージの制限事項



このドキュメントでは、Infrequent Access (IA) ストレージの現在の制限事項と運用上の影響について説明します。これには、機能上の制約、コールドリードのスロットリング、ツール互換性、およびクエリ性能の不確実性が含まれます。

機能上の制限事項

制限事項説明
Hash / Key パーティションIA に設定できません
インデックス単位の設定インデックスに対して個別に IA を設定できません
TTL による自動階層化業務フィールドに基づくコールドデータとホットデータの自動階層化はサポートされていません
構文の競合STORAGE_CLASS と ENGINE_ATTRIBUTE は同時に指定できません
パーティションセレクターの混在names_in / less_than / values_in は同時に使用できません
TiFlashIA には従わず、データは常にローカルに保持されます
キャッシュレベルの適用範囲IA のキャッシュレベルは、個別の論理インスタンスや特定のテーブルまたはパーティションではなく、基盤となる TiKV 物理クラスターのレベルで適用されます。同じ物理クラスターを共有するすべての論理インスタンスは、そのうちのいずれか 1 つでキャッシュレベルを変更すると影響を受けます。論理インスタンスレベルでの制御は将来のリリースで予定されています
キャッシュレベルの有効化IA のキャッシュレベルを変更するには、階層型ストレージのプライベートプレビュー有効化に加えて別途許可リストへの登録が必要であり、デフォルトでは無効です。有効化するには TiDB Cloudサポート に連絡してください
セグメントサイズの調整kvengine.ia.segment-size は TiDB Cloud BYOC でのみ変更でき、TiKV ノードのローリング再起動後にのみ有効になります
キャッシュレベルのプロビジョニングキャッシュレベルの変更自体はホットアップデートとして反映されますが、基盤リソースは TiDB Cloud によって自動的にプロビジョニングされるため、反映までに時間がかかる場合があります
変換進行状況の可視性INFORMATION_SCHEMA.TIKV_STORAGE_CLASS_TRANSITIONS の行は、そのテーブルに対する ALL 権限を持っている場合にのみ表示されます。アクセスできないテーブルの行は、エラーを出さずにスキップされます
変換進行状況の鮮度変換の進行状況は 10 秒ごとに収集されるため、INFORMATION_SCHEMA.TIKV_STORAGE_CLASS_TRANSITIONS の値はリアルタイムではありません

アクセススロットリングの制約

共有物理クラスターではオブジェクトストレージの帯域幅に限りがあるため、IA コールドストレージへのアクセスは次の制限に従う必要があります。

制約の観点制限理由
単一 SQL のコールドリードスループット≤ 100 MiB/s1 つのクエリが過剰な帯域幅を消費するのを防ぐため
コールドリードの同時実行スループット合計≤ 1 GiB/s (同時実行数 ≤ 10)クラスター内の他のテナントを保護するため
TiKV の 1 回のキャッシュミスあたりのロードサイズ≤ ~3 MiB (推定)3 つの LSM レベルからのセグメント

業務でコールドデータへの継続的かつ高負荷なアクセスがある場合、IA は推奨されません。テーブルを Standard ストレージに戻してください。 システムの安定性を確保するため、将来の技術リリースではコールドデータアクセスに対するハードスロットリングが追加される予定です。現時点では、上記の制約を順守する必要があります。

単一 SQL によるコールドデータアクセス量は、Cloud Console → Monitoring → Diagnosis → Slow Query → Coprocessor の IA Remote Read Segment Size パネルで監視できます。クラスター全体の IA キャッシュ動作を監視するには、階層型ストレージの可観測性 で説明されている IA Cache Performance パネルを使用してください。

周辺ツールへの影響

ツール影響互換性
TiCDC論理データのセマンティクスは変わりません。init scan や古いデータの読み取りではレイテンシーが高くなる可能性があります。リージョン変更は通常どおり処理されます互換性あり
BR backup & restoreストレージクラスのメタデータを保持します。リストア後も、IA テーブルは引き続き IA のセマンティクスでロードされます互換性あり
IMPORT INTOインポートされたデータはフラッシュまたはコンパクションを通じて IA に移行します。インポート後の大範囲検証ではキャッシュにデータがない状態 (コールドキャッシュ) になる場合があります互換性あり
PITRストレージクラスのメタデータを保持します。リストア後に schema manager が再同期を行います互換性あり

リスク分離メカニズム

テーブルに IA を設定した後、システムは IA テーブルと非 IA テーブルを分離するために次の対策を使用します。

リージョンレベル:

  • IA テーブル/パーティションは専用のリージョンを占有し、必要に応じて分割が発生します
  • ストレージクラスが異なる隣接リージョンはマージが制限され、ホットデータとコールドデータの混在を防ぎます
  • 1 つのリージョンは完全に IA であるか、完全に非 IA であるかのいずれかです

コンピュートレイヤー:

  • Standard テーブルと IA テーブルはコンピュートレイヤーでは分離されません。TiDB にはこの 2 種類のテーブルに対する個別の分離戦略はありません

ストレージレイヤー:

  • コールドリードのレート制限

緊急リカバリ方法

IA テーブルで問題が発生した場合、ユーザーと TiDB Cloud チームは次の方法を使用できます。

方法シナリオ優先度説明
IA → Standard への切り戻し性能が許容できないと判断した場合ユーザーの第一の選択肢システムがデータをローカルにリロードし、リモートパスをバイパスします
Flow Control (already available)IA テーブルとオブジェクトストレージ間のトラフィックを制御するTiDB Cloud チームの選択肢レート制限によってクラスターの安定性を保護します。TiDB Cloud チームが管理します
TiDB Cloud サポートに連絡するストレージクラス変換が停止している場合: DURATION が増え続ける一方で COMPLETED_REPLICAS が増加しない、または NULL のままである必須停止した変換はユーザー自身では解決できません。検出方法については、階層型ストレージの可観測性 を参照してください

IA ローカルキャッシュとクエリ性能の不確実性

階層型ストレージは、最近アクセスされたコールドデータへの繰り返しアクセスを高速化するために、ローカル IA データキャッシュ(IaManager により管理)を維持します。ただし、次の重要な点を理解しておく必要があります。

  • キャッシュ容量は調整可能ですが、キャッシュ動作は引き続きシステム管理です: Cloud Console で IA キャッシュレベルを選択し、ローカルディスク上にキャッシュする IA データ量を制御できます。ただし、エビクションポリシーは引き続きシステムによって管理されます。どのデータをキャッシュに残すかを指定できず、キャッシュレベルは個別の論理インスタンス、テーブル、またはパーティションではなく、基盤となる TiKV 物理クラスターに適用されます。キャッシュヒット率は実際のアクセスパターンに依存します。アクセスが集中していれば 95% を超えることがありますが、アクセスが分散している場合は 95% を下回ることがあります。
  • IA クエリの応答時間は一定ではありません: クエリがローカルキャッシュにヒットした場合、性能は Standard テーブルに近くなります。しかし、データをリモートオブジェクトストレージからロードする必要がある場合(キャッシュミス)、各リモートリクエストで約 500ms~2s のレイテンシーが追加されます。1 回の SQL 実行で複数回のリモートロードが発生することがあり、その結果レイテンシーが累積します。そのため、IA テーブルのクエリ応答時間は Standard テーブルほど予測可能ではありません。業務側ではこの点を考慮して計画する必要があります。
  • 推奨: パーティションテーブルを使用してコールドデータの範囲を正確に制御する: パーティションテーブルを使用し、低頻度アクセスであることが確認された履歴パーティションのみを IA に設定し、アクティブなパーティションは Standard のままにしてください。これにより、キャッシュの不確実性を明確に定義されたデータ範囲に限定でき、テーブル全体のクエリ性能をキャッシュミスリスクにさらさずに済みます。
  • キャッシュ領域を増やすことはコスト増加を意味します: より高いキャッシュレベルでは、より多くの IA データがローカルディスクに保持されるため、より多くのローカルディスクおよび TiKV リソースを消費します。TiDB Cloud Premium では、より高いキャッシュレベルにより課金対象の IA ストレージ量が増加します。TiDB Cloud BYOC では、追加リソースはお客様自身のクラウドアカウント内にプロビジョニングされ、クラウドプロバイダーから課金され、プロビジョニング完了までに時間がかかります。業務要件に応じて、コールドリード性能とコストのバランスを取ってください。

要するに: IA ストレージは、ストレージコストを削減する代わりに、クエリ性能の予測可能性を低下させます。これは設計上避けられないトレードオフです。どのデータをコールドデータとするかを正確に定義し、その影響をそのデータに限定するために、パーティションテーブルを使用してください。業務で予測可能なクエリ応答時間が必要な場合は、レイテンシーに敏感なデータを Standard ストレージに保持してください。

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