TiDB 6.0.0 リリースノート

発売日:2022年4月7日

TiDB バージョン: 6.0.0-DMR

注記:

TiDB 6.0.0-DMR のドキュメントはアーカイブされたになりました。 PingCAP では、 最新のLTSバージョンの TiDB データベースを使用することをお勧めします。

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クリニック」を提供(テクニカルプレビュー版)。
  • エンタープライズレベルのデータベース管理プラットフォームである TiDB Enterprise Manager を提供します。

また、TiDB の HTAP ソリューションの中核コンポーネントとして、 TiFlash TM はこのリリースで正式にオープンソースになります。詳細は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 にとって新たな課題となっています。 TiDB は v6.0.0 以降、SQL インターフェースに基づいたデータのスケジューリングおよび管理機能を正式に提供しています。レプリカの数、ロールの種類、データの配置場所などの次元での柔軟なスケジューリングと管理をサポートします。 TiDB は、マルチサービス共有クラスターおよびクロス AZ デプロイメントでのデータ配置のより柔軟な管理もサポートしています。

    ユーザードキュメント

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

    ユーザードキュメント

トランザクション

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

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

可観測性

  • Top SQL: 非専門家向けのパフォーマンス診断

    Top SQLは、DBA およびアプリ開発者向けの TiDB ダッシュボードの自己サービス型データベース パフォーマンス監視および診断機能であり、TiDB v6.0 で一般提供されるようになりました。

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

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

    ユーザードキュメント

  • 継続的プロファイリングのサポート

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

    ユーザードキュメント

パフォーマンス

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

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

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

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

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

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

  • Read Committed 分離レベルで 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

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

    コンピューティングとstorageを分離するネイティブアーキテクチャにより、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()
      • 数学関数: GREATEST(int/real)LEAST(int/real)
      • 日付関数: DAYNAME()DAYOFMONTH()DAYOFWEEK()DAYOFYEAR()LAST_DAY()MONTHNAME()
      • 演算子: アンチ左アウター セミ ジョイン、左アウター セミ ジョイン

      ユーザードキュメント

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

      ユーザードキュメント

安定性

  • 実行計画のベースライン取得を強化する

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

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

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

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

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

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

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

    ユーザードキュメント

  • デフォルトですべての 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 ステートメントを挿入、置換、スキップ、または元に戻すことができます。

    ユーザードキュメント

  • Amazon S3 への完全なデータstorageをサポート

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

    ユーザードキュメント

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

    新しいパラメータ--start-timeが移行タスクに追加されます。時刻は「2021-10-21 00: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削除されましたSQL の配置ルールで指定された配置ルールを DDL ステートメントが検証するかどうかを制御します。 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新しく追加されたキャッシュ保持バインディングのメモリ使用量のしきい値を設定します。デフォルト値は67108864 (64 MiB) です。
tidb_placement_mode新しく追加されたDDL ステートメントがSQL の配置ルールで指定された配置ルールを無視するかどうかを制御します。デフォルト値はstrictで、DDL ステートメントが配置ルールを無視しないことを意味します。
tidb_rc_read_check_ts新しく追加された
  • トランザクション内の読み取りステートメントのレイテンシーを最適化します。読み取り/書き込みの競合がより深刻な場合、この変数をオンにすると、オーバーヘッドとレイテンシーが追加され、パフォーマンスの低下が発生します。デフォルト値はoffです。
  • この変数はまだ、 plica-readと互換性がありません。読み取り要求で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新しく追加されたTop SQLによって 1 分あたりに収集される SQL ステートメント タイプの最大数を制御します。デフォルト値は5000です。
tidb_top_sql_max_time_series_count新しく追加された負荷に最も寄与する SQL ステートメント (つまり、上位 N) を 1 分間にTop SQLで記録できる SQL ステートメントの数を制御します。デフォルト値は100です。
tidb_txn_assertion_level新しく追加されたアサーション レベルを制御します。アサーションはデータとインデックス間の整合性チェックであり、書き込まれるキーがトランザクションのコミット プロセスに存在するかどうかをチェックします。デフォルトでは、このチェックではほとんどのチェック項目が有効になり、パフォーマンスにはほとんど影響がありません。 v6.0.0 より前のバージョンからアップグレードする既存のクラスターの場合、このチェックはデフォルトで無効になっています。

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

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

その他

  • データ配置ポリシーには、次の互換性の変更があります。
    • バインディングはサポートされていません。直接配置オプションが構文から削除されました。
    • CREATE PLACEMENT POLICYおよびALTER PLACEMENT POLICYステートメントは、 VOTERSおよびVOTER_CONSTRAINTS配置オプションをサポートしなくなりました。
    • TiDB 移行ツール (TiDB Binlog、TiCDC、およびBR) が配置ルールと互換性を持つようになりました。配置オプションは TiDB 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 インターフェースを変更します
    • 内部機構の変更により、タスク管理に関するインターフェースが以前の実験的版と互換性がありません。適応するには新しいDM OpenAPI ドキュメントを参照する必要があります。
  • 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ステートメントでのREPLACEキーワードの使用のサポート#24515
    • 範囲パーティション テーブル#26739の組み込みIN式のパーティション プルーニングをサポートします。
    • MPP 集約クエリで潜在的に冗長な Exchange 操作を排除することで、クエリの効率を向上します#31762
    • TRUNCATE PARTITIONDROP PARTITIONステートメントで重複するパーティション名を許可することで、MySQL との互換性を向上します#31681
    • ADMIN SHOW DDL JOBSステートメント#23494の結果にCREATE_TIME情報を表示するサポート
    • 新しい組み込み関数をサポートCHARSET() #3931
    • ユーザー名によるベースライン キャプチャ ブロックリストのフィルタリングをサポート#32558
    • ベースライン キャプチャ ブロックリストでのワイルドカードの使用のサポート#32714
    • 現在のtime_zone #26642に従って時間を表示することで、 ADMIN SHOW DDL JOBSSHOW TABLE STATUSステートメントの結果を最適化します。
    • DAYNAME()MONTHNAME()関数をTiFlash #32594にプッシュダウンするサポート
    • REGEXP機能をTiFlash #32637にプッシュダウンするサポート
    • DAYOFMONTH()LAST_DAY()関数をTiFlash #33012にプッシュダウンするサポート
    • DAYOFWEEK()DAYOFYEAR()関数をTiFlash #33130にプッシュダウンするサポート
    • IS_TRUEIS_FALSE 、およびIS_TRUE_WITH_NULL関数のTiFlash #33047へのプッシュダウンをサポート
    • GREATESTLEAST関数をTiFlash #32787にプッシュダウンするサポート
    • UnionScanオペレーター#32631の実行の追跡をサポート
    • _tidb_rowid#31543を読み取るクエリに対する PointGet プランの使用のサポート
    • EXPLAINステートメントの出力で、名前を小文字に変換せずに元のパーティション名を表示するサポート#32719
    • IN 条件および文字列型列#32626での RANGE COLUMNS パーティションのパーティション プルーニングを有効にする
    • システム変数が NULL に設定されている場合にエラー メッセージを返す#32850
    • 非 MPP モードからブロードキャスト参加を削除する#31465
    • 動的プルーニング モード#32347でのパーティション化されたテーブルでの MPP プランの実行のサポート
    • 共通テーブル式 (CTE) の述語のプッシュダウンのサポート#28163
    • Statement SummaryCapture Plan Baselinesの構成を簡素化し、グローバル ベースでのみ利用できるようにする#30557
    • macOS 12 #31607でバイナリをビルドするときに報告されるアラームに対処するために、gopsutil を v3.21.12 に更新します。
  • TiKV

    • 多くのキー範囲を持つバッチのRaftstoreのサンプリング精度を向上させます#12327
    • プロファイルをより簡単に識別できるように、 debug/pprof/profileに正しい「Content-Type」を追加します#11521
    • Raftstoreにハートビートがあるとき、または読み取りリクエストを処理するときに、リーダーのリース時間を無限に更新します。これにより、レイテンシージッターの削減に役立ちます#11579
    • リーダーを切り替えるときに最もコストの低いストアを選択すると、パフォーマンスの安定性が向上します#10602
    • Raftログを非同期的に取得して、 Raftstore #11320のブロックによって引き起こされるパフォーマンスのジッターを軽減します。
    • ベクトル計算#5751QUARTER機能をサポート
    • BITデータ型の TiKV #30738へのプッシュダウンをサポート
    • TiKV #11916へのMOD機能とSYSDATE機能のプッシュダウンをサポート
    • ロックの解決ステップ#11993を必要とするリージョンの数を減らすことで、TiCDC の回復時間を短縮します。
    • raftstore.raft-max-inflight-msgs #11865の動的変更をサポート
    • 動的プルーニング モード#11888を有効にするEXTRA_PHYSICAL_TABLE_ID_COL_IDサポート
    • バケット#11759での計算をサポート
    • RawKV API V2 のキーをuser-key + memcomparable-padding + timestamp #11965としてエンコードします。
    • RawKV API V2 の値をuser-value + ttl + ValueMetaとしてエンコードし、 delete ValueMeta #11965としてエンコードします。
    • raftstore.raft-max-size-per-msg #12017の動的変更をサポート
    • Grafana #12014での multi-k8 の監視のサポート
    • リーダーシップを 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 と帯域幅の使用を制御し、TiKV #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_splitfalseに調整します。詳細についてはユーザードキュメント参照)、 TiFlashに同期されたテーブルのスペース占有率がTiFlashと同様になるように、TiFlash カラムナ型storageのスペース使用効率を向上させます。 TiKV のテーブルの占有
    • 以前のクラスター管理モジュールを TiDB に統合することで、 TiFlashのクラスター管理とレプリカ レプリケーション メカニズムを最適化し、小さなテーブルのレプリカ作成を高速化します#29924
  • ツール

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

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

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

    • TiCDC

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

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

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

バグの修正

  • TiDB

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

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

    • PD が共同合意#4362の無意味なステップを持つオペレーターを生成する問題を修正
    • PD クライアント#4549を閉じるときに TSO 取り消しプロセスが停止することがあるバグを修正
    • リージョンスキャッタラー スケジューリングで一部のピアが失われる問題を修正します#4565
    • dr-autosyncDurationフィールドを動的に設定できない問題を修正#4651
  • TiFlash

    • メモリ制限が有効になっている場合に発生するTiFlashpanicの問題を修正します#3902
    • 期限切れデータのリサイクルが遅い問題を修正#4146
    • Snapshotが複数の DDL 操作と同時に適用される場合のTiFlashpanicの潜在的な問題を修正します#4072
    • 重い読み取りワークロードで列を追加した後の潜在的なクエリ エラーを修正#3967
    • 負の引数を持つSQRT関数がNull #3598ではなくNaNを返す問題を修正
    • INTからDECIMALにキャストするとオーバーフローが発生する可能性がある問題を修正#3920
    • 複数値式#4016INの結果が正しくない問題を修正
    • 日付形式で'\n'無効な区切り文字#4036として識別される問題を修正します。
    • 同時実行性の高いシナリオ#3555で学習者の読み取りプロセスに時間がかかりすぎる問題を修正します。
    • DATETIMEからDECIMAL #4151をキャストするときに発生する間違った結果を修正
    • クエリがキャンセルされたときに発生するメモリリークの問題を修正します#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 string #4635を誤って処理した場合に発生する可能性がある TiCDCpanicの問題を修正
      • 場合によってはシーケンスが不正に複製されるバグを修正#4552
      • Canal-JSONが nil #4736をサポートしていないために発生する可能性がある TiCDCpanic問題を修正
      • タイプEnum/SetおよびTinyText/MediumText/Text/LongTextの avro コーデックの誤ったデータ マッピングを修正#4454
      • Avro がNOT NULL列を Nullable フィールド#4818に変換するバグを修正
      • TiCDC が終了できない問題を修正#4699
    • TiDB データ移行 (DM)

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

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

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

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

このページは役に立ちましたか?

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.