TiFlash v6.2 アップグレード ガイド

このドキュメントでは、TiFlash を以前のバージョンから v6.2 にアップグレードする際に注意する必要がある TiFlash モジュールの機能変更と、推奨されるアクションについて説明します。

標準のアップグレード プロセスについては、次のドキュメントを参照してください。

ノート:

  • v6.2.0, ファストスキャンで導入された実験的機能は、強力なデータの一貫性を犠牲にして、より効率的なクエリ パフォーマンスを提供します。この機能の形式と使用法は、後続のバージョンで変更される可能性があることに注意してください。

  • v4.x から v6.x など、メジャー バージョン間で TiFlash を含む TiDB をアップグレードすることはお勧めしません。代わりに、最初に v4.x から v5.x にアップグレードしてから v6.x にアップグレードする必要があります。

  • v4.x はライフサイクルの終わりに近づいています。できるだけ早く v5.x 以降にアップグレードすることをお勧めします。詳細については、 TiDB リリース サポート ポリシーを参照してください。

  • PingCAP は、v6.0 などの非 LTS バージョンのバグ修正を提供しません。可能な限り、v6.1 以降の LTS バージョンにアップグレードすることをお勧めします。

  • TiFlash を v5.3.0 より前のバージョンから v5.3.0 以降にアップグレードするには、TiFlash を停止してからアップグレードする必要があります。次の手順は、他のコンポーネントを中断することなく TiFlash をアップグレードするのに役立ちます。

    • TiFlash インスタンスを停止します: tiup cluster stop <cluster-name> -R tiflash
    • 再起動せずに TiDB クラスターをアップグレードします (ファイルの更新のみ): tiup cluster upgrade <cluster-name> <version> --offline
    • TiDB クラスターをリロードします。 tiup cluster reload <cluster-name> .リロード後、TiFlash インスタンスが開始されるため、手動で開始する必要はありません。

5.x または v6.0 から v6.1 へ

TiFlash を v5.x または v6.0 から v6.1 にアップグレードする場合は、TiFlash プロキシと動的プルーニングの機能変更に注意してください。

TiFlash プロキシ

TiFlash Proxy は v6.1.0 でアップグレードされます (TiKV v6.0.0 に合わせて)。新しいバージョンは RocksDB のバージョンをアップグレードしました。 TiFlash を v6.1 にアップグレードすると、データ形式は自動的に新しいバージョンに変換されます。

通常のアップグレードでは、データ変換にリスクはありません。ただし、特別なシナリオ (テストまたは検証シナリオなど) で TiFlash を v6.1 から以前のバージョンにダウングレードする必要がある場合、以前のバージョンは新しい RocksDB 構成の解析に失敗する可能性があります。その結果、TiFlash は再起動に失敗します。アップグレード プロセスを完全にテストおよび検証し、緊急計画を準備することをお勧めします。

テストまたはその他の特別なシナリオで TiFlash をダウングレードするための回避策

ターゲットの TiFlash ノードを強制的にスケールインしてから、TiKV からデータを再度レプリケートできます。詳細な手順については、 スケールインクラスターのスケーリングを参照してください。

動的剪定

動的プルーニング モードを有効にせず、今後も使用しない場合は、このセクションをスキップできます。

  • 新しくインストールされた TiDB v6.1.0: 動的プルーニングはデフォルトで有効になっています。

  • TiDB v6.0 以前: 動的プルーニングはデフォルトで無効になっています。バージョンアップ後の動的枝刈りの設定は、旧バージョンの設定を引き継ぎます。つまり、動的プルーニングは、アップグレード後に自動的に有効化 (または無効化) されません。

    アップグレード後、動的プルーニングを有効にするには、 tidb_partition_prune_modedynamicに設定し、分割されたテーブルの GlobalStats を手動で更新します。詳細については、 動的プルーニングモードを参照してください。

v5.x または v6.0 から v6.2 へ

TiDB v6.2 では、TiFlash のデータ ストレージ フォーマットが V3 バージョンにアップグレードされます。したがって、TiFlash を v5.x または v6.0 から v6.2 にアップグレードする場合、 TiFlash プロキシ動的剪定の機能変更に加えて、PageStorage の機能変更にも注意する必要があります。

ページストレージ

デフォルトでは、TiFlash v6.2.0 は PageStorage V3 バージョンformat_version = 4を使用します。この新しいデータ形式により、ピーク時の書き込み I/O トラフィックが大幅に削減されます。更新トラフィックが多く、同時実行性が高い、またはクエリが重いシナリオでは、TiFlash データ GC によって引き起こされる過度の CPU 使用を効果的に軽減します。一方、以前のストレージ形式と比較して、V3 バージョンでは、スペースの増幅とリソースの消費が大幅に削減されます。

  • v6.2.0 へのアップグレード後、新しいデータが既存の TiFlash ノードに書き込まれると、以前のデータは徐々に新しい形式に変換されます。

  • ただし、アップグレード中に以前のデータを新しい形式に完全に変換することはできません。これは、変換によって一定量のシステム オーバーヘッドが消費されるためです (サービスには影響しませんが、それでも注意が必要です)。アップグレード後、 Compactコマンドを実行してデータを新しい形式に変換することをお勧めします。手順は次のとおりです。

    1. TiFlash レプリカを含むテーブルごとに次のコマンドを実行します。

      ALTER TABLE <table_name> COMPACT tiflash replica;
    2. TiFlash ノードを再起動します。

Grafana でテーブルがまだ古いデータ形式を使用しているかどうかを確認できます: TiFlash-Summary > Storage Pool > Storage Pool Run Mode

  • V2 のみ: PageStorage V2 を使用するテーブルの数 (パーティションを含む)
  • V3 のみ: PageStorage V3 を使用するテーブルの数 (パーティションを含む)
  • 混合モード: データ形式が PageStorage V2 から PageStorage V3 に変換されたテーブルの数 (パーティションを含む)

テストまたはその他の特別なシナリオで TiFlash をダウングレードするための回避策

ターゲットの TiFlash ノードを強制的にスケールインしてから、TiKV からデータを再度レプリケートできます。詳細な手順については、 スケールインクラスターのスケーリングを参照してください。

v6.1 から v6.2 へ

TiFlash を v6.1 から v6.2 にアップグレードする場合、データ ストレージ フォーマットの変更に注意してください。詳細については、 ページストレージを参照してください。