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
、tiup cluster upgrade <cluster-name> v5.3.0 --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 からデータを再度レプリケートできます。詳細な手順については、 TiFlashクラスターのスケールインを参照してください。
動的剪定
動的プルーニング モード有効にせず、今後も使用しない場合は、このセクションをスキップできます。
新しくインストールされた TiDB v6.1.0: 動的プルーニングはデフォルトで有効になっています。
TiDB v6.0 以前: 動的プルーニングはデフォルトで無効になっています。バージョンアップ後の動的枝刈りの設定は、旧バージョンの設定を引き継ぎます。つまり、動的プルーニングは、アップグレード後に自動的に有効化 (または無効化) されません。
アップグレード後、動的プルーニングを有効にするには、
tidb_partition_prune_mode
をdynamic
に設定し、分割されたテーブルの GlobalStats を手動で更新します。詳細については、 動的プルーニングモードを参照してください。
v5.x または v6.0 から v6.2 へ
TiDB v6.2 では、 TiFlashのデータstorageフォーマットが V3 バージョンにアップグレードされます。したがって、 TiFlash をv5.x または v6.0 から v6.2 にアップグレードする場合、 TiFlashプロキシと動的剪定の機能変更に加えて、PageStorage の機能変更にも注意する必要があります。
ページストレージ
デフォルトでは、 TiFlash v6.2.0 は PageStorage V3 バージョンformat_version = 4
を使用します。この新しいデータ形式により、ピーク時の書き込み I/O トラフィックが大幅に削減されます。更新トラフィックが多く、同時実行性が高い、またはクエリが重いシナリオでは、 TiFlashデータ GC によって引き起こされる過度の CPU 使用を効果的に軽減します。一方、以前のstorage形式と比較して、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 からデータを再度レプリケートできます。詳細な手順については、 TiFlashクラスターのスケールインを参照してください。
v6.1 から v6.2 へ
TiFlash をv6.1 から v6.2 にアップグレードする場合、データstorageフォーマットの変更に注意してください。詳細については、 ページストレージを参照してください。