
※このブログは2025年3月26日に公開された英語ブログ「Optimizing Backup Verification: How to Enhance Performance and Reliability in TiDB」の拙訳です。
TiDB 8.5のリリースに伴い、TiDB BR (Backup & Restore) に大きな変更がありました。全体バックアップ時のテーブル単位でのチェックサム検証がデフォルトでオフになったのです。この変更により、データの整合性を維持しながら、不要なオーバーヘッドを削減することで、バックアップ効率が向上します。
このブログでは、TiDBによるバックアップ検証の最適化、期待されるパフォーマンスの向上、そして、なぜ多くののユーザーにとってフルテーブルチェックサムが必ずしも必要ではないのかについて解説します。
よりスマートなバックアップ検証のアプローチ
以前のTiDB BRのチェックサム処理では、2回のフルテーブルスキャンが行われていました。
- 最初のスキャンは、データを抽出し、チェックサムを計算するためにバックアップ中に行われます。
- 2回目のスキャンは、バックアップの整合性を検証するために、コプロセッサリクエストを介して行われます。
この方法は効果的でしたが、特に大規模なデータセットでは、パフォーマンスへの影響が大きくなっていました。各バックアップでI/Oワークロードが実質的に2倍になり、バックアップ時間の長期化やリソース使用量の増加につながっていました。
実際の運用経験から、このような厳密なチェックは多くの場合、不要であることがわかりました。TiDB BRは、負荷の高いなフルテーブルスキャンに頼らず、パフォーマンスに追加のコストをかけずに信頼性を確保する、より効率的な検証手法を使用するようになりました。
バックアップの整合性の維持
デフォルトでテーブル単位でのチェックサムをオフにしても、バックアップの整合性は損なわれません。TiDB BRには、複数の安全対策が組み込まれています。
- バックアップ範囲の整合性検証:すべてのバックアップ範囲が網羅されていることを保証し、データ欠損を防ぎます。
- ファイル単位のチェックサム検証:すべてのバックアップファイルには、チェックサム検証が組み込まれており、デフォルトで有効になっています。これにより、バックアップ後からリストアまでの間に発生する破損やファイルの損失を検出します。
- リストア時のチェックサム検証:データリストア中に、TiDB BRはバックアップメタデータを使用してSSTファイルの整合性を自動的に検証し、各SSTファイルに対してファイル単位のチェックサム検証を実行します。
これらの仕組みにより、コストのかかる2回目のスキャンを実行しなくても、高い信頼性を提供します。
バックアップ検証の新しいアプローチがもたらすパフォーマンス上のメリット
デフォルトでチェックサムをオフにすることで、冗長なフルテーブルスキャンを回避することができ、いくつかの利点が得られます。
- バックアップとリストアの高速化:2回目のフルテーブルスキャンを削減することで、特に大規模なデータセットにおいて、バックアップにかかる時間を大幅に短縮し、効率を向上させます。
- クラスタへの影響軽減:バックアップ操作で使用するリソースが少なくなるため、通常のデータベースパフォーマンスへの影響を最小限に抑えます。
- ワークフローの簡素化:多くの場合、チェックサム検証は必要ないため、バックアップの実行がより簡単になります。
高度なシナリオへの対応
デフォルト設定はほとんどのユーザーに適していますが、TiDB BRでは、必要に応じてテーブル単位のチェックサム検証も可能です。これは、特に次のような場合に役立ちます。
- デバッグやリリーステスト:テスト中にバックアップの整合性を検証する必要がある開発者。
- 非トランザクション書き込みの処理:バックアップのタイムスタンプより前に非トランザクション書き込み (例:Lightningのローカルインポート) が発生するまれなケースで、チェックサムを有効にすることで異常を検出するのに役立ちます。
シナリオ | –checksum = false | –checksum = true |
バックアップファイルの破損 | YES | YES |
バックアップファイルの紛失 | YES | YES |
バックアップ・メタデータ・ファイルの破損/紛失 | YES | YES |
実装におけるロジックのバグ (KVの変更によるバックアップ範囲の欠落など) | NO | YES |
非トランザクションの書き込み | NO | YES |
チェックサム検証が必要だが、パフォーマンスへの影響を最小限にしたい場合は、TiDBのバックグラウンドタスクのリソース制御機能を利用して、リソース消費を制限することが可能です。詳細はこちらをご覧ください。
まとめ
TiDB BRのバックアップ検証に関する最新の取り組みは、パフォーマンスの最適化と使いやすさを反映しています。効率的な検証手法を優先することで、ユーザーは高いデータ整合性を維持しながら、より高速なバックアップを実現できます。
テーブル単位のチェックサム検証が必要な高度なシナリオでは、オプションとして引き続き利用できるため、柔軟性も確保されています。パフォーマンスと検証のバランスを取ることで、TiDBは最新のデータベース運用における実際のニーズに対応できます。
デフォルト値の変更はTiDB 8.5以降で行われますが、BRの基盤となる検証メカニズムは最初から存在しています。旧バージョンのBRでも、フルバックアップ中に–checksumを無効にすることで、パフォーマンスを向上させることができます。
TiDB BRの最新の取り組みについてご質問がある場合は、Twitter、LinkedIn、またはSlackチャンネルでお気軽にお問い合わせください。
TiDB Cloud Dedicated
TiDB Cloudのエンタープライズ版。
専用VPC上に構築された専有DBaaSでAWSとGoogle Cloudで利用可能。
TiDB Cloud Serverless
TiDB Cloudのライト版。
TiDBの機能をフルマネージド環境で使用でき無料かつお客様の裁量で利用開始。