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 @ 翻訳者
v8.2.0 より前のバージョンでは、TiDB は Sort 演算子を順番にのみ実行するため、大量のデータをソートする場合のクエリ パフォーマンスに影響します。
v8.2.0 以降、TiDB は並列ソートをサポートしており、ソートのパフォーマンスが大幅に向上しています。この機能は手動で構成する必要はありません。TiDB は、
tidb_executor_concurrency
システム変数の値に基づいて、並列ソートを使用するかどうかを自動的に決定します。詳細についてはドキュメント参照してください。
TiDB の並列 HashAgg アルゴリズムは、ディスク スピル (GA) #35637 @ 翻訳者をサポートします。
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 @ 翻訳者 @ 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
: 最小接続数優先ポリシーは、ステータスと接続数の優先順位に基づいて負荷分散を実行します。
詳細についてはドキュメント参照してください。
構文
TiDBはJSONスキーマ検証機能#52779 @ ドヴェーデンをサポートしています
v8.2.0 より前では、JSON データの検証には外部ツールやカスタマイズされた検証ロジックに頼る必要があり、開発と保守の複雑さが増し、開発効率が低下していました。v8.2.0 からは、
JSON_SCHEMA_VALID()
機能が導入されましたCHECK
制約でJSON_SCHEMA_VALID()
使用すると、データを追加した後にチェックするのではなく、不適合なデータが挿入されるのを防ぐことができます。この機能を使用すると、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_ADMIN
RESOURCE_GROUP_USER
動的権限が付与されたデータベース ユーザーのみが他のリソース グループに切り替えることができるため、システム リソースの保護が強化されます。互換性を維持するために、以前のバージョンから 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_log
をmarker
に設定します。詳細についてはドキュメント参照してください。
データ移行
複数の変更フィードにわたって 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 ファイルをインポートする場合、同時実行性とインポート パフォーマンスを向上させるために
strict-format = true
#37338して大きな CSV ファイルを複数の小さな CSV ファイルに分割する場合は、terminator
明示的に指定する必要があります。値は\r
、\n
、または\r\n
です。行末文字を指定しないと、CSV ファイル データを解析するときに例外が発生する可能性があります。11 @ ランス6716IMPORT INTO
使用して CSV ファイルをインポートする場合、同時実行性とインポート パフォーマンスを向上させるためにSPLIT_FILE
パラメータを指定して大きな CSV ファイルを複数の小さな CSV ファイルに分割する場合は、行末文字LINES_TERMINATED_BY
を明示的に指定する必要があります。値#37338\r
、\n
、または\r\n
です。行末文字を指定しないと、CSV ファイル データを解析するときに例外が発生する可能性があります。13 @ ランス6716BR v8.2.0 より前では、TiCDC レプリケーション タスクを含むクラスターでBRデータの復元実行することはサポートされていません。v8.2.0 以降、 BR はTiCDC のデータ復元に関する制限を緩和します。復元するデータの BackupTS (バックアップ時間) が changefeed
CheckpointTS
(現在のレプリケーションの進行状況を示すタイムスタンプ) よりも前であれば、 BR はデータ復元を正常に続行できます。5BackupTS
通常#53131もっと早いため、ほとんどのシナリオでBR はTiCDC レプリケーション タスクを含むクラスターのデータの復元をサポートしていると想定できます。7 @ ユジュンセン
MySQL 互換性
- v8.2.0 より前では、
PASSWORD REQUIRE CURRENT DEFAULT
オプションを指定してCREATE USER
ステートメントを実行すると、このオプションはサポートされておらず解析#53305ないため、エラーが返されます。v8.2.0 以降、TiDB は MySQL との互換性のためにこのオプションの解析と無視をサポートしています。5 @ ドヴェーデン
システム変数
変数名 | タイプを変更 | 説明 |
---|---|---|
tidb_analyze_distsql_scan_concurrency | 修正済み | 最小値を1 から0 に変更します。 0 に設定すると、TiDB はクラスターのサイズに基づいてANALYZE 操作を実行するときにscan 操作の同時実行性を適応的に調整します。 |
tidb_analyze_skip_column_types | 修正済み | v8.2.0 以降、TiDB は潜在的な OOM リスクを回避するために、デフォルトではMEDIUMTEXT とLONGTEXT 型の列を収集しません。 |
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() オプティマイザ ヒントに権限制御が適用されるかどうかを制御します。 |
コンフィグレーションファイルのパラメータ
コンフィグレーションファイル | コンフィグレーションパラメータ | タイプを変更 | 説明 |
---|---|---|---|
ティビ | stats-load-concurrency | 修正済み | デフォルト値を5 から0 に、最小値を1 から0 に変更します。値0 は自動モードを意味し、サーバーの構成に基づいて同時実行性を自動的に調整します。 |
ティビ | token-limit | 修正済み | 最大値を18446744073709551615 (64 ビット プラットフォーム) および4294967295 (32 ビット プラットフォーム) から1048576 に変更し、設定値が大きすぎる場合に TiDB サーバーの OOM が発生するのを回避します。つまり、同時にリクエストを実行できるセッションの数は最大1048576 に設定できます。 |
ティクヴ | max-apply-unpersisted-log-limit | 修正済み | デフォルト値を0 から1024 に変更して、TiKV ノードの I/O ジッターによって発生するロングテールレイテンシーを削減します。つまり、コミットされているが永続化されていないRaftログの適用可能な最大数は、デフォルトで1024 なります。 |
ティクヴ | 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 以降では非推奨となります。
- v8.2.0 以降、
enable-replica-selector-v2
構成項目は非推奨になりました。TiKV に RPC 要求を送信するときは、新しいバージョンのリージョンレプリカ セレクターがデフォルトで使用されます。 - v8.2.0 以降、 BRスナップショット復元パラメータ
--concurrency
は非推奨になりました。代わりに、--tikv-max-restore-concurrency
使用して、スナップショット復元中に TiKV ノードごとに同時実行タスクの最大数を設定できます。 - v8.2.0 以降では、 BRスナップショット復元パラメータ
--granularity
非推奨となり、 粗粒度リージョン分散アルゴリズムデフォルトで有効になります。
- v8.2.0 以降、
以下の機能は将来のバージョンで廃止される予定です。
- v8.0.0 では、TiDB は、自動統計収集タスクの順序を最適化するために優先キューを有効にするかどうかを制御する
tidb_enable_auto_analyze_priority_queue
システム変数を導入しました。将来のバージョンでは、優先キューが自動統計収集タスクを順序付ける唯一の方法となり、tidb_enable_auto_analyze_priority_queue
システム変数は廃止される予定です。 - v8.0.0 では、TiDB は、同時 HashAgg アルゴリズムのディスク スピルをサポートするかどうかを制御する
tidb_enable_parallel_hashagg_spill
システム変数を導入します。将来のバージョンでは、tidb_enable_parallel_hashagg_spill
システム変数は非推奨になります。 - v7.5.0 では、TiDB は
tidb_enable_async_merge_global_stats
システム変数を導入し、TiDB がパーティション統計を非同期にマージして OOM の問題を回避できるようにします。将来のバージョンでは、パーティション統計はデフォルトで非同期にマージされ、tidb_enable_async_merge_global_stats
システム変数は非推奨になります。 - 以降のリリースでは実行計画バインディングの自動進化再設計する予定であり、関連する変数と動作が変更されます。
- TiDB Lightningパラメータ
conflict.max-record-rows
は、将来のリリースで廃止される予定であり、その後削除されます。このパラメータはconflict.threshold
に置き換えられます。これは、競合するレコードの最大数が、単一のインポート タスクで許容できる競合するレコードの最大数と一致することを意味します。
- v8.0.0 では、TiDB は、自動統計収集タスクの順序を最適化するために優先キューを有効にするかどうかを制御する
以下の機能は将来のバージョンで削除される予定です:
- v8.0.0 以降、 TiDB Lightning物理インポート モードの競合検出の旧バージョン戦略が廃止され、
conflict.strategy
パラメータを使用して論理インポート モードと物理インポート モードの両方の競合検出戦略を制御できるようになりました。競合検出の旧バージョンのduplicate-resolution
パラメータは、将来のリリースで削除される予定です。
- v8.0.0 以降、 TiDB Lightning物理インポート モードの競合検出の旧バージョン戦略が廃止され、
改善点
ティビ
- 論理 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 @ ガザルファミリーを生成します。- 大量のデータを持つテーブルに対して単純なクエリを実行するときに、データ分布情報を取得するパフォーマンスを最適化します#53850 @ あなた06
- 集約された結果セットはIndexJoinの内部テーブルとして使用でき、より複雑なクエリをIndexJoinに一致させることが可能になり、インデックス#37068 @ エルサ0520を通じてクエリの効率が向上します。
- TiFlash配置ルールを一括削除することで、パーティションテーブル#54068 @ ロイド・ポティガーで
TRUNCATE
またはDROP
操作を実行した後のデータGCの処理速度が向上します。 - Azure Identity Libraries と Microsoft Authentication Library のバージョンをアップグレードしてセキュリティを強化する#53990 @ ホーキングレイ
- 最大値を
token-limit
から1048576
設定して、設定値が大きすぎる場合にTiDBサーバーのOOMが発生しないようにします#53312 @ 翻訳者 - MPP 実行プランの列プルーニングを改善して、 TiFlash MPP 実行パフォーマンスを向上#52133 @ いびん87
- 大量のデータ(>1024行)を含むテーブルを検索するときの
IndexLookUp
演算子のパフォーマンスオーバーヘッドを最適化します#53871 @ クレイジーcs520 - MPP ロード バランシング中にリージョンのないストアを削除する#52313 @ 翻訳者
ティクヴ
- 圧縮ジョブサイズ(ファイル)メトリックを追加して、単一の圧縮ジョブに含まれる SST ファイルの数を表示します#16837 @ 張金鵬87
- 早期申請機能をデフォルトで有効にします。この機能を有効にすると、 Raftリーダーは、リーダー自身がログを永続化するのを待たずに、クォーラム ピアがログを永続化した後にログを適用できるため、いくつかの TiKV ノードのジッターが書き込み要求のレイテンシー#16717 @ 栄光に与える影響が軽減されます。
- Raft のドロップされたメッセージの観測可能性を改善し、書き込み速度が遅い原因を特定します#17093 @ コナー1996
- クラスターのレイテンシーの問題をトラブルシューティングするために、取り込みファイルのレイテンシーの観測性を向上させる#17078 @ リクササシネーター
- 重要なRaft の読み取りと書き込みの安定したレイテンシーを確保するために、別のスレッドを使用してリージョンのレプリカをクリーンアップします#16001 @ ビシェン
- 適用されるスナップショットの数の観測性を向上させる#17078 @ ビシェン
PD
TiFlash
ツール
バックアップと復元 (BR)
- バックアップ機能を最適化し、ノードの再起動、クラスターのスケールアウト、および多数のテーブルをバックアップする際のネットワークジッター中のバックアップパフォーマンスと安定性を向上させます#52534 @ 3ポインター
- データ復元中に TiCDC の変更フィードのきめ細かなチェックを実装します。変更フィード
CheckpointTS
データ バックアップ時間より遅い場合、復元操作は影響を受けないため、不要な待機時間が短縮され、ユーザー エクスペリエンスが向上します#53131 @ ユジュンセン BACKUP
文とRESTORE
文に、よく使われるパラメータをいくつか追加します(例:CHECKSUM_CONCURRENCY
#53040 @ リドリスbr log restore
サブコマンドを除き、他のbr log
サブコマンドはすべて、メモリ消費量を削減するために TiDBdomain
データ構造のロードをスキップすることをサポートしています#52088 @ リーヴルス- ログバックアップ中に生成される一時ファイルの暗号化をサポート#15083 @ ユジュンセン
- Grafanaダッシュボードに
tikv_log_backup_pending_initial_scan
監視メトリックを追加する#16656 @ 3ポインター - PITRログの出力形式を最適化し、ログに
RestoreTS
フィールドを追加します#53645 @ ドヴェーデン
ティCDC
- ダウンストリームがメッセージキュー(MQ)またはクラウドstorageの場合、生のイベントを直接出力することをサポートします#11211 @ チャールズ・チュン96
バグ修正
ティビ
- SQL 文に外部結合が含まれ、結合条件に
false IN (column_name)
式が含まれている場合、クエリ結果に一部のデータが欠落する問題を修正しました#49476 @ ガザルファミリー - 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 @ うわー
- 述語#45783 @ ホーキングレイの
Longlong
型のオーバーフローの問題を修正 - 関連するサブクエリがある場合にウィンドウ関数がpanicになる可能性がある問題を修正#42734 @ ハイラスティン
- TopN演算子が誤ってプッシュダウンされる可能性がある問題を修正#37986 @ qw4990
- クラスター化インデックスを述語として使用すると
SELECT INTO OUTFILE
機能しない問題を修正#42093 @ qw4990 - 情報スキーマキャッシュミス#53428 @ クレイジーcs520により、古い読み取りのクエリレイテンシーが増加する問題を修正しました。
YEAR
型の列を範囲外の符号なし整数と比較すると誤った結果が発生する問題を修正#50235 @ qw4990- TiDB #37548 @ ホーキングレイを再起動した後、主キー列統計のヒストグラムと TopN がロードされない問題を修正しました。
- 超並列処理 (MPP) #51362 @ アイリンキッドで
final
AggMode とnon-final
AggMode が共存できない問題を修正 - 常に
true
#46962 @ エルサ0520の述語を持つSHOW ERRORS
ステートメントを実行すると TiDB がパニックになる問題を修正しました。 - 再帰 CTE #49721 @ ホーキングレイでビューの使用が機能しない問題を修正
- 起動時に統計をロードするときに TiDB が GC によるエラーを報告する可能性がある問題を修正#53592 @ あなた06
?
引数を含むCONV
の式を持つPREPARE
EXECUTE
を複数回実行すると、誤ったクエリ結果が返される可能性がある問題を修正しました#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 @ 翻訳tidb_enable_async_merge_global_stats
が無効になっている場合に、グローバル統計のDistinct_count
情報が正しくなくなる可能性がある問題を修正#53752 @ ホーキングレイ- オプティマイザーヒント#53767 @ ホーキングレイ使用時に誤った警告情報が表示される問題を修正しました
- 時間型を否定すると誤った値#52262 @ ソロッツになる問題を修正しました
REGEXP()
空のパターン引数#53221 @ いびん87に対してエラーを明示的に報告しない問題を修正- 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 @ 0517 ...という問題を修正- 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 文に外部結合が含まれ、結合条件に
ティクヴ
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 @ うわー- BRまたはTiDB Lightning #9118 @ ジンヘリン経由でデータをインポートした後、FastScan モードで多数の重複行が読み取られる可能性がある問題を修正しました。
ツール
バックアップと復元 (BR)
- 空の
EndKey
#52574 @ 3ポインターが原因でBR がトランザクション KV クラスターを復元できない問題を修正しました。 - PD 接続障害により、ログ バックアップ アドバンサ所有者が配置されている TiDB インスタンスがpanicになる可能性がある問題を修正しました#52597 @ ユジュンセン
- アドバンサー所有者の移行#53561 @ リドリス後にログバックアップが一時停止される可能性がある問題を修正
- 復元プロセス中に複数のネストされた再試行が原因でBR がエラーを正しく識別できない問題を修正#54053 @ リドリス
- TiKV 構成を取得するために使用される接続が閉じられない可能性がある問題を修正#52595 @ リドリス
TestStoreRemoved
テストケースが不安定になる問題を修正#52791 @ ユジュンセン- ポイントインタイムリカバリ(PITR)中にTiFlashがクラッシュする問題を修正#52628 @ リドリス
- 増分バックアップ#54139 @ 3ポインター中の DDL ジョブのスキャンにおける非効率性の問題を修正
- リージョンリーダー#17168 @ リーヴルスシークの中断により、チェックポイントバックアップ中のバックアップパフォーマンスが影響を受ける問題を修正しました。
- 空の
ティCDC
TiDB データ移行 (DM)
TiDB Lightning
Dumpling
TiDBBinlog
寄稿者
TiDB コミュニティの以下の貢献者に感謝いたします。