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_mode
をdynamic
に設定し、分割されたテーブルの 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
コマンドを実行してデータを新しい形式に変換することをお勧めします。手順は次のとおりです。TiFlash レプリカを含むテーブルごとに次のコマンドを実行します。
ALTER TABLE <table_name> COMPACT tiflash replica;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 にアップグレードする場合、データ ストレージ フォーマットの変更に注意してください。詳細については、 ページストレージを参照してください。