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では、処理速度をさらに向上させるための実験的機能として並列HashAggが導入されました。メモリリソースが不足している場合、並列HashAggは一時的にソートされたデータをディスクに書き出すことで、過剰なメモリ使用による潜在的なOOMリスクを回避します。これにより、ノードの安定性を維持しながらクエリパフォーマンスが向上します。v8.2.0では、この機能が一般提供(GA)され、デフォルトで有効化されているため、 tidb_executor_concurrencyを使用して並列HashAggの同時実行性を安全に設定できます。 | |
| 統計読み込み効率を最大10倍向上 | SaaSやPaaSサービスなど、多数のテーブルとパーティションを持つクラスターでは、統計情報の読み込み効率を向上させることで、TiDBインスタンスの起動が遅い問題を解決し、統計情報の動的読み込みの成功率を向上させることができます。この改善により、統計情報の読み込み失敗によるパフォーマンスのロールバックが削減され、クラスターの安定性が向上します。 | |
| DB操作と可観測性 | スイッチングリソースグループの権限制御を導入する | リソース制御が広く使用されているため、リソース グループの切り替えの権限制御により、データベース ユーザーによるリソースの悪用を防ぎ、管理者の全体的なリソース使用の保護を強化し、クラスターの安定性を向上させることができます。 |
機能の詳細
パフォーマンス
次の JSON関数をTiKV #50601 @ dbsidにプッシュダウンすることをサポートします
JSON_ARRAY_APPEND()JSON_MERGE_PATCH()JSON_REPLACE()
詳細についてはドキュメント参照してください。
TiDBは並列ソートをサポート#49217 #50746 @ xzhangxian1008
v8.2.0 より前のバージョンでは、TiDB は Sort 演算子を順番にのみ実行するため、大量のデータをソートする場合のクエリ パフォーマンスに影響します。
TiDB v8.2.0以降、並列ソートをサポートし、ソートパフォーマンスを大幅に向上させます。この機能は手動での設定を必要としません。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 @ ホーキングレイ
SaaSまたはPaaSアプリケーションは多数のデータテーブルを持つ場合があり、初期統計の読み込み速度が低下するだけでなく、高負荷時の負荷同期の失敗率も高まります。TiDBの起動時間や実行計画の精度にも影響が出る可能性があります。v8.2.0では、TiDBは同時実行モデルやメモリ割り当てなど、複数の観点から統計の読み込みプロセスを最適化し、レイテンシーを削減し、スループットを向上させ、ビジネスのスケーリングに影響を与える統計の読み込み速度の低下を回避します。
適応型同時ロードがサポートされました。デフォルトでは、設定項目
stats-load-concurrencyは0に設定されており、統計情報のロードの同時実行数はハードウェア仕様に基づいて自動的に選択されます。詳細についてはドキュメント参照してください。
可用性
TiProxyは複数の負荷分散ポリシー#465 @ djshow832 @ xheboxをサポートします
TiProxyは、TiDBの公式プロキシコンポーネントであり、クライアントとTiDBサーバーの間に配置されます。TiDBの負荷分散機能と接続持続関数を提供します。v8.2.0より前のバージョンでは、TiProxyのデフォルトはv1.0.0で、TiDBサーバーのステータスベースおよび接続数ベースの負荷分散ポリシーのみをサポートします。
v8.2.0以降、TiProxyのデフォルトはv1.1.0となり、複数の負荷分散ポリシーが導入されます。ステータスベースおよび接続数ベースのポリシーに加え、TiProxyはヘルス、メモリ、CPU、ロケーションに基づいた動的な負荷分散をサポートし、TiDBクラスタの安定性を向上させます。
policy構成項目を通じて、負荷分散ポリシーの組み合わせと優先順位を設定できます。resource: リソース優先度ポリシーは、ステータス、ヘルス、メモリ、CPU、場所、接続数の優先順位に基づいて負荷分散を実行します。location: 場所の優先順位ポリシーは、ステータス、場所、正常性、メモリ、CPU、接続数の優先順位に基づいて負荷分散を実行します。connection: 最小接続数優先ポリシーは、ステータスと接続数の優先順位に基づいて負荷分散を実行します。
詳細についてはドキュメント参照してください。
SQL
TiDBはJSONスキーマ検証機能#52779 @ ドヴェーデンをサポートしています
v8.2.0より前では、JSONデータの検証には外部ツールやカスタマイズされた検証ロジックに頼る必要があり、開発と保守の複雑さが増し、開発効率が低下していました。v8.2.0以降では、
JSON_SCHEMA_VALID()関数が導入されました。5制約にJSON_SCHEMA_VALID()使用することでCHECKデータを追加した後にチェックするのではなく、不適合なデータが挿入されるのを防ぐことができます。この機能により、TiDB内でJSONデータの妥当性を直接検証できるため、データの整合性と一貫性が向上し、開発効率が向上します。詳細についてはドキュメント参照してください。
DB操作
TiUPはPDマイクロサービス#5766 @ rleungxの導入をサポート
v8.0.0以降、PDはマイクロサービスモードをサポートします。このモードでは、PDのタイムスタンプ割り当て機能とクラスタスケジューリング関数が、独立してデプロイ可能な個別のマイクロサービスに分割されます。これにより、リソース制御と分離性が向上し、異なるサービス間の影響が軽減されます。v8.2.0より前では、PDマイクロサービスはTiDB Operatorを使用してのみデプロイできます。
v8.2.0以降、PDマイクロサービスもTiUPを使用してデプロイできるようになりました。1
tsoマイクロサービスとschedulingマイクロサービスをクラスター内に個別にデプロイすることで、PDパフォーマンスのスケーラビリティを向上させ、大規模クラスターにおけるPDパフォーマンスのボトルネックを解消できます。PDがスケールアップでは解決できない重大なパフォーマンスボトルネックになっている場合は、このモードの使用をお勧めします。詳細についてはユーザードキュメント参照してください。
スイッチングリソースグループ#53440 @ 栄光の権限制御を追加
TiDBでは、
SET RESOURCE GROUPコマンドまたはRESOURCE_GROUP()ヒントを使用して他のリソースグループに切り替えることができますが、一部のデータベースユーザーによるリソースグループの不正使用につながる可能性があります。TiDB v8.2.0では、リソースグループの切り替えに関する権限制御が導入されました。5またはRESOURCE_GROUP_USERRESOURCE_GROUP_ADMIN権限を付与されたデータベースユーザーのみが他のリソースグループに切り替えることができるため、システムリソースの保護が強化されます。互換性を維持するため、以前のバージョンからv8.2.0以降のバージョンにアップグレードした場合でも、元の動作は保持されます。拡張権限制御を有効にするには、新しい変数
tidb_resource_control_strict_modeをONに設定してください。詳細についてはユーザードキュメント参照してください。
可観測性
実行プランがキャッシュされない理由を記録する#50618 @ qw4990
シナリオによっては、実行オーバーヘッドを削減し、レイテンシーを削減するために、ほとんどの実行プランをキャッシュしたい場合があります。現在、実行プランのキャッシュにはSQLに対する制限があります。一部のSQL文の実行プランはキャッシュできません。キャッシュできないSQL文とその理由を特定するのは困難です。
そのため、v8.2.0 以降では、実行プランをキャッシュできない理由を説明する新しい列
PLAN_CACHE_UNQUALIFIEDとPLAN_CACHE_UNQUALIFIED_LAST_REASONシステム テーブルSTATEMENTS_SUMMARYに追加され、パフォーマンスの調整に役立ちます。詳細についてはドキュメント参照してください。
Security
TiFlashログ感度補正を#8977 @ ジェイソン・ファンに強化
TiDB v8.0.0 ではログの感度低下機能が強化され、TiDB ログ内のユーザーデータをマーカー
‹ ›で囲むかどうかを制御できるようになりました。マーカーで囲まれたログに基づいて、ログを表示する際にマーカー情報を編集するかどうかを決定できるため、ログの感度低下の柔軟性が向上します。v8.2.0 では、 TiFlash にログの感度低下に関する同様の機能強化が導入されています。この機能を使用するには、 TiFlash設定項目security.redact_info_logmarkerに設定してください。詳細についてはドキュメント参照してください。
データ移行
複数の変更フィードにわたって TiCDC 同期ポイントを#11212 @ ホンユニャンに揃える
v8.2.0より前は、複数の変更フィード間でTiCDC同期ポイントを整合させる
startTsが困難でした。変更フィードを作成する際に、他の変更フィードの同期ポイントと整合するように、変更フィードの同期ポイントを慎重に選択する必要がありました。v8.2.0以降では、変更フィードの同期ポイントは、変更フィードのsync-point-intervalの構成の倍数として作成されます。この変更により、同じsync-point-interval構成を持つ複数の変更フィード間で同期ポイントを整合できるようになり、複数の下流クラスターの整合が簡素化および改善されます。詳細についてはドキュメント参照してください。
TiCDC Pulsar Sinkは、
pulsar+httpとpulsar+https接続プロトコル#11336 @ サンディープ・パディの使用をサポートしています。v8.2.0より前では、TiCDC Pulsar Sinkは
pulsarとpulsar+ssl接続プロトコルのみをサポートしていました。v8.2.0以降、TiCDC Pulsar Sinkはpulsar+httpとpulsar+https接続プロトコルもサポートします。この機能強化により、Pulsarへの接続の柔軟性が向上します。詳細についてはドキュメント参照してください。
互換性の変更
注記:
このセクションでは、v8.1.0から最新バージョン(v8.2.0)にアップグレードする際に知っておくべき互換性の変更点について説明します。v8.0.0以前のバージョンから最新バージョンにアップグレードする場合は、中間バージョンで導入された互換性の変更点も確認する必要があるかもしれません。
行動の変化
TiDB Lightningを使用してCSVファイルをインポートする際、並列性とインポートパフォーマンスを向上させるために大きなCSVファイルを複数の小さなCSVファイルに分割するために
strict-format = true設定する場合は、明示的にterminatorを指定する必要があります。値は\r、または\r\n\nかです。行末文字を指定しないと、CSVファイルデータの解析時に例外が発生する可能性があります#37338 @ ランス6716IMPORT INTO使用してCSVファイルをインポートする際、SPLIT_FILEパラメータを指定して大きなCSVファイルを複数の小さなCSVファイルに分割し、同時実行性とインポートパフォーマンスを向上させる場合は、行末文字LINES_TERMINATED_BYを明示的に指定する必要があります。値は\r、\n、または\r\nです。行末文字を指定しないと、CSVファイルデータの解析時に例外が発生する可能性があります#37338 @ ランス6716BR v8.2.0より前のバージョンでは、TiCDCレプリケーションタスクを含むクラスターでBRデータの復元実行することはサポートされていませんでした。v8.2.0以降、 BRはTiCDCのデータ復元に関する制限を緩和しました。復元対象データのBackupTS(バックアップ時刻)がchangefeed
CheckpointTS(現在のレプリケーションの進行状況を示すタイムスタンプ)よりも前であれば、 BRは通常通りデータ復元を続行できます。5は通常BackupTSよりもずっと早いため、ほとんどのシナリオにおいて、 BRはTiCDCレプリケーションタスクを含むクラスターのデータ復元をサポートしていると推測できます#53131 @ ユジュンセン
MySQLの互換性
- v8.2.0より前では、
PASSWORD REQUIRE CURRENT DEFAULTオプションを指定してCREATE USERステートメントを実行すると、このオプションはサポートされておらず解析できないためエラーが返されます。v8.2.0以降、TiDBはMySQLとの互換性のため、このオプションの解析と無視をサポートします#53305 @ ドヴェーデン
システム変数
| 変数名 | タイプを変更 | 説明 |
|---|---|---|
tidb_analyze_distsql_scan_concurrency | 修正済み | 最小値を1から0に変更します。 0に設定すると、TiDB はクラスターのサイズに基づいて、 ANALYZE操作を実行する際にscan操作の同時実行性を適応的に調整します。 |
tidb_analyze_skip_column_types | 修正済み | v8.2.0 以降、TiDB は潜在的な OOM リスクを回避するために、デフォルトで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()オプティマイザ ヒントに権限制御が適用されるかどうかを制御します。 |
コンフィグレーションファイルのパラメータ
| コンフィグレーションファイル | コンフィグレーションパラメータ | タイプを変更 | 説明 |
|---|---|---|---|
| ティドブ | concurrently-init-stats | 修正済み | 統計情報の初期化にかかる時間を短縮するため、デフォルト値をfalseからtrueに変更します。この設定項目は、 lite-init-stats falseに設定されている場合にのみ有効になります。 |
| ティドブ | stats-load-concurrency | 修正済み | デフォルト値を5から0に、最小値を1から0に変更します。値0は自動モードを意味し、サーバーの設定に基づいて同時実行性を自動的に調整します。 |
| ティドブ | token-limit | 修正済み | 最大値を18446744073709551615 (64ビットプラットフォーム)および4294967295 (32ビットプラットフォーム)から1048576に変更しました。これは、設定値が大きすぎる場合にTiDBサーバーのOOM(オーバーヘッドオーバー)が発生するのを防ぐためです。つまり、同時にリクエストを実行できるセッション数は最大1048576まで設定できます。 |
| TiKV | max-apply-unpersisted-log-limit | 修正済み | TiKVノードのI/Oジッターによって発生するロングテールレイテンシーを削減するため、デフォルト値を0から1024に変更します。つまり、コミット済みだが永続化されていないRaftログの最大適用数は、デフォルトで1024になります。 |
| TiKV | server.grpc-compression-type | 修正済み | この設定項目は、TiKVからTiDBに送信される応答メッセージの圧縮アルゴリズムも制御するようになりました。圧縮を有効にすると、CPUリソースの消費量が増加する可能性があります。 |
| TiFlash | security.redact_info_log | 修正済み | 新しい値オプションmarkerが導入されました。値をmarkerに設定すると、ログ内のすべてのユーザーデータが‹ ›で囲まれます。 |
システムテーブル
INFORMATION_SCHEMA.PROCESSLISTとINFORMATION_SCHEMA.CLUSTER_PROCESSLISTシステム テーブルには、現在のセッションのエイリアスを表示するためのSESSION_ALIASフィールドが追加されます#46889 @ lcwangchao
コンパイラのバージョン
- TiFlash開発エクスペリエンスの向上のため、TiDBのコンパイルとビルドに必要なLLVMの最小バージョンが13.0から17.0にアップグレードされました。TiDB開発者の方は、スムーズなビルドを実現するためにLLVMコンパイラのバージョンをアップグレードする必要があります#7193 @ ロイド・ポティガー
非推奨の機能
以下の機能は、v8.2.0 以降では非推奨となります。
- バージョン8.2.0以降、
enable-replica-selector-v2設定項目は非推奨となりました。TiKVへのRPCリクエストの送信時には、新しいバージョンのリージョンレプリカセレクターがデフォルトで使用されます。 - バージョン8.2.0以降、 BRスナップショット復元パラメータ
--concurrencyは非推奨となりました。代わりに、スナップショット復元時にTiKVノードごとに同時実行タスクの最大数を--tikv-max-restore-concurrencyに設定できます。 - v8.2.0 以降、 BRスナップショット復元パラメータ
--granularityは非推奨となり、 粗粒度リージョン散乱アルゴリズムがデフォルトで有効になります。
- バージョン8.2.0以降、
以下の機能は将来のバージョンで廃止される予定です。
- TiDB v8.0.0では、自動統計収集タスクの順序を最適化するために優先キューを有効にするかどうかを制御するシステム変数
tidb_enable_auto_analyze_priority_queueが導入されました。将来のバージョンでは、自動統計収集タスクの順序付けは優先キューのみとなり、システム変数tidb_enable_auto_analyze_priority_queueは廃止される予定です。 - TiDB v8.0.0では、並列HashAggアルゴリズムのディスクスピルをサポートするかどうかを制御するシステム変数
tidb_enable_parallel_hashagg_spillが導入されました。将来のバージョンでは、システム変数tidb_enable_parallel_hashagg_spillは非推奨になります。 - v7.5.0では、TiDBがパーティション統計を非同期にマージしてOOM問題を回避するためのシステム変数
tidb_enable_async_merge_global_stats導入されました。将来のバージョンでは、パーティション統計はデフォルトで非同期にマージされるようになり、システム変数tidb_enable_async_merge_global_statsは廃止される予定です。 - 以降のリリースでは実行計画バインディングの自動進化再設計する予定であり、関連する変数と動作が変更されます。
- TiDB Lightningパラメータ
conflict.max-record-rowsは将来のリリースで廃止される予定であり、その後削除されます。このパラメータはconflict.thresholdに置き換えられます。これは、競合レコードの最大数が、単一のインポートタスクで許容される競合レコードの最大数と一致することを意味します。
- TiDB v8.0.0では、自動統計収集タスクの順序を最適化するために優先キューを有効にするかどうかを制御するシステム変数
以下の機能は将来のバージョンで削除される予定です。
- TiDB Lightning v8.0.0以降、物理インポートモードの競合検出の古いバージョン戦略は非推奨となり、
conflict.strategy番目のパラメータを使用して論理インポートモードと物理インポートモードの両方の競合検出戦略を制御できるようになりました。旧バージョンの競合検出用のduplicate-resolutionのパラメータは、将来のリリースで削除される予定です。
- TiDB Lightning v8.0.0以降、物理インポートモードの競合検出の古いバージョン戦略は非推奨となり、
改善点
ティドブ
- 論理DDL文(一般DDL)の並列実行をサポートします。v8.1.0と比較して、10セッションを使用して異なるDDL文を同時に送信する場合、パフォーマンスは3~6倍向上します#53246 @ D3ハンター
((a = 1 and b = 2 and c > 3) or (a = 4 and b = 5 and c > 6)) and d > 3ような式を使用して複数列のインデックスを一致させるロジックを改善し、より正確なRange#41598 @ ガザルファミリーUSAを生成します。- 大容量データを持つテーブルに対して単純なクエリを実行する際に、データ分布情報を取得するパフォーマンスを最適化します#53850 @ あなた06
- 集約された結果セットはIndexJoinの内部テーブルとして使用することができ、より複雑なクエリをIndexJoinに一致させることが可能となり、インデックス#37068 @ エルサ0520を通じてクエリの効率が向上します。
- TiFlash配置ルールを一括削除することで、パーティションテーブル#54068 @ ロイド・ポティガーで
TRUNCATEまたはDROP操作を実行した後のデータGCの処理速度が向上します。 - Azure Identity Libraries と Microsoft Authentication Library のバージョンをアップグレードしてセキュリティを強化する#53990 @ ホーキングレイ
- 最大値を
token-limitから1048576に設定して、設定値が大きすぎる場合に TiDB サーバーの OOM が発生しないようにします#53312 @ djshow832 - MPP 実行プランの列プルーニングを改善して、 TiFlash MPP 実行パフォーマンスを向上します#52133 @ yibin87
- 大量のデータ(1024行以上)を持つテーブルを検索する際の
IndexLookUp演算子のパフォーマンスオーバーヘッドを最適化します#53871 @ crazycs520 - MPP ロード バランシング#52313 @ xzhangxian1008中にリージョンのないストアを削除する
TiKV
- 圧縮ジョブサイズ(ファイル)メトリックを追加して、1回の圧縮ジョブに含まれるSSTファイルの数を表示します#16837 @ 張金鵬87
- 早期申請機能をデフォルトで有効にします。この機能を有効にすると、 Raftリーダーは、クォーラムピアがログを永続化した後、リーダー自身がログを永続化するのを待たずにログを適用できるため、一部のTiKVノードにおけるジッターが書き込みリクエストのレイテンシー#16717 @ 栄光に与える影響を軽減できます。
- Raftのドロップされたメッセージの観測性を改善し、書き込み速度が遅い原因を特定します#17093 @ コナー1996
- クラスタのレイテンシー問題をトラブルシューティングするために、取り込みファイルのレイテンシーの観測性を向上させる#17078 @ LykxSassinator
- 重要なRaft の読み取りと書き込みのレイテンシーを安定させるために、別のスレッドを使用してリージョンのレプリカをクリーンアップします#16001 @ ヒビシェン
- 適用されるスナップショットの数の観測性を向上させる#17078 @ ヒビシェン
PD
TiFlash
ツール
バックアップと復元 (BR)
- バックアップ機能を最適化し、ノードの再起動、クラスターのスケールアウト、および多数のテーブル#52534 @ 3ポイントシュートをバックアップする際のネットワーク ジッター中のバックアップ パフォーマンスと安定性を改善します。
- データ復元時にTiCDCの変更フィードをきめ細かくチェックします。変更フィード
CheckpointTSデータバックアップ時刻より遅い場合、復元操作は影響を受けません。これにより、不要な待機時間が削減され、ユーザーエクスペリエンスが向上します#53131 @ ユジュンセン BACKUPステートメントとRESTOREステートメントに、CHECKSUM_CONCURRENCY#53040 @ リドリスRなどのよく使用されるパラメータをいくつか追加します。br log restoreサブコマンドを除き、他のbr logサブコマンドはすべて、メモリ消費量を削減するために TiDBdomainデータ構造のロードをスキップすることをサポートしています#52088 @ リーヴルス- ログバックアップ中に生成される一時ファイルの暗号化をサポート#15083 @ ユジュンセン
- Grafanaダッシュボードに
tikv_log_backup_pending_initial_scan監視メトリックを追加する#16656 @ 3ポイントシュート - PITRログの出力形式を最適化し、ログに
RestoreTSフィールドを追加します#53645 @ ドヴェーデン
TiCDC
- ダウンストリームがメッセージキュー(MQ)またはクラウドstorageの場合、生のイベントを直接出力することをサポート#11211 @ チャールズ・チャン96
バグ修正
ティドブ
- SQL文に外部結合が含まれており、結合条件に
false IN (column_name)式が含まれている場合、クエリ結果にデータ#49476 @ ガザルファミリーUSAが欠落する問題を修正しました。 - TiDB がテーブル#53403 @ ハイ・ラスティンの統計を
PREDICATE COLUMNS収集するときに、システム テーブルの列の統計が収集される問題を修正しました。 tidb_persist_analyze_optionsシステム変数がOFF#53478 @ ハイ・ラスティンに設定されている場合にtidb_enable_column_trackingシステム変数が有効にならない問題を修正しました(*PointGetPlan).StatsInfo()#49803 #43339 @ qw4990の実行中に発生する可能性のあるデータ競合の問題を修正しました- データ変更操作#53951 @ qw4990を含むトランザクションで仮想列を持つテーブルをクエリすると、TiDB が誤ったクエリ結果を返す可能性がある問題を修正しました
- 自動統計収集中にシステム変数
tidb_enable_async_merge_global_statsとtidb_analyze_partition_concurrency有効にならない問題を修正#53972 @ ハイ・ラスティン TABLESAMPLE#54015 @ 接線をクエリしたときに TiDB がplan not supportedエラーを返す可能性がある問題を修正しましたSELECT DISTINCT CAST(col AS DECIMAL), CAST(col AS SIGNED) FROM ...クエリを実行すると誤った結果が返される可能性がある問題を修正#53726 @ ホーキングレイ- クライアント側でデータ読み取りタイムアウト後にクエリを終了できない問題を修正#44009 @ wshwsh12
- 述語#45783 @ ホーキングレイの
Longlong型のオーバーフローの問題を修正 - 関連するサブクエリがある場合にウィンドウ関数がpanic可能性がある問題を修正#42734 @ ハイ・ラスティン
- TopN演算子が誤って#37986 @ qw4990にプッシュダウンされる可能性がある問題を修正しました
- クラスター化インデックスを述語として使用すると
SELECT INTO OUTFILE機能しない問題を修正#42093 @ qw4990 - 情報スキーマキャッシュミス#53428 @ crazycs520により、古い読み取りのクエリレイテンシーが増加する問題を修正しました。
YEAR型の列を範囲外の符号なし整数と比較すると誤った結果が発生する問題を修正#50235 @ qw4990- TiDB #37548 @ ホーキングレイを再起動した後、主キー列統計のヒストグラムと TopN がロードされない問題を修正しました
- 大規模並列処理 (MPP) #51362 @ アイリンキッドで
finalAggMode とnon-finalAggMode が共存できない問題を修正しました - 常に
true#46962 @ エルサ0520となる述語を持つSHOW ERRORSステートメントを実行すると TiDB がパニックを起こす問題を修正しました。 - 再帰CTE #49721 @ ホーキングレイでビューの使用が機能しない問題を修正
- 起動時に統計情報をロードするときに、TiDB が GC によるエラーを報告する可能性がある問題を修正#53592 @ あなた06
?の引数を含むCONVの式を持つPREPAREEXECUTEステートメントを複数回実行すると、誤ったクエリ結果が返される可能性がある問題を修正しました#53505 @ qw4990- BIGINT 以外の符号なし整数が文字列/小数点#41736 @ リトルフォールと比較されたときに誤った結果を生成する可能性がある問題を修正しました
- 外部キー#53652 @ ホーキングレイを持つテーブルを作成するときに、TiDBが対応する統計メタデータ(
stats_meta)を作成しない問題を修正しました。 - クエリ内の特定のフィルタ条件により、プランナーモジュールが
invalid memory address or nil pointer dereferenceエラー#53582 #53580 #53594 #53603 @ ヤンケオを報告する可能性がある問題を修正しました CREATE OR REPLACE VIEW同時に実行するとtable doesn't existエラー#53673 @ 接線が発生する可能性がある問題を修正STATEフィールドのうちsizeが定義されていないため、INFORMATION_SCHEMA.TIDB_TRXテーブルのSTATEフィールドが空になる問題を修正しました#53026 @ cfzjywxktidb_enable_async_merge_global_stats無効になっている場合、グローバル統計のDistinct_count情報が正しくない可能性がある問題を修正しました#53752 @ ホーキングレイ- オプティマイザーヒント#53767 @ ホーキングレイ使用時に誤った警告情報が表示される問題を修正しました
- 時間型を否定すると誤った値#52262 @ ソロツグが返される問題を修正しました
REGEXP()空のパターン引数#53221 @ yibin87に対して明示的にエラーを報告しない問題を修正しました- JSON を datetime に変換すると精度が失われる場合がある問題を修正#53352 @ ヤンケオ
JSON_QUOTE()場合によっては誤った結果を返す問題を修正#37294 @ ドヴェーデンALTER TABLE ... REMOVE PARTITIONING実行すると#53385 @ ミョンスでデータが失われる可能性がある問題を修正auth_socket認証プラグイン#54031 @ lcwangchaoを使用しているときに、TiDB が認証されていないユーザーの接続を拒否できないことがある問題を修正しました。- JSON関連の関数がMySQLと矛盾するエラーを返す場合がある問題を修正#53799 @ ドヴェーデン
INFORMATION_SCHEMA.PARTITIONSのパーティションテーブルのINDEX_LENGTHフィールドが正しくない#54173 @ 定義2014という問題を修正しましたINFORMATION_SCHEMA.TABLESテーブルのTIDB_ROW_ID_SHARDING_INFOフィールドが正しくない#52330 @ 接線という問題を修正しました- 生成された列が無効なタイムスタンプ#52509 @ lcwangchaoを返す問題を修正しました
- 分散実行フレームワーク (DXF) #53281 @ ジムララを使用してインデックスを追加するときに設定
max-index-lengthで TiDB がpanicになる問題を修正しました - 場合によっては無効な列タイプ
DECIMAL(0,0)が作成される可能性がある問題を修正#53779 @ 接線 - 列のデフォルト値として
CURRENT_DATE()使用すると、クエリ結果#53746 @ 接線が正しくなくなる問題を修正しました ALTER DATABASE ... SET TIFLASH REPLICA文が誤ってTiFlashレプリカをSEQUENCEテーブル#51990 @ ジフハストに追加する問題を修正しました。INFORMATION_SCHEMA.KEY_COLUMN_USAGEテーブルのREFERENCED_TABLE_SCHEMAフィールドが正しくない#52350 @ wd0517という問題を修正しました- 1つのステートメントに複数の行を挿入すると、
AUTO_ID_CACHE=1#52465 @ 天菜麻緒のときにAUTO_INCREMENT列目が不連続になる問題を修正しました。 - 非推奨警告#52515 @ ドヴェーデンの形式を修正
copr.buildCopTasks#53085 @ 時間と運命でTRACEコマンドが欠落している問題を修正しましたmemory_quotaヒントがサブクエリ#53834 @ qw4990で機能しない可能性がある問題を修正しました- 特定の状況下でプランキャッシュを使用する際に、メタデータロックの不適切な使用によって異常なデータが書き込まれる可能性がある問題を修正しました#53634 @ ジムララ
- トランザクション内のステートメントが OOM によって強制終了された後、TiDB が同じトランザクション内で次のステートメントの実行を継続すると、エラー
Trying to start aggressive locking while it's already startedが発生し、panic#53540 @ ミョンケミンタが発生する可能性がある問題を修正しました。
- SQL文に外部結合が含まれており、結合条件に
TiKV
JSON_ARRAY_APPEND()関数を TiKV にプッシュダウンすると TiKV が#16930 @ dbsidでpanicになる問題を修正しました- リーダーが失敗したスナップショットファイルを時間#16976 @ ヒビシェンでクリーンアップしない問題を修正しました
- 同時実行性の高いコプロセッサー要求により TiKV OOM #16653 @ 金星の上が発生する可能性がある問題を修正しました
raftstore.periodic-full-compact-start-times構成項目をオンラインで変更すると、TiKVがpanicを起こす可能性がある問題を修正しました#17066 @ スペードA-タンmake dockerとmake docker_testの失敗を修正#17075 @ 藤田俊希- gRPC リクエスト ソースの継続時間メトリックが監視ダッシュボード#17133 @ キング・ディランに誤って表示される問題を修正しました
- gRPC メッセージ圧縮方式を
grpc-compression-typeで設定しても、TiKV から TiDB #17176 @ エキシウムに送信されるメッセージには反映されない問題を修正しました。 - tikv-ctlの
raft regionコマンドの出力にリージョンステータス情報#17037 @ 栄光が含まれていない問題を修正しました - CDC とログバックアップが
advance-ts-interval構成を使用してcheck_leaderのタイムアウトを制限しないため、TiKV が正常に再起動したときにresolved_ts遅延が大きくなる場合がある問題を修正しました#17107 @ ミョンケミンタ
PD
TiFlash
- 空のパーティション#9024 @ ジンヘリンを含むパーティション テーブルでクエリを実行するときに発生するクエリ タイムアウトの問題を修正しました。
- 分散storageおよびコンピューティングアーキテクチャで、DDL操作#9084 @ ロイド・ポティガーで非NULL列を追加した後にクエリでNULL値が誤って返される可能性がある問題を修正しました。
SUBSTRING_INDEX()関数が一部のコーナーケースでTiFlash のクラッシュを引き起こす可能性がある問題を修正#9116 @ wshwsh12- BRまたはTiDB Lightning #9118 @ ジンヘリン経由でデータをインポートした後、FastScanモードで多数の重複行が読み取られる可能性がある問題を修正しました。
ツール
バックアップと復元 (BR)
- 空の
EndKey#52574 @ 3ポイントシュートが原因でBR がトランザクション KV クラスターの復元に失敗する問題を修正しました - PD接続障害により、ログバックアップアドバンサ所有者が配置されているTiDBインスタンスがpanic#52597 @ ユジュンセンになる可能性がある問題を修正しました。
- アドバンサーオーナーの移行#53561 @ リドリスR後にログバックアップが一時停止される可能性がある問題を修正しました
- 復元プロセス中に複数のネストされた再試行によりBR がエラーを正しく識別できない問題を修正#54053 @ リドリスR
- TiKV 構成を取得するために使用される接続が閉じられない可能性がある問題を修正#52595 @ リドリスR
TestStoreRemovedテストケースが不安定になる問題を修正#52791 @ ユジュンセン- ポイントインタイムリカバリ(PITR) #52628 @ リドリスR中にTiFlashがクラッシュする問題を修正
- 増分バックアップ#54139 @ 3ポイントシュート中の DDL ジョブのスキャンの非効率性の問題を修正
- リージョンリーダー#17168 @ リーヴルスの探索の中断により、チェックポイントバックアップ中のバックアップパフォーマンスが影響を受ける問題を修正しました。
- 空の
TiCDC
TiDB データ移行 (DM)
TiDB Lightning
Dumpling
TiDBBinlog
寄稿者
TiDB コミュニティの以下の貢献者に感謝いたします。