📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

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

また、TiDBのHTAPソリューションの中核コンポーネントであるTiFlash ™は、本リリースで正式にオープンソース化されました。詳細は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の最も重要な基本機能の一つです。多くの場合、ユーザーはデータのスケジュール管理や管理方法を意識する必要はありません。しかし、アプリケーションの複雑性が増すにつれ、分離性やアクセスレイテンシーによるデプロイメントの変更がTiDBの新たな課題となっています。TiDBはv6.0.0以降、SQLインターフェースに基づくデータのスケジュール管理および管理機能を正式に提供しています。レプリカ数、ロールタイプ、データの配置場所など、様々な側面から柔軟なスケジュール管理と管理をサポートします。また、マルチサービス共有クラスターやクロスAZデプロイメントにおけるデータ配置管理もより柔軟にサポートします。

    ユーザードキュメント

  • データベースごとのTiFlashレプリカの構築をサポートします。データベース内のすべてのテーブルにTiFlashレプリカを追加するには、1つのSQL文を使用するだけで済みます。これにより、運用コストと保守コストを大幅に削減できます。

    ユーザードキュメント

トランザクション

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

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

可観測性

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

    Top SQL は、DBA およびアプリケーション開発者向けの TiDB Dashboardのセルフサービス型データベース パフォーマンス監視および診断機能であり、現在 TiDB v6.0 で一般提供されています。

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

    Top SQLはデフォルトでは有効になっていません。有効にすると、各TiKVノードまたはTiDBノードのCPU負荷をリアルタイムで確認できます。そのため、CPU負荷の高いTop SQL文を一目で特定し、データベースのホットスポットや急激な負荷増加といった問題を迅速に分析できます。例えば、 Top SQLを使用すると、単一のTiKVノードのCPUを90%も消費するような異常なクエリを特定し、診断することができます。

    ユーザードキュメント

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

    TiDB Dashboardに継続的プロファイリング機能が導入され、TiDB v6.0で一般提供が開始されました。継続的プロファイリングはデフォルトでは有効になっていません。有効にすると、TiDB、TiKV、PDの各インスタンスのパフォーマンスデータが、ごくわずかなオーバーヘッドで常時収集されます。履歴パフォーマンスデータを使用することで、技術専門家は、再現が困難な問題であっても、メモリ消費量の増加などの問題の根本原因を遡って特定することができます。これにより、平均復旧時間(MTTR)を短縮できます。

    ユーザードキュメント

パフォーマンス

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

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

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

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

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

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

  • Read Committed分離レベルでTSOを取得するための最適化

    クエリのレイテンシーを削減するため、読み取り/書き込み競合がまれな場合、TiDBはRead Committed分離レベルにおいて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

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

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

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

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

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

    ユーザードキュメント

  • MPPエンジンの計算パフォーマンスを向上させる

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

      • 論理関数IS NOT IS

      • 文字列関数: REGEXP() , NOT REGEXP()

      • LEAST(int/real)関数: GREATEST(int/real)

      • LAST_DAY()関数DAYOFYEAR() DAYNAME() DAYOFMONTH() DAYOFWEEK() MONTHNAME()

      • 演算子: 反左外部セミ結合、左外部セミ結合

        ユーザードキュメント

    • エラスティックスレッドプール(デフォルトで有効)が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チェック(チェックサム)をデフォルトで有効にする

    この機能はバージョン5.4.0で実験的に導入されました。ユーザーの業務に明らかな影響を与えることなく、データの精度とセキュリティを強化します。

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

    ユーザードキュメント

  • スレッド利用率の向上

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

    ユーザードキュメント

データ移行

TiDB Data Migration (DM)

  • WebUI を追加 (実験的)

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

    • ダッシュボードで移行タスクを表示する

    • 移行タスクの管理

    • アップストリーム設定を構成する

    • クエリレプリケーションステータス

    • マスターとワーカーの情報を表示する

      WebUIはまだ実験的であり、開発中です。そのため、試用のみに推奨されます。既知の問題として、WebUIとdmctlを使用して同じタスクを操作すると問題が発生する場合があります。この問題は今後のバージョンで修正される予定です。

      ユーザードキュメント

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

    移行タスクを中断させる問題に対処するためのコマンドが追加されました。例:

    • スキーマ エラーが発生した場合は、スキーマファイルを個別に編集するのではなく、 binlog-schema updateコマンドの--from-source/--from-targetパラメータを使用してスキーマファイルを更新できます。

    • binlog の位置を指定して、DDL文を挿入、置換、スキップ、または元に戻すことができます。

      ユーザードキュメント

  • Amazon S3への完全なデータストレージをサポート

    DMが全データ移行タスクまたは完全データ移行タスクを実行する場合、上流からの全データを保存するために十分なハードディスク容量が必要です。EBSと比較して、Amazon S3はほぼ無制限のストレージを低コストで提供します。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は10万テーブルの同時レプリケーションを安定的にサポートできることが示されています。

デプロイと保守

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

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

    ユーザードキュメント

  • TiKVノードの再起動後のリーダーバランシングを高速化

    TiKVノードの再起動後、不均一に分散されたリーダーノードを負荷分散のために再配置する必要があります。大規模クラスターでは、リーダーノードのバランス調整時間はリージョン数と正の相関関係にあります。例えば、10万リージョンのリーダーノードのバランス調整には20~30分かかる場合があり、負荷の不均一性によるパフォーマンスの問題や安定性リスクが生じやすくなります。TiDB v6.0.0では、バランス調整の同時実行性を制御するパラメータが追加され、デフォルト値が従来の4倍に拡張されました。これにより、リーダーノードのバランス調整時間が大幅に短縮され、TiKVノードの再起動後の業務復旧が加速されます。

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

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

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

    ユーザードキュメント

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

    PingCAP Clinic は、 TiDB クラスタ向けの診断サービスです。このサービスは、クラスタの問題をリモートでトラブルシューティングし、ローカルでクラスタの状態を迅速に確認するのに役立ちます。PingCAP Clinicを利用することで、TiDB クラスタのライフサイクル全体にわたる安定した運用を確保し、潜在的な問題を予測し、問題発生の可能性を低減し、クラスタの問題を迅速にトラブルシューティングできます。

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

    ユーザードキュメント

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

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

    TiEMは、TiDBクラスタのライフサイクル全体を視覚的に管理するだけでなく、パラメータ管理、バージョンアップ、クラスタクローン、アクティブ/スタンバイクラスタ切り替え、データのインポート/エクスポート、データレプリケーション、データのバックアップ/リストアといったワンストップサービスも提供します。TiEMは、TiDBにおけるDevOpsの効率を向上させ、企業のDevOpsコストを削減します。

    現在、TiEMはTiDB Enterprise Editionのみで提供されています。TiEMを入手するには、 TiDB Enterpriseページからお問い合わせください。

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

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

    ユーザードキュメント

互換性の変更

システム変数

変数名タイプを変更説明
placement_checks削除済みDDL文がSQL の配置ルールで指定された配置ルールを検証するかどうかを制御します。tidb_placement_mode に置き換えられ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です。
  • この変数はまだreplica-readと互換性がありません。読み取りリクエストでtidb_rc_read_check_tsがオンになっている場合、 replica-read を使用できない可能性があります。両方の変数を同時にオンにしないでください。
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で記録できる回数を制御します。デフォルト値は100です。
tidb_txn_assertion_level新しく追加されたアサーションレベルを制御します。アサーションは、データとインデックス間の整合性チェックであり、トランザクションのコミットプロセスにおいて、書き込まれるキーが存在するかどうかを確認します。デフォルトでは、ほとんどのチェック項目が有効になっており、パフォーマンスへの影響はほとんどありません。v6.0.0より前のバージョンからアップグレードした既存のクラスターでは、このチェックはデフォルトで無効になっています。

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

コンフィグレーションファイルコンフィグレーションタイプを変更説明
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
削除済みステートメントサマリーテーブルに関連するコンフィグレーション。これらの設定項目はすべて削除されました。ステートメントサマリーテーブルを制御するには、SQL変数を使用する必要があります。
TiDBnew_collations_enabled_on_first_bootstrap変更新しい照合順序のサポートを有効にするかどうかを制御します。バージョン6.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変更DeltaTreeストレージエンジンのセグメントが論理分割を使用するかどうかを決定します。デフォルト値はtrueからfalseに変更されます。
TiFlashprofiles.default.enable_elastic_threadpool変更エラスティックスレッドプールを有効にするかどうかを制御します。デフォルト値はfalseからtrueに変更されます。
TiFlashstorage.format_version変更TiFlashのデータ検証機能を制御します。デフォルト値は2から3に変更されます。
format_version 3に設定すると、ハードウェア障害による誤った読み取りを回避するために、すべてのTiFlashデータの読み取り操作に対して一貫性チェックが実行されます。
新しい形式のバージョンは、v5.4 より前のバージョンにそのままダウングレードすることはできないことに注意してください。
TiDBpessimistic-txn.pessimistic-auto-commit新しく追加された悲観的トランザクションモードがグローバルに有効になっている場合 ( tidb_txn_mode='pessimistic' )、自動コミット トランザクションが使用するトランザクションモードを決定します。
TiKVpessimistic-txn.in-memory新しく追加されたインメモリ悲観的ロックを有効にするかどうかを制御します。この機能を有効にすると、悲観的トランザクションは、悲観的ロックをディスクに書き込んだり他のレプリカに複製したりするのではなく、可能な限りTiKVメモリに悲観的ロックを保存します。これにより、悲観的トランザクションのパフォーマンスが向上しますが、悲観的ロックが失われる可能性がわずかながらあり、その結果、悲観的トランザクションがコミットに失敗する可能性があります。デフォルト値はtrueです。
TiKVquota新しく追加されたフロントエンドリクエストが占有するリソースを制限するQuota Limiter関連の設定項目を追加しました。Quota Limiterは実験的機能であり、デフォルトでは無効になっています。新しいクォータ関連の設定項目は、 foreground-cpu-timeforeground-write-bandwidthforeground-read-bandwidthmax-delay-durationです。
TiFlashprofiles.default.dt_compression_method新しく追加されたTiFlashの圧縮アルゴリズムを指定します。オプションの値はLZ4zstdLZ4HCで、いずれも大文字と小文字は区別されません。デフォルト値は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に設定することで、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を削除します。
    • usingの代わりにenabled (使用可能) を追加します。
    • disabledを追加します (利用不可)。
  • DMはOpenAPIインターフェースを変更する
    • 内部メカニズムの変更により、タスク管理関連のインターフェースは以前の実験的版との互換性がありません。適応には新しいバージョンDM OpenAPIドキュメントを参照してください。
  • DMは、完​​全なインポートフェーズ中に競合を解決する方法を変更します。
    • loader.<name>.on-duplicateパラメータが追加されました。デフォルト値はreplaceで、これは新しいデータを使用して既存のデータを置き換えることを意味します。以前の動作を維持したい場合は、値をerrorに設定できます。このパラメータは、フルインポートフェーズでの動作のみを制御します。
  • DMを使用するには、 dmctlの対応するバージョンを使用する必要があります。
    • 内部メカニズムの変更により、DM を v6.0.0 にアップグレードした後、 dmctlも v6.0.0 にアップグレードする必要があります。
  • v5.4以前のバージョンでは、TiDBは一部のnoopシステム変数に不正な値を許可していました。v6.0.0以降では、TiDBはシステム変数に不正な値を設定することを禁止します#31538

改善点

  • TiDB

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

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

    • Backup & Restore (BR)

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

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

    • TiCDC

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

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

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

バグ修正

  • TiDB

    • SCHEDULE = majority_in_primary PrimaryRegion同じ値の場合にTiDBが配置ルールをRegionsしてテーブルを作成できないバグを修正しました#31271
    • インデックスルックアップ結合を使用してクエリを実行するときに発生するinvalid transactionエラーを修正 #30468
    • show grantsで2つ以上の権限が付与されたときに誤った結果を返すバグを修正しました#30855
    • INSERT INTO t1 SET timestamp_col = DEFAULT 、デフォルトでCURRENT_TIMESTAMP に設定されているフィールドのタイムスタンプをゼロに設定するバグを修正しました。 #29926
    • 文字列型の最大値と最小値の非NULL値のエンコードを避けることで、結果の読み取り時に報告されるエラーを修正しました。 #31721
    • データがエスケープ文字で壊れている場合のロードデータpanicを修正 #31589
    • 照合順序を伴うgreatestまたはleast関数が間違った結果を返す問題を修正しました#31789
    • date_add および date_sub関数が誤ったデータ型を返す可能性があるバグを修正#31809
    • 挿入ステートメントを使用して仮想生成列にデータを挿入するときに発生する可能性のあるpanicを修正しました。 #31735
    • 作成されたリストパーティションに重複した列が存在する場合にエラーが報告されないバグを修正しました #31784
    • select for update union selectで誤ったスナップショットを使用した場合に返される誤った結果を修正#31530
    • 復元操作が完了した後にリージョンが不均等に分散される可能性がある問題を修正しました#31034
    • json型のCOERCIBILITYが間違っているバグを修正 #31541
    • 組み込み関数を使用してこの型を処理するときに、 json型の誤った照合順序を修正しました。 #31320
    • TiFlashレプリカの数が0に設定されている場合にPDルールが削除されないバグを修正#32190
    • alter column set defaultテーブルスキーマを誤って更新する問題を修正 #31074
    • TiDBのdate_format '\n' MySQLと互換性のない方法で処理する問題を修正#32232
    • 結合を使用してパーティションテーブルを更新するときにエラーが発生する可能性があるバグを修正しました #31629
    • 列挙値の Nulleq 関数の範囲計算結果が誤っていた問題を修正しました #32428
    • upper()lower()関数でpanicする可能性を修正 #32488
    • 他のタイプの列をタイムスタンプタイプの列に変更するときに発生するタイムゾーンの問題を修正しました#29585
    • ChunkRPC を使用してデータをエクスポートする際の TiDB OOM を修正 #30880 #31981
    • 動的パーティションプルーニングモードでサブSELECT LIMITが期待どおりに動作しないバグを修正しました #32516
    • 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条件が含まれている場合に演算子selectionをプッシュダウンできないバグを修正しました。 #33166
    • クエリがエラーを報告したときに 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命令セット不足により発生するARM64アーキテクチャでのコンパイル問題を修正 #12034
    • 初期化されていないレプリカを削除すると古いレプリカが再作成される可能性がある問題を修正#10533
    • 古いメッセージによって TiKV がpanicを起こすバグを修正#12023
    • TsSet 変換で未定義の動作 (UB) が発生する可能性がある問題を修正#12070
    • レプリカ読み取りが線形化可能性に違反する可能性があるバグを修正しました #12109
    • Ubuntu 18.04 でTiKVがプロファイリングを実行するときに発生する潜在的なpanic問題を修正しました #9765
    • tikv-ctl が間違った文字列一致のために誤った結果を返す問題を修正#12329
    • メモリメトリックのオーバーフローによって引き起こされる断続的なパケット損失とメモリ不足(OOM)の問題を修正しました#12160
    • TiKV を終了するときに誤って TiKV パニックを報告する潜在的な問題を修正しました #12231
  • PD

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

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

    • Backup & Restore (BR)

      • 復元操作中に回復不可能なエラーが発生するとBRが停止するバグを修正#33200
      • バックアップ再試行中に暗号化情報が失われた場合に復元操作が失敗するバグを修正#32423
    • TiCDC

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

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

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

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

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

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