Skip to content

レプリカ移行の最適化

概要

ノード追加やスケーリング時のレプリカ移行パフォーマンスを大幅に向上させる最適化技術です。SST ファイルの境界を Region 境界にアラインメントすることで、スナップショット転送とログ再生を高速化します。

従来の移行プロセスと課題

従来の移行方式では、以下の 4 つのフェーズでそれぞれパフォーマンスのボトルネックが存在します。

フェーズ処理内容課題
データ抽出Leader の LSM-Tree から特定キー範囲のデータを走査・抽出複数のレベルと SST ファイルを走査するため I/O オーバーヘッドが大きい
データ転送KV データをアイテム単位で転送転送効率が低く、ネットワーク帯域の利用率が低い
データ書き込みターゲット側で外部 SST ファイルを作成し LSM-Tree に Ingestローカルファイルとの統合が必要で、追加の Compaction オーバーヘッドが発生
レプリカ削除不要データの削除のため SST ファイルを走査I/O オーバーヘッドが大きい

従来の移行プロセス

最適化方式: SST ファイル境界のアラインメント

実装メカニズム

バックグラウンドの Compaction プロセスで SST パーティショナー モジュールを呼び出し、以下の処理を行います。

  • 過大な SST ファイルを Region 境界に基づいて分割
  • 単一の SST ファイルが単一の Region のデータのみを含むよう保証
  • 異なる Region のデータが同一 SST ファイルに混在することを防止

最適化後の移行プロセス

  1. ファイルの直接特定: データを走査することなく、Region に対応する SST ファイルを直接特定
  2. ファイル単位の転送: 圧縮済み SST ファイルをそのままターゲット側に転送
  3. 直接 Ingest: ターゲット側で複雑な圧縮/統合操作なしにデータを直接取り込み

移行前に、未整列の L0 データを L1 レベルまで Compaction します。L0 のデータ量は限定的であるため、このオーバーヘッドは許容範囲です。

最適化後の移行プロセス

パフォーマンス改善効果

主な改善点

  • Compaction 関連の I/O オーバーヘッドの削減
  • レプリカ移行およびフルバックアップのパフォーマンス向上
  • 範囲指定の物理削除のパフォーマンス向上
  • Bulk Load 機能の技術的基盤を提供

ベンチマーク(RepGroup あたり 20 GB データ転送)

方式転送速度備考
最適化前(ストリーム RPC 経由の KV 転送)22.6 MB/s従来の方式
最適化後(ローカル SST の直接送信)455.1 MB/s20 倍 の高速化

Tencent Cloud プロダクトドキュメント