重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

TiDB6.0.0リリースノート

発売日:2022年4月7日

TiDBバージョン:6.0.0-DMR

6.0.0-DMRでは、主な新機能または改善点は次のとおりです。

  • SQLで配置ルールをサポートして、データ配置のより柔軟な管理を提供します。
  • カーネルレベルでデータとインデックスの間に整合性チェックを追加します。これにより、システムの安定性と堅牢性が向上し、リソースのオーバーヘッドが非常に低くなります。
  • 非専門家向けのセルフサービスのデータベースパフォーマンス監視および診断機能であるTop SQLを提供します。
  • クラスタパフォーマンスデータを常に収集する継続的プロファイリングをサポートし、技術専門家のMTTRを削減します。
  • ホットスポットの小さなテーブルをメモリにキャッシュします。これにより、アクセスパフォーマンスが大幅に向上し、スループットが向上し、アクセスの待ち時間が短縮されます。
  • インメモリペシミスティックロックを最適化します。ペシミスティックロックによって引き起こされるパフォーマンスのボトルネックの下で、ペシミスティックロックのメモリ最適化により、レイテンシを10%削減し、QPSを10%向上させることができます。
  • プリペアドステートメントを拡張して実行プランを共有します。これにより、CPUリソースの消費が減り、SQLの実行効率が向上します。
  • より多くの式のプッシュダウンとエラスティックスレッドプールの一般的な可用性(GA)をサポートすることにより、MPPエンジンのコンピューティングパフォーマンスを向上させます。
  • DM WebUIを追加して、多数の移行タスクの管理を容易にします。
  • 大規模なクラスターでデータを複製する際のTiCDCの安定性と効率を向上させます。 TiCDCは、100,000テーブルの同時複製をサポートするようになりました。
  • TiKVノードを再起動した後、リーダーのバランシングを加速します。これにより、再起動後のビジネス回復の速度が向上します。
  • 統計の自動更新のキャンセルをサポートします。これにより、リソースの競合が減少し、SQLパフォーマンスへの影響が制限されます。
  • TiDBクラスターの自動診断サービスであるPingCAPクリニックを提供します(テクニカルプレビューバージョン)。
  • エンタープライズレベルのデータベース管理プラットフォームであるTiDBEnterpriseManagerを提供します。

また、TiDBのHTAPソリューションのコアコンポーネントとして、 TiFlashTMはこのリリースで正式にオープンソースになっています。詳細については、 TiFlashリポジトリを参照してください。

リリース戦略の変更

TiDB v6.0.0以降、TiDBは次の2種類のリリースを提供します。

  • 長期サポートリリース

    ロングタームサポート(LTS)リリースは、約6か月ごとにリリースされます。 LTSリリースでは、新機能と改善点が導入され、リリースライフサイクル内でパッチリリースが受け入れられます。たとえば、v6.1.0はLTSリリースになります。

  • 開発マイルストーンリリース

    開発マイルストーンリリース(DMR)は、約2か月ごとにリリースされます。 DMRは新しい機能と改善を導入しますが、パッチリリースは受け入れません。オンプレミスユーザーが実稼働環境でDMRを使用することはお勧めしません。たとえば、v6.0.0-DMRはDMRです。

TiDB v6.0.0はDMRであり、そのバージョンは6.0.0-DMRです。

新機能

SQL

  • データのSQLベースの配置ルール

    TiDBは、優れたスケーラビリティを備えた分散データベースです。通常、データは複数のサーバーまたは複数のデータセンターに展開されます。したがって、データスケジューリング管理は、TiDBの最も重要な基本機能の1つです。ほとんどの場合、ユーザーはデータのスケジュールと管理の方法を気にする必要はありません。ただし、アプリケーションの複雑さが増すにつれて、分離とアクセス遅延によって引き起こされる展開の変更は、TiDBにとって新たな課題になっています。 v6.0.0以降、TiDBはSQLインターフェイスに基づくデータのスケジューリングおよび管理機能を公式に提供します。レプリカ数、役割の種類、データの配置場所などのディメンションでの柔軟なスケジューリングと管理をサポートします。 TiDBは、マルチサービス共有クラスターおよびクロスAZ展開でのデータ配置のより柔軟な管理もサポートします。

    ユーザードキュメント

  • データベースによるTiFlashレプリカの構築をサポートします。データベース内のすべてのテーブルにTiFlashレプリカを追加するには、単一のSQLステートメントを使用するだけで済み、運用と保守のコストを大幅に節約できます。

    ユーザードキュメント

取引

  • カーネルレベルでのデータインデックスの整合性のチェックを追加します

    トランザクションの実行時にデータインデックスの整合性のチェックを追加します。これにより、システムの安定性と堅牢性が向上し、リソースのオーバーヘッドが非常に低くなります。 tidb_enable_mutation_checker変数とtidb_txn_assertion_level変数を使用して、チェック動作を制御できます。デフォルト構成では、ほとんどのシナリオでQPSの低下は2%以内に制御されます。整合性チェックのエラーの説明については、 ユーザードキュメントを参照してください。

可観測性

  • Top SQL:専門家以外のパフォーマンス診断

    Top SQLは、DBAおよびアプリ開発者向けのTiDBダッシュボードのセルフサービスデータベースパフォーマンス監視および診断機能であり、TiDBv6.0で一般的に利用可能になりました。

    専門家向けの既存の診断機能とは異なり、 Top SQLは専門家以外向けに設計されています。相関関係を見つけたり、 Raftスナップショット、RocksDB、MVCC、TSOなどのTiDB内部メカニズムを理解したりするために、何千もの監視チャートをトラバースする必要はありません。Top SQLを使用してデータベースの負荷をすばやく分析し、アプリのパフォーマンスを向上させるには、基本的なデータベースの知識(インデックス、ロックの競合、実行プランなど)のみが必要です。

    Top SQLはデフォルトでは有効になっていません。有効にすると、 Top SQLは各TiKVまたはTiDBノードのリアルタイムCPU負荷を提供します。したがって、CPU負荷が高いSQLステートメントを一目見ただけで見つけて、データベースのホットスポットや突然の負荷の増加などの問題をすばやく分析できます。たとえば、 Top SQLを使用して、単一のTiKVノードの90%のCPUを消費する異常なクエリを特定して診断できます。

    ユーザードキュメント

  • 継続的なプロファイリングをサポートする

    TiDBダッシュボードでは、継続的プロファイリング機能が導入されています。この機能は、TiDBv6.0で一般的に利用可能になりました。継続的なプロファイリングはデフォルトでは有効になっていません。有効にすると、個々のTiDB、TiKV、およびPDインスタンスのパフォーマンスデータが常に収集され、オーバーヘッドはごくわずかです。技術専門家は、履歴パフォーマンスデータを使用して、問題の再現が困難な場合でも、メモリ消費量が多いなどの問題の根本原因をさかのぼって特定できます。このようにして、平均修復時間(MTTR)を短縮できます。

    ユーザードキュメント

パフォーマンス

  • ホットスポットの小さなテーブルをキャッシュする

    ホットスポットの小さなテーブルにアクセスするシナリオのユーザーアプリケーションの場合、TiDBはホットスポットテーブルをメモリに明示的にキャッシュすることをサポートします。これにより、アクセスパフォーマンスが大幅に向上し、スループットが向上し、アクセスの待ち時間が短縮されます。このソリューションは、サードパーティのキャッシュミドルウェアの導入を効果的に回避し、アーキテクチャの複雑さを軽減し、運用と保守のコストを削減できます。このソリューションは、構成テーブルや為替レートテーブルなど、小さなテーブルが頻繁にアクセスされるが更新されることはめったにないシナリオに適しています。

    ユーザードキュメント #25293

  • インメモリ悲観的ロック

    TiDB v6.0.0以降、メモリ内のペシミスティックロックはデフォルトで有効になっています。この機能を有効にすると、悲観的なトランザクションロックがメモリで管理されます。これにより、ペシミスティックロックの永続化とロック情報のRaftレプリケーションが回避され、ペシミスティックトランザクションロックの管理のオーバーヘッドが大幅に削減されます。ペシミスティックロックによって引き起こされるパフォーマンスのボトルネックの下で、ペシミスティックロックのメモリ最適化により、レイテンシを10%削減し、QPSを10%向上させることができます。

    ユーザードキュメント #11452

  • 読み取りコミット分離レベルでTSOを取得するための最適化

    クエリの待ち時間を短縮するために、読み取りと書き込みの競合がまれな場合、TiDBはコミットされた分離レベルを読み取るtidb_rc_read_check_tsのシステム変数を追加して、不要なTSOを減らします。この変数はデフォルトで無効になっています。変数が有効になっている場合、この最適化によりTSOの重複が回避され、読み取りと書き込みの競合がないシナリオでの待ち時間が短縮されます。ただし、読み取りと書き込みの競合が頻繁に発生するシナリオでは、この変数を有効にするとパフォーマンスが低下する可能性があります。

    ユーザードキュメント #33159

  • 実行計画を共有するために準備されたステートメントを強化する

    SQL実行プランを再利用すると、SQLステートメントの解析時間を効果的に短縮し、CPUリソースの消費を減らし、SQLの実行効率を向上させることができます。 SQLチューニングの重要な方法の1つは、SQL実行プランを効果的に再利用することです。 TiDBは、プリペアドステートメントとの実行プランの共有をサポートしています。ただし、準備されたステートメントが閉じられると、TiDBは対応するプランキャッシュを自動的にクリアします。その後、TiDBは繰り返されるSQLステートメントを不必要に解析し、実行効率に影響を与える可能性があります。 v6.0.0以降、TiDBは、 tidb_ignore_prepared_cache_close_stmtパラメーター(デフォルトでは無効)を使用してCOM_STMT_CLOSEコマンドを無視するかどうかの制御をサポートしています。パラメータを有効にすると、TiDBはプリペアドステートメントを閉じるコマンドを無視し、実行プランをキャッシュに保持して、実行プランの再利用率を向上させます。

    ユーザードキュメント #31056

  • クエリのプッシュダウンを改善する

    コンピューティングをストレージから分離するネイティブアーキテクチャにより、TiDBは演算子をプッシュダウンすることで無効なデータを除外することをサポートします。これにより、TiDBとTiKV間のデータ転送が大幅に削減され、クエリの効率が向上します。 v6.0.0では、TiDBはより多くの式とBITのデータ型をTiKVにプッシュダウンすることをサポートし、式とデータ型を計算する際のクエリ効率を向上させます。

    ユーザードキュメント #30738

  • ホットスポットインデックスの最適化

    単調に増加するデータをバッチでセカンダリインデックスに書き込むと、インデックスのホットスポットが発生し、全体的な書き込みスループットに影響します。 v6.0.0以降、TiDBは、書き込みパフォーマンスを向上させるために、 tidb_shard関数を使用したインデックスホットスポットの分散をサポートしています。現在、 tidb_shardは一意のセカンダリインデックスにのみ有効です。このアプリケーションフレンドリーなソリューションでは、元のクエリ条件を変更する必要はありません。このソリューションは、高い書き込みスループット、ポイントクエリ、およびバッチポイントクエリのシナリオで使用できます。アプリケーションで範囲クエリによって分散されたデータを使用すると、パフォーマンスが低下する可能性があることに注意してください。したがって、このような場合は確認せずにこの機能を使用しないでください。

    ユーザードキュメント #31040

  • TiFlash MPPエンジンのパーティションテーブルの動的プルーニングモードをサポート(実験的)

    このモードでは、TiDBはTiFlashのMPPエンジンを使用してパーティションテーブルのデータを読み取り、計算できます。これにより、パーティションテーブルのクエリパフォーマンスが大幅に向上します。

    ユーザードキュメント

  • MPP エンジンのコンピューティング パフォーマンスを向上させる

    • より多くの関数と演算子をMPPエンジンにプッシュダウンすることをサポート

      • IS NOT関数: IS
      • 文字NOT REGEXP()関数: REGEXP()
      • LEAST(int/real)関数: GREATEST(int/real)
      • LAST_DAY()関数MONTHNAME() DAYNAME() DAYOFMONTH() DAYOFWEEK() DAYOFYEAR()
      • 演算子:反左外側半結合、左外側半結合

      ユーザードキュメント

    • エラスティックスレッドプール(デフォルトで有効)はGAになります。この機能は、CPU使用率の向上を目的としています。

      ユーザードキュメント

安定性

  • 実行計画のベースラインキャプチャを強化する

    テーブル名、頻度、ユーザー名などのディメンションを持つブロックリストを追加することにより、実行プランのベースラインキャプチャの使いやすさを向上させます。バインディングをキャッシュするためのメモリ管理を最適化するための新しいアルゴリズムを導入します。ベースラインキャプチャを有効にすると、システムはほとんどのOLTPクエリのバインディングを自動的に作成します。バインドされたステートメントの実行プランが修正され、実行プランの変更によるパフォーマンスの問題が回避されます。ベースラインキャプチャは、メジャーバージョンのアップグレードやクラスタの移行などのシナリオに適用でき、実行プランのリグレッションによって引き起こされるパフォーマンスの問題を軽減するのに役立ちます。

    ユーザードキュメント #32466

  • TiKVクォータリミッターをサポート(実験的)

    TiKVを使用してデプロイされたマシンのリソースが限られており、フォアグラウンドに大量のリクエストが発生すると、バックグラウンドCPUリソースがフォアグラウンドによって占有され、TiKVのパフォーマンスが不安定になります。 TiDB v6.0.0では、クォータ関連の構成アイテムを使用して、CPUや読み取り/書き込み帯域幅など、フォアグラウンドで使用されるリソースを制限できます。これにより、長期間の重いワークロードでのクラスターの安定性が大幅に向上します。

    ユーザードキュメント #12131

  • TiFlashでzstd圧縮アルゴリズムをサポートする

    TiFlashには、 profiles.default.dt_compression_methodprofiles.default.dt_compression_levelの2つのパラメーターが導入されており、ユーザーはパフォーマンスと容量のバランスに基づいて最適な圧縮アルゴリズムを選択できます。

    ユーザードキュメント

  • デフォルトですべてのI/Oチェック(チェックサム)を有効にする

    この機能は、v5.4.0で実験的ものとして導入されました。ユーザーのビジネスに明らかな影響を与えることなく、データの正確性とセキュリティを強化します。

    警告:新しいバージョンのデータ形式を、v5.4.0より前のバージョンにダウングレードすることはできません。このようなダウングレード中は、TiFlashレプリカを削除し、ダウングレード後にデータを複製する必要があります。または、 dttoolの移行を参照してダウングレードを実行することもできます。

    ユーザードキュメント

  • スレッドの使用率を向上させる

    TiFlashは、非同期gRPCおよびMin-TSOスケジューリングメカニズムを導入しています。このようなメカニズムは、スレッドのより効率的な使用を保証し、過剰なスレッドによって引き起こされるシステムクラッシュを回避します。

    ユーザードキュメント

データ移行

TiDBデータ移行(DM)

  • WebUIを追加(実験的)

    WebUIを使用すると、多数の移行タスクを簡単に管理できます。 WebUIでは、次のことができます。

    • ダッシュボードで移行タスクをビューする
    • 移行タスクを管理する
    • アップストリーム設定を構成する
    • レプリケーションステータスのクエリ
    • マスターとワーカーの情報をビューする

    WebUIはまだ実験的段階であり、開発中です。したがって、試用のみをお勧めします。既知の問題は、WebUIとdmctlを使用して同じタスクを操作すると問題が発生する可能性があることです。この問題は、今後のバージョンで解決される予定です。

    ユーザードキュメント

  • エラー処理メカニズムを追加する

    移行タスクを中断する問題に対処するために、より多くのコマンドが導入されています。例えば:

    • スキーマエラーが発生した場合は、スキーマファイルを個別に編集する代わりに、 binlog-schema updateコマンドの--from-source/--from-targetパラメーターを使用してスキーマファイルを更新できます。
    • binlog位置を指定して、DDLステートメントを挿入、置換、スキップ、または元に戻すことができます。

    ユーザードキュメント

  • AmazonS3への完全なデータストレージをサポートする

    DMがすべてまたは完全なデータ移行タスクを実行する場合、アップストリームからの完全なデータを格納するために十分なハードディスク容量が必要です。 EBSと比較して、AmazonS3は低コストでほぼ無限のストレージを備えています。現在、DMはAmazonS3をダンプディレクトリとして設定することをサポートしています。つまり、すべてまたは完全なデータ移行タスクを実行するときに、S3を使用して完全なデータを保存できます。

    ユーザードキュメント

  • 指定された時間からの移行タスクの開始をサポート

    新しいパラメータ--start-timeが移行タスクに追加されます。時刻は「2021-10-2100:01:00」または「2021-10-21T00:01:00」の形式で定義できます。

    この機能は、シャードmysqlインスタンスからインクリメンタルデータを移行およびマージするシナリオで特に役立ちます。具体的には、増分移行タスクで各ソースにbinlog開始点を設定する必要はありません。代わりに、 safe-mode--start-timeパラメーターを使用して、増分移行タスクをすばやく作成できます。

    ユーザードキュメント

TiDB Lightning

  • 許容可能なエラーの最大数の構成をサポート

    構成アイテムlightning.max-errorを追加しました。デフォルト値は0です。値が0より大きい場合、最大エラー機能が有効になります。エンコード中に行でエラーが発生した場合、この行を含むレコードがターゲットTiDBのlightning_task_info.type_error_v1に追加され、この行は無視されます。エラーのある行がしきい値を超えると、 TiDB Lightningはすぐに終了します。

    lightning.max-errorの構成と一致して、 lightning.task-info-schema-nameの構成項目は、データ保存エラーを報告するデータベースの名前を記録します。

    この機能は、すべてのタイプのエラーを網羅しているわけではありません。たとえば、構文エラーは適用されません。

    ユーザードキュメント

TiDBデータ共有サブスクリプション

  • 100,000個のテーブルの同時複製をサポート

    TiCDCは、データ処理フローを最適化することにより、各テーブルの増分データを処理するためのリソース消費を削減します。これにより、大規模なクラスターでデータを複製する際の複製の安定性と効率が大幅に向上します。内部テストの結果は、TiCDCが100,000テーブルの同時複製を安定してサポートできることを示しています。

展開とメンテナンス

  • デフォルトで新しい照合順序ルールを有効にする

    v4.0以降、TiDBは、大文字と小文字を区別しない、アクセントを区別しない、およびパディングルールでMySQLと同じように動作する新しい照合順序ルールをサポートしています。新しい照合順序ルールは、デフォルトで無効になっているnew_collations_enabled_on_first_bootstrapパラメーターによって制御されます。 v6.0以降、TiDBはデフォルトで新しい照合順序ルールを有効にします。この構成は、TiDBクラスタの初期化時にのみ有効になることに注意してください。

    ユーザードキュメント

  • TiKVノードを再起動した後、リーダーのバランシングを加速します

    TiKVノードの再起動後、負荷分散のために、不均一に分散したリーダーを再分散する必要があります。大規模なクラスターでは、リーダーのバランシング時間はリージョンの数と正の相関があります。たとえば、100Kリージョンのリーダーバランシングには20〜30分かかる場合があります。これは、不均一な負荷によるパフォーマンスの問題や安定性のリスクが発生しやすい傾向があります。 TiDB v6.0.0は、バランシングの同時実行性を制御するパラメータを提供し、デフォルト値を元の4倍に拡大します。これにより、リーダーのリバランシング時間が大幅に短縮され、TiKVノードの再起動後のビジネス回復が加速されます。

    ユーザードキュメント #4610

  • 統計の自動更新のキャンセルをサポート

    統計は、SQLのパフォーマンスに影響を与える最も重要な基本データの1つです。統計の完全性と適時性を確保するために、TiDBはバックグラウンドでオブジェクト統計を定期的に自動的に更新します。ただし、統計の自動更新によりリソースの競合が発生し、SQLのパフォーマンスに影響を与える可能性があります。この問題に対処するために、v6.0以降の統計の自動更新を手動でキャンセルできます。

    ユーザードキュメント

  • PingCAPクリニック診断サービス(テクニカルプレビュー版)

    PingCAPクリニックはTiDBクラスターの診断サービスです。このサービスは、クラスタの問題をリモートでトラブルシューティングするのに役立ち、クラスタのステータスをローカルですばやく確認できます。 PingCAPクリニックを使用すると、TiDBクラスタのライフサイクル全体での安定した動作を保証し、潜在的な問題を予測し、問題の可能性を減らし、クラスタの問題を迅速にトラブルシューティングできます。

    クラスタの問題をトラブルシューティングするためのリモートアシスタンスについてPingCAPテクニカルサポートに連絡する場合、 PingCAPクリニックサービスを使用して診断データを収集およびアップロードできるため、トラブルシューティングの効率が向上します。

    ユーザードキュメント

  • エンタープライズレベルのデータベース管理プラットフォーム、TiDB Enterprise Manager

    TiDB Enterprise Manager(TiEM)は、TiDBデータベースに基づくエンタープライズレベルのデータベース管理プラットフォームであり、ユーザーがオンプレミスまたはパブリッククラウド環境でTiDBクラスターを管理できるようにすることを目的としています。

    TiEMは、TiDBクラスターの完全なライフサイクルビジュアル管理を提供するだけでなく、パラメーター管理、バージョンアップグレード、クラスタクローン、アクティブスタンバイクラスタスイッチング、データのインポートとエクスポート、データレプリケーション、データのバックアップと復元サービスなどのワンストップサービスも提供します。 TiEMは、TiDBでのDevOpsの効率を改善し、企業のDevOpsコストを削減できます。

    現在、TiEMはTiDBエンタープライズエディションでのみ提供されています。 TiEMを入手するには、 TiDBエンタープライズページからお問い合わせください。

  • 監視コンポーネントの構成のカスタマイズをサポート

    TiUPを使用してTiDBクラスタをデプロイすると、TiUPはPrometheus、Grafana、Alertmanagerなどのモニタリングコンポーネントを自動的にデプロイし、スケールアウト後に新しいノードをモニタリングスコープに自動的に追加します。 topology.yamlのファイルに構成アイテムを追加することにより、監視コンポーネントの構成をカスタマイズできます。

    ユーザードキュメント

互換性の変更

ノート:

以前のTiDBバージョンからv6.0.0にアップグレードするときに、すべての中間バージョンの互換性の変更に関する注意事項を知りたい場合は、対応するバージョンのリリースノートを確認できます。

システム変数

変数名タイプを変更する説明
placement_checks削除されましたDDLステートメントがSQLでの配置ルールで指定された配置ルールを検証するかどうかを制御します。 tidb_placement_modeに置き換えられました。
tidb_enable_alter_placement削除されましたSQLの配置ルールを有効にするかどうかを制御します。
tidb_mem_quota_hashjoin
tidb_mem_quota_indexlookupjoin
tidb_mem_quota_indexlookupreader
tidb_mem_quota_mergejoin
tidb_mem_quota_sort
tidb_mem_quota_topn
削除されましたv5.0以降、これらの変数はtidb_mem_quota_queryに置き換えられ、 システム変数ドキュメントから削除されました。互換性を確保するために、これらの変数はソースコードに保持されていました。 TiDB 6.0.0以降、これらの変数もコードから削除されています。
tidb_enable_mutation_checker新しく追加されましたミューテーションチェッカーを有効にするかどうかを制御します。デフォルト値はONです。 v6.0.0より前のバージョンからアップグレードする既存のクラスターの場合、ミューテーションチェッカーはデフォルトで無効になっています。
tidb_ignore_prepared_cache_close_stmt新しく追加されましたプリペアドステートメントを閉じるコマンドを無視するかどうかを制御します。デフォルト値はOFFです。
tidb_mem_quota_binding_cache新しく追加されましたbindingを保持するキャッシュのメモリ使用量のしきい値を設定します。デフォルト値は67108864 (64 MiB)です。
tidb_placement_mode新しく追加されましたDDLステートメントがSQLでの配置ルールで指定された配置ルールを無視するかどうかを制御します。デフォルト値はstrictです。これは、DDLステートメントが配置ルールを無視しないことを意味します。
tidb_rc_read_check_ts新しく追加されました
  • トランザクション内の読み取りステートメントの待ち時間を最適化します。読み取り/書き込みの競合がより深刻な場合、この変数をオンにすると、オーバーヘッドと遅延が追加され、パフォーマンスが低下します。デフォルト値はoffです。
  • この変数はまだレプリカ読み取りと互換性がありません。読み取り要求でtidb_rc_read_check_tsがオンになっている場合、レプリカ読み取りを使用できない可能性があります。両方の変数を同時にオンにしないでください。
  • tidb_sysdate_is_now新しく追加されましたSYSDATE関数をNOW関数に置き換えることができるかどうかを制御します。この構成アイテムには、MySQLオプションsysdate-is-nowと同じ効果があります。デフォルト値はOFFです。
    tidb_table_cache_lease新しく追加されましたテーブルキャッシュのリース時間を秒単位で制御します。デフォルト値は3です。
    tidb_top_sql_max_meta_count新しく追加されました1分あたりTop SQLずつ収集されるSQLステートメントタイプの最大数を制御します。デフォルト値は5000です。
    tidb_top_sql_max_time_series_count新しく追加されました負荷に最も寄与するSQLステートメント(つまり、上位N)の数を1分あたりTop SQL回記録できるかどうかを制御します。デフォルト値は100です。
    tidb_txn_assertion_level新しく追加されましたアサーションレベルを制御します。アサーションは、データとインデックス間の整合性チェックであり、書き込まれているキーがトランザクションコミットプロセスに存在するかどうかをチェックします。デフォルトでは、チェックはほとんどのチェック項目を有効にし、パフォーマンスにほとんど影響を与えません。 v6.0.0より前のバージョンからアップグレードする既存のクラスターの場合、チェックはデフォルトで無効になっています。

    Configuration / コンフィグレーションファイルのパラメーター

    Configuration / コンフィグレーションファイルConfiguration / コンフィグレーションタイプを変更する説明
    TiDBstmt-summary.enable
    stmt-summary.enable-internal-query
    stmt-summary.history-size
    stmt-summary.max-sql-length
    stmt-summary.max-stmt-count
    stmt-summary.refresh-interval
    削除されましたステートメント要約テーブルに関連するConfiguration / コンフィグレーション。これらの構成アイテムはすべて削除されます。ステートメントサマリーテーブルを制御するには、SQL変数を使用する必要があります。
    TiDBnew_collations_enabled_on_first_bootstrap修正済み新しい照合順序のサポートを有効にするかどうかを制御します。 v6.0以降、デフォルト値はfalseからtrueに変更されています。この構成項目は、クラスタが初めて初期化されたときにのみ有効になります。最初のブートストラップの後、この構成アイテムを使用して新しい照合順序フレームワークを有効または無効にすることはできません。
    TiKVbackup.num-threads修正済み値の範囲が[1, CPU]に変更されます。
    TiKVraftstore.apply-max-batch-size修正済み最大値が10240に変更されます。
    TiKVraftstore.raft-max-size-per-msg修正済み
  • 最小値が0から0より大きい値に変更されます。
  • 最大値は3GBに設定されています。
  • 単位がMBからKB\|MB\|GBに変更されます。
  • TiKVraftstore.store-max-batch-size修正済み最大値は10240に設定されます。
    TiKVreadpool.unified.max-thread-count修正済み調整可能範囲が[min-thread-count, MAX(4, CPU)]に変更されます。
    TiKVrocksdb.enable-pipelined-write修正済みデフォルト値はtrueからfalseに変更されます。この構成を有効にすると、以前のパイプライン書き込みが使用されます。この構成を無効にすると、新しいパイプラインコミットメカニズムが使用されます。
    TiKVrocksdb.max-background-flushes修正済み
  • CPUコアの数が10の場合、デフォルト値は3です。
  • CPUコアの数が8の場合、デフォルト値は2です。
  • TiKVrocksdb.max-background-jobs修正済み
  • CPUコアの数が10の場合、デフォルト値は9です。
  • CPUコアの数が8の場合、デフォルト値は7です。
  • TiFlashprofiles.default.dt_enable_logical_split修正済みDeltaTreeStorageEngineのセグメントが論理分割を使用するかどうかを決定します。デフォルト値はtrueからfalseに変更されます。
    TiFlashprofiles.default.enable_elastic_threadpool修正済みエラスティックスレッドプールを有効にするかどうかを制御します。デフォルト値はfalseからtrueに変更されます。
    TiFlashstorage.format_version修正済みTiFlashのデータ検証機能を制御します。デフォルト値は2から3に変更されます。
    format_version3に設定されている場合、ハードウェア障害による誤った読み取りを回避するために、すべてのTiFlashデータの読み取り操作で整合性チェックが実行されます。
    新しいフォーマットのバージョンは、v5.4より前のバージョンにダウングレードできないことに注意してください。
    TiDBpessimistic-txn.pessimistic-auto-commit新しく追加されましたペシミスティックトランザクションモードがグローバルに有効になっている場合に、自動コミットトランザクションが使用するトランザクションモードを決定します( tidb_txn_mode='pessimistic' )。
    TiKVpessimistic-txn.in-memory新しく追加されましたインメモリペシミスティックロックを有効にするかどうかを制御します。この機能を有効にすると、ペシミスティックトランザクションは、ペシミスティックロックをディスクに書き込んだり、他のレプリカに複製したりする代わりに、ペシミスティックロックを可能な限りTiKVメモリに格納します。これにより、悲観的なトランザクションのパフォーマンスが向上します。ただし、ペシミスティックロックが失われる可能性は低く、ペシミスティックトランザクションのコミットに失敗する可能性があります。デフォルト値はtrueです。
    TiKVquota新しく追加されましたフロントエンド要求が占めるリソースを制限するクォータリミッターに関連する構成アイテムを追加します。クォータリミッターは実験的機能であり、デフォルトでは無効になっています。新しいmax-delay-duration関連の構成アイテムは、 foreground-cpu-time 、およびforeground-read-bandwidth foreground-write-bandwidth
    TiFlashprofiles.default.dt_compression_method新しく追加されましたTiFlashの圧縮アルゴリズムを指定します。オプションの値はLZ4 、およびzstdで、すべて大文字と小文字は区別されLZ4HCん。デフォルト値はLZ4です。
    TiFlashprofiles.default.dt_compression_level新しく追加されましたTiFlashの圧縮レベルを指定します。デフォルト値は1です。
    DMloaders.<name>.import-mode新しく追加されましたフルインポートフェーズ中のインポートモード。 v6.0以降、DMはTiDB LightningのTiDBバックエンドモードを使用して、完全なインポートフェーズ中にデータをインポートします。以前のローダーコンポーネントは使用されなくなりました。これは内部交換であり、日常業務に明らかな影響はありません。
    デフォルト値はsqlに設定されています。これは、 tidb-backendモードを使用することを意味します。まれに、 tidb-backendが完全に互換性がない場合があります。このパラメーターをloaderに構成することにより、ローダーモードにフォールバックできます。
    DMloaders.<name>.on-duplicate新しく追加されましたフルインポートフェーズ中に競合を解決する方法を指定します。デフォルト値はreplaceです。これは、新しいデータを使用して既存のデータを置き換えることを意味します。
    TiCDCdial-timeout新しく追加されましたダウンストリームKafkaとの接続を確立する際のタイムアウト。デフォルト値は10sです。
    TiCDCread-timeout新しく追加されましたダウンストリームのKafkaから返される応答を取得する際のタイムアウト。デフォルト値は10sです。
    TiCDCwrite-timeout新しく追加されましたダウンストリームKafkaにリクエストを送信する際のタイムアウト。デフォルト値は10sです。

    その他

    • データ配置ポリシーには、次の互換性の変更があります。
      • バインディングはサポートされていません。直接配置オプションは構文から削除されます。
      • CREATE PLACEMENT POLICYおよびALTER PLACEMENT POLICYステートメントは、 VOTERSおよびVOTER_CONSTRAINTS配置オプションをサポートしなくなりました。
      • TiDB移行ツール(TiDB Binlog、TiCDC、およびBR)は、配置ルールと互換性があります。配置オプションは、 Binlogの特別なコメントに移動されます。
      • information_schema.placement_rulesシステムテーブルの名前がinformation_schema.placement_policiesに変更されます。このテーブルには、配置ポリシーに関する情報のみが表示されるようになりました。
      • placement_checksのシステム変数はtidb_placement_modeに置き換えられます。
      • TiFlashレプリカを持つテーブルに配置ルールのあるパーティションを追加することは禁止されています。
      • INFORMATION_SCHEMAテーブルからTIDB_DIRECT_PLACEMENT列を削除します。
    • SQL計画管理(SPM)バインディングのstatusの値が変更されました。
      • usingを削除します。
      • enabled (使用可能)を追加してusingを置き換えます。
      • disabledを追加します(使用不可)。
    • DMはOpenAPIインターフェースを変更します
      • 内部メカニズムの変更により、タスク管理に関連するインターフェースは以前の実験的バージョンと互換性がありません。適応のために新しいDMOpenAPIドキュメントを参照する必要があります。
    • DMは、完全なインポートフェーズ中に競合を解決するためにメソッドを変更します
      • loader.<name>.on-duplicateつのパラメーターが追加されます。デフォルト値はreplaceです。これは、新しいデータを使用して既存のデータを置き換えることを意味します。以前の動作を維持したい場合は、値をerrorに設定できます。このパラメーターは、完全なインポートフェーズ中の動作のみを制御します。
    • DMを使用するには、対応するバージョンのdmctlを使用する必要があります
      • 内部メカニズムの変更により、DMをv6.0.0にアップグレードした後、 dmctlもv6.0.0にアップグレードする必要があります。
    • v5.4(v5.4のみ)では、TiDBは一部のnoopシステム変数に誤った値を許可します。 v6.0.0以降、TiDBはシステム変数に誤った値を設定することを許可していません。 #31538

    改善点

    • TiDB

      • FLASHBACKまたはRECOVERステートメントを使用してテーブルを復元した後、テーブルの配置ルール設定を自動的にクリアします#31668
      • パフォーマンス概要ダッシュボードを追加して、一般的なクリティカルパスのコアパフォーマンスメトリックを表示し、TiDBでのメトリック分析を容易にします#31676
      • LOAD DATA LOCAL INFILEステートメント#24515でのREPLACEキーワードの使用のサポート
      • Rangeパーティションテーブル#26739の組み込みIN式のパーティションプルーニングをサポートします。
      • MPPアグリゲーションクエリで冗長になる可能性のあるExchange操作を排除することにより、クエリの効率を向上させます#31762
      • TRUNCATE PARTITIONステートメントとDROP PARTITIONステートメントでパーティション名の重複を許可することでMySQLとの互換性を向上させます#31681
      • ADMIN SHOW DDL JOBSステートメント#23494の結果にCREATE_TIME情報を表示することをサポートします。
      • 新しい組み込み関数をサポートするCHARSET() #3931
      • ユーザー名によるベースラインキャプチャブロックリストのフィルタリングをサポート#32558
      • ベースラインキャプチャブロックリストでのワイルドカードの使用のサポート#32714
      • 現在の#26642に従って時間を表示することにより、 ADMIN SHOW DDL JOBSおよびSHOW TABLE STATUSステートメントの結果を最適化しtime_zone
      • DAYNAME()およびMONTHNAME()関数を#32594にプッシュダウンすることをサポート
      • REGEXP機能を#32637にプッシュダウンすることをサポート
      • DAYOFMONTH()およびLAST_DAY()関数を#33012にプッシュダウンすることをサポート
      • DAYOFWEEK()およびDAYOFYEAR()関数を#33130にプッシュダウンすることをサポート
      • IS_TRUE 、およびIS_FALSE関数のIS_TRUE_WITH_NULLへのプッシュダウンを#33047
      • GREATESTおよびLEAST関数を#32787にプッシュダウンすることをサポート
      • UnionScan演算子#32631の実行の追跡をサポートします
      • _tidb_rowid#31543を読み取るクエリに対するPointGetプランの使用のサポート
      • 名前を小文字の#32719に変換せずに、 EXPLAINステートメントの出力に元のパーティション名を表示することをサポート
      • IN条件および文字列型列でのRANGECOLUMNSパーティショニングのパーティションプルーニングを有効にする#32626
      • システム変数がNULLに設定されている場合、エラーメッセージを返します#32850
      • 非MPPモードからブロードキャスト参加を削除する#31465
      • 動的プルーニングモードでのパーティションテーブルでのMPPプランの実行のサポート#32347
      • Common Table Expression(CTE)の述語のプッシュダウンをサポート#28163
      • Statement SummaryCapture Plan Baselinesの構成を単純化して、グローバルベースでのみ利用できるようにします#30557
      • gopsutilをv3.21.12に更新して、 #31607でバイナリをビルドするときに報告されるアラームに対処します。
    • TiKV

      • 多くのキー範囲を持つバッチのRaftstoreのサンプリング精度を向上させます#12327
      • プロファイルをより簡単に識別できるように、 debug/pprof/profileに正しい「Content-Type」を追加します#11521
      • Raftstoreにハートビートがあるか、読み取り要求を処理するときに、リーダーのリース時間を無限に更新します。これにより、遅延ジッターを減らすことができます#11579
      • リーダーを切り替えるときにコストが最小のストアを選択します。これにより、パフォーマンスの安定性が向上します#10602
      • Raftストアをブロックすることによって引き起こされるパフォーマンスジッターを減らすために、 Raftログを非同期にフェッチします#11320
      • ベクトル計算#5751QUARTER関数をサポート
      • BITデータ型の#30738へのプッシュダウンをサポート
      • MOD機能とSYSDATE機能の#11916へのプッシュダウンをサポート
      • ロックの解決ステップ#11993を必要とするリージョンの数を減らすことにより、TiCDCの回復時間を短縮します。
      • 動的変更の#11865 raftstore.raft-max-inflight-msgs
      • 動的プルーニングモード#11888を有効にするためのサポートEXTRA_PHYSICAL_TABLE_ID_COL_ID
      • バケット#11759での計算をサポート
      • #11965のキーをuser-key + memcomparable-padding +57としてエンコードしtimestamp
      • #11965の値をuser-value + ttl + ValueMetaとしてエンコードし、911でdeleteをエンコードしValueMeta
      • 動的変更の#12017 raftstore.raft-max-size-per-msg
      • Grafana1でのmulti- #12014のモニタリングをサポート
      • リーダーシップをCDCオブザーバーに移し、レイテンシーのジッターを減らします#12111
      • raftstore.apply_max_batch_sizeraftstore.store_max_batch_sizeの動的変更を#11982
      • RawKV V2は、 raw_getつまたはraw_scanのリクエストを受信すると最新バージョンを返します#11965
      • RCCheckTS整合性読み取りをサポート#12097
      • 動的変更のサポートstorage.scheduler-worker-pool-size (スケジューラープールのスレッド数) #12067
      • グローバルフォアグラウンドフローコントローラーを使用してCPUと帯域幅の使用を制御し、TiKV1のパフォーマンスの安定性を向上させ#11855
      • 動的変更のサポートreadpool.unified.max-thread-count (UnifyReadPoolのスレッド数) #11781
      • TiKV内部パイプラインを使用してRocksDBパイプラインを置き換え、 rocksdb.enable-multibatch-writeパラメーター#12059を廃止します
    • PD

      • リーダーを追い出すときに転送する最速のオブジェクトを自動的に選択することをサポートします。これにより、追い出しプロセスがスピードアップします#4229
      • リージョンが利用できなくなった場合に備えて、2つのレプリカのRaftグループから投票者を削除することを禁止する#4564
      • バランスリーダーのスケジューリングをスピードアップ#4652
    • TiFlash

      • TiFlashファイルの論理分割を禁止し(デフォルト値のprofiles.default.dt_enable_logical_splitからfalseを調整します。詳細はユーザードキュメントを参照)、TiFlash列型ストレージのスペース使用効率を改善して、TiFlashに同期されたテーブルのスペース占有がスペースと同じになるようにします。 TiKVでのテーブルの占有
      • 以前のクラスタ管理モジュールをTiDBに統合することにより、TiFlashのクラスタ管理とレプリカ複製メカニズムを最適化します。これにより、小さなテーブルのレプリカ作成が高速化されます#29924
    • ツール

      • バックアップと復元(BR)

        • バックアップデータの復元速度を向上させます。 BRが16TBのデータを15ノード(各ノードに16個のCPUコアがある)のTiKVクラスタに復元するシミュレーションテストでは、スループットは2.66 GiB/sに達します。 #27036

        • 配置ルールのインポートとエクスポートをサポートします。データをインポートするときに配置ルールを無視するかどうかを制御する--with-tidb-placement-modeつのパラメーターを追加します。 #32290

      • TiCDC

        • Grafana3にLag analyzeのパネルを追加し#4891
        • 配置ルールのサポート#4846
        • HTTPAPI処理の同期#1710
        • チェンジフィードを再開するための指数バックオフメカニズムを追加する#3329
        • MySQLシンクのデフォルトの分離レベルを読み取りコミットに設定して、 #3589のデッドロックを減らします。
        • 作成時にチェンジフィードパラメータを検証し、エラーメッセージを調整します#1716 #1718 #1719 #4472
        • Kafkaプロデューサーの構成パラメーターを公開して、 #4385で構成可能にします。
      • TiDBデータ移行(DM)

        • アップストリームテーブルスキーマに一貫性がなく、楽観的なモードである場合のタスクの開始をサポートする#3629 #3708 #3786
        • stopped状態でのタスクの作成をサポート#4484
        • /tmpではなくDM-workerの作業ディレクトリを使用して内部ファイルを書き込み、タスクの停止後にディレクトリをクリーンアップするSyncerをサポートします#4107
        • 事前チェックが改善されました。一部の重要なチェックがスキップされなくなりました。 #3608
      • TiDB Lightning

        • 再試行可能なエラータイプをさらに追加する#31376
        • base64形式のパスワード文字列#31194をサポートする
        • エラーコードとエラー出力を標準化する#32239

    バグの修正

    • TiDB

      • SCHEDULE = majority_in_primary 、およびPrimaryRegionの値が同じである場合にRegionsが配置ルールを使用してテーブルを作成できないバグを修正します#31271
      • インデックスルックアップ結合#30468を使用してクエリを実行するときのinvalid transactionのエラーを修正しました
      • 2つ以上の特権が付与されたときにshow grantsが誤った結果を返すバグを修正します#30855
      • INSERT INTO t1 SET timestamp_col = DEFAULTがデフォルトで#29926に設定されたフィールドのタイムスタンプをゼロタイムスタンプに設定するバグを修正しCURRENT_TIMESTAMP
      • 文字列タイプ#31721の最大値と最小の非null値のエンコードを回避することにより、結果の読み取り中に報告されたエラーを修正します
      • エスケープ文字でデータが壊れた場合のデータの読み込みpanicを修正#31589
      • 照合順序を使用するgreatestまたはleast関数が間違った結果を取得する問題を修正します#31789
      • date_add関数とdate_sub関数が誤ったデータ型を返す可能性があるバグを修正します#31809
      • 挿入ステートメントを使用して仮想的に生成された列にデータを挿入するときに発生する可能性があったpanicを修正#31735
      • 作成されたリストパーティションに重複する列が存在する場合にエラーが報告されないバグを修正します#31784
      • select for update union selectが誤ったスナップショットを使用したときに返される誤った結果を修正します#31530
      • 復元操作の終了後にリージョンが不均一に分散される可能性があるという潜在的な問題を修正します#31034
      • jsonタイプ#31541のCOERCIBILITYが間違っているバグを修正します
      • このタイプがbuiltin- #31320を使用して処理される場合の、 jsonタイプの誤った照合順序を修正します。
      • TiFlashレプリカの数が#32190に設定されている場合にPDルールが削除されないバグを修正します
      • alter column set defaultがテーブルスキーマ#31074を誤って更新する問題を修正します
      • TiDBのdate_formatがMySQLと互換性のない方法で'\n'を処理する問題を修正します#32232
      • 結合#31629を使用してパーティションテーブルを更新するときにエラーが発生する可能性があるバグを修正します
      • 列挙値#32428のNulleq関数の誤った範囲計算結果を修正しました
      • upper()およびlower()の関数で発生する可能性のあるpanicを修正#32488
      • 他のタイプの列をタイムスタンプタイプの列に変更するときに発生するタイムゾーンの問題を修正します#29585
      • ChunkRPCを使用してデータをエクスポートするときの#30880を修正#31981
      • 動的パーティションプルーニングモード#32516でサブSELECTLIMITが期待どおりに機能しないバグを修正します。
      • INFORMATION_SCHEMA.COLUMNSテーブル#32655のビットデフォルト値の誤った形式または一貫性のない形式を修正します。
      • サーバーの再起動後にパーティションテーブルを一覧表示するためにパーティションテーブルのプルーニングが機能しない可能性があるバグを修正します#32416
      • SET timestampが実行された後にadd columnが間違ったデフォルトのタイムスタンプを使用する可能性があるバグを修正します#31968
      • MySQL5.5または5.6クライアントからTiDBパスワードなしアカウントへの接続が失敗する可能性があるバグを修正します#32334
      • トランザクション#29851で動的モードでパーティションテーブルを読み取るときの誤った結果を修正
      • TiDBが重複タスクを#32814にディスパッチする可能性があるバグを修正
      • timdiff関数の入力にミリ秒#31680が含まれている場合に返される誤った結果を修正
      • パーティションを明示的に読み取り、IndexJoinプランを使用する場合の誤った結果を修正する#32007
      • 列タイプを同時に変更すると、列の名前変更が失敗するバグを修正します#31075
      • TiFlashプランの正味コストを計算する式がTiKVプランと一致しないバグを修正します#30103
      • KILL TIDBがアイドル状態の接続ですぐに有効にならないバグを修正します#24031
      • 生成された列を含むテーブルをクエリするときに発生する可能性のある誤った結果を修正する#33038
      • left joinを使用して複数のテーブルのデータを削除した誤った結果を#31321
      • オーバーフロー#31868の場合にSUBTIME関数が間違った結果を返すバグを修正しました
      • 集計クエリにhaving条件#33166が含まれている場合、 selection演算子をプッシュダウンできないバグを修正します。
      • クエリがエラーを報告したときにCTEがブロックされる可能性があるバグを修正します#31302
      • 非厳密モードでテーブルを作成するときにvarbinary列またはvarchar列の長さが長すぎると、エラーが発生する可能性があるバグを修正します#30328
      • フォロワーが指定されていない場合のinformation_schema.placement_policiesのフォロワー数の誤りを修正#31702
      • インデックスが作成されるときにTiDBが列プレフィックスの長さを0として指定できる問題を修正します#31972
      • TiDBがスペース#31535で終わるパーティション名を許可する問題を修正します
      • RENAME TABLEステートメント#29893のエラーメッセージを修正します。
    • TiKV

      • ピアステータスがApplyingのときにスナップショットファイルを削除することによって引き起こされるpanicの問題を修正し#11746
      • フロー制御が有効で、 level0_slowdown_triggerが明示的に設定されている場合のQPSドロップの問題を修正します#11424
      • ピアを破棄すると待ち時間が長くなる可能性があるという問題を修正します#10210
      • GCワーカーがビジー状態のときにTiKVがデータの範囲を削除できない(つまり、内部コマンドunsafe_destroy_rangeが実行される)バグを修正します#11903
      • 一部のコーナーケースでStoreMetaのデータが誤って削除されたときにTiKVがパニックになるバグを修正します#11852
      • ARMプラットフォームでプロファイリングを実行するときにTiKVがパニックになるバグを修正します#10658
      • TiKVが2年以上実行されているとpanicになる可能性があるバグを修正します#11940
      • SSE命令セット#12034の欠落によって引き起こされるARM64アーキテクチャのコンパイルの問題を修正します
      • 初期化されていないレプリカを削除すると、古いレプリカが再作成される可能性がある問題を修正します#10533
      • 古いメッセージが原因でTiKVがpanicになるバグを修正します#12023
      • TsSet変換で未定義動作(UB)が発生する可能性がある問題を修正します#12070
      • レプリカの読み取りが線形化可能性に違反する可能性があるバグを修正します#12109
      • TiKVが#9765でプロファイリングを実行するときに発生する可能性のあるpanicの問題を修正します。
      • 文字列の一致が正しくないためにtikv-ctlが誤った結果を返す問題を修正します#12329
      • メモリメトリックのオーバーフローによって引き起こされる断続的なパケット損失とメモリ不足(OOM)の問題を修正します#12160
      • TiKV1を終了するときに誤ってTiKVパニックを報告する潜在的な問題を修正し#12231
    • PD

      • PDがジョイントコンセンサス#4362の無意味なステップで演算子を生成する問題を修正します
      • PDクライアントを閉じるときにTSO取り消しプロセスがスタックする可能性があるバグを修正します#4549
      • リージョンスキャッタースケジューリングが一部のピアを失った問題を修正します#4565
      • dr-autosyncDurationのフィールドを動的に構成できない問題を修正します#4651
    • TiFlash

      • メモリ制限が有効になっているときに発生するTiFlashpanicの問題を修正します#3902
      • 期限切れのデータがゆっくりとリサイクルされる問題を修正します#4146
      • Snapshotが複数のDDL操作と同時に適用された場合のTiFlashpanicの潜在的な問題を修正します#4072
      • 読み取りワークロードが重い場合に列を追加した後の潜在的なクエリエラーを修正する#3967
      • 負の引数を持つSQRT関数が#3598ではなくNaNを返す問題を修正しNull
      • INTからDECIMALをキャストするとオーバーフロー#3920が発生する可能性がある問題を修正します
      • 複数値式#4016INの結果が正しくない問題を修正します
      • 日付形式が'\n'を無効な区切り文字#4036として識別する問題を修正します
      • 同時実行性の高いシナリオでは、学習者の読み取りプロセスに時間がかかりすぎるという問題を修正します#3555
      • DATETIMEから#4151をキャストするときに発生する間違った結果を修正しDECIMAL
      • クエリがキャンセルされたときに発生するメモリリークの問題を修正します#4098
      • エラスティックスレッドプールを有効にするとメモリリークが発生する可能性があるバグを修正#4098
      • ローカルトンネルが有効になっている場合、キャンセルされたMPPクエリによってタスクが永久にハングする可能性があるバグを修正します#4229
      • HashJoinビルド側の失敗により、MPPクエリが永久にハングする可能性があるバグを修正します#4195
      • MPPタスクがスレッドを永久にリークする可能性があるバグを修正します#4238
    • ツール

      • バックアップと復元(BR)

        • 復元操作で回復不能なエラーが発生したときにBRがスタックするバグを修正します#33200
        • バックアップの再試行中に暗号化情報が失われると、復元操作が失敗するバグを修正します#32423
      • TiCDC

        • batch-replace-enableが無効になっている場合にMySQLシンクが重複したreplaceのSQLステートメントを生成するバグを修正します#4501
        • PDリーダーが殺されたときにTiCDCノードが異常に終了するバグを修正します#4248
        • 一部のMySQLバージョン#4504のエラーUnknown system variable 'transaction_isolation'を修正します
        • Canal-JSONが35を誤って処理したときに発生する可能性があるstringpanicの問題を修正し#4635
        • シーケンスが誤って複製される場合があるバグを修正します#4563
        • Canal-JSONがnil3をサポートしていないために発生する可能性があるTiCDCpanicの問題を修正し#4736
        • タイプEnum/SetおよびTinyText/MediumText/Text/LongTextのavroコーデックの誤ったデータマッピングを修正します#4454
        • AvroがNOT NULL列をnull許容フィールドに変換するバグを修正します#4818
        • TiCDCが終了できない問題を修正します#4699
      • TiDBデータ移行(DM)

        • シンカーメトリックがステータス#4281をクエリするときにのみ更新される問題を修正します
        • セーフモードでの更新ステートメントの実行エラーがDMワーカーのpanicを引き起こす可能性がある問題を修正します#4317
        • 長い#4637がエラーを報告するバグを修正しますColumn length too big
        • 複数のDMワーカーが同じアップストリームからデータを書き込むことによって引き起こされる競合の問題を修正します#3737
        • 何百もの「チェックポイントに変更がない、同期フラッシュチェックポイントをスキップする」がログに出力され、レプリケーションが非常に遅いという問題を修正します#4619
        • シャードをマージし、ペシミスティックモードでアップストリームからインクリメンタルデータを複製するときのDML損失の問題を修正します#5002
      • TiDB Lightning

        • 一部のインポートタスクにソースファイルが含まれていない場合、 TiDB Lightningがメタデータスキーマを削除しない可能性があるバグを修正します#28144
        • ソースファイルとターゲットクラスタのテーブル名が異なる場合に発生するpanicを修正します#31771
        • チェックサムエラー「GCの有効期間がトランザクション期間より短い」を修正#32733
        • 空のテーブルのチェックに失敗するとTiDB Lightningがスタックする問題を修正します#31797
      • Dumpling

        • dumpling --sql $queryを実行すると表示される進行状況が正確でない問題を修正し#30532
        • AmazonS3が圧縮データのサイズを正しく計算できない問題を修正します#30534
      • TiDB Binlog

        • 大規模なアップストリーム書き込みトランザクションが#1136に複製されるときに、 Binlogがスキップされる可能性がある問題を修正します。