TiDB 8.2.0 リリースノート
発売日:2024年7月11日
TiDB バージョン: 8.2.0
クイックアクセス: クイックスタート
バージョン8.2.0では、以下の主要な機能と改善点が導入されています。
機能の詳細
パフォーマンス
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-concurrencyは0に設定されており、統計情報の読み込みの同時実行数はハードウェア仕様に基づいて自動的に選択されます。詳細については、 ドキュメントを参照してください。
可用性
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_modeONに設定します。詳細については、 ユーザー向けドキュメントを参照してください。
可観測性
実行プランがキャッシュされない理由を記録する #50618 @qw4990
場合によっては、実行オーバーヘッドを削減し、レイテンシーを低減するために、ほとんどの実行プランをキャッシュしたい場合があります。現在、SQL の実行プラン キャッシュにはいくつかの制限があります。一部の SQL ステートメントの実行プランはキャッシュできません。キャッシュできない SQL ステートメントと、それに対応する理由を特定するのは困難です。
そのため、v8.2.0以降、実行プランをキャッシュできない理由を説明する新しい列
PLAN_CACHE_UNQUALIFIEDとPLAN_CACHE_UNQUALIFIED_LAST_REASONがシステムテーブルSTATEMENTS_SUMMARYに追加され、パフォーマンスの調整に役立ちます。詳細については、 ドキュメントを参照してください。
Security
TiFlashログの感度低下を強化 #8977 @JaySon-Huang
TiDB v8.0.0 では、ログの匿名化機能が強化され、TiDB ログ内のユーザー データがマーカー
‹ ›で囲まれるかどうかを制御できるようになりました。マークされたログに基づいて、ログを表示する際にマークされた情報を削除するかどうかを決定できるため、ログの匿名化の柔軟性が向上します。v8.2.0 では、 TiFlash でログの匿名化に関する同様の機能強化が導入されています。この機能を使用するには、 TiFlash構成項目security.redact_info_logをmarkerに設定します。詳細については、 ドキュメントを参照してください。
データ移行
複数の変更フィード間で TiCDC 同期ポイントを調整する #11212 @hongyunyan
バージョン 8.2.0 より前は、複数のチェンジフィード間で TiCDC 同期ポイントを整合させるのは困難でした。チェンジフィードの作成時に、他のチェンジフィードの同期ポイントと整合するように、チェンジフィードの
startTssync-point-interval構成の倍数として作成されます。この変更により、同じsync-point-interval構成を持つ複数のチェンジフィード間で同期ポイントを整合させることが可能になり、複数のダウンストリーム クラスタの整合が簡素化され、機能が向上します。詳細については、 ドキュメントを参照してください。
TiCDC Pulsar シンクは
pulsar+httpおよびpulsar+https接続プロトコルの使用をサポートしています #11336 @SandeepPadhiバージョン8.2.0より前は、TiCDC Pulsar Sinkは
pulsarとpulsar+ssl接続プロトコルのみをサポートしていました。バージョン8.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を設定して大きな CSV ファイルを複数の小さな CSV ファイルに分割し、同時実行性とインポート パフォーマンスを向上させる場合は、terminator明示的に指定する必要があります。指定できる値は、\r、\n、または\r\nです。行末文字を指定しないと、CSV ファイル データの解析時に例外が発生する可能性があります。 #37338 @lance6716IMPORT INTOを使用して CSV ファイルをインポートする場合、大きな CSV ファイルを複数の小さな CSV ファイルに分割して同時実行性とインポート パフォーマンスを向上させるためにSPLIT_FILEパラメーターを指定すると、行末文字LINES_TERMINATED_BYを明示的に指定する必要があります。指定できる値は\r、\n、または\r\nです。行末文字を指定しないと、CSV ファイル データの解析時に例外が発生する可能性があります。 #37338 @lance6716BR 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
システム変数
コンフィグレーションファイルパラメータ
システムテーブル
INFORMATION_SCHEMA.PROCESSLISTおよびINFORMATION_SCHEMA.CLUSTER_PROCESSLISTシステム テーブルにSESSION_ALIASフィールドを追加して、現在のセッションのエイリアスを表示します。 #46889 @lcwangchao
コンパイラバージョン
- 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.2.0以降、
以下の機能は、将来のバージョンで廃止される予定です。
- バージョン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は自動統計収集タスクの順序を最適化するために優先度キューを有効にするかどうかを制御するシステム変数
今後のバージョンでは、以下の機能が削除される予定です。
- バージョン8.0.0以降、 TiDB Lightningは旧バージョンの競合検出戦略を非推奨とし、
conflict.strategyパラメータを使用して論理インポートモードと物理インポートモードの両方の競合検出戦略を制御できるようにします。旧バージョンの競合検出のduplicate-resolutionパラメータは、今後のリリースで削除されます。
- バージョン8.0.0以降、 TiDB Lightningは旧バージョンの競合検出戦略を非推奨とし、
改善点
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
TiFlash
ツール
バックアップと復元 (BR)
- バックアップ機能を最適化し、ノードの再起動、クラスターのスケールアウト、および多数のテーブルをバックアップする際のネットワーク ジッター時のバックアップ パフォーマンスと安定性を向上させます #52534 @3pointer
- データ復元時にTiCDCチェンジフィードのきめ細かいチェックを実装します。チェンジフィードの
CheckpointTSデータバックアップ時刻より後であれば、復元操作に影響はなく、不要な待ち時間を短縮し、ユーザーエクスペリエンスを向上させます。 #53131 @YuJuncen BACKUPステートメントとRESTOREステートメントに、CHECKSUM_CONCURRENCYなどのよく使用されるパラメーターをいくつか追加します #53040 @RidRisRbr log restoreサブコマンドを除き、他のすべてのbr logサブコマンドは、メモリ消費量を削減するために TiDBdomainデータ構造の読み込みをスキップすることをサポートしています #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
finalAggMode とnon-finalAggMode が大規模並列処理 (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 @tangentaSTATEフィールドのINFORMATION_SCHEMA.TIDB_TRXが定義されていないため、sizeテーブルのSTATEフィールドが空になる問題を修正しました。 #53026 @cfzjywxkDistinct_countが無効になっている場合、グローバル統計のtidb_enable_async_merge_global_stats情報が正しくない可能性がある問題を修正しました #53752 @hawkingrei- オプティマイザヒント使用時の警告情報の誤りを修正 #53767 @hawkingrei
- 時間型を否定すると誤った値になる問題を修正 #52262 @solotzg
REGEXP()空のパターン引数に対して明示的にエラーを報告しない問題を修正 #53221 @yibin87- JSONをdatetimeに変換すると、場合によっては精度が失われる問題を修正しました #53352 @YangKeao
JSON_QUOTE()が場合によっては誤った結果を返す問題を修正 #37294 @dveedenALTER TABLE ... REMOVE PARTITIONINGの実行時にデータ損失が発生する可能性がある問題を修正 #53385 @mjonssauth_socket認証プラグインを使用している場合、TiDBが認証されていないユーザー接続を拒否できない場合がある問題を修正します #54031 @lcwangchao- JSON関連の関数が場合によってはMySQLと矛盾するエラーを返す問題を修正 #53799 @dveeden
INDEX_LENGTH内のパーティションテーブルのINFORMATION_SCHEMA.PARTITIONSフィールドが正しくない問題を修正します #54173 @Defined2014TIDB_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 @tangentaALTER DATABASE ... SET TIFLASH REPLICAステートメントがTiFlashレプリカをSEQUENCEテーブルに誤って追加する問題を修正しました #51990 @jiyfhustREFERENCED_TABLE_SCHEMAテーブルのINFORMATION_SCHEMA.KEY_COLUMN_USAGEフィールドが正しくない問題を修正します #52350 @wd0517- 単一のステートメントで複数の行を挿入すると、{{B
AUTO_ID_CACHE=1AUTO_INCREMENT列が不連続になる問題を修正しました。 #52465 @tiancaiamao - 非推奨警告のフォーマットを修正 #52515 @dveeden
TRACEでcopr.buildCopTasksコマンドが欠落している問題を修正 #53085 @time-and-fatememory_quotaヒントがサブクエリで機能しない可能性がある問題を修正しました #53834 @qw4990- メタデータロックの不適切な使用により、特定の状況下でプランキャッシュを使用する際に異常なデータが書き込まれる可能性がある問題を修正しました #53634 @zimulala
- トランザクション内のステートメントがメモリ不足で強制終了された後、TiDB が同じトランザクション内の次のステートメントの実行を継続すると、
Trying to start aggressive locking while it's already startedエラーが発生し、panicが発生する可能性がある問題を修正しました。 #53540 @MyonKeminta
- SQL文に外部結合が含まれ、結合条件に
ティクヴ
JSON_ARRAY_APPEND()関数を TiKV にプッシュダウンすると TiKV がpanicを起こす問題を修正しました #16930 @dbsid- リーダーが失敗したスナップショットファイルを時間内にクリーンアップしない問題を修正 #16976 @hbisheng
- 高度な同時コプロセッサー要求が TiKV OOM を引き起こす可能性がある問題を修正 #16653 @overvenus
raftstore.periodic-full-compact-start-times設定項目をオンラインで変更すると TiKV がpanicを引き起こす可能性がある問題を修正 #17066 @SpadeA-Tangmake dockerとmake 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
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)
TiDB Lightning
Dumpling
TiDBBinlog
寄稿者
TiDBコミュニティの以下の貢献者の皆様に感謝申し上げます。