TiDB 6.1.0 リリースノート
発売日:2022年6月13日
TiDB バージョン: 6.1.0
クイックアクセス: クイックスタート | 本番展開 | インストールパッケージ
6.1.0 の主な新機能または改善点は次のとおりです。
- List パーティショニングとリスト COLUMNS パーティショニングが GA になり、 MySQL 5.7と互換性があります。
- TiFlashパーティションテーブル(動的プルーニング) が GA になりました
- ユーザーレベルのロック管理をサポートし、MySQL と互換性があります。
- 非トランザクション DML ステートメントのサポート (
DELETE
のみサポート) - TiFlash はオンデマンドのデータ圧縮をサポートします
- MPP はウィンドウ関数フレームワークを導入します
- TiCDC は、Avro を介した Kafka への変更ログのレプリケートをサポートします
- TiCDC は、レプリケーション中の大規模なトランザクションの分割をサポートしており、大規模なトランザクションによって引き起こされるレプリケーションのレイテンシーを大幅に削減します。
- シャードテーブルのマージおよび移行の楽観的モードが GA になりました
新機能
SQL
List パーティショニングとリスト COLUMNS パーティショニングが GA になりました。どちらもMySQL 5.7と互換性があります。
ユーザードキュメント: List パーティショニング 、 List COLUMNS パーティショニング
TiFlash は、コンパクト コマンドの開始をサポートしています。 (実験的)
TiFlash v6.1.0 では、既存のバックグラウンド圧縮メカニズムに基づいて物理データを手動で圧縮する方法を提供する
ALTER TABLE ... COMPACT
ステートメントが導入されています。このステートメントを使用すると、必要に応じていつでも以前の形式でデータを更新し、読み取り/書き込みのパフォーマンスを向上させることができます。クラスターを v6.1.0 にアップグレードした後、このステートメントを実行してデータを圧縮することをお勧めします。このステートメントは標準 SQL 構文の拡張であるため、MySQL クライアントと互換性があります。 TiFlashアップグレード以外のシナリオでは、通常、このステートメントを使用する必要はありません。TiFlash はウィンドウ関数フレームワークを実装し、次のウィンドウ関数をサポートします。
RANK()
DENSE_RANK()
ROW_NUMBER()
可観測性
継続的プロファイリングは、ARMアーキテクチャとTiFlashをサポートします。
Grafana は、パフォーマンス概要ダッシュボードを追加して、全体的なパフォーマンス診断のためのシステム レベルのエントリを提供します。
TiDB 視覚化モニタリングコンポーネントGrafana の新しいダッシュボードとして、パフォーマンス概要は、全体的なパフォーマンス診断のためのシステム レベルのエントリを提供します。トップダウンのパフォーマンス分析手法に従って、パフォーマンス概要ダッシュボードは、データベース時間の内訳に基づいて TiDB パフォーマンス メトリックを再編成し、これらのメトリックをさまざまな色で表示します。これらの色を確認することで、システム全体の性能ボトルネックを一目で特定することができ、性能診断時間を大幅に短縮し、性能解析と診断を簡素化します。
パフォーマンス
カスタマイズされたリージョンサイズのサポート (実験的)
リージョンをより大きなサイズに設定すると、リージョンの数が効果的に減り、リージョンの管理が容易になり、クラスターのパフォーマンスと安定性が向上します。この機能では、リージョン内のより小さな範囲であるバケットの概念が導入されます。リージョンがより大きなサイズに設定されている場合、クエリ単位としてバケットを使用すると、同時クエリのパフォーマンスを最適化できます。バケットをクエリ単位として使用すると、ホット リージョンのサイズを動的に調整して、スケジューリングの効率と負荷バランスを確保することもできます。この機能は現在実験的です。本番環境での使用はお勧めできません。
Raft Engine をデフォルトのログstorageエンジンとして使用する
v6.1.0 以降、TiDB はログのデフォルトのstorageエンジンとしてRaft Engineを使用します。 RocksDB と比較して、 Raft Engine はTiKV I/O 書き込みトラフィックを最大 40% 削減し、CPU 使用率を 10% 削減すると同時に、特定の負荷の下でフォアグラウンドレイテンシーを約 5% 向上させ、テール レイテンシーを 20% 削減します。
結合順序ヒント構文のサポート
LEADING
ヒントは、指定された順序を結合操作のプレフィックスとして使用することをオプティマイザーに思い出させます。結合の適切なプレフィックスを使用すると、結合の初期段階でデータ量がすぐに削減され、クエリのパフォーマンスが向上します。STRAIGHT_JOIN
ヒントは、オプティマイザに対し、FROM
節のテーブルの順序と一致する順序でテーブルを結合するように指示します。
これにより、テーブル結合の順序を修正する方法が提供されます。ヒントを適切に使用すると、SQL のパフォーマンスとクラスターの安定性を効果的に向上させることができます。
ユーザードキュメント:
LEADING
、STRAIGHT_JOIN
、 #29932TiFlash はさらに 4 つの関数をサポートします。
FROM_DAYS
TO_DAYS
TO_SECONDS
WEEKOFYEAR
TiFlash は、動的プルーニング モードでパーティション化されたテーブルをサポートします。
OLAP シナリオのパフォーマンスを向上させるために、パーティション テーブルに対して動的プルーニング モードがサポートされています。 TiDB が v6.0.0 より前のバージョンからアップグレードされている場合は、パフォーマンスを最大化するために、既存のパーティション化されたテーブルの統計を手動で更新することをお勧めします (新規インストールまたは v6.1.0 へのアップグレード後に作成された新しいパーティションの場合は必要ありません)。
ユーザードキュメント: MPP モードでパーティション化されたテーブルにアクセスする 、 動的プルーニングモード 、 #3873
安定性
SST破損からの自動回復
RocksDB がバックグラウンドで破損した SST ファイルを検出すると、TiKV は影響を受けるピアをスケジュールし、他のレプリカを使用してそのデータを回復しようとします。
background-error-recovery-window
パラメータを使用して、回復の最大許容時間を設定できます。回復操作が時間枠内に完了しない場合、TiKV はpanicになります。この機能は、回復可能な破損したstorageを自動的に検出して回復するため、クラスターの安定性が向上します。非トランザクション DML ステートメントのサポート
大規模なデータ処理のシナリオでは、大規模なトランザクションを含む 1 つの SQL ステートメントがクラスターの安定性とパフォーマンスに悪影響を与える可能性があります。 v6.1.0 以降、TiDB はバッチ処理用に
DELETE
のステートメントを複数のステートメントに分割する構文の提供をサポートしています。分割ステートメントはトランザクションの原子性と分離性を損ないますが、クラスターの安定性は大幅に向上します。詳細な構文については、BATCH
を参照してください。TiDB は最大 GC 待機時間の構成をサポートします
TiDB のトランザクションは、Multi-Version Concurrency Control (MVCC) メカニズムを採用しています。新しく書き込まれたデータが古いデータを上書きする場合、古いデータは置き換えられず、両方のバージョンのデータが保存されます。古いデータはガベージ コレクション (GC) タスクによって定期的にクリーンアップされ、storage領域を再利用してクラスターのパフォーマンスと安定性を向上させるのに役立ちます。 GC はデフォルトで 10 分ごとにトリガーされます。長時間実行されるトランザクションが対応する履歴データにアクセスできるようにするために、実行中のトランザクションがある場合、GC タスクは遅延されます。 GC タスクが無期限に遅延しないようにするために、TiDB ではシステム変数
tidb_gc_max_wait_time
を導入して GC タスクの最大遅延時間を制御します。最大遅延時間を超えると強制的に GC が実行されます。変数のデフォルト値は 24 時間です。この機能により、GC 待機時間と長時間実行トランザクションとの関係を制御できるようになり、クラスターの安定性が向上します。TiDB は、自動統計収集タスクの最大実行時間の構成をサポートします。
データベースは統計を収集することでデータの分布を効果的に把握できるため、合理的な実行計画を生成し、SQL 実行の効率を向上させることができます。 TiDB は、頻繁に変更されるデータ オブジェクトに関する統計をバックグラウンドで定期的に収集します。ただし、統計の収集にはクラスターのリソースが消費されるため、ビジネスのピーク時のビジネスの安定した運用に影響を与える可能性があります。
v6.1.0 以降、TiDB ではバックグラウンド統計収集の最大実行時間を制御するために
tidb_max_auto_analyze_time
導入されており、デフォルトでは 12 時間です。アプリケーションでリソースのボトルネックが発生していない場合は、TiDB がタイムリーに統計を収集できるように、この変数を変更しないことをお勧めします。
使いやすさ
複数のレプリカが失われた場合のワンストップのオンラインデータリカバリをサポート
TiDB v6.1.0 より前は、マシンの障害により複数のリージョンレプリカが失われた場合、ユーザーはすべての TiKV サーバーを停止し、 TiKV Controlを使用して TiKV を 1 つずつ復元する必要がありました。 TiDB v6.1.0 以降、リカバリ プロセスは完全に自動化されており、TiKV を停止する必要がなく、オンラインの他のアプリケーションにも影響を与えません。回復プロセスはPD Controlを使用してトリガーでき、よりユーザーフレンドリーな概要情報を提供します。
履歴統計収集タスクの表示をサポート
SHOW ANALYZE STATUS
ステートメントを使用すると、クラスターレベルの統計収集タスクを表示できます。 TiDB v6.1.0 より前では、SHOW ANALYZE STATUS
ステートメントにはインスタンス レベルのタスクのみが表示され、履歴タスク レコードは TiDB の再起動後にクリアされます。したがって、履歴統計の収集時間と詳細を表示することはできません。 TiDB v6.1.0 以降、統計収集タスクの履歴レコードは保持され、クラスターの再起動後にクエリできるようになりました。これは、統計の異常によって引き起こされるクエリ パフォーマンスの問題のトラブルシューティングの参考になります。TiDB、TiKV、 TiFlash構成の動的変更のサポート
以前の TiDB バージョンでは、構成項目を変更した後、変更を有効にするためにクラスターを再起動する必要がありました。これにより、オンライン サービスが中断される可能性があります。この問題に対処するために、TiDB v6.1.0 には動的構成機能が導入されており、クラスターを再起動せずにパラメーターの変更を検証できるようになります。具体的な最適化は次のとおりです。
- 一部の TiDB 構成項目をシステム変数に変換して、動的に変更して永続化できるようにします。元の構成項目は変換後は非推奨になることに注意してください。変換された構成アイテムの詳細なリストについては、 コンフィグレーションファイルのパラメータを参照してください。
- 一部の TiKV パラメーターのオンライン構成をサポートします。パラメータの詳細なリストについては、 その他を参照してください。
- TiFlash構成項目
max_threads
をシステム変数tidb_max_tiflash_threads
に変換して、構成を動的に変更して永続化できるようにします。変換後も元の構成アイテムが残ることに注意してください。
以前のバージョンからアップグレードされた (オンラインおよびオフライン アップグレードを含む) v6.1.0 クラスターの場合は、次の点に注意してください。
- アップグレード前に構成ファイルで指定された構成項目がすでに存在する場合、TiDB はアップグレード プロセス中に、構成項目の値を対応するシステム変数の値に自動的に更新します。このようにして、アップグレード後のシステムの動作はパラメータの最適化による影響を受けません。
- 上記の自動アップデートは、アップグレード中に 1 回だけ実行されます。アップグレード後、非推奨の構成項目は無効になります。
この機能を使用すると、システムを再起動してサービスを中断する代わりに、パラメータを動的に変更し、検証して永続化することができます。これにより、日常のメンテナンスが容易になります。
クエリまたは接続のグローバルな強制終了をサポート
enable-global-kill
構成 (デフォルトで有効) を使用して、Global Kill 機能を制御できます。TiDB v6.1.0 より前では、操作で大量のリソースが消費され、クラスターの安定性の問題が発生する場合、ターゲット TiDB インスタンスに接続し、
KILL TIDB ${id};
コマンドを実行してターゲットの接続と操作を終了する必要がありました。多くの TiDB インスタンスの場合、この方法は使用が簡単ではなく、誤った操作が発生する傾向があります。 v6.1.0 以降、enable-global-kill
構成が導入され、デフォルトで有効になります。クライアントと TiDB の間にプロキシがある場合、他のクエリやセッションを誤って終了することを心配することなく、任意の TiDB インスタンスで kill コマンドを実行して、指定された接続と操作を終了できます。現在、TiDB は、Ctrl+C を使用したクエリまたはセッションの終了をサポートしていません。TiKV API V2 (実験的)
v6.1.0 より前では、TiKV が Raw Key Valuestorageとして使用される場合、TiKV はクライアントから渡された Raw データのみを保存するため、基本的な Key Value の読み取りおよび書き込み機能のみを提供します。
TiKV API V2 は、次のような新しい Raw Key Valuestorage形式とアクセス インターフェイスを提供します。
- データは MVCC に保存され、データの変更タイムスタンプが記録されます。この機能は、変更データ キャプチャと増分バックアップと復元を実装するための基盤を築きます。
- データはさまざまな用途に応じてスコープ設定され、単一の TiDB クラスター、トランザクション KV、RawKV アプリケーションの共存をサポートします。
MySQLの互換性
MySQL によるユーザーレベルのロック管理との互換性をサポート
ユーザーレベルのロックは、MySQL が組み込み関数を通じて提供するユーザー名付きのロック管理システムです。ロック関数は、ロックのブロック、待機、その他のロック管理機能を提供します。ユーザーレベルのロックは、Rails、Elixir、Ecto などの ORM フレームワークでも広く使用されています。 v6.1.0 以降、TiDB は MySQL と互換性のあるユーザーレベル
RELEASE_LOCK
GET_LOCK
およびRELEASE_ALL_LOCKS
関数をサポートしています。
データ移行
シャードテーブルのマージおよび移行の楽観的モードが GA になりました
DM は、楽観的モードでシャード テーブルからデータをマージおよび移行するタスク用の多数のシナリオ テストを追加します。これは、日常使用シナリオの 90% をカバーします。悲観的モードと比較して、楽観的モードは使用が簡単で効率的です。使用上の注意をよく理解した上で、できれば楽観的モードを使用することをお勧めします。
DM WebUI は、指定されたパラメータに従ってタスクの開始をサポートします
移行タスクを開始するときに、開始時刻とセーフ モードの期間を指定できます。これは、多数のソースを含む増分移行タスクを作成する場合に特に便利で、ソースごとにbinlogの開始位置を指定する必要がなくなります。
TiDB データ共有サブスクリプション
TiDB は、さまざまなサードパーティ データ エコシステムとのデータ共有をサポートします
TiCDC は、TiDB 増分データを Avro 形式で Kafka に送信することをサポートしており、Confluent を介して KSQL や Snowflake などのサードパーティとデータを共有できます。
TiCDC は、TiDB からの増分データをテーブルごとにさまざまな Kafka トピックにディスパッチすることをサポートしています。これを Canal-json 形式と組み合わせることで、Flink と直接データを共有できます。
TiCDC は SASL GSSAPI 認証タイプをサポートし、Kafka を使用した SASL 認証例を追加します。
TiCDC は
charset=GBK
テーブルの複製をサポートします。
互換性の変更
システム変数
変数名 | 種類の変更 | 説明 |
---|---|---|
tidb_enable_list_partition | 修正済み | デフォルト値がOFF からON に変更されました。 |
tidb_mem_quota_query | 修正済み | この変数は GLOBAL スコープを追加し、変数値はクラスターに保持されます。 |
tidb_query_log_max_len | 修正済み | 変数のスコープが INSTANCE から GLOBAL に変更されます。変数値はクラスターに保持され、値の範囲は[0, 1073741824] に変更されます。 |
require_secure_transport | 新しく追加された | この設定は以前はtidb.toml オプション ( security.require-secure-transport ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。 |
tidb_committer_concurrency | 新しく追加された | この設定は以前はtidb.toml オプション ( performance.committer-concurrency ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。 |
tidb_enable_auto_analyze | 新しく追加された | この設定は以前はtidb.toml オプション ( run-auto-analyze ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。 |
tidb_enable_new_only_full_group_by_check | 新しく追加された | この変数は、TiDB がONLY_FULL_GROUP_BY チェックを実行するときの動作を制御します。 |
tidb_enable_outer_join_reorder | 新しく追加された | v6.1.0 以降、TiDB の結合したテーブルの再配置アルゴリズムは、Outer Join をサポートしています。この変数はサポート動作を制御します。デフォルト値はON です。 |
tidb_enable_prepared_plan_cache | 新しく追加された | この設定は以前はtidb.toml オプション ( prepared-plan-cache.enabled ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。 |
tidb_gc_max_wait_time | 新しく追加された | この変数は、コミットされていないトランザクションによってブロックされる GC セーフ ポイントの最大時間を設定するために使用されます。 |
tidb_max_auto_analyze_time | 新しく追加された | この変数は、auto analyzeの最大実行時間を指定するために使用されます。 |
tidb_max_tiflash_threads | 新しく追加された | この変数は、リクエストを実行するためのTiFlash の最大同時実行数を設定するために使用されます。 |
tidb_mem_oom_action | 新しく追加された | この設定は以前はtidb.toml オプション ( oom-action ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。 |
tidb_mem_quota_analyze | 新しく追加された | この変数はANALYZE TABLE ユーザーによる手動実行や TiDB バックグラウンドでの自動分析タスクなど、TiDB が統計を更新するときの最大メモリ使用量を制御します。 |
tidb_nontransactional_ignore_error | 新しく追加された | この変数は、非トランザクション DML ステートメントでエラーが発生した場合に、ただちにエラーを返すかどうかを指定します。 |
tidb_prepared_plan_cache_memory_guard_ratio | 新しく追加された | この設定は以前はtidb.toml オプション ( prepared-plan-cache.memory-guard-ratio ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。 |
tidb_prepared_plan_cache_size | 新しく追加された | この設定は以前はtidb.toml オプション ( prepared-plan-cache.capacity ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。 |
tidb_stats_cache_mem_quota | 新しく追加された | この変数は、TiDB 統計キャッシュのメモリ割り当てを設定します。 |
コンフィグレーションファイルのパラメータ
コンフィグレーションファイル | コンフィグレーション | 種類の変更 | 説明 |
---|---|---|---|
TiDB | committer-concurrency | 削除されました | システム変数tidb_committer_concurrency に置き換えられます。この設定項目はもう有効ではありません。値を変更したい場合は、対応するシステム変数を変更する必要があります。 |
TiDB | lower-case-table-names | 削除されました | 現在、TiDB はlower_case_table_name=2 のみをサポートします。別の値が設定されている場合、クラスターを v6.1.0 にアップグレードすると、その値は失われます。 |
TiDB | mem-quota-query | 削除されました | システム変数tidb_mem_quota_query に置き換えられます。この設定項目はもう有効ではありません。値を変更したい場合は、対応するシステム変数を変更する必要があります。 |
TiDB | oom-action | 削除されました | システム変数tidb_mem_oom_action に置き換えられます。この設定項目はもう有効ではありません。値を変更したい場合は、対応するシステム変数を変更する必要があります。 |
TiDB | prepared-plan-cache.capacity | 削除されました | システム変数tidb_prepared_plan_cache_size に置き換えられます。この設定項目はもう有効ではありません。値を変更したい場合は、対応するシステム変数を変更する必要があります。 |
TiDB | prepared-plan-cache.enabled | 削除されました | システム変数tidb_enable_prepared_plan_cache に置き換えられます。この設定項目はもう有効ではありません。値を変更したい場合は、対応するシステム変数を変更する必要があります。 |
TiDB | query-log-max-len | 削除されました | システム変数tidb_query_log_max_len に置き換えられます。この設定項目はもう有効ではありません。値を変更したい場合は、対応するシステム変数を変更する必要があります。 |
TiDB | require-secure-transport | 削除されました | システム変数require_secure_transport に置き換えられます。この設定項目はもう有効ではありません。値を変更したい場合は、対応するシステム変数を変更する必要があります。 |
TiDB | run-auto-analyze | 削除されました | システム変数tidb_enable_auto_analyze に置き換えられます。この設定項目はもう有効ではありません。値を変更したい場合は、対応するシステム変数を変更する必要があります。 |
TiDB | enable-global-kill | 新しく追加された | Global Kill (インスタンス間でのクエリまたは接続の終了) 機能を有効にするかどうかを制御します。値がtrue の場合、 KILL とKILL TIDB ステートメントの両方でインスタンス間のクエリまたは接続を終了できるため、クエリまたは接続が誤って終了することを心配する必要はありません。 |
TiDB | enable-stats-cache-mem-quota | 新しく追加された | 統計キャッシュのメモリ割り当てを有効にするかどうかを制御します。 |
TiKV | raft-engine.enable | 修正済み | デフォルト値がFALSE からTRUE に変更されました。 |
TiKV | region-max-keys | 修正済み | デフォルト値は 1440000 からregion-split-keys / 2 * 3 に変更されます。 |
TiKV | region-max-size | 修正済み | デフォルト値が 144 MB からregion-split-size / 2 * 3 に変更されました。 |
TiKV | coprocessor.enable-region-bucket | 新しく追加された | リージョンをバケットと呼ばれる小さな範囲に分割するかどうかを決定します。 |
TiKV | coprocessor.region-bucket-size | 新しく追加された | enable-region-bucket が true の場合のバケットのサイズ。 |
TiKV | causal-ts.renew-batch-min-size | 新しく追加された | ローカルにキャッシュされたタイムスタンプの最小数。 |
TiKV | causal-ts.renew-interval | 新しく追加された | ローカルにキャッシュされたタイムスタンプが更新される間隔。 |
TiKV | max-snapshot-file-raw-size | 新しく追加された | スナップショット ファイルのサイズがこの値を超えると、スナップショット ファイルは複数のファイルに分割されます。 |
TiKV | raft-engine.memory-limit | 新しく追加された | Raft Engineのメモリ使用量の制限を指定します。 |
TiKV | storage.background-error-recovery-window | 新しく追加された | RocksDB が回復可能なバックグラウンド エラーを検出した後、最大回復時間が許可されます。 |
TiKV | storage.api-version | 新しく追加された | TiKV が生のキー/値ストアとして機能するときに TiKV によって使用されるstorage形式とインターフェイスのバージョン。 |
PD | schedule.max-store-preparing-time | 新しく追加された | ストアがオンラインになるまでの最大待ち時間を制御します。 |
TiCDC | enable-tls | 新しく追加された | TLS を使用してダウンストリーム Kafka インスタンスに接続するかどうか。 |
TiCDC | sasl-gssapi-user sasl-gssapi-password sasl-gssapi-auth-type sasl-gssapi-service-name sasl-gssapi-realm sasl-gssapi-key-tab-path sasl-gssapi-kerberos-config-path | 新しく追加された | Kafka の SASL/GSSAPI 認証をサポートするために使用されます。詳細はkafka を使用してシンク URI を構成するを参照してください。 |
TiCDC | avro-decimal-handling-mode avro-bigint-unsigned-handling-mode | 新しく追加された | Avro 形式の出力詳細を決定します。 |
TiCDC | dispatchers.topic | 新しく追加された | TiCDC が増分データをさまざまな Kafka トピックにディスパッチする方法を制御します。 |
TiCDC | dispatchers.partition | 新しく追加された | dispatchers.partition はdispatchers.dispatcher のエイリアスです。 TiCDC が増分データを Kafka パーティションにディスパッチする方法を制御します。 |
TiCDC | schema-registry | 新しく追加された | Avro スキーマを保存するスキーマ レジストリ エンドポイントを指定します。 |
DM | dmctl start-relay コマンドのworker | 削除されました | このパラメータの使用は推奨されません。よりシンプルな実装を提供します。 |
DM | ソース構成ファイル内のrelay-dir | 削除されました | ワーカー構成ファイル内の同じ構成項目に置き換えられます。 |
DM | タスク構成ファイル内のis-sharding | 削除されました | shard-mode の構成アイテムに置き換えられます。 |
DM | タスク構成ファイル内のauto-fix-gtid | 削除されました | v5.x で非推奨となり、v6.1.0 で正式に削除されました。 |
DM | ソース構成ファイルのmeta-dir とcharset | 削除されました | v5.x で非推奨となり、v6.1.0 で正式に削除されました。 |
その他
デフォルトでプリペアドプランキャッシュを有効にする
新しいクラスターでは、プリペアドプランキャッシュがデフォルトで有効になっており、
Prepare
/Execute
リクエストの実行プランをキャッシュします。以降の実行ではクエリ プランの最適化をスキップできるため、パフォーマンスの向上につながります。アップグレードされたクラスターは、構成ファイルから構成を継承します。新しいクラスターでは新しいデフォルト値が使用されます。これは、プリペアドプランキャッシュがデフォルトで有効になり、各セッションで最大 100 個のプランをキャッシュできることを意味します (capacity=100
)。この機能のメモリ消費量については、 プリペアドプランキャッシュのメモリ管理を参照してください。TiDB v6.1.0 より前では、
SHOW ANALYZE STATUS
インスタンス レベルのタスクを示し、タスク レコードは TiDB の再起動後にクリアされます。 TiDB v6.1.0 以降、SHOW ANALYZE STATUS
クラスター レベルのタスクを示し、タスク レコードは再起動後も保持されます。tidb_analyze_version = 2
の場合、Job_info
列にanalyze option
情報が追加されます。TiKV 内の SST ファイルが破損していると、TiKV プロセスがpanicを引き起こす可能性があります。 TiDB v6.1.0 より前は、SST ファイルが破損すると、TiKV が即座にpanicを起こしました。 TiDB v6.1.0 以降、TiKV プロセスは、SST ファイルが破損してから 1 時間後にpanicになります。
次の TiKV 構成項目は値を動的に変更するをサポートします。
raftstore.raft-entry-max-size
quota.foreground-cpu-time
quota.foreground-write-bandwidth
quota.foreground-read-bandwidth
quota.max-delay-duration
server.grpc-memory-pool-quota
server.max-grpc-send-msg-len
server.raft-msg-max-batch-size
v6.1.0 では、一部の構成ファイル パラメータがシステム変数に変換されます。以前のバージョンからアップグレードされた v6.1.0 クラスター (オンラインおよびオフライン アップグレードを含む) の場合は、次の点に注意してください。
- アップグレード前に構成ファイルで指定された構成項目がすでに存在する場合、TiDB はアップグレード プロセス中に、構成項目の値を対応するシステム変数の値に自動的に更新します。このように、パラメータの最適化により、アップグレード後もシステムの動作は変わりません。
- 上記の自動アップデートは、アップグレード中に 1 回だけ実行されます。アップグレード後、非推奨の構成項目は無効になります。
ダッシュボード ページはDM WebUIから削除されました。
dispatchers.topic
とdispatchers.partition
が有効な場合、TiCDC を v6.1.0 より前のバージョンにダウングレードすることはできません。Avro プロトコルを使用するTiCDC Changefeed は、 v6.1.0 より前のバージョンにダウングレードできません。
改善点
TiDB
TiKV
- インメモリ悲観的ロック#12279使用時のCDCの古い値ヒット率を改善
- ヘルスチェックを改善して、利用できないRaftstoreを検出し、TiKV クライアントが時間内にリージョンキャッシュを更新できるようにします#12398
- Raft Engine #12255でのメモリ制限の設定をサポート
- TiKV は、破損した SST ファイルを自動的に検出して削除し、製品の可用性を向上させます#10578
- CDC は RawKV #11965をサポートします
- 大きなスナップショット ファイルを複数のファイルに分割するサポート#11595
- スナップショット GC がRaftstoreメッセージ ループをブロックしないように、スナップショットガベージコレクションをRaftstoreからバックグラウンド スレッドに移動します#11966
- gPRC メッセージの最大メッセージ長 (
max-grpc-send-msg-len
) と最大バッチ サイズ (raft-msg-max-batch-size
) の動的設定をサポートします#12334 - Raft #10483を介したオンラインの安全でない復元計画の実行をサポート
PD
TiFlash
- マージ フェーズ#4451でより効率的なアルゴリズムが使用されるように、集計演算子のメモリ計算を最適化します。
ツール
バグの修正
TiDB
in
関数がbit
種類のデータを処理するときにpanicが発生する可能性がある問題を修正します。 #33070UnionScan
演算子が順序#33175を維持できないため、間違ったクエリ結果が表示される問題を修正- 特定の場合に Merge Join 演算子が間違った結果を取得する問題を修正します#33042
- 動的枝刈りモード#33231において
index join
の結果が間違っている場合がある問題を修正 - パーティションテーブルの一部のパーティションが削除されると、データがガベージコレクションされない場合がある問題を修正します#33620
- クラスターの PD ノードが交換された後、一部の DDL ステートメントが一定期間スタックすることがある問題を修正します#33908
INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY
テーブルがクエリされるときに TiDBサーバーがメモリ不足になる可能性がある問題を修正します。この問題は、Grafana ダッシュボード#33893で遅いクエリをチェックすると発生する可能性があります。- システム変数
max_allowed_packet
が有効にならない問題を修正#31422 - TopSQL モジュールのメモリリークの問題を修正#34525 #34502
- PointGet プラン#32371でプラン キャッシュが間違っている可能性がある問題を修正
- RC 分離レベル#34447でプラン キャッシュを開始すると、クエリ結果が間違っていることがある問題を修正
TiKV
- TiKV インスタンスがオフラインになったときにRaftログラグが増加する問題を修正#12161
- マージ対象のターゲットリージョンが無効なため、TiKV がパニックを起こして予期せずピアを破棄する問題を修正します#12232
- v5.3.1 または v5.4.0 から v6.0.0 以降のバージョン#12269にアップグレードするときに、TiKV が
failed to load_latest_options
エラーを報告する問題を修正します。 - メモリリソースが不足している場合にRaftログを追加することによって引き起こされる OOM の問題を修正します#11379
- ピアの破棄とリージョン#12368のバッチ分割の間の競合によって引き起こされる TiKVpanicの問題を修正します。
stats_monitor
デッド ループに陥った後、短時間で TiKVメモリ使用量が急増する問題を修正#12416- Follower Read #12478を使用すると TiKV が
invalid store ID 0
エラーを報告する問題を修正
PD
TiDB ダッシュボード
- Top SQL機能が有効になる前に実行されていたSQL文のCPUオーバーヘッドをTop SQLが収集できないバグを修正#33859
TiFlash
- 多数の INSERT および DELETE 操作後の潜在的なデータの不整合を修正#4956
ツール
TiCDC
TiDB データ移行 (DM)
start-time
タイム ゾーンの問題を修正し、DM の動作をダウンストリーム タイム ゾーンの使用からアップストリーム タイム ゾーン#5271の使用に変更します。- タスクが自動的に再開された後、DM がより多くのディスク領域を占有する問題を修正#3734 #5344
- チェックポイントフラッシュにより失敗した行のデータがスキップされる場合がある問題を修正#5279
- 場合によっては、フィルタリングされた DDL をダウンストリームで手動で実行すると、タスクの再開が失敗する可能性がある問題を修正します#5272
case-sensitive: true
が設定されていない場合、大文字のテーブルが複製できない問題を修正します#5255SHOW CREATE TABLE
ステートメント#5159によって返されるインデックスの先頭に主キーがない場合に発生する DM ワーカーのpanic問題を修正します。- GTID が有効になっている場合、またはタスクが自動的に再開された場合に、CPU 使用率が増加し、大量のログが出力される場合がある問題を修正します#5063
- DM WebUI #4993のオフライン オプションとその他の使用上の問題を修正
- アップストリーム#3731で GTID が空の場合、増分タスクの開始に失敗する問題を修正
- 空の設定により dm-master がpanicを引き起こす可能性がある問題を修正#3732
TiDB Lightning