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

TiDB 8.1.0 リリースノート



リリース日:2024年5月24日

TiDB バージョン: 8.1.0

クイックアクセス: クイックスタート | 本番環境へのデプロイ

TiDB 8.1.0 は長期サポートリリース (LTS) です。

以前のLTSバージョン7.5.0と比較して、8.1.0にはバージョン7.6.0-DMRと8.0.0-DMRでリリースされた新機能、改善、バグ修正が含まれています。7.5.xから8.1.0にアップグレードする場合は、TiDB リリースノート PDFをダウンロードして、2つのLTSバージョン間のすべてのリリースノートをご覧いただけます。以下の表は、7.6.0から8.1.0への主な変更点です。

カテゴリ機能/拡張機能説明
スケーラビリティとパフォーマンスクラスター スナップショットの復元速度の高速化(v8.0.0 で GA)この機能により、 BRはクラスタのスケールメリットを最大限に活用し、クラスタ内のすべてのTiKVノードがデータ復元の準備ステップに参加できるようになります。この機能により、大規模クラスタにおける大規模データセットの復元速度が大幅に向上します。実環境テストでは、この機能によりダウンロード帯域幅が飽和状態になり、ダウンロード速度が8~10倍、エンドツーエンドの復元速度が約1.5~3倍向上することが示されています。
バッチでテーブルを作成する場合、最大 10 倍の高速化を実現します(実験的、v7.6.0 で導入) v7.6.0での新しいDDLアーキテクチャの実装により、バッチテーブル作成のパフォーマンスが大幅に向上し、最大10倍高速化しました。この大幅な機能強化により、多数のテーブル作成に必要な時間が大幅に短縮されます。この高速化は、数万から数十万に及ぶ大量のテーブルが頻繁に使用されるSaaSシナリオにおいて特に顕著です。
アクティブ PD フォロワーを使用して、PD のリージョン情報クエリサービスを強化します(実験的、v7.6.0 で導入) TiDB v7.6.0では、PDフォロワーがリージョン情報クエリサービスを提供できる実験的機能"Active PD Follower"が導入されました。この機能により、多数のTiDBノードとリージョンを持つクラスターにおいて、PDクラスターのGetRegionおよびScanRegionsリクエスト処理能力が向上し、PDリーダーのCPU負荷が軽減されます。
大規模なトランザクションのためのバルク DML (実験的、v8.0.0 で導入)大規模なクリーンアップジョブ、結合、集計といった大規模なバッチDMLジョブは、大量のメモリを消費する可能性があり、これまでは非常に大規模なスケールでは制限されていました。バルクDML( tidb_dml_type = "bulk" )は、トランザクション保証を提供し、OOM(メモリ不足)の問題を軽減しながら、大規模なバッチDMLタスクをより効率的に処理するための新しいDMLタイプです。この機能は、データのロードに使用する場合、インポート、ロード、リストアの各操作とは異なります。
膨大な数のテーブルがある場合のスキーマ情報のキャッシュの安定性を向上 (実験的、v8.0.0 で導入)マルチテナントアプリケーションの記録システムとしてTiDBを使用しているSaaS企業は、多くの場合、膨大な数のテーブルを保存する必要があります。以前のバージョンでは、100万個以上のテーブル数を処理することは可能でしたが、全体的なユーザーエクスペリエンスが低下する可能性がありました。TiDB v8.0.0では、 auto analyzeに優先キューを実装することで状況が改善され、プロセスの柔軟性が向上し、より広範なテーブルにわたる安定性が向上しました。
信頼性と可用性グローバルソート(v8.0.0 で GA)グローバルソート機能は、 IMPORT INTOおよびCREATE INDEXの安定性と効率性を向上させることを目的としています。処理対象のデータをグローバルにソートすることで、TiKVへのデータ書き込みの安定性、制御性、スケーラビリティが向上し、結果としてデータのインポートとインデックス作成におけるユーザーエクスペリエンスとサービス品質が向上します。グローバルソートを有効にすると、各IMPORT INTOまたはCREATE INDEXステートメントで、最大40TiBのデータのインポートまたはインデックスの追加がサポートされるようになりました。
データベース間 SQL バインディング(v7.6.0 で導入)同じスキーマを持つ数百のデータベースを管理する場合、これらのデータベース全体にSQLバインディングを適用する必要があることがよくあります。例えば、SaaSまたはPaaSデータプラットフォームでは、各ユーザーは通常、同じスキーマを持つ別々のデータベースを操作し、それらに対して類似のSQLクエリを実行します。このような場合、各データベースにSQLを個別にバインドするのは現実的ではありません。TiDB v7.6.0では、スキーマが同等なすべてのデータベース間で一致するバインディングを可能にする、データベース間SQLバインディングが導入されています。
TiProxy をサポート(v8.0.0 で GA)デプロイメントツールを使用して簡単にデプロイできる TiProxy サービスを完全にサポートし、ローリング リスタート、アップグレード、またはスケーリング イベントを通じて TiDB への接続を管理および維持できるようにします。
データ移行(DM)はMySQL 8.0(バージョン7.6.0でGA)を正式にサポートしますこれまで、DMを使用したMySQL 8.0からのデータ移行は実験的機能であり、本番環境ではご利用いただけませんでした。TiDB v7.6.0では、この機能の安定性と互換性が向上し、本番環境においてMySQL 8.0からTiDBへのデータ移行をスムーズかつ迅速に実行できるようになります。v7.6.0では、この機能が一般提供(GA)されます。
TiDB リソース制御は、予想よりも多くのリソースを消費するクエリの管理をサポートします (v8.1.0 で GA) TiDBは、リソースグループのルールを通じて、予想以上にリソースを消費するクエリを自動的に識別し、それらのクエリを制限またはキャンセルすることができます。ルールで識別されないクエリでも、手動でクエリ特性を追加し、適切な対策を講じることで、突発的なクエリパフォーマンスの問題がデータベース全体に与える影響を軽減できます。
DB操作と可観測性インデックス使用状況統計の監視をサポート(v8.0.0 で導入)適切なインデックス設計は、データベースのパフォーマンス維持に不可欠な前提条件です。TiDB v8.0.0では、インデックスの使用状況統計を提供するINFORMATION_SCHEMA.TIDB_INDEX_USAGEテーブルとsys.schema_unused_indexesビューが導入されました。この機能は、データベース内のインデックスの効率性を評価し、インデックス設計を最適化するのに役立ちます。
データ移行TiCDC はSimpleプロトコルをサポートしています (v8.0.0 で導入) TiCDCは、新しいプロトコル「Simpleプロトコル」を導入しました。このプロトコルは、DDLおよびBOOTSTRAPイベントにテーブルスキーマ情報を埋め込むことで、スキーマをインバンドで追跡する機能を提供します。
TiCDC はDebezium 形式プロトコル(v8.0.0 で導入) をサポートしています。 TiCDC は新しいプロトコル、Debezium プロトコルを導入しました。TiCDC は、Debezium スタイルのメッセージを生成するプロトコルを使用して、データ変更イベントを Kafka シンクにパブリッシュできるようになりました。
TiCDC はクライアント認証をサポートしています (v8.1.0 で導入) TiCDCは、相互トランスポート層セキュリティ(mTLS)またはTiDBユーザー名とパスワードを使用したクライアント認証をサポートしています。この機能により、CLIまたはOpenAPIクライアントはTiCDCへの接続を認証できます。

機能の詳細

信頼性

  • 予想よりも多くのリソースを消費するクエリの管理をサポート (GA) #43691 @nolouch

    突発的なSQLクエリパフォーマンスの問題は、データベース全体のパフォーマンス低下を引き起こす可能性があり、これはデータベースの安定性における最も一般的な課題です。これらの問題の原因は、テストされていない新しいSQL文、データ量の急激な変化、実行計画の突然の変更など、多岐にわたります。これらの問題を根本的に完全に回避することは困難です。TiDB v7.2.0では、予想以上にリソースを消費するクエリを管理し、突発的なクエリパフォーマンスの問題の影響を迅速に軽減する機能が導入されました。この機能はv8.1.0で一般提供が開始されます。

    リソースグループ内のクエリの最大実行時間を設定できます。クエリの実行時間が設定値を超えると、クエリの優先度が自動的に下げられるか、クエリがキャンセルされます。また、問題のあるクエリの同時実行数が多すぎる場合、識別フェーズでの過剰なリソース消費を回避するために、テキストまたは実行計画を通じて、特定されたクエリに一致するクエリを一定期間内に即時に指定することもできます。

    TiDBはクエリの手動マークもサポートしています。QUERY WATCHコマンドを使用すると、SQLテキスト、SQLダイジェスト、または実行計画に基づいてクエリをマークできます。マークに一致するクエリはダウングレードまたはキャンセルされ、SQLブロックリストを追加する目的を達成できます。

    予想よりも多くのリソースを消費するクエリの自動管理機能により、根本原因が特定される前にクエリの問題が全体的なパフォーマンスに与える影響を迅速に軽減する効果的な手段がユーザーに提供され、データベースの安定性が向上します。

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

SQL

  • テーブルの作成時にデフォルトの列値を設定するためのより多くの式の使用をサポート (GA) #50936 @zimulala

    バージョン8.0.0より前のバージョンでは、テーブル作成時の列のデフォルト値は文字列、数値、日付、および特定の式に制限されていました。バージョン8.0.0以降では、より多くの式をデフォルトの列値として使用できるようになります。例えば、列のデフォルト値をDATE_FORMATに設定できます。この機能により、より多様な要件に対応できるようになります。バージョン8.1.0では、この機能がGAになります。

    v8.1.0 以降では、ADD COLUMNで列を追加するときに、式をデフォルト値として使用できます。

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

DB操作

  • デフォルトで TiDB 分散実行フレームワーク (DXF) を有効にして、 ADD INDEXまたはIMPORT INTOタスクの並列実行のパフォーマンスと安定性を向上させます。 #52441 @D3Hunter

    DXFはv7.5.0で一般提供(GA)されますが、デフォルトでは無効になっています。つまり、 ADD INDEXまたはIMPORT INTOタスクは、デフォルトでは1つのTiDBノードによってのみ実行されます。

    TiDB v8.1.0以降、この機能はデフォルトで有効になっています( tidb_enable_dist_taskのデフォルト値はONです)。この機能を有効にすると、DXFは複数のTiDBノードで同じADD INDEXまたはIMPORT INTOタスクを並列実行するようにスケジュールできます。これにより、TiDBクラスターのリソースを最大限に活用し、これらのタスクのパフォーマンスを大幅に向上させることができます。さらに、TiDBノードを追加し、追加したノードにtidb_service_scopeを設定することで、 ADD INDEXおよびIMPORT INTOタスクのパフォーマンスを直線的に向上させることができます。

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

セキュリティ

  • TiDB ログの秘匿化 (GA) を強化 #52364 @xhebox

    強化された TiDB ログの秘匿化は、ログファイル内の SQL テキスト情報をマークすることで実装され、ユーザーがログを表示するときに機密データを削除することをサポートします。ログ情報をマークするかどうかを制御することで、さまざまなシナリオで TiDB ログを安全に使用でき、ログ秘匿化を使用する際のセキュリティと柔軟性が向上します。この機能を使用するには、システム変数tidb_redact_logをMARKERに設定すると、TiDB のランタイムログ内の SQL テキストがマークされます。さらに、TiDBサーバーでcollect-logサブコマンドを使用して、マークされた機密データをログから削除し、ログを安全な方法で表示できます。すべてのマーカーを削除して通常のログを取得することもできます。この機能は、v8.1.0 で一般提供されました。

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

データ移行

  • IMPORT INTO ... FROM SELECT構文(GA) をサポート #49883 @D3Hunter

    v8.0.0より前では、クエリ結果をターゲットテーブルにインポートするにはINSERT INTO ... SELECT文しか使用できませんでしたが、これは大規模データセットを扱うシナリオによっては比較的非効率的でした。v8.0.0では、TiDBは実験的機能としてIMPORT INTO ... FROM SELECTを導入し、 SELECTのクエリ結果を空のTiDBターゲットテーブルにインポートできるようになりました。これにより、 INSERT INTO ... SELECTの最大8倍のパフォーマンスを実現し、インポート時間を大幅に短縮できます。さらに、 IMPORT INTO ... FROM SELECTを使用して、 AS OF TIMESTAMPでクエリされた履歴データをインポートすることもできます。

    v8.1.0 では、 IMPORT INTO ... FROM SELECT構文が一般公開 (GA) され、 IMPORT INTO文の機能シナリオが充実します。

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

  • TiDB Lightningは競合解決戦略を簡素化し、 replace戦略(GA) を使用して競合するデータの処理をサポートします。 #51036 @lyzx2001

    v8.0.0 より前のTiDB Lightningには、論理インポートモードが1つのデータ競合解決戦略 、物理インポートモードが2つのデータ競合解決戦略があり、理解して構成するのは簡単ではありません。

    TiDB Lightning v8.0.0では、物理インポートモードにおける競合検出の古いバージョン戦略が廃止され、 conflict.strategyパラメータ(実験的)を介して論理インポートモードと物理インポートモードの両方で競合検出戦略を制御できるようになり、このパラメータの設定が簡素化されました。さらに、物理インポートモードでは、 replace戦略により、インポート時に主キーまたは一意キーの競合が検出された場合に、最新のデータを保持し、古いデータを上書きすることがサポートされます。v8.1.0では、 replace戦略で競合データを処理する機能が一般提供(GA)されます。

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

  • TiCDCはクライアント認証をサポートします #10636 @CharlesCheung96

    v8.1.0では、TiCDC CLIまたはOpenAPIを使用する際に、TiCDCはクライアント認証をサポートします。この機能により、クライアント証明書を用いたクライアント認証を要求するようにTiCDCを設定でき、相互トランスポート層セキュリティ(mTLS)を確立できます。さらに、TiDBのユーザー名とパスワードに基づく認証も設定できます。

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

互換性の変更

動作の変更

  • 以前のバージョンでは、 TiDB Lightningのtidb.tls設定項目は、値"false"と"" 、および値"preferred"と"skip-verify"を同じものとして扱いました。v8.1.0 以降、 TiDB Lightning はtidb.tlsに対して"false" 、 "" 、 "skip-verify" 、 "preferred"の動作を区別します。詳細については、 TiDB Lightning構成を参照してください。
  • AUTO_ID_CACHE=1のテーブルの場合、TiDB は集中型AUTO_INCREMENT ID割り当てサービスをサポートします。以前のバージョンでは、このサービスのプライマリ TiDB ノードは、TiDB プロセスが終了すると(たとえば、TiDB ノードの再起動中)、自動割り当て ID を可能な限り連続的に保つためにforceRebase操作を自動的に実行していました。しかし、 AUTO_ID_CACHE=1のテーブルが多すぎると、 forceRebaseの実行に非常に時間がかかり、TiDB がすぐに再起動できなくなり、データの書き込みがブロックされてシステムの可用性に影響を及ぼします。この問題を解決するために、v8.1.0 以降、TiDB はforceRebaseの動作を削除しますが、この変更により、フェイルオーバー中に一部の自動割り当て ID が連続しなくなります。
  • 以前のバージョンでは、 UPDATE変更を含むトランザクションを処理する際に、 UPDATEイベントで主キーまたは null 以外の一意インデックス値が変更されると、TiCDC はこのイベントをDELETEとINSERTイベントに分割していました。v8.1.0 では、MySQL シンクを使用する場合、 UPDATEの変更のトランザクションcommitTSが TiCDC thresholdTS (TiCDC の起動時に PD から取得する現在のタイムスタンプ) より小さい場合、TiCDC はUPDATEのイベントをDELETEとINSERTイベントに分割します。この動作変更により、TiCDC が受信したUPDATEのイベントの順序が正しくない可能性があり、その結果、分割されたDELETEイベントとINSERTイベントの順序も正しくなくなる可能性がある、下流データの不整合の問題が解決されます。詳細については、 ドキュメントを参照してください。

システム変数

変数名変更の種類説明
tidb_enable_telemetry非推奨v8.1.0以降、TiDBのテレメトリ機能が削除され、この変数は機能しなくなりました。これは以前のバージョンとの互換性のためだけに保持されています。
tidb_auto_analyze_ratio変更値の範囲を[0, 18446744073709551615]から(0, 1]に変更します。
tidb_enable_dist_task変更デフォルト値をOFFからONに変更します。これは、Distributed eXecution Framework(DXF)がデフォルトで有効になることを意味します。これにより、TiDBクラスターのリソースが最大限に活用され、 ADD INDEXおよびIMPORT INTOタスクのパフォーマンスが大幅に向上します。DXFが有効になっているクラスターをv8.1.0以降にアップグレードする場合は、アップグレード前にDXFを無効にしてください( tidb_enable_dist_taskをOFFに設定)。これにより、アップグレード中にADD INDEX操作が発生し、データインデックスの不整合が発生するのを回避できます。アップグレード後、DXFを手動で有効にすることができます。
tidb_service_scope変更オプションの値を""またはbackgroundから最大 64 文字の文字列に変更します。これにより、各 TiDB ノードのサービス範囲をより柔軟に制御できます。有効な文字は、数字0-9 、文字a-zA-Z 、アンダースコア_ 、ハイフン-です。Distributed eXecution Framework (DXF) は、この変数の値に基づいて、どの TiDB ノードに分散タスクの実行をスケジュールするかを決定します。具体的なルールについては、 タスクのスケジュールを参照してください。

設定ファイルのパラメータ

設定ファイル設定パラメータ変更の種類説明
TiDBenable-telemetry非推奨v8.1.0以降、TiDBのテレメトリ機能は削除され、この設定項目は機能しなくなりました。これは以前のバージョンとの互換性のためだけに保持されています。
TiDBconcurrently-init-stats新しく追加されたTiDBの起動時に統計を同時に初期化するかどうかを制御します。デフォルト値はfalseです。
PDenable-telemetry非推奨v8.1.0以降、TiDB Dashboardのテレメトリ機能は削除され、この設定項目は機能しなくなりました。これは以前のバージョンとの互換性のためだけに保持されています。
TiDB Lightningconflict.max-record-rows変更v8.1.0 以降では、ユーザー入力に関係なく、 TiDB Lightning がconflict.max-record-rowsの値にconflict.thresholdの値を自動的に割り当てるため、 conflict.max-record-rowsを手動で構成する必要はありません。 conflict.max-record-rowsは将来のリリースで廃止される予定です。
TiDB Lightningconflict.threshold変更デフォルト値を9223372036854775807から10000に変更することで、異常なタスクを迅速に中断し、対応する調整を迅速に行うことができます。これにより、異常なデータソースやテーブルスキーマ定義の誤りが原因で、インポート後に大量の競合データが発見されるというシナリオを回避し、時間と計算リソースを節約できます。
TiKVraft-engine.batch-compression-threshold変更デフォルト値を"8KiB"から"4KiB"に変更して、 Raftログの書き込みの IOPS オーバーヘッドを削減し、圧縮率を向上させます。
TiKVmemory.enable-thread-exclusive-arena新しく追加された各TiKVスレッドのメモリ使用量を追跡するために、TiKVスレッドレベルでメモリ割り当てステータスを表示するかどうかを制御します。デフォルト値はtrueです。
TiCDCsecurity.client-allowed-user新しく追加されたクライアント認証に許可されるユーザー名をリストします。このリストに含まれていないユーザー名による認証リクエストは拒否されます。デフォルト値はnullです。
TiCDCsecurity.client-user-required新しく追加されたクライアント認証にユーザー名とパスワードを使用するかどうかを制御します。デフォルト値はfalseです。
TiCDCsecurity.mtls新しく追加されたTLSクライアント認証を有効にするかどうかを制御します。デフォルト値はfalseです。
TiCDCsink.debezium.output-old-value新しく追加された行データが変更される前の値を出力するかどうかを制御します。デフォルト値はtrueです。無効にすると、 UPDATEイベントは"before"フィールドを出力しません。
TiCDCsink.open.output-old-value新しく追加された行データが変更される前の値を出力するかどうかを制御します。デフォルト値はtrueです。無効にすると、イベントUPDATEは"p"フィールドを出力しません。

非推奨の機能

  • v8.1.0 以降、TiDB および TiDB Dashboardのテレメトリ機能は削除されます。

    • システム変数tidb_enable_telemetry 、 TiDB 設定項目enable-telemetry 、および PD 設定項目enable-telemetryは非推奨となり、機能しなくなりました。
    • ADMIN SHOW TELEMETRY構文は削除されます。
    • キーワードTELEMETRYとTELEMETRY_IDは削除されます。
  • 以降のリリースでは実行プランバインディングの自動進化を再設計する予定であり、関連する変数と動作が変更されます。

  • TiDB Lightningパラメータconflict.max-record-rowsは将来のリリースで廃止される予定であり、その後削除されます。このパラメータはconflict.thresholdに置き換えられます。これは、競合レコードの最大数が、単一のインポートタスクで許容される競合レコードの最大数と一致することを意味します。

  • TiDB Lightning v8.0.0以降、物理インポートモードの競合検出の古いバージョン戦略は非推奨となり、 conflict.strategyパラメータを使用して論理インポートモードと物理インポートモードの両方の競合検出戦略を制御できるようになりました。旧バージョンの競合検出用のduplicate-resolutionパラメータは、将来のリリースで削除される予定です。

改善点

  • TiDB

    • SHOW CREATE TABLE の出力に表示される外部キーのMySQL互換性を改善 #51837 @negachov
    • SHOW CREATE TABLE の出力に表示される式のデフォルト値のMySQL互換性を改善しました #52939 @CbcWestwolf
    • 取り込みモードで複数のインデックスを同時に追加できるようになりました #52596 @lance6716
    • システム変数tidb_service_scopeをさまざまな値で構成することをサポートし、分散実行フレームワーク(DXF) の利用率を高めます。 #52441 @ywqzzy
    • 常にfalseである DNF 項目の処理を強化し、そのようなフィルタ条件を直接無視することで、不要なテーブル全体のスキャンを回避します#40997 @hi-rustin
    • オプティマイザがクエリに対して単一インデックススキャン方式 (フルテーブルスキャン以外) を選択できる場合、オプティマイザがクエリに対してインデックスマージを自動的に選択しないという制限を削除するために、オプティマイザ修正コントロールの使用をサポートします。 #52869 @time-and-fate
    • コプロセッサー演算子の列execution infoにtotal_kv_read_wall_timeメトリックを追加します。 #28937 @cfzjywxk
    • リソースコントロールダッシュボードにRU (max)メトリックを追加する#49318 @nolouch
    • リソースロック(RLock)が時間内に解放されない問題を回避するために、LDAP認証にタイムアウトメカニズムを追加します #51883 @YangKeao
  • TiKV

    • TiKV の安定性を向上させるために、 Raftstoreスレッドでスナップショットファイルに対する IO 操作を実行しないようにします#16564 @Connor1996
    • TiKV のシャットダウン速度を加速 #16680 @LykxSassinator
    • スレッドごとのメモリ使用量のメトリックを追加します。 #15927 @Connor1996
  • PD

    • OperatorControllerのロジックを最適化して競合ロックのオーバーヘッドを削減します #7897 @nolouch
  • TiFlash

    • TLS を有効にした後に証明書を更新することでTiFlash がpanicする可能性がある問題を軽減します#8535 @windtalker
  • ツール

    • Backup & Restore (BR)

      • ログバックアップとインデックス追加の高速化の互換性テストをカバーするPITR統合テストケースを追加します。 #51987 @Leavrth
      • ログバックアップの開始時にアクティブなDDLジョブの無効な検証を削除します#52733 @Leavrth
      • PITR とインデックス追加機能の高速化の互換性をテストするためのテストケースを追加します。 #51988 @Leavrth
      • BRはデータ復旧中に空のSSTファイルをクリーンアップします#16005 @Leavrth
    • TiCDC

      • REDOログを使用してデータリカバリ中のメモリの安定性を向上させ、OOM の確率を低減します。 #10900 @CharlesCheung96
      • トランザクション競合シナリオにおけるデータレプリケーションの安定性が大幅に向上し、パフォーマンスが最大10倍向上します#10896 @CharlesCheung96

バグ修正

  • TiDB

    • 複数値インデックスを持つテーブルを含むSQL文を実行すると、 Can't find a proper physical plan for this queryエラーが返される可能性がある問題を修正しました。 #49438 @qw4990
    • OOMエラー発生後に自動統計収集が停止する問題を修正#51993 @hi-rustin
    • BRを使用して統計情報のないテーブルを復元した後、そのテーブルの統計の健全性が 100% のままになる問題を修正しました。 #29769 @winoros
    • アップグレード中に TiDB がシステムテーブルの統計を作成する問題を修正しました #52040 @hi-rustin
    • 統計の初期化が完了する前に自動統計収集がトリガーされる問題を修正#52346 @hi-rustin
    • tidb_mem_quota_analyzeが有効になっていて、統計の更新に使用されるメモリが制限を超えると TiDB がクラッシュする可能性がある問題を修正しました。 #52601 @hawkingrei
    • TiDBの同期的な統計読み込みメカニズムが空の統計の読み込みを無期限に再試行し、 fail to get stats version for this histogramログを出力する問題を修正しました。 #52657 @hawkingrei
    • 照合順序の新しいフレームワークが無効になっているときに、異なる照合順序を含む式によってクエリがpanicになる可能性がある問題を修正しました#52772 @wjhuang2016
    • CPS by typeメトリックに誤った値が表示される問題を修正しました #52605 @nolouch
    • INFORMATION_SCHEMA.TIKV_REGION_STATUS をクエリすると nil ポインタエラーが発生する問題を修正しました #52013 @JmPotato
    • 列に無効なデフォルト値が指定されたときに表示される誤ったエラーメッセージを修正しました。 #51592 @danqixu
    • 取り込みモードでインデックスを追加すると、一部のコーナーケースでデータインデックスの不整合が発生する可能性がある問題を修正#51954 @lance6716
    • 外部キーを持つテーブルを復元するときに DDL 操作が停止する問題を修正しました #51838 @YangKeao
    • TiDBネットワークが分離されているときにインデックスの追加が失敗する問題を修正 #51846 @ywqzzy
    • インデックス名を変更した後に同じ名前のインデックスを追加するとエラーが発生する問題を修正#51431 @lance6716
    • インデックス追加中にクラスターのアップグレードによって発生するデータインデックスの不整合の問題を修正しました。 #52411 @tangenta
    • 分散実行フレームワーク (DXF) を有効にした後に、大きなテーブルにインデックスを追加できない問題を修正しました。 #52640 @tangenta
    • インデックスを同時に追加するとエラーno such file or directory が報告される問題を修正しました #52475 @tangenta
    • インデックスの追加が失敗した後に一時データをクリーンアップできない問題を修正#52639 @lance6716
    • プランキャッシュシナリオでメタデータロックがDDL操作の実行を阻止できない問題を修正 #51407 @wjhuang2016
    • 大量のデータをインポートするときにIMPORT INTO操作が停止する問題を修正#52884 @lance6716
    • gRPC エラーをログに記録するときに TiDB が予期せず再起動する問題を修正しました #51301 @guo-shaoge
    • IndexHashJoin が Anti Left Outer Semi Join を計算するときに冗長なデータを出力する問題を修正しました。 #52923 @yibin87
    • 相関サブクエリにおける TopN オペレーターの誤った結果を修正 #52777 @yibin87
    • HashJoinプローブの不正確な実行時間統計を修正 #52222 @windtalker
    • 静的パーティションプルーニングモード( tidb_partition_prune_mode='static' )でTABLESAMPLEを使用すると誤った結果が返される問題を修正 #52282 @tangenta
    • 夏時間でTTLが1時間ずれる問題を修正 #51675 @lcwangchao
    • TiDB Dashboardのモニタリングページにおける接続数(Connection Count)の計算と表示が誤っていた問題を修正しました。 #51889 @YangKeao
    • パーティションDDLタスクをロールバックするときにステータスが停止する問題を修正しました #51090 @jiyfhust
    • EXPLAIN ANALYZE を実行したときにmax_remote_streamの値が正しくない問題を修正しました #52646 @JaySon-Huang
    • TIDB_HOT_REGIONSテーブルをクエリすると、誤ってINFORMATION_SCHEMAテーブルが返される可能性がある問題を修正しました。 #50810 @Defined2014
    • 特定の列の統計情報が完全にロードされていない場合に、 EXPLAIN文の結果に誤った列 ID が表示される可能性がある問題を修正しました#52207 @time-and-fate
    • IFNULL関数によって返される型が MySQL と一致しない問題を修正しました #51765 @YangKeao
    • 一意インデックスを追加するとTiDBがpanicする可能性がある問題を修正#52312 @wjhuang2016
  • TiKV

    • 古いリージョンピアがGCメッセージを無視するとresolve-tsがブロックされる問題を修正しました #16504 @crazycs520
    • RocksDB の非アクティブな Write Ahead Logs (WAL) によってデータが破損する可能性がある問題を修正しました#16705 @Connor1996
  • PD

    • PD マイクロサービスモードのオン/オフを切り替えるときに TSO が停止する可能性がある問題を修正#7849 @JmPotato
    • DR自動同期のState監視メトリックにデータが表示されない問題を修正#7974 @lhy1024
    • バイナリバージョンのチェックでPD panicが発生する可能性がある問題を修正 #7978 @JmPotato
    • TTLパラメータを解析する際に発生する型変換エラーを修正#7980 @HuSharp
    • デプロイされた2つのデータセンター間でLeaderを切り替えるとLeaderの移行に失敗する問題を修正#7992 @TonsnakeLin
    • pd-ctl のPrintErrlnがstderr にエラーメッセージを出力できない問題を修正しました #8022 @HuSharp
    • Mergeスケジュールを生成する際にPDがpanicする可能性がある問題を修正 #8049 @nolouch
    • GetAdditionalInfo によって引き起こされるpanic問題を修正 #8079 @HuSharp
    • PDのFilter target監視メトリックが散布範囲情報を提供しない問題を修正#8125 @HuSharp
    • SHOW CONFIGのクエリ結果に非推奨の設定項目trace-region-flow が含まれる問題を修正しました #7917 @rleungx
    • スケーリングの進行状況が正しく表示されない問題を修正#7726 @CabinfeverB
  • TiFlash

    • 非厳密モードのsql_mode で無効なデフォルト値を持つ列にデータを挿入するとTiFlash がpanicする可能性がある問題を修正しました #8803 @Lloyd-Pottiger
    • TiFlash が高同時実行読み取りシナリオで一時的に誤った結果を返す可能性がある問題を修正#8845 @JinheLin
    • ストレージとコンピューティングの分離アーキテクチャで、 TiFlashコンピューティングノードのstorage.remote.cache.capacity設定項目の値を変更した後、Grafanaに表示されるディスクused_sizeメトリックが正しくないという問題を修正しました。 #8920 @JinheLin
    • クラスタをv6.5.0より前のバージョンからv6.5.0以降にアップグレードするときに、 TiFlashメタデータが破損してプロセスがpanicになる可能性がある問題を修正しました#9039 @JaySon-Huang
    • ストレージとコンピューティングの分離アーキテクチャで、コンピューティングノードのプロセスが停止するとTiFlash がpanicする可能性がある問題を修正しました#8860 @guo-shaoge
    • 仮想生成列を含むクエリを実行するとTiFlash がエラーを返す可能性がある問題を修正しました #8787 @guo-shaoge
  • ツール

    • Backup & Restore (BR)

      • BRがAUTO_RANDOM列を含むユニオンクラスター化インデックスのAUTO_RANDOM ID割り当ての進行状況をバックアップできない問題を修正しました。 #52255 @Leavrth
      • ログバックアップタスクを一時停止後に削除しても、GCセーフポイントがすぐに復元されない問題を修正しました。 #52082 @3pointer
      • 特別なイベントタイミングにより、ログバックアップでデータ損失が発生する可能性があるという稀な問題を修正しました。 #16739 @YuJuncen
      • TiKV の再起動により、ログバックアップのグローバルチェックポイントが実際のバックアップファイルの書き込みポイントよりも先に進められ、少量のバックアップデータが失われる可能性がある問題を修正しました#16809 @YuJuncen
      • フルバックアップ中に--concurrencyに関連する紛らわしい情報がログに表示される問題を修正 #50837 @BornChanger
      • BRを使用してデータを復元する場合、または物理インポートモードでTiDB Lightningを使用してデータをインポートする場合に、PD から取得されたリージョンにLeaderがない問題を修正しました#51124 #50501 @Leavrth
      • ログバックアップタスクを一時停止、停止、再構築した後、タスクの状態は正常であるが、チェックポイントが進まない問題を修正しました。 #53047 @RidRisR
      • 不安定なテストケースTestClearCache を修正 #51671 @zxc111
      • 不安定なテストケースTestGetMergeRegionSizeAndCount を修正 #52095 @3pointer
      • 不安定な統合テストを修正br_tikv_outage #52673 @Leavrth
      • テストケースTestGetTSWithRetryの実行に時間がかかりすぎる問題を修正#52547 @Leavrth
      • PD へのネットワーク接続が不安定な状態で一時停止中のログバックアップタスクを再開すると TiKV がpanicする可能性がある問題を修正しました #17020 @YuJuncen
    • TiCDC

      • TiCDC所有者ノードを退去させるAPI( /api/v2/owner/resign )を呼び出すと、TiCDCタスクが予期せず再起動する問題を修正しました#10781 @sdojjy
      • 下流の Pulsar が停止しているときに、changefeed を削除すると通常の TiCDC プロセスが停止し、他の changefeed プロセスも停止するという問題を修正しました#10629 @asddongmen
      • Grafana のOwnership historyパネルが不安定になる問題を修正#10796 @hongyunyan
      • PDを再起動するとTiCDCノードがエラーで再起動する可能性がある問題を修正しました #10799 @3AceShowHand
      • PDディスクI/Oの高レイテンシーによりデータレプリケーションで深刻なレイテンシーが発生する問題を修正 #9054 @asddongmen
      • TIMEZONE型のデフォルト値が正しいタイムゾーンに従って設定されない問題を修正 #10931 @3AceShowHand
      • DROP PRIMARY KEYとDROP UNIQUE KEY文が正しく複製されない問題を修正#10890 @asddongmen
      • TiCDC が上流に書き込まれた後に下流のExchange Partition ... With Validation DDL の実行に失敗し、変更フィードが停止する問題を修正しました。 #10859 @hongyunyan
    • TiDB Lightning

      • ソースファイル内の互換性のない SQL文が原因で、TiDB Lightning がデータインポート中にno database selectedを報告する問題を修正しました。 #51800 @lance6716
      • TiDB Lightningがサーバーモードでログに機密情報を出力する可能性がある問題を修正しました #36374 @kennytm
      • PD Leaderを強制終了すると、 TiDB Lightningがデータインポート中にinvalid store ID 0エラーを報告する問題を修正しました。 #50501 @Leavrth
      • TiDB Lightningがreplace戦略を使用して競合するデータを処理するときにUnknown column in where clauseエラーを報告する問題を修正しました #52886 @lyzx2001
      • Parquet 形式の空のテーブルをインポートするときにTiDB Lightning がパニックになる問題を修正しました #52518 @kennytm

パフォーマンステスト

TiDB v8.1.0 のパフォーマンスについては、 TiDB Cloud Dedicated クラスターのTPC-CパフォーマンステストレポートとSysbenchパフォーマンステストレポートを参照してください。

貢献者

TiDB コミュニティからの以下の貢献者に感謝いたします。

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