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

TiDB 8.2.0 リリースノート



発売日:2024年7月11日

TiDB バージョン: 8.2.0

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

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

カテゴリ機能/改善点説明
信頼性と可用性TiProxyは複数のロードバランシングポリシーをサポートしています。 TiDB v8.2.0では、TiProxyはステータス、接続数、健全性、メモリ、CPU、ロケーションなど、さまざまな要素に基づいてTiDBノードを評価し、ランク付けします。 policy構成項目で指定された負荷分散ポリシーに従って、TiProxyはデータベース操作を実行する最適なTiDBノードを動的に選択します。これにより、リソース使用率全体が最適化され、クラスタのパフォーマンスが向上し、スループットが増加します。
TiDB の並列 HashAgg アルゴリズムはディスク スピル (GA) をサポートしますHashAgg は、同じフィールド値を持つ行を効率的に集計するために TiDB で広く使用されている集計演算子です。TiDB v8.0.0 では、処理速度をさらに向上させる実験的機能として parallel HashAgg が導入されました。メモリリソースが不足している場合、parallel HashAgg は一時的にソートされたデータをディスクに書き出すことで、過剰なメモリ使用による潜在的な OOM リスクを回避します。これにより、ノードの安定性を維持しながらクエリ パフォーマンスが向上します。v8.2.0 では、この機能が一般提供 (GA) となり、デフォルトで有効になっているため、 tidb_executor_concurrencyを使用して parallel HashAgg の同時実行性を安全に構成できます。
統計情報の読み込み効率を最大10倍向上SaaSやPaaSサービスなど、テーブルとパーティションの数が多いクラスタでは、統計情報のロード効率を改善することで、TiDBインスタンスの起動速度低下の問題を解決し、統計情報の動的ロードの成功率を高めることができます。この改善により、統計情報のロード失敗によるパフォーマンス低下が軽減され、クラスタの安定性が向上します。
データベースの運用と可観測性リソースグループの切り替えに対する特権制御を導入するリソース制御は広く利用されているため、リソースグループの切り替えに関する権限制御は、データベースユーザーによるリソースの不正使用を防ぎ、管理者によるリソース使用全体の保護を強化し、クラスタの安定性を向上させることができる。

機能の詳細

パフォーマンス

  • TiKVへの以下のJSON関数のプッシュダウンをサポート #50601 @dbsid

    • JSON_ARRAY_APPEND()
    • JSON_MERGE_PATCH()
    • JSON_REPLACE()

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

  • TiDB は並列ソートをサポート#49217 #50746 @xzhangxian1008

    バージョン8.2.0より前のTiDBでは、ソート演算子は順次実行されるため、大量のデータをソートする際のクエリパフォーマンスに影響が出ていました。

    バージョン8.2.0以降、TiDBは並列ソートをサポートし、ソートパフォーマンスを大幅に向上させました。この機能は手動での設定は不要です。TiDBは、システム変数tidb_executor_concurrencyの値に基づいて、並列ソートを使用するかどうかを自動的に判断します。

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

  • TiDB の並列 HashAgg アルゴリズムは、ディスク スピル (GA) #35637 @xzhangxian1008をサポートしています。

    TiDB v8.0.0 では、実験的機能としてディスクスピルをサポートする並列 HashAgg アルゴリズムが導入されました。v8.2.0 では、この機能が一般提供 (GA) されます。並列 HashAgg アルゴリズムを使用すると、TiDB はメモリ使用量に基づいて自動的にデータスピルをトリガーし、クエリのパフォーマンスとデータスループットのバランスを取ります。この機能はデフォルトで有効になっています。この機能を制御するシステム変数tidb_enable_parallel_hashagg_spillは、今後のリリースで非推奨となります。

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

信頼性

  • 統計の読み込み効率を最大 10 倍向上 #52831 @hawkingrei

    SaaSやPaaSアプリケーションでは、データテーブルが多数存在する場合があり、初期統計情報の読み込み速度が低下するだけでなく、高負荷時のロード同期の失敗率も上昇します。TiDBの起動時間や実行プランの精度にも影響が出る可能性があります。v8.2.0では、TiDBは並行処理モデルやメモリ割り当てなど、複数の観点から統計情報の読み込みプロセスを最適化し、レイテンシーの削減、スループットの向上、そしてビジネスのスケーリングに影響を与える統計情報の読み込み速度の低下を回避します。

    適応型同時読み込みがサポートされるようになりました。デフォルトでは、設定項目stats-load-concurrency0に設定されており、統計情報の読み込みの同時実行数はハードウェア仕様に基づいて自動的に選択されます。

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

可用性

  • TiProxyは複数のロードバランシングポリシーをサポートします #465 @djshow832 @xhebox

    TiProxyはTiDBの公式プロキシコンポーネントであり、クライアントとTiDBサーバーの間に配置されます。TiProxyはTiDBの負荷分散機能と接続維持関数を提供します。v8.2.0より前のバージョンでは、TiProxyはデフォルトでv1.0.0を使用しており、TiDBサーバーに対してステータスベースおよび接続数ベースの負荷分散ポリシーのみをサポートしています。

    バージョン8.2.0以降、TiProxyはデフォルトでバージョン1.1.0となり、複数の負荷分散ポリシーが導入されました。ステータスベースおよび接続数ベースのポリシーに加え、TiProxyは健全性、メモリ、CPU、およびロケーションに基づいた動的な負荷分散をサポートし、TiDBクラスタの安定性を向上させます。

    policy設定項目を通じて、負荷分散ポリシーの組み合わせと優先順位を設定できます。

    • resource : リソース優先度ポリシーは、ステータス、ヘルス、メモリ、CPU、ロケーション、接続数という優先順位に基づいて負荷分散を実行します。
    • location : ロケーション優先度ポリシーは、ステータス、ロケーション、ヘルス、メモリ、CPU、接続数という優先順位に基づいて負荷分散を実行します。
    • connection : 最小接続数優先度ポリシーは、ステータスと接続数という次の優先度に基づいて負荷分散を実行します。

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

SQL

  • TiDBはJSONスキーマ検証機能をサポートしています #52779 @dveeden

    v8.2.0より前は、JSONデータの検証に外部ツールやカスタム検証ロジックを使用する必要があり、開発と保守の複雑さが増し、開発効率が低下していました。v8.2.0以降では、 JSON_SCHEMA_VALID()関数が導入されました。 JSON_SCHEMA_VALID()制約でCHECKを使用することで、データが追加された後にチェックするのではなく、不適合なデータが挿入されるのを防ぐことができます。この関数を使用すると、TiDB内でJSONデータの有効性を直接検証できるため、データの整合性と一貫性が向上し、開発効率が向上します。

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

データベース操作

  • TiUPはPDマイクロサービスのデプロイをサポートします #5766 @rleungx

    バージョン8.0.0以降、PDはマイクロサービスモードをサポートしています。このモードでは、PDのタイムスタンプ割り当て機能とクラスタスケジューリング関数が、それぞれ独立してデプロイ可能な個別のマイクロサービスに分割されます。これにより、リソース制御と分離性が向上し、異なるサービス間の影響が軽減されます。バージョン8.2.0より前は、PDマイクロサービスはTiDB Operatorを使用してのみデプロイできます。

    バージョン8.2.0以降、PDマイクロサービスはTiUPを使用してデプロイすることもできます。クラスター内でtsoマイクロサービスとschedulingマイクロサービスを個別にデプロイすることで、PDのパフォーマンス拡張性を向上させ、大規模クラスターにおけるPDのパフォーマンスボトルネックを解消できます。このモードは、スケールアップでは解決できないほどPDが深刻なパフォーマンスボトルネックになった場合に推奨されます。

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

  • リソースグループの切り替えに関する権限制御を追加 #53440 @glorv

    TiDBではSET RESOURCE GROUPコマンドまたはRESOURCE_GROUP()ヒントを使用して他のリソースグループに切り替えることができますが、これにより一部のデータベースユーザーによるリソースグループの悪用につながる可能性があります。TiDB v8.2.0では、リソースグループの切り替えに対する権限制御が導入されました。 RESOURCE_GROUP_ADMINまたはRESOURCE_GROUP_USER動的権限が付与されたデータベースユーザーのみが他のリソースグループに切り替えることができ、システムリソースの保護が強化されます。

    互換性を維持するため、以前のバージョンから v8.2.0 以降のバージョンにアップグレードする場合、元の動作が保持されます。拡張された権限制御を有効にするには、新しい変数tidb_resource_control_strict_mode ONに設定します。

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

可観測性

  • 実行プランがキャッシュされない理由を記録する #50618 @qw4990

    場合によっては、実行オーバーヘッドを削減し、レイテンシーを低減するために、ほとんどの実行プランをキャッシュしたい場合があります。現在、SQL の実行プラン キャッシュにはいくつかの制限があります。一部の SQL ステートメントの実行プランはキャッシュできません。キャッシュできない SQL ステートメントと、それに対応する理由を特定するのは困難です。

    そのため、v8.2.0以降、実行プランをキャッシュできない理由を説明する新しい列PLAN_CACHE_UNQUALIFIEDPLAN_CACHE_UNQUALIFIED_LAST_REASONがシステムテーブルSTATEMENTS_SUMMARYに追加され、パフォーマンスの調整に役立ちます。

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

Security

  • TiFlashログの感度低下を強化 #8977 @JaySon-Huang

    TiDB v8.0.0 では、ログの匿名化機能が強化され、TiDB ログ内のユーザー データがマーカー‹ ›で囲まれるかどうかを制御できるようになりました。マークされたログに基づいて、ログを表示する際にマークされた情報を削除するかどうかを決定できるため、ログの匿名化の柔軟性が向上します。v8.2.0 では、 TiFlash でログの匿名化に関する同様の機能強化が導入されています。この機能を使用するには、 TiFlash構成項目security.redact_info_logmarkerに設定します。

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

データ移行

  • 複数の変更フィード間で TiCDC 同期ポイントを調整する #11212 @hongyunyan

    バージョン 8.2.0 より前は、複数のチェンジフィード間で TiCDC 同期ポイントを整合させるのは困難でした。チェンジフィードの作成時に、他のチェンジフィードの同期ポイントと整合するように、チェンジフィードのstartTs sync-point-interval構成の倍数として作成されます。この変更により、同じsync-point-interval構成を持つ複数のチェンジフィード間で同期ポイントを整合させることが可能になり、複数のダウンストリーム クラスタの整合が簡素化され、機能が向上します。

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

  • TiCDC Pulsar シンクはpulsar+httpおよびpulsar+https接続プロトコルの使用をサポートしています #11336 @SandeepPadhi

    バージョン8.2.0より前は、TiCDC Pulsar Sinkはpulsarpulsar+ssl接続プロトコルのみをサポートしていました。バージョン8.2.0以降では、TiCDC Pulsar Sinkはpulsar+httppulsar+httpsプロトコルも接続にサポートするようになりました。この機能強化により、Pulsarへの接続の柔軟性が向上します。

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

互換性の変更

注記:

このセクションでは、v8.1.0 から最新バージョン (v8.2.0) にアップグレードする際に知っておくべき互換性の変更点について説明します。v8.0.0 以前のバージョンから最新バージョンにアップグレードする場合は、中間バージョンで導入された互換性の変更点も確認する必要があるかもしれません。

行動の変化

  • TiDB Lightningを使用して CSV ファイルをインポートする場合、 strict-format = trueを設定して大きな CSV ファイルを複数の小さな CSV ファイルに分割し、同時実行性とインポート パフォーマンスを向上させる場合は、 terminator明示的に指定する必要があります。指定できる値は、 \r\n 、または\r\nです。行末文字を指定しないと、CSV ファイル データの解析時に例外が発生する可能性があります。 #37338 @lance6716

  • IMPORT INTOを使用して CSV ファイルをインポートする場合、大きな CSV ファイルを複数の小さな CSV ファイルに分割して同時実行性とインポート パフォーマンスを向上させるためにSPLIT_FILEパラメーターを指定すると、行末文字LINES_TERMINATED_BYを明示的に指定する必要があります。指定できる値は\r\n 、または\r\nです。行末文字を指定しないと、CSV ファイル データの解析時に例外が発生する可能性があります。 #37338 @lance6716

  • BR v8.2.0 より前は、TiCDC レプリケーション タスクを持つクラスタでBRデータ復元実行することはサポートされていませんでした。v8.2.0 以降、 BR はTiCDC のデータ復元に関する制限を緩和しました。復元対象データの BackupTS (バックアップ時刻) が changefeed CheckpointTS (現在のレプリケーションの進行状況を示すタイムスタンプ) より前であれば、 BR は正常にデータ復元を進めることができます。 BackupTSは通常かなり前であることを考慮すると、ほとんどのシナリオで、 BR はTiCDC レプリケーション タスクを持つクラスタのデータ復元をサポートしていると考えられます。 #53131 @YuJuncen

MySQLとの互換性

  • v8.2.0より前は、 PASSWORD REQUIRE CURRENT DEFAULTオプションを指定してCREATE USERステートメントを実行すると、このオプションがサポートされておらず解析できないためエラーが返されます。v8.2.0以降、TiDBはMySQLとの互換性のためにこのオプションの解析と無視をサポートします。 #53305 @dveeden

システム変数

変数名種類を変更する説明
tidb_analyze_distsql_scan_concurrency修正済み最小値を1から0に変更します。これを0に設定すると、TiDB はクラスタサイズに基づいてscan操作を実行する際にANALYZE操作の同時実行性を適応的に調整します。
tidb_analyze_skip_column_types修正済みバージョン8.2.0以降、TiDBは潜在的なメモリ不足リスクを回避するため、デフォルトではMEDIUMTEXTおよびLONGTEXT型の列を収集しません。
tidb_auto_analyze_partition_batch_size修正済みTiDB クラスタのパフォーマンスに対する自動統計収集の影響を軽減するため、デフォルト値を128から8192に変更します。値の範囲を[1, 1024]から[1, 8192]に変更します。
tidb_enable_historical_stats修正済みデフォルト値をONからOFFに変更します。これにより、履歴統計が無効になり、潜在的な安定性の問題を回避できます。
tidb_executor_concurrency修正済みsort演算子の同時実行設定のサポートを追加します。
tidb_sysproc_scan_concurrency修正済み最小値を1から0に変更します。これを0に設定すると、TiDB はクラスタサイズに基づいて、内部 SQL ステートメントの実行時に実行されるscan操作の同時実行性を適応的に調整します。
tidb_resource_control_strict_mode新しく追加されたSET RESOURCE GROUPステートメントおよびRESOURCE_GROUP()オプティマイザヒントに特権制御を適用するかどうかを制御します。

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

コンフィグレーションファイルコンフィグレーションパラメータ種類を変更する説明
TiDBconcurrently-init-stats修正済み統計情報の初期化にかかる時間を短縮するため、デフォルト値をfalseからtrueに変更します。この設定項目は、 lite-init-stats falseに設定されている場合にのみ有効になります。
TiDBstats-load-concurrency修正済みデフォルト値を5から0に変更し、最小値を1から0に変更します。値0は自動モードを意味し、サーバーの設定に基づいて同時実行数を自動的に調整します。
TiDBtoken-limit修正済みTiDB Server のメモリ不足エラー (OOM) が発生するのを避けるため、最大値を18446744073709551615 (64 ビット プラットフォーム) および4294967295 1048576に変更します。これにより、同時にリクエストを実行できるセッション数は最大1048576まで設定できます。
ティクヴmax-apply-unpersisted-log-limit修正済みTiKVノードのI/Oジッターによって発生するロングテールレイテンシーを削減するため、デフォルト値を0から1024に変更します。これは、コミット済みだが永続化されていないRaftログの最大適用数が、デフォルトでは1024であることを意味します。
ティクヴserver.grpc-compression-type修正済みこの設定項目では、TiKVからTiDBに送信される応答メッセージの圧縮アルゴリズムも制御できるようになりました。圧縮を有効にすると、CPUリソースの消費量が増加する可能性があります。
TiFlashsecurity.redact_info_log修正済み新しい値オプションmarkerが導入されました。値をmarkerに設定すると、ログ内のすべてのユーザーデータが‹ ›で囲まれます。

システムテーブル

コンパイラバージョン

  • TiFlashの開発エクスペリエンスを向上させるため、TiDBのコンパイルとビルドに必要なLLVMの最小バージョンが13.0から17.0にアップグレードされました。TiDB開発者の方は、スムーズなビルドを保証するために、LLVMコンパイラのバージョンをアップグレードする必要があります。 #7193 @Lloyd-Pottiger

非推奨機能

  • バージョン8.2.0以降、以下の機能は非推奨となります。

    • バージョン8.2.0以降、 enable-replica-selector-v2設定項目は非推奨となりました。TiKVへのRPCリクエスト送信時には、デフォルトで新しいバージョンのリージョンレプリカセレクタが使用されます。
    • バージョン8.2.0以降、 BRスナップショット復元パラメータ--concurrencyは非推奨となりました。代替手段として、 --tikv-max-restore-concurrencyを使用して、スナップショット復元中のTiKVノードごとの同時実行タスクの最大数を設定できます。
    • v8.2.0 以降、 BRスナップショット復元パラメータ--granularityは非推奨となり、 粗視化リージョン散乱アルゴリズムデフォルトで有効になります。
  • 以下の機能は、将来のバージョンで廃止される予定です。

    • バージョン8.0.0では、TiDBは自動統計収集タスクの順序を最適化するために優先度キューを有効にするかどうかを制御するシステム変数tidb_enable_auto_analyze_priority_queueを導入しました。今後のバージョンでは、優先度キューが自動統計収集タスクの順序付けを行う唯一の方法となり、 tidb_enable_auto_analyze_priority_queueシステム変数は非推奨となります。
    • バージョン8.0.0では、TiDBが並列ハッシュアグリゲーションアルゴリズムのディスクスピルをサポートするかどうかを制御するシステム変数tidb_enable_parallel_hashagg_spillが導入されました。今後のバージョンでは、 tidb_enable_parallel_hashagg_spillシステム変数は非推奨となります。
    • バージョン7.5.0では、TiDBがパーティション統計情報を非同期でマージしてメモリ不足エラーを回避するために、システム変数tidb_enable_async_merge_global_statsが導入されました。今後のバージョンでは、パーティション統計情報はデフォルトで非同期でマージされるようになり、システム変数tidb_enable_async_merge_global_statsは非推奨となります。
    • 今後のリリースでは 実行プランバインディングの自動進化が再設計される予定であり、関連する変数や動作が変更される予定です。
    • TiDB Lightning のパラメータconflict.max-record-rows 、今後のリリースで非推奨となり、その後削除されます。このパラメータはconflict.thresholdに置き換えられます。これは、競合するレコードの最大数が、単一のインポートタスクで許容できる競合レコードの最大数と一致することを意味します。
  • 今後のバージョンでは、以下の機能が削除される予定です。

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

改善点

  • TiDB

    • 論理DDLステートメント(一般DDL)の並列実行をサポートします。 v8.1.0 と比較して、10 セッションを使用して異なる DDL ステートメントを同時に送信すると、パフォーマンスが 3 ~ 6 倍向上します #53246 @D3Hunter
    • ((a = 1 and b = 2 and c > 3) or (a = 4 and b = 5 and c > 6)) and d > 3のような式を使用して複数列インデックスを照合するロジックを改善し、より正確なRangeを生成します。 #41598 @ghazalfamilyusa
    • データ量の多いテーブルに対して単純なクエリを実行する際の、データ分布情報の取得パフォーマンスを最適化する #53850 @you06
    • 集約された結果セットは IndexJoin の内部テーブルとして使用でき、より複雑なクエリを IndexJoin にマッチさせることが可能になり、インデックス作成によってクエリ効率が向上します。 #37068 @elsa0520
    • TiFlash配置ルールを一括削除することで、パーティションテーブルに対してTRUNCATEまたはDROP操作を実行した後のデータGCの処理速度を向上させます #54068 @Lloyd-Pottiger
    • Azure Identity LibrariesとMicrosoft Authentication Libraryのバージョンをアップグレードしてセキュリティを強化する #53990 @hawkingrei
    • TiDB Server のメモリ不足エラー(OOM)が発生しないように、 token-limitの最大値に1048576を設定してください。 #53312 @djshow832
    • TiFlash MPP実行パフォーマンスを向上させるため、MPP実行プランの列剪定を改善しました #52133 @yibin87
    • 大量のデータ(>1024行)を含むテーブルを検索する際のIndexLookUp演算子のパフォーマンスオーバーヘッドを最適化する #53871 @crazycs520
    • MPPロードバランシング中にリージョンを持たないストアを削除する #52313 @xzhangxian1008
  • ティクヴ

    • 単一の圧縮ジョブに関係する SST ファイルの数を表示する圧縮ジョブサイズ (ファイル)メトリックを追加します #16837 @zhangjinpeng87
    • 早期応募をデフォルトで有効にします。この機能を有効にすると、 Raftリーダーは、クォーラム ピアがログを永続化した後、リーダー自身がログを永続化するのを待たずにログを適用できるため、少数の TiKV ノードでのジッターが書き込みリクエストのレイテンシーに与える影響が軽減されます。 #16717 @glorv
    • Raftのドロップメッセージの可視性を向上させ、書き込み速度低下の根本原因を特定する #17093 @Connor1996
    • クラスターのレイテンシーの問題をトラブルシューティングするために、ファイル取り込みレイテンシーの可視性を向上させる #17078 @LykxSassinator
    • リージョンレプリカのクリーンアップに別のスレッドを使用して、重要なRaftの読み取りと書き込みのレイテンシーを安定させる #16001 @hbisheng
    • 適用されるスナップショットの数の可視性を向上させる #17078 @hbisheng
  • PD

    • リージョンハートビート処理のパフォーマンスを改善 #7897 @nolouch@rleungx @JmPotato
    • pd-ctl は、バイトまたはクエリ次元によるホット リージョンのクエリをサポートします #7369 @lhy1024
  • TiFlash

    • 高並行データ読み取り操作時のロック競合を減らし、短いクエリのパフォーマンスを最適化 #9125 @JinheLin
    • Join演算子 #9057 @gengliqi内の Join Key の重複コピーを削除します。
    • HashAgg演算子 #8956 @gengliqiで2レベルハッシュテーブルの変換処理を同時に実行します
    • HashAgg演算子の冗長な集計関数を削除して計算オーバーヘッドを削減 #8891 @guo-shaoge
  • ツール

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

      • バックアップ機能を最適化し、ノードの再起動、クラスターのスケールアウト、および多数のテーブルをバックアップする際のネットワーク ジッター時のバックアップ パフォーマンスと安定性を向上させます #52534 @3pointer
      • データ復元時にTiCDCチェンジフィードのきめ細かいチェックを実装します。チェンジフィードのCheckpointTSデータバックアップ時刻より後であれば、復元操作に影響はなく、不要な待ち時間を短縮し、ユーザーエクスペリエンスを向上させます。 #53131 @YuJuncen
      • BACKUPステートメントとRESTOREステートメントに、 CHECKSUM_CONCURRENCYなどのよく使用されるパラメーターをいくつか追加します #53040 @RidRisR
      • br log restoreサブコマンドを除き、他のすべてのbr logサブコマンドは、メモリ消費量を削減するために TiDB domainデータ構造の読み込みをスキップすることをサポートしています #52088 @Leavrth
      • ログバックアップ中に生成される一時ファイルの暗号化をサポート #15083 @YuJuncen
      • Grafana ダッシュボードにtikv_log_backup_pending_initial_scanモニタリング メトリクスを追加します #16656 @3pointer
      • PITRログの出力形式を最適化し、ログにRestoreTSフィールドを追加する #53645 @dveeden
    • TiCDC

      • ダウンストリームがメッセージキュー(MQ)またはクラウドstorageの場合に、生イベントを直接出力する機能をサポートする #11211 @CharlesCheung96

バグ修正

  • TiDB

    • SQL文に外部結合が含まれ、結合条件にfalse IN (column_name)式が含まれている場合に、クエリ結果に一部のデータが欠落する問題を修正しました。 #49476 @ghazalfamilyusa
    • TiDBがテーブルの統計情報を収集する際にPREDICATE COLUMNSシステムテーブルの列の統計情報が収集される問題を修正しました #53403 @Rustin170506
    • tidb_enable_column_trackingシステム変数がtidb_persist_analyze_optionsに設定されている場合、 OFFシステム変数が有効にならない問題を修正します。 #53478 @Rustin170506
    • (*PointGetPlan).StatsInfo()の実行中に発生する可能性のあるデータ競合の問題を修正します#49803 #43339 @qw4990
    • データ変更操作を含むトランザクションで仮想列を持つテーブルをクエリすると、TiDB が誤ったクエリ結果を返す可能性がある問題を修正しました #53951 @qw4990
    • tidb_enable_async_merge_global_statsおよびtidb_analyze_partition_concurrencyシステム変数が自動統計収集中に有効にならない問題を修正 #53972 @Rustin170506
    • TiDB がplan not supportedをクエリした際にTABLESAMPLEエラーを返す可能性がある問題を修正 #54015 @tangenta
    • SELECT DISTINCT CAST(col AS DECIMAL), CAST(col AS SIGNED) FROM ...クエリを実行すると誤った結果が返される可能性がある問題を修正しました #53726 @hawkingrei
    • クライアント側でデータ読み取りタイムアウト後にクエリを終了できない問題を修正 #44009 @wshwsh12
    • 述語におけるLonglong型のオーバーフロー問題を修正 #45783 @hawkingrei
    • Window関数内に関連サブクエリがある場合にpanicする可能性がある問題を修正しました #42734 @Rustin170506
    • TopN演算子が正しくプッシュダウンされない可能性がある問題を修正しました #37986 @qw4990
    • クラスタ化インデックスを述語として使用する場合にSELECT INTO OUTFILEが機能しない問題を修正 #42093 @qw4990
    • 情報スキーマキャッシュのミスによって古い読み取りのクエリレイテンシーが増加する問題を修正します #53428 @crazycs520
    • YEAR型の列を範囲外の符号なし整数と比較すると誤った結果が生じる問題を修正しました #50235 @qw4990
    • TiDBを再起動した後に、主キー列統計のヒストグラムとTopNが読み込まれない問題を修正しました #37548 @hawkingrei
    • final AggMode とnon-final AggMode が大規模並列処理 (MPP) で共存できない問題を修正します #51362 @AilinKid
    • 述語が常にSHOW ERRORSであるtrueステートメントを実行すると TiDB がパニックを起こす問題を修正します #46962 @elsa0520
    • ビューの使用が再帰的CTEで機能しない問題を修正 #49721 @hawkingrei
    • TiDB が起動時に統計をロードするときに GC が原因でエラーを報告する可能性がある問題を修正 #53592 @you06
    • PREPARE / EXECUTEステートメントでCONV式に?引数が含まれている場合、複数回実行するとクエリ結果が正しくない可能性がある問題を修正します。 #53505 @qw4990
    • 非 BIGINT 符号なし整数が文字列/10 進数と比較したときに誤った結果を生成する可能性がある問題を修正 #41736 @LittleFall
    • TiDBが外部キーを持つテーブルを作成する際に、対応する統計メタデータ( stats_meta )を作成しない問題を修正 #53652 @hawkingrei
    • クエリ内の特定のフィルタ条件によってプランナーモジュールがinvalid memory address or nil pointer dereferenceエラーを報告する可能性がある問題を修正しました#53582 #53580 #53594 #53603 @YangKeao
    • CREATE OR REPLACE VIEWを同時に実行するとtable doesn't existエラーが発生する可能性がある問題を修正しました #53673 @tangenta
    • STATEフィールドのINFORMATION_SCHEMA.TIDB_TRXが定義されていないため、 sizeテーブルのSTATEフィールドが空になる問題を修正しました。 #53026 @cfzjywxk
    • Distinct_countが無効になっている場合、グローバル統計のtidb_enable_async_merge_global_stats情報が正しくない可能性がある問題を修正しました #53752 @hawkingrei
    • オプティマイザヒント使用時の警告情報の誤りを修正 #53767 @hawkingrei
    • 時間型を否定すると誤った値になる問題を修正 #52262 @solotzg
    • REGEXP()空のパターン引数に対して明示的にエラーを報告しない問題を修正 #53221 @yibin87
    • JSONをdatetimeに変換すると、場合によっては精度が失われる問題を修正しました #53352 @YangKeao
    • JSON_QUOTE()が場合によっては誤った結果を返す問題を修正 #37294 @dveeden
    • ALTER TABLE ... REMOVE PARTITIONINGの実行時にデータ損失が発生する可能性がある問題を修正 #53385 @mjonss
    • auth_socket認証プラグインを使用している場合、TiDBが認証されていないユーザー接続を拒否できない場合がある問題を修正します #54031 @lcwangchao
    • JSON関連の関数が場合によってはMySQLと矛盾するエラーを返す問題を修正 #53799 @dveeden
    • INDEX_LENGTH内のパーティションテーブルのINFORMATION_SCHEMA.PARTITIONSフィールドが正しくない問題を修正します #54173 @Defined2014
    • TIDB_ROW_ID_SHARDING_INFOテーブルのINFORMATION_SCHEMA.TABLESフィールドが正しくない問題を修正 #52330 @tangenta
    • 生成された列が無効なタイムスタンプを返す問題を修正 #52509 @lcwangchao
    • 分散実行フレームワーク(DXF)を使用してインデックスを追加する際に、 max-index-lengthを設定するとTiDBがpanicを起こす問題を修正しました #53281 @zimulala
    • 場合によっては無効な列タイプDECIMAL(0,0)が作成される問題を修正 #53779 @tangenta
    • CURRENT_DATE()を列のデフォルト値として使用するとクエリ結果が正しくない問題を修正 #53746 @tangenta
    • ALTER DATABASE ... SET TIFLASH REPLICAステートメントがTiFlashレプリカをSEQUENCEテーブルに誤って追加する問題を修正しました #51990 @jiyfhust
    • REFERENCED_TABLE_SCHEMAテーブルのINFORMATION_SCHEMA.KEY_COLUMN_USAGEフィールドが正しくない問題を修正します #52350 @wd0517
    • 単一のステートメントで複数の行を挿入すると、{{B AUTO_ID_CACHE=1 AUTO_INCREMENT列が不連続になる問題を修正しました。 #52465 @tiancaiamao
    • 非推奨警告のフォーマットを修正 #52515 @dveeden
    • TRACEcopr.buildCopTasksコマンドが欠落している問題を修正 #53085 @time-and-fate
    • memory_quotaヒントがサブクエリで機能しない可能性がある問題を修正しました #53834 @qw4990
    • メタデータロックの不適切な使用により、特定の状況下でプランキャッシュを使用する際に異常なデータが書き込まれる可能性がある問題を修正しました #53634 @zimulala
    • トランザクション内のステートメントがメモリ不足で強制終了された後、TiDB が同じトランザクション内の次のステートメントの実行を継続すると、 Trying to start aggressive locking while it's already startedエラーが発生し、panicが発生する可能性がある問題を修正しました。 #53540 @MyonKeminta
  • ティクヴ

    • JSON_ARRAY_APPEND()関数を TiKV にプッシュダウンすると TiKV がpanicを起こす問題を修正しました #16930 @dbsid
    • リーダーが失敗したスナップショットファイルを時間内にクリーンアップしない問題を修正 #16976 @hbisheng
    • 高度な同時コプロセッサー要求が TiKV OOM を引き起こす可能性がある問題を修正 #16653 @overvenus
    • raftstore.periodic-full-compact-start-times設定項目をオンラインで変更すると TiKV がpanicを引き起こす可能性がある問題を修正 #17066 @SpadeA-Tang
    • make dockermake docker_testの不具合を修正 #17075 @shunki-fujita
    • 監視ダッシュボードでgRPC リクエストソースの期間メトリクスが正しく表示されない問題を修正 #17133 @King-Dylan
    • TiKVからTiDBに送信されるメッセージに対してgrpc-compression-typeを介してgRPCメッセージ圧縮方法を設定しても効果がない問題を修正しました #17176 @ekexium
    • tikv-ctl のraft regionコマンドの出力にリージョンステータス情報が含まれていない問題を修正 #17037 @glorv
    • CDCとlog-backupがcheck_leader構成を使用してadvance-ts-interval }}のタイムアウトを制限しないため、場合によってはTiKVが正常に再起動した際にresolved_tsのラグが大きくなりすぎる問題を修正しました。 #17107 @MyonKeminta
  • PD

    • ALTER PLACEMENT POLICYが配置ポリシーを変更できない問題を修正#52257 #51712 @jiyfhust
    • 書き込みホットスポットのスケジューリングによって配置ポリシーの制約が破られる可能性がある問題を修正 #7848 @lhy1024
    • 配置ルール使用時にダウンしたピアが復旧しない可能性がある問題を修正 #7808 @rleungx
    • リソースグループクエリをキャンセルした際に多数の再試行が発生する問題を修正 #8217 @nolouch
    • PDリーダーの手動転送が失敗する可能性がある問題を修正 #8225 @HuSharp
  • TiFlash

    • 空のパーティションを含むパーティションテーブルに対してクエリを実行する際に発生するクエリタイムアウトの問題を修正 #9024 @JinheLin
    • 分散storageおよびコンピューティングアーキテクチャにおいて、DDL操作で非null列を追加した後、クエリでnull値が誤って返される可能性がある問題を修正します #9084 @Lloyd-Pottiger
    • SUBSTRING_INDEX()関数が一部の特殊なケースでTiFlashをクラッシュさせる可能性がある問題を修正しました #9116 @wshwsh12
    • BRまたはTiDB Lightning経由でデータをインポートした後、FastScanモードで多数の重複行が読み込まれる可能性がある問題を修正しました #9118 @JinheLin
  • ツール

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

      • 空のEndKeyが原因でBR がトランザクション KV クラスターの復元に失敗する問題を修正 #52574 @3pointer
      • PD接続障害により、ログバックアップアドバンサーの所有者が存在するTiDBインスタンスがpanicを起こす可能性がある問題を修正 #52597 @YuJuncen
      • アドバンサー所有者の移行後にログバックアップが一時停止される可能性がある問題を修正 #53561 @RidRisR
      • 復元プロセス中に複数回のネストされた再試行によりBRがエラーを正しく識別できない問題を修正 #54053 @RidRisR
      • TiKV構成を取得するために使用される接続が閉じられない可能性がある問題を修正 #52595 @RidRisR
      • TestStoreRemovedテストケースが不安定になる問題を修正 #52791 @YuJuncen
      • ポイントインタイムリカバリ(PITR)中にTiFlashがクラッシュする問題を修正 #52628 @RidRisR
      • 増分バックアップ中の DDL ジョブのスキャンにおける非効率性の問題を修正 #54139 @3pointer
      • リージョンリーダーのシーク中に中断が発生するため、チェックポイントバックアップ中のバックアップパフォーマンスに影響が出る問題を修正しました #17168 @Leavrth
    • TiCDC

      • Grafana のKafka 送信バイトパネルの表示が不正確な問題を修正 #10777 @asddongmen
      • マルチノード環境で多数のUPDATE操作を実行する際に Changefeed を繰り返し再起動するとデータ不整合が発生する可能性がある問題を修正しました #11219 @lidezhu
    • TiDBデータ移行(DM)

      • go-mysql #11041 @D3Hunterをアップグレードして、接続ブロックの問題を修正します。
      • MariaDBデータの移行中にSETステートメントが原因でDMがpanicを起こす問題を修正 #10206 @dveeden
    • TiDB Lightning

      • TiDB Lightningがzstd圧縮ファイルのインポート時にエラーを報告する可能性がある問題を修正しました #53587 @lance6716
    • Dumpling

      • Dumplingがテーブルとビューを同時にエクスポートする際にエラーを報告する問題を修正 #53682 @tangenta
    • TiDBBinlog

      • TiDB Binlogが有効になっている場合、 ADD COLUMNの実行中に行を削除するとエラーdata and columnID count not matchが報告される可能性がある問題を修正しました #53133 @tangenta

寄稿者

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

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