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

TiDB 7.6.0 リリースノート



発売日:2024年1月25日

TiDB バージョン: 7.6.0

クイックアクセス: クイックスタート

バージョン7.6.0では、以下の主要な機能と改善点が導入されています。

カテゴリ機能/改善点説明
拡張性とパフォーマンスクロスデータベースSQLバインディング同じスキーマを持つ数百ものデータベースを管理する場合、これらのデータベース間でSQLバインディングを適用する必要が生じることがよくあります。例えば、SaaSやPaaSのデータプラットフォームでは、通常、各ユーザーが同じスキーマを持つ個別のデータベースを操作し、それらに対して同様のSQLクエリを実行します。このような場合、各データベースごとにSQLを個別にバインドするのは現実的ではありません。TiDB v7.6.0では、スキーマが同等のすべてのデータベース間でバインディングを一致させることができる、データベース間SQLバインディングが導入されました。
スナップショット復元速度を最大10倍向上(実験的) BR v7.6.0では、クラスターのスナップショット復元を高速化するための、実験的粗粒度リージョン分散アルゴリズムが導入されました。TiKVノードが多数存在するクラスターでは、このアルゴリズムにより、ノード間で負荷がより均等に分散され、ノードごとのネットワーク帯域幅がより有効に活用されるため、クラスターのリソース効率が大幅に向上します。実際のいくつかの事例では、この改善により復元プロセスが最大約10倍高速化されています。
テーブル作成をバッチ処理で行う際の処理速度を最大10倍向上(実験的)バージョン7.6.0で新しいDDLアーキテクチャが導入されたことで、バッチテーブル作成のパフォーマンスが最大10倍高速化され、目覚ましい改善が見られました。この大幅な機能強化により、多数のテーブルを作成するのに必要な時間が大幅に短縮されます。この高速化は、数十万から数十万ものテーブルが頻繁に発生するSaaS環境において特に顕著です。
アクティブなPDフォロワーを使用してPDのリージョン情報クエリサービスを強化する(実験的) TiDB v7.6.0では、実験的機能「アクティブPDFollower」が導入されました。これにより、PDフォロワーがリージョン情報クエリサービスを提供できるようになります。この機能は、多数のTiDBノードとリージョンを持つクラスターにおいて、PDクラスターがGetRegionおよびScanRegionsリクエストを処理する能力を向上させ、PDリーダーのCPU負荷を軽減します。
信頼性と可用性TiProxyのサポート(実験的) TiProxyサービスを完全にサポートし、デプロイツールを介して簡単にデプロイできます。これにより、TiDBへの接続を管理および維持し、ローリング再起動、アップグレード、またはスケーリングイベント後も接続が維持されます。
データ移行(DM)は、MySQL 8.0(GA)を正式にサポートします。これまで、DMを使用してMySQL 8.0からデータを移行する機能は実験的機能であり、本番環境では利用できませんでした。TiDB v7.6.0では、この機能の安定性と互換性が向上し、本番環境においてMySQL 8.0からTiDBへのデータ移行をスムーズかつ迅速に行えるようになりました。v7.6.0では、この機能が一般提供(GA)となります。

機能の詳細

拡張性

  • Active PD Follower機能を使用して PD のリージョン情報クエリサービスのスケーラビリティを強化する (実験的) #7431 @CabinfeverB

    リージョン数の多いTiDBクラスタでは、ハートビート処理やタスクスケジューリングに伴うオーバーヘッドが増加するため、PDリーダーのCPU負荷が高くなる可能性があります。クラスタにTiDBインスタンスが多数存在し、リージョン情報へのリクエストが同時に多数発生すると、PDリーダーのCPU負荷はさらに高まり、PDサービスが利用できなくなる恐れがあります。

    高可用性を確保するため、TiDB v7.6.0 では、PD のリージョン情報クエリサービスの拡張性を向上させる Active PD Follower機能をサポートしています。Active PD Follower機能は、システム変数pd_enable_follower_handle_region ONに設定することで有効にできます。この機能を有効にすると、TiDB はリージョン情報要求をすべての PD サーバーに均等に分散し、PD フォロワーもリージョン要求を処理できるようになるため、PD リーダーの CPU 負荷が軽減されます。

    詳細については、 ドキュメントを参照してください。

パフォーマンス

  • BRはスナップショットの復元速度を最大 10 倍向上させます (実験的) #33937 #49886 @3pointer

    TiDBクラスタの規模が拡大するにつれて、業務停止時間を最小限に抑えるために、障害発生時にクラスタを迅速に復旧することがますます重要になります。v7.6.0より前は、リージョン分散アルゴリズムがパフォーマンス復旧における主要なボトルネックとなっていました。v7.6.0では、 BRがリージョン分散アルゴリズムを最適化し、復旧タスクを多数の小さなタスクに迅速に分割し、バッチ処理で全てのTiKVノードに分散させます。新しい並列リカバリアルゴリズムは、各TiKVノードのリソースを最大限に活用し、高速な並列リカバリを実現します。実際の運用事例では、大規模なリージョン環境において、クラスタのスナップショット復旧速度が約10倍向上しています。

    新しい粗粒度リージョン散布アルゴリズムは実験的です。これを使用するには、 --granularity="coarse-grained"コマンドのbrパラメータを設定します。例:

    br restore full \ --pd "${PDIP}:2379" \ --storage "s3://${Bucket}/${Folder}" \ --s3.region "${region}" \ --granularity "coarse-grained" \ --send-credentials-to-tikv=true \ --log-file restorefull.log

    詳細については、 ドキュメントを参照してください。

  • Titan エンジンはデフォルトで有効になっています #16245 @Connor1996 @v01dstar @tonyxuqqi

    TiDB v7.6.0以降では、特にJSONをサポートするTiDBワイドテーブル書き込みシナリオをより適切にサポートするために、Titanエンジンがデフォルトで有効になっています。Titanエンジンは、RocksDBのLSMツリーから32KBを超える大きな値を自動的に分離し、Titanに個別に保存することで、大きな値の処理を最適化します。Titanエンジンは、TiKVで使用されているRocksDBの機能と完全に互換性があります。この戦略的な変更により、書き込み増幅効果が軽減されるだけでなく、大きな値を含む書き込み、更新、およびポイントクエリのシナリオにおけるパフォーマンスも向上します。さらに、レンジスキャンシナリオでは、Titanエンジンの最適化により、デフォルト構成のRocksDBと同等のパフォーマンスを実現しています。

    この構成変更は、以前のバージョンとの互換性を維持しています。既存のTiDBクラスタの場合、TiDB v7.6.0以降のバージョンにアップグレードすると、Titanエンジンはデフォルトで無効になります。お客様の特定の要件に基づいて、Titanエンジンを手動で有効または無効にすることができます。

    詳細については、ドキュメントを参照してください。

  • 以下の文字列関数をTiKVにプッシュダウンするサポート #48170 @gengliqi

  • TiFlashへの以下のJSON関数のプッシュダウンをサポートします#48350 #48986 #48994 #49345 #49392 @SeaRise@yibin87

    • JSON_UNQUOTE()

    • JSON_ARRAY()

    • JSON_DEPTH()

    • JSON_VALID()

    • JSON_KEYS()

    • JSON_CONTAINS_PATH()

      詳細については、 ドキュメントを参照してください。

  • テーブル作成のパフォーマンスを10倍向上(実験的) #49752 @gmhdbjd

    以前のバージョンでは、数万ものテーブルをアップストリームデータベースからTiDBに移行する際に、TiDBがこれらのテーブルを作成するのに時間がかかり、非効率的でした。v7.6.0以降、TiDBは新しいTiDB DDL V2アーキテクチャを導入しました。システム変数tidb_ddl_versionを設定することで有効にできます。以前のバージョンと比較して、新しいバージョンのDDLはバッチテーブルの作成パフォーマンスを10倍向上させ、テーブル作成時間を大幅に短縮します。

    詳細については、 ドキュメントを参照してください。

  • 定期的な完全圧縮をサポート (実験的) #12729 @@afeinberg

    TiDBはv7.6.0以降、TiKVの定期的なフルコンパクションをサポートしています。この機能は、ガベージコレクション(GC)を拡張し、冗長なデータバージョンを排除するものです。アプリケーションのアクティビティに明らかなピークと谷が見られるシナリオでは、この機能を使用してアイドル期間中にデータコンパクションを実行することで、ピーク時のパフォーマンスを向上させることができます。

    TiKV の設定項目periodic-full-compact-start-timesを設定することで、TiKV が定期的な完全圧縮を開始する特定の時間を設定できます。また、 periodic-full-compact-start-max-cpuを設定することで、TiKV の定期的な完全圧縮の最大 CPU 使用率を制限できます。 periodic-full-compact-start-max-cpuのデフォルト値は0.1です。これは、TiKV の CPU 使用率が 10% 未満の場合にのみ定期的な完全圧縮がトリガーされることを意味し、アプリケーションのトラフィックへの影響を軽減します。

    詳細については、 ドキュメントを参照してください。

信頼性

  • クロスデータベース実行計画のバインディング #48875 @qw4990

    TiDB上でSaaSサービスを実行する場合、データの保守管理を容易にするため、テナントごとにデータを個別のデータベースに保存するのが一般的です。その結果、同じテーブルとインデックス定義、そして類似したSQL文を持つデータベースが数百個も存在することになります。このような状況では、SQL文に対して実行プランバインディングを作成すると、通常、そのバインディングは他のデータベースのSQL文にも適用されてしまいます。

    このシナリオでは、TiDB v7.6.0 でクロスデータベースバインディング機能が導入されました。この機能は、異なるデータベースにある場合でも、同じスキーマを持つ SQL文に同じ実行計画をバインドすることをサポートします。クロスデータベースバインディングを作成する際には、次の例に示すように、データベース名を表すためにワイルドカード*を使用する必要があります。バインディングが作成されると、テーブルt1t2がどのデータベースにあるかに関係なく、TiDB はこのバインディングを使用して同じスキーマを持つすべての SQL文の実行計画を生成しようとします。これにより、各データベースごとにバインディングを作成する手間が省けます。

    CREATE GLOBAL BINDING FOR USING SELECT /*+ merge_join(t1, t2) */ t1.id, t2.amount FROM *.t1, *.t2 WHERE t1.id = t2.id;

    さらに、クロスデータベースバインディングは、ユーザーデータとワークロードの不均一な分布や急激な変化によって引き起こされるSQLパフォーマンスの問題を効果的に軽減できます。SaaSプロバイダーは、クロスデータベースバインディングを使用して、大量のデータを持つユーザーによって検証された実行計画を修正することで、すべてのユーザーの実行計画を固定できます。SaaSプロバイダーにとって、この機能は利便性とユーザーエクスペリエンスを大幅に向上させます。

    クロスデータベースバインディングによって発生するシステムオーバーヘッド(1%未満)のため、TiDBはこの機能をデフォルトで無効にしています。クロスデータベースバインディングを使用するには、まずシステム変数tidb_opt_enable_fuzzy_bindingを有効にする必要があります。

    詳細については、 ドキュメントを参照してください。

可用性

  • プロキシコンポーネントTiProxyのサポート(実験的) #413 @djshow832 xhebox

    TiProxyはTiDBの公式プロキシコンポーネントであり、クライアントとTiDBサーバーの間に配置されます。TiProxyはTiDBの負荷分散と接続維持関数を提供し、TiDBクラスタのワークロードをよりバランス良く分散させ、メンテナンス作業中もデータベースへのユーザーアクセスに影響を与えないようにします。

    • TiDBクラスタにおけるローリング再起動、ローリングアップグレード、スケールインなどのメンテナンス作業中、TiDBサーバーに変更が発生すると、クライアントとTiDBサーバー間の接続が中断されます。TiProxyを使用することで、これらのメンテナンス作業中に接続を他のTiDBサーバーにスムーズに移行できるため、クライアントへの影響を最小限に抑えることができます。

    • TiDBサーバーへのクライアント接続を、他のTiDBサーバーに動的に移行することはできません。複数のTiDBサーバーのワークロードが不均衡になると、クラスタ全体のリソースは十分であっても、特定のTiDBサーバーでリソース枯渇が発生し、レイテンシーが大幅に増加する可能性があります。この問題を解決するために、TiProxyは接続の動的移行機能を提供します。これにより、クライアントに影響を与えることなく、接続をあるTiDBサーバーから別のTiDBサーバーに移行できるため、TiDBクラスタの負荷分散が実現されます。

      TiProxyはTiUP、 TiDB Operator、およびTiDB Dashboardに統合されているため、設定、デプロイ、およびメンテナンスが容易です。

      詳細については、ドキュメントを参照してください。

SQL

  • LOAD DATAは明示的なトランザクションとロールバックをサポートします #49079 @ekexium

    MySQLと比較すると、v7.6.0より前のTiDBバージョンではLOAD DATA文のトランザクション動作が異なるため、このステートメントを使用する際には追加の調整が必要になる場合があります。具体的には、v4.0.0より前では、 LOAD DATAは20000行ごとにコミットされます。v4.0.0からv6.6.0までは、TiDBはデフォルトで1つのトランザクションですべての行をコミットし、 tidb_dml_batch_sizeシステム変数を設定することで固定行数ごとにコミットすることもサポートしています。v7.0.0以降では、 tidb_dml_batch_size LOAD DATAには適用されなくなり、TiDBは1つのトランザクションですべての行をコミットします。

    バージョン7.6.0以降、TiDBはトランザクション内でLOAD DATA他のDML文と同様に、特にMySQLと同様に処理します。トランザクション内のLOAD DATA文は、現在のトランザクションを自動的にコミットしたり、新しいトランザクションを開始したりしなくなりました。さらに、トランザクション内のLOAD DATA文を明示的にコミットまたはロールバックできます。また、 LOAD DATA文は、TiDBトランザクションモード設定(楽観的トランザクションまたは悲観的トランザクション)の影響を受けます。これらの改善により、MySQLからTiDBへの移行プロセスが簡素化され、データインポートにおいてより統一的で制御しやすいエクスペリエンスが提供されます。

    詳細については、 ドキュメントを参照してください。

データベース操作

  • FLASHBACK CLUSTERは、正確な TSO の指定をサポートしています #48372 @BornChanger

    TiDB v7.6.0 では、フラッシュバック機能がより強力かつ正確になりました。クラスタを指定した履歴タイムスタンプにロールバックできるだけでなく、 FLASHBACK CLUSTER TO TSOを使用して正確なリカバリTSOを指定できるため、データリカバリの柔軟性が向上します。たとえば、この機能を TiCDC と組み合わせて使用​​できます。ダウンストリームの TiDB クラスタでデータレプリケーションを一時停止し、オンライン前の読み書きテストを実行した後、この機能を使用すると、クラスタは一時停止した TSO にスムーズかつ迅速にロールバックし、TiCDC を使用してデータのレプリケーションを再開できます。これにより、オンライン前の検証プロセスが効率化され、データ管理が簡素化されます。

    FLASHBACK CLUSTER TO TSO 445494839813079041;

    詳細については、 ドキュメントを参照してください。

  • 長時間実行されているアイドル状態のトランザクションを自動的に終了させる機能のサポート #48714 @crazycs520

    ネットワーク切断やアプリケーション障害が発生するシナリオでは、 COMMIT / ROLLBACK文がデータベースに送信されない可能性があります。これにより、データベース ロックの解放が遅延し、トランザクション ロック待機が発生し、データベース接続が急増する可能性があります。このような問題はテスト環境ではよく発生しますが、本番環境でも時折発生する可能性があり、迅速な診断が難しい場合があります。これらの問題を回避するために、TiDB v7.6.0 では、長時間実行されているアイドル状態のトランザクションを自動的に終了するtidb_idle_transaction_timeoutシステム変数が導入されました。トランザクション状態のユーザーセッションがこの変数の値を超える期間アイドル状態になると、TiDB はトランザクションのデータベース接続を終了し、トランザクションをロールバックします。

    詳細については、 ドキュメントを参照してください。

  • 実行プランバインディングを作成するための構文を簡素化する #48876 @qw4990

    TiDB v7.6.0 では、実行プランバインディングを作成するための構文が簡素化されました。実行プランバインディングを作成する際に、元の SQL文を指定する必要がなくなりました。TiDB は、ヒント付きのステートメントに基づいて元の SQL文を識別します。この改善により、実行プランバインディングの作成がより便利になります。例:

    CREATE GLOBAL BINDING USING SELECT /*+ merge_join(t1, t2) */ * FROM t1, t2 WHERE t1.id = t2.id;

    詳細については、 ドキュメントを参照してください。

  • TiDB で単一行レコードのサイズ制限を動的に変更する機能をサポート #49237 @zyguan

    v7.6.0 より前では、トランザクション内の単一行レコードのサイズは、TiDB 設定項目txn-entry-size-limitによって制限されていました。サイズ制限を超えると、TiDB はentry too largeエラーを返します。この場合、TiDB 構成ファイルを手動で変更し、TiDB を再起動して変更を有効にする必要があります。管理オーバーヘッドを削減するために、TiDB v7.6.0 ではtxn-entry-size-limit設定項目の値を動的に変更できるシステム変数tidb_txn_entry_size_limitが導入されました。この変数のデフォルト値は0であり、これは TiDB がデフォルトで設定項目txn-entry-size-limitの値を使用することを意味します。この変数にゼロ以外の値を設定すると、TiDB はトランザクション内の行レコードのサイズをこの変数の値に制限します。この改善により、TiDB を再起動することなくシステム構成を調整できる柔軟性が向上します。

    詳細については、 ドキュメントを参照してください。

  • BR はデフォルトでユーザーデータなどのシステムテーブルを復元します#48567 @BornChanger #49627 @Leavrth

    バージョン5.1.0以降、スナップショットをバックアップすると、 BRはmysqlスキーマ内のシステムテーブルを自動的にバックアップしますが、デフォルトではこれらのシステムテーブルを復元しません。バージョン6.2.0では、 BRは--with-sys-tableパラメータを追加し、一部のシステムテーブルのデータを復元できるようにすることで、操作の柔軟性を向上させています。

    管理の手間をさらに軽減し、より直感的なデフォルト動作を実現するために、バージョン7.6.0以降、 BRはデフォルトで--with-sys-tableパラメータを有効にします。これにより、 BRは復元時に一部のシステムテーブル、特にユーザーアカウントとテーブル統計データをデフォルトで復元します。この改善により、バックアップと復元操作がより直感的になり、手動設定の負担が軽減され、全体的な操作性が向上します。

    詳細については、ドキュメントを参照してください。

可観測性

  • リソース制御に関する可観測性の強化 #49318 @glorv@bufferflies@nolouch

    アプリケーションのワークロードを分離するためにリソースグループを使用するユーザーが増えるにつれ、リソース コントロールはリソースグループに基づいた強化されたデータを提供します。これにより、リソースグループのワークロードと設定を監視し、次のような問題を迅速かつ正確に特定して診断できるようになります。

    • スロークエリ: リソースグループ名、リソース ユニット (RU) の消費量、およびリソースの待機時間を追加します。

    • ステートメントサマリーテーブル: リソースグループ名、RU 消費量、リソースの待機時間を追加します。

    • システム変数tidb_last_query_infoに、SQL文によって消費されたRUを示す新しいエントリru_consumptionを追加します。この変数を使用して、セッション内の最後のステートメントのリソース消費量を取得できます。

    • リソースグループに基づいてデータベースのメトリックを追加します。具体的には、QPS/TPS、実行時間(P999/P99/P95)、障害発生回数、接続数などです。

    • すべてのリソースグループの1日あたりのRU消費量の履歴レコードを記録するために、システムテーブルrequest_unit_by_groupを追加します。

      詳細については、スロークエリを特定するステートメントサマリーテーブル、およびリソース制御の主要監視指標を参照してください。

データ移行

  • MySQL 8.0への移行をサポートするデータ移行(DM)機能が一般提供開始(GA)になりました #10405 @lyzx2001

    これまで、DMを使用してMySQL 8.0からデータを移行する機能は実験的機能であり、本番環境では利用できませんでした。TiDB v7.6.0では、この機能の安定性と互換性が向上し、本番環境においてMySQL 8.0からTiDBへのデータ移行をスムーズかつ迅速に行えるようになりました。v7.6.0では、この機能が一般提供(GA)となります。

    詳細については、ドキュメントを参照してください。

  • TiCDCは双方向レプリケーション(BDR)モードでのDDL文のレプリケーションをサポートします(実験的) #10301 #48519 @okJiang @asddongmen

    バージョン7.6.0以降、TiCDCは双方向レプリケーションが構成されたDDL文のレプリケーションをサポートします。以前は、TiCDCはDDL文のレプリケーションをサポートしていなかったため、TiCDCの双方向レプリケーションを使用するユーザーは、DDL文を両方のTiDBクラスタに個別に適用する必要がありました。この機能により、TiCDCはクラスタにPRIMARY BDRロールを割り当てることができ、そのクラスタからダウンストリームクラスタへのDDL文のレプリケーションが可能になります。

    詳細については、 ドキュメントを参照してください。

  • TiCDCは、チェンジフィードの下流同期ステータスのクエリをサポートします #10289 @hongyunyan

    バージョン7.6.0以降、TiCDCは、指定されたレプリケーションタスク(チェンジフィード)のダウンストリーム同期ステータスを照会するための新しいAPI GET /api/v2/changefeed/{changefeed_id}/syncedを導入しました。このAPIを使用することで、TiCDCが受信したアップストリームデータがダウンストリームシステムに完全に同期されているかどうかを判断できます。

    詳細については、 ドキュメントを参照してください。

  • TiCDCがCSV出力プロトコルで3文字区切り文字のサポートを追加 #9969 @zhangjinpeng87

    バージョン7.6.0以降では、CSV出力プロトコルの区切り文字を1~3文字の長さで指定できるようになりました。この変更により、TiCDCは、出力内のフィールドを区切るために、2文字の区切り文字( ||$^など)または3文字の区切り文字( |@|など)を使用してファイル出力を生成するように構成できます。

    詳細については、ドキュメントを参照してください。

互換性の変更

MySQLとの互換性

  • TiDB v7.6.0 より前は、 LOAD DATA操作は、単一のトランザクションですべての行をコミットするか、トランザクションをバッチでコミットしていました。これは MySQL の動作とは若干異なります。v7.6.0 以降、TiDB はLOAD DATA MySQL と同様にトランザクションで処理します。トランザクション内のLOAD DATA文は、現在のトランザクションを自動的にコミットしたり、新しいトランザクションを開始したりしなくなりました。さらに、トランザクション内のLOAD DATA文を明示的にコミットまたはロールバックできます。また、 LOAD DATA文は、TiDB のトランザクションモード設定 (楽観的トランザクションまたは悲観的トランザクション) の影響を受けます。 #49079 @ekexium

システム変数

変数名変更の種類説明
tidb_auto_analyze_partition_batch_size変更さらなるテストの結果、デフォルト値を1から128に変更します。
tidb_sysproc_scan_concurrency変更大規模クラスタでは、 scan操作の同時実行数をANALYZEのニーズに合わせて高く調整できます。したがって、最大値を256から4294967295に変更します。
tidb_analyze_distsql_scan_concurrency新しく追加されたscan操作を実行する際のANALYZE操作の同時実行数を設定します。デフォルト値は4です。
tidb_ddl_version新しく追加されたTiDB DDL V2を有効にするかどうかを制御します。有効にするには2に、無効にするには1に値を設定します。デフォルト値は1です。TiDB DDL V2 が有効になっている場合、DDL文は TiDB DDL V2 を使用して実行されます。テーブルを作成する DDL文の実行速度は、TiDB DDL V1 と比較して 10 倍向上します。
tidb_enable_global_index新しく追加されたパーティションテーブルに対してGlobal indexesを作成するかどうかを制御します。デフォルト値はOFFです。 Global indexは現在開発段階です。このシステム変数の値を変更することは推奨されません
tidb_idle_transaction_timeout新しく追加されたユーザーセッションにおけるトランザクションのアイドルタイムアウトを制御します。ユーザーセッションがトランザクション状態にあり、この変数の値を超える時間アイドル状態が続くと、TiDB はセッションを終了します。デフォルト値0は無制限を意味します。
tidb_ignore_inlist_plan_digest新しく追加されたプランダイジェストを生成する際に、TiDB が異なるクエリ間でINリスト内の要素の差異を無視するかどうかを制御します。デフォルト値OFFは、差異を無視しないことを意味します。
tidb_opt_enable_fuzzy_binding新しく追加されたクロスデータベースバインディング機能を有効にするかどうかを制御します。デフォルト値OFFは、クロスデータベースバインディングが無効であることを意味します。
tidb_txn_entry_size_limit新しく追加されたTiDB 設定項目performance.txn-entry-size-limitを動的に変更します。これは、TiDB 内の単一行のデータのサイズを制限します。この変数のデフォルト値は0です。これは、TiDB がデフォルトで設定項目txn-entry-size-limitの値を使用することを意味します。この変数がゼロ以外の値に設定されている場合、 txn-entry-size-limitも同じ値に設定されます。
pd_enable_follower_handle_region新しく追加された有効にするかどうかを制御しますアクティブなPDFollower機能 (実験的)。値がOFFの場合、TiDB は PD リーダーからのみリージョン情報を取得します。値がONの場合、TiDB はリージョン情報の要求をすべての PD サーバーに均等に分散し、PD フォロワーもリージョン要求を処理できるため、PD リーダーの CPU 負荷が軽減されます。

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

コンフィグレーションファイルコンフィグレーションパラメータ変更の種類説明
TiDBtls-version変更デフォルト値は "" です。TiDB のデフォルトのサポート TLS バージョンがTLS1.1以上からTLS1.2以上に変更されました。
TiKVraftstore.report-min-resolved-ts-interval名称変更名前をより正確にするため、この設定項目はraftstore.pd-report-min-resolved-ts-intervalに名前が変更されました。 raftstore.report-min-resolved-ts-intervalは無効になりました。
TiKVblob-file-compression変更Titan で値を圧縮するために使用されるアルゴリズムで、値を単位とします。TiDB v7.6.0 以降、デフォルトの圧縮アルゴリズムはzstdです。
TiKVrocksdb.defaultcf.titan.min-blob-size変更TiDB v7.6.0以降、新規クラスタのデフォルト値は32KBとなります。v7.6.0にアップグレードする既存クラスタの場合、デフォルト値1KBは変更されません。
TiKVrocksdb.titan.enabled変更Titan を有効または無効にします。v7.5.0 以前のバージョンでは、デフォルト値はfalseです。v7.6.0 以降では、新規クラスターの場合のみデフォルト値はtrueになります。v7.6.0 以降のバージョンにアップグレードされた既存のクラスターは、元の構成を維持します。
TiKVcdc.incremental-scan-concurrency-limit新しく追加された履歴データを増分スキャンするタスクの実行待ちキューの最大長を設定します。デフォルト値は10000で、これは最大 10000 個のタスクを実行待ちキューに入れることができることを意味します。
TiKVgc.num-threads新しく追加されたenable-compaction-filter falseに設定すると、このパラメータは GC スレッドの数を制御します。デフォルト値は1です。
TiKVraftstore.periodic-full-compact-start-times新しく追加されたTiKVが定期的な完全圧縮を開始する具体的な時間を設定します。デフォルト値[]は、定期的な完全圧縮が無効になっていることを意味します。
TiKVraftstore.periodic-full-compact-start-max-cpu新しく追加されたTiKVの定期的な完全圧縮における最大CPU使用率を制限します。デフォルト値は0.1です。
TiKVraftstore.pd-report-min-resolved-ts-interval新しく追加されたraftstore.report-min-resolved-ts-intervalから名前が変更されました。TiKV が解決済み TS を PD リーダーに報告する最小間隔を指定します。デフォルト値は"1s"です。
TiKVzstd-dict-size新しく追加されたzstd辞書の圧縮サイズを指定します。デフォルト値は"0KB"で、これはzstd辞書の圧縮を無効にすることを意味します。
TiFlashlogger.level変更ログ記録のコストを削減するために、デフォルト値を"debug"から"INFO"に変更します。
TiDB Lightningtidb.pd-addr変更PDサーバーのアドレスを設定します。バージョン7.6.0以降、TiDBは複数のPDアドレスの設定をサポートしています。
TiDB Lightningblock-size新しく追加された物理インポートモード( backend='local' )でローカルファイルをソートするためのI/Oブロックサイズを制御します。デフォルト値は16KiBです。ディスクIOPSがボトルネックになっている場合は、この値を増やすことでパフォーマンスを向上させることができます。
BR--granularity新しく追加された--granularity="coarse-grained"を指定することで、粗粒度リージョン散布アルゴリズム(実験的)を使用します。これにより、大規模なリージョンシナリオにおける復元速度が向上します。
TiCDCcompression新しく追加されたリドゥログファイルの圧縮動作を制御します。
TiCDCsink.cloud-storage-config新しく追加されたオブジェクトストレージにデータを複製する際に、履歴データの自動クリーンアップを設定します。

システムテーブル

  • TiDBでサポートされているすべてのキーワードの情報を表示するために、新しいシステムテーブルINFORMATION_SCHEMA.KEYWORDSを追加します。
  • システムテーブルINFORMATION_SCHEMA.SLOW_QUERYに、リソース制御に関連する以下のフィールドを追加します。
    • Resource_group : ステートメントがバインドされているリソースグループ。
    • Request_unit_read : ステートメントによって消費された読み取り RU の合計。
    • Request_unit_write : ステートメントによって消費された書き込み RU の合計。
    • Time_queued_by_rc : ステートメントが利用可能なリソースを待機する合計時間。

オフラインパッケージの変更

v7.6.0 以降、 TiDB-community-serverバイナリパッケージには、プロキシ コンポーネントTiProxyのインストールパッケージであるtiproxy-{version}-linux-{arch}.tar.gz含まれるようになりました。

非推奨機能

  • TiDB v7.6.0ではTLSv1.0およびTLSv1.1プロトコルのサポートは非​​推奨となり、v8.0.0で削除されます。TLSv1.2またはTLSv1.3にアップグレードしてください。
  • 実行計画の ベースラインの進化機能は、TiDB v8.0.0 で非推奨になります。同等の機能は後続のバージョンで再設計される予定です。
  • TiDB v8.0.0では、システム変数tidb_disable_txn_auto_retryが非推奨となります。それ以降、TiDBは楽観的トランザクションの自動再試行をサポートしなくなります。

改善点

  • TiDB

    • 非バイナリ照合順序が設定され、クエリにLIKEが含まれる場合、オプティマイザは実行効率を向上させるためにIndexRangeScanを生成します#48181 #49138 @time-and-fate
    • 特定のシナリオにおいてOUTER JOININNER JOINに変換する機能を強化する #49616 @qw4990
    • ノードが再起動されるシナリオにおける分散実行フレームワーク(DXF)タスクのバランスを改善する #47298 @ywqzzy
    • 複数の高速化されたADD INDEX DDL タスクをキューに入れて実行できるようにサポートします。通常のADD INDEXタスクにフォールバックするのではなく、実行します。 #47758 @tangenta
    • ALTER TABLE ... ROW_FORMATの互換性を改善 #48754 @hawkingrei
    • CANCEL IMPORT JOBステートメントを同期ステートメントに変更します #48736 @D3Hunter
    • 空のテーブルへのインデックス追加速度の改善 #49682 @zimulala
    • 相関サブクエリの列が上位レベルの演算子によって参照されていない場合、相関サブクエリは直接削除できます #45822 @King-Dylan
    • EXCHANGE PARTITION操作により、統計情報のメンテナンス更新がトリガーされるようになりました #47354 @Rustin170506
    • TiDBは、連邦情報処理標準(FIPS)の要件を満たすバイナリファイルの作成をサポートしています。 #47948 @tiancaiamao
    • 一部の型変換を処理する際の TiDB 実装を最適化し、関連する問題を修正します#47945 #47864 #47829 #47816 @YangKeao@lcwangchao
    • スキーマバージョンを取得する際、TiDBはデフォルトでKVタイムアウト機能を使用して読み取りを行うため、遅いメタリージョンリーダーの読み取りがスキーマバージョン更新に与える影響が軽減されます。 #48125 @cfzjywxk
  • TiKV

    • 非同期タスクを照会するためのAPIエンドポイント/async_tasksを追加 #15759 @YuJuncen
    • gRPC モニタリングに優先度ラベルを追加して、異なる優先度のリソースグループ データを表示します #49318 @bufferflies
    • readpool.unified.max-tasks-per-workerの値を動的に調整することで、優先度に基づいて実行中のタスク数を個別に計算できます #16026 @glorv
    • GCスレッド数を動的に調整する機能をサポート。デフォルト値は1 #16101 @tonyxuqqi
  • PD

    • ディスクジッター時のPD TSOの可用性を向上させる #7377 @HuSharp
  • TiFlash

    • 読み取りレイテンシーに対するディスク パフォーマンス ジッターの影響を軽減 #8583 @JaySon-Huang
    • バックグラウンド GC タスクの読み取りおよび書き込みタスクのレイテンシーへの影響を軽減 #8650 @JaySon-Huang
    • ストレージとコンピューティングを分離したアーキテクチャで同一のデータ読み取り操作をマージして、高並行処理下でのデータスキャン性能を向上させるサポート #6834 @JinheLin
    • SEMI JOINLEFT OUTER SEMIJOINの実行パフォーマンスを最適化するJOIN ONに JOIN KEY 等価条件のみが含まれる場合) #47424 @gengliqi
  • ツール

    • Backup & Restore (BR)

      • フルバックアップリカバリフェーズ中に Amazon S3 session-tokenおよびassume-roleを使用した認証をサポート #39832 @3pointer
      • delete rangeシナリオにおけるポイントインタイムリカバリ (PITR) の新しい統合テストを導入し、PITR の安定性を向上させます #47738 @Leavrth
      • 大規模データセットのシナリオにおけるRESTORE文のテーブル作成パフォーマンスを改善 #48301 @Leavrth
      • BR例外処理メカニズムをリファクタリングして、不明なエラーに対する耐性を高めます #47656 @3pointer
    • TiCDC

    • TiDB Data Migration (DM)

      • DM OpenAPIへのフルデータ物理インポートの設定を追加 #10193 @GMHDBJD
    • TiDB Lightning

      • 安定性を高めるために複数の PD アドレスの構成をサポート #49515 @mittalrishabh
      • ローカルファイルのソートにおけるI/Oブロックサイズを制御するためのblock-sizeパラメータの設定をサポートし、パフォーマンスを向上させます #45037 @mittalrishabh

バグ修正

  • TiDB

    • TiDBがパニックを起こしてエラーinvalid memory address or nil pointer dereferenceを報告する問題を修正 #42739 @CbcWestwolf
    • DDL jobIDが 0 に復元されたときに発生する TiDB ノードpanicの問題を修正 #46296 @jiyfhust
    • 同じクエリプランでも異なるPLAN_DIGEST値が存在する場合がある問題を修正 #47634 @King-Dylan
    • DUALテーブルを最初のサブノードとしてUNION ALLを実行するとエラーが発生する可能性がある問題を修正しました #48755 @winoros
    • 共通テーブル式(CTE)を含むクエリで、 tidb_max_chunk_sizeが小さな値に設定されている場合にruntime error: index out of range [32] with length 32が報告される問題を修正 #48808 @guo-shaoge
    • AUTO_ID_CACHE=1使用時のゴルーチンリークの問題を修正 #46324 @tiancaiamao
    • MPP によって計算されたCOUNT(INT)の結果が正しくない可能性がある問題を修正 #48643 @AilinKid
    • パーティション列のタイプがDATETIMEの場合にALTER TABLE ... LAST PARTITIONの実行が失敗する問題を修正します #48814 @crazycs520
    • LIKE_ワイルドカードを使用すると、データに末尾の空白が含まれている場合にクエリ結果が正しくない可能性がある問題を修正します #48983 @time-and-fate
    • tidb_server_memory_limit による長期メモリ負荷が原因で TiDB の CPU 使用率が高くなる問題を修正しました。 #48741 @XuHuaiyu
    • ENUM型の列を結合キーとして使用した場合にクエリ結果が正しくない問題を修正 #48991 @winoros
    • メモリ制限を超えると、CTE を含むクエリが予期せずスタックする問題を修正 #49096 @AilinKid
    • TiDBサーバーが監査ログ用のEnterpriseプラグイン使用時に大量のリソースを消費する可能性がある問題を修正 #49273 @lcwangchao
    • 特定のシナリオでオプティマイザがTiFlash選択パスを DUAL テーブルに誤って変換する問題を修正 #49285 @AilinKid
    • UPDATEまたはDELETE文にWITH RECURSIVE CTE が含まれている場合、誤った結果が生じる可能性がある問題を修正しました #48969 @winoros
    • IndexHashJoinオペレーターを含むクエリがメモリ使用量tidb_mem_quota_query超えると停止する問題を修正しました #49033 @XuHuaiyu
    • 非厳格モード ( sql_mode = '' ) でINSERT実行中に切り捨てが発生し、エラーが報告される問題を修正しました #49369 @tiancaiamao
    • CTEクエリが再試行処理中にエラーtype assertion for CTEStorageMap failedを報告する可能性がある問題を修正 #46522 @tiancaiamao
    • LIMITORDER BYがネストされたUNIONクエリで無効になる可能性がある問題を修正 #49377 @AilinKid
    • ENUMまたはSET型の無効な値を解析すると、SQL文エラーが直接発​​生する問題を修正しました #49487 @winoros
    • Golangの暗黙的な型変換アルゴリズムが原因で統計構築時に発生する過剰な統計誤差の問題を修正 #49801 @qw4990
    • 一部のタイムゾーンでサマータイムが正しく表示されない問題を修正 #49586 @overvenus
    • AUTO_ID_CACHE=1を含むテーブルが多数存在する場合に gRPC クライアントのリークを引き起こす可能性がある問題を修正しました #48869 @tiancaiamao
    • TiDBサーバーが正常なシャットダウン中にpanicする可能性がある問題を修正しました #36793 @bb7133
    • ADMIN RECOVER INDEXERROR 1105を報告する問題を、 CommonHandleを含むテーブルを処理する際に修正します。 #47687 @Defined2014
    • ALTER TABLE t PARTITION BYを実行する際に配置ルールを指定するとERROR 8239というエラーが報告される問題を修正しました。 #48630 @mjonss
    • INFORMATION_SCHEMA.CLUSTER_INFOSTART_TIME列タイプが無効であるという問題を修正します #45221 @dveeden
    • EXTRAの列タイプが無効であるためにINFORMATION_SCHEMA.COLUMNSエラーData Too Long, field len 30, data len 45が発生する問題を修正しました。 #42030 @tangenta
    • IN (...)INFORMATION_SCHEMA.STATEMENTS_SUMMARYで異なるプランダイジェストが発生する問題を修正 #33559 @King-Dylan
    • TIME型をYEAR型に変換する際に、返される結果にTIMEと年が混在する問題を修正しました。 #48557 @YangKeao
    • tidb_enable_collect_execution_infoを無効にするとコプロセッサキャッシュがpanicを起こす問題を修正 #48212 @you06
    • shuffleExecが予期せず終了した際にTiDBがクラッシュする問題を修正 #48230 @wshwsh12
    • 静的CALIBRATE RESOURCEが Prometheus データに依存している問題を修正 #49174 @glorv
    • 日付に大きな間隔を追加した際に、誤った結果が返される問題を修正しました。修正後、無効なプレフィックスまたは文字列trueを含む間隔はゼロとして扱われ、MySQL 8.0 と整合性が取れます。 #49227 @lcwangchao
    • ROW関数がnull型を誤って推論し、予期しないエラーが発生する問題を修正しました #49015 @wshwsh12
    • ILIKE関数が一部のシナリオでデータ競合を引き起こす可能性がある問題を修正しました #49677 @lcwangchao
    • STREAM_AGG() が CI を正しく処理しないためにクエリ結果が正しくない問題を修正します #49902 @wshwsh12
    • TIMEへの変換時にエンコードが失敗する問題を修正 #47346 @wshwsh12
    • ENFORCED制約内のCHECKオプションの動作がMySQL 8.0と矛盾する問題を修正しました。 #47567 #47631 @jiyfhust
    • CHECK制約を持つDDL文が停止する問題を修正 #47632 @jiyfhust
    • メモリ不足が原因でDDL文のインデックス追加が失敗する問題を修正 #47862 @GMHDBJD
    • ADD INDEXの実行中にクラスターをアップグレードすると、データがインデックスと不整合になる可能性がある問題を修正しました #46306 @zimulala
    • tidb_mem_quota_queryシステム変数を更新した後にADMIN CHECKを実行するとERROR 8175が返される問題を修正 #49258 @tangenta
    • ALTER TABLE外部キーで参照される列の型を変更した際に、 DECIMALの精度変更がエラーとして報告されない問題を修正しました。 #49836 @yoshikipom
    • ALTER TABLE外部キーで参照される列の型を変更する際に、 INTEGERの長さの変更が誤ってエラーとして報告される問題を修正しました。 #47702 @yoshikipom
    • 一部のシナリオで式のインデックスが除数が0であることを検出しない問題を修正しました #50053 @lcwangchao
    • TiDBノードが多数のテーブルを処理する際にOOMエラーが発生する可能性がある問題を軽減する #50077 @zimulala
    • クラスターのローリング再起動中にDDLが実行状態のままになる問題を修正 #50073 @tangenta
    • PointGetまたはBatchPointGetを使用してパーティションテーブルのグローバルインデックスにアクセスした際に、結果が正しくない可能性がある問題を修正しました #47539 @L-maple
    • 生成列のインデックスが表示されるように設定されている場合、MPP プランが選択されない可能性がある問題を修正 #47766 @AilinKid
    • LIMITORIndex Mergeにプッシュされない可能性がある #48588 @AilinKid
    • BRインポート後にmysql.bind_infoテーブルに重複した組み込み行が存在する可能性がある問題を修正します #46527 @qw4990
    • パーティションが削除された後、パーティションテーブルの統計情報が期待どおりに更新されない問題を修正 #48182 @Rustin170506
    • パーティションテーブルのグローバル統計情報の同時マージ中にエラーが返される可能性がある問題を修正 #48713 @hawkingrei
    • PADDING SPACE を持つ列のインデックス範囲スキャンにLIKE演算子が使用されている場合、クエリ結果が正しくないことがある問題を修正します #48821 @time-and-fate
    • 生成列がメモリ上で同時読み取りと書き込みを引き起こし、データ競合が発生する可能性がある問題を修正しました #44919 @tangenta
    • ANALYZE TABLE (トップN統計を収集しないことを示す)が指定されている場合でも、 WITH 0 TOPNがトップ1統計を収集してしまう問題を修正しました。 #49080 @hawkingrei
    • 無効なオプティマイザヒントによって有効なヒントが無効になる可能性がある問題を修正 #49308 @hawkingrei
    • ハッシュパーティションテーブルの統計情報が、パーティションの追加、削除、再編成、またはTRUNCATEを行った際に適切に更新されない問題を修正します。 #48235 #48233 #48226 #48231 @Rustin170506
    • 自動統計更新の時間枠を設定した後でも、その時間枠外で統計が更新される可能性がある問題を修正しました #49552 @hawkingrei
    • パーティションテーブルを非パーティションテーブルに変換した際に、古い統計情報が自動的に削除されない問題を修正します #49547 @Rustin170506
    • TRUNCATE TABLEを使用してパーティションテーブルからデータをクリアしたときに、古い統計情報が自動的に削除されない問題を修正します #49663 @Rustin170506
    • クエリが強制ソートを行うオプティマイザヒント( STREAM_AGG()など)を使用し、かつ実行計画にIndexMergeが含まれている場合に、強制ソートが無効になる可能性がある問題を修正します。 #49605 @AilinKid
    • ヒストグラムの境界にNULLが含まれる場合、ヒストグラム統計が読み取り可能な文字列に解析されない可能性がある問題を修正 #49823 @AilinKid
    • GROUP_CONCAT(ORDER BY)構文を含むクエリを実行するとエラーが返される可能性がある問題を修正 #49986 @AilinKid
    • UPDATEDELETE 、およびINSERT文が、 SQL_MODEが厳密でない場合に警告ではなくオーバーフローエラーを返す問題を修正します #49137 @YangKeao
    • テーブルに多値インデックスと非バイナリ型文字列で構成される複合インデックスがある場合にデータを挿入できない問題を修正 #49680 @YangKeao
    • 多階層にネストされたUNIONクエリ内のLIMITが無効になる可能性がある問題を修正 #49874 @Defined2014
    • BETWEEN ... AND ...条件を使用してパーティションテーブルをクエリすると誤った結果が返される問題を修正 #49842 @Defined2014
    • REPLACE INTO文でヒントが使用できない問題を修正 #34325 @YangKeao
    • ハッシュパーティションテーブルのクエリ時に TiDB が間違ったパーティションを選択する可能性がある問題を修正 #50044 @Defined2014
    • 圧縮を有効にして MariaDB Connector/J を使用するときに発生する接続エラーを修正 #49845 @onlyacat
  • TiKV

    • 破損したSSTファイルが他のTiKVノードに拡散し、TiKVがpanicする可能性がある問題を修正しました #15986 @Connor1996
    • オンラインの安全でない回復がマージ中止を処理できない問題を修正 #15580 @v01dstar
    • スケールアウト時に DR Auto-Sync のジョイント状態がタイムアウトする可能性がある問題を修正します #15817 @Connor1996
    • Titan のblob-run-modeオンラインで更新できない問題を修正 #15978 @tonyxuqqi
    • 解決済みTSが2時間ブロックされる可能性がある問題を修正#11847 #15520 #39130 @overvenus
    • notLeaderまたはregionNotFoundに遭遇した際に Flashback が停止する可能性がある問題を修正しました #15712 @HuSharp
    • TiKV の実行が非常に遅い場合、リージョンのマージ後にpanicする可能性がある問題を修正 #16111 @overvenus
    • TiKVがGCが期限切れロックをスキャンする際にメモリ内の悲観的ロックを読み取れない問題を修正 #15066 @cfzjywxk
    • Titanモニタリングにおけるブロブファイルサイズが正しくない問題を修正 #15971 @Connor1996
    • TiCDC を使用して大きなテーブルをレプリケートすると TiKV が OOM になる可能性がある問題を修正 #16035 @overvenus
    • TiDBとTiKVがDECIMAL算術乗算の切り捨て処理時に一貫性のない結果を生成する可能性がある問題を修正 #16268 @solotzg
    • cast_duration_as_timeが誤った結果を返す可能性がある問題を修正 #16211 @gengliqi
    • TiKV がブラジルとエジプトのタイムゾーンを誤って変換する問題を修正 #16220 @overvenus
    • gRPCスレッドがis_shutdownをチェックしているときにTiKVがpanicする可能性がある問題を修正 #16236 @pingyu
  • PD

    • PD の etcd ヘルスチェックで期限切れのアドレスが削除されない問題を修正 #7226 @iosmanthus
    • PDリーダーが転送され、新しいリーダーとPDクライアントの間にネットワーク分断が発生した場合、PDクライアントがリーダー情報を更新できない問題を修正しました #7416 @CabinfeverB
    • Gin Web Frameworkのバージョンをv1.8.1からv1.9.1にアップグレードすることで、いくつかのセキュリティ問題を修正しました。 #7438 @niubell
    • レプリカ数が要件を満たさない場合に孤立ピアが削除される問題を修正 #7584 @bufferflies
  • TiFlash

    • TiFlashがクエリ中にメモリ制限に遭遇した際のメモリリークの問題を修正 #8447 @JinheLin
    • FLASHBACK DATABASEを実行後もTiFlashレプリカのデータがガベージコレクションされてしまう問題を修正 #8450 @JaySon-Huang
    • クエリの遅延によりメモリ使用量が大幅に増加する問題を修正 #8564 @JinheLin
    • RECOVER TABLEおよびFLASHBACK TABLETiFlashCREATE TABLE DROP TABLEを介して一部の TiFlash レプリカデータを復元できない問題 #1664 @JaySon-Huang
    • ColumnRef in (Literal, Func...)のようなフィルタリング条件を指定してクエリを実行すると、クエリ結果が正しくなくなる問題を修正 #8631 @Lloyd-Pottiger
    • DDL の同時実行中にTiFlash で競合が発生した場合のTiFlash panic問題を修正 #8578 @JaySon-Huang
    • TiFlash が非集約ストレージおよびコンピューティングアーキテクチャの下でオブジェクトストレージデータの GC 所有者を選択できない場合がある問題を修正 #8519 @JaySon-Huang
    • lowerUTF8およびupperUTF8関数で、大文字と小文字が異なるバイトを占有することを許可しない問題を修正 #8484 @gengliqi
    • TiFlashがENUMの値が0の場合にENUMを正しく処理しない問題を修正 #8311 @solotzg
    • INET_NTOA()式の互換性の問題を修正 #8211 @solotzg
    • ストリーム読み取り中に複数のパーティションテーブルをスキャンする際に発生する可能性のあるメモリ不足(OOM)問題を修正 #8505 @gengliqi
    • 短いクエリを実行すると過剰な情報ログが正常に出力される問題を修正 #8592 @windtalker
    • TiFlashが停止時にクラッシュする可能性がある問題を修正 #8550 @guo-shaoge
    • 定数文字列パラメーターを含むGREATESTまたはLEAST関数で発生する可能性のあるランダムな無効なメモリアクセスの問題を修正します #8604 @windtalker
  • ツール

    • Backup & Restore (BR)

      • BRが外部ストレージファイルに対して不正なURIを生成する問題を修正 #48452 @3AceShowHand
      • ログバックアップタスクは開始できるものの、タスク初期化中にPDへの接続に失敗すると正しく動作しない問題を修正 #16056 @YuJuncen
      • ログバックアップタスクが起動後にメモリリークを起こして正常に実行されない可能性がある問題を修正 #16070 @YuJuncen
      • PITR 処理中にシステムテーブルmysql.gc_delete_rangeにデータを挿入するとエラーが返される問題を修正しました。 #49346 @Leavrth
      • 古いバージョンのバックアップからデータを復元すると、 Unsupported collationエラーが報告される問題を修正 #49466 @3pointer
      • 特定のシナリオでスナップショットを介してユーザーテーブルが復元された後、権限がタイムリーに更新されない問題を修正 #49394 @Leavrth
    • TiCDC

      • WHERE句が、特定のシナリオでDELETE文を複製する際に主キーを条件として使用しない問題を修正しました #9812 @asddongmen
      • TiCDCサーバーがオブジェクトストレージサービスへのデータ複製時にpanicする可能性がある問題を修正しました #10137 @sdojjy
      • kv-clientの初期化中の潜在的なデータ競合の問題を修正 #10095 @3AceShowHand
      • TiCDCが特定の特殊なシナリオで誤ってTiKVとの接続を閉じる問題を修正 #10239 @hicqu
      • TiCDCサーバーが損失のあるDDL文を実行する際にpanicする可能性がある問題を修正しました(アップストリーム #9739 @hicqu
      • TiCDCがデータを下流のMySQLに複製する際にcheckpoint-tsが停止する可能性がある問題を修正しました #10334 @zhangjinpeng87
    • TiDB Data Migration (DM)

      • DM で「イベントタイプ truncate が無効です」というエラーが発生し、アップグレードが失敗する問題を修正します #10282 @GMHDBJD
      • GTID モードでデータをレプリケートする際のパフォーマンス低下の問題を修正 #9676 @feran-morgan-pingcap
      • 下流テーブル構造にshard_row_id_bitsが含まれている場合にマイグレーションタスクエラーが発生する問題を修正 #10308 @GMHDBJD

貢献者

TiDBコミュニティの以下の貢献者の皆様に感謝申し上げます。

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