TiDB 7.5.1 リリースノート
発売日:2024年2月29日
TiDB バージョン: 7.5.1
クイックアクセス: クイックスタート | 本番展開 | インストールパッケージ
互換性の変更
- ユーザー#47665 @ ティエンチャイアマオの潜在的な接続問題を防ぐために、Security強化モード (SEM) で
require_secure_transport
~ON
の設定を禁止します。 - ログ出力のオーバーヘッドを軽減するために、 TiFlash はデフォルト値
logger.level
を"debug"
から"info"
#8641 @ ジェイ・ソン・ファンに変更します。 - TiKV 構成項目
gc.num-threads
を導入して、enable-compaction-filter
がfalse
#16101 @ トニーシュクキの場合の GC スレッドの数を設定します。 - TiCDC Changefeed、次の新しい構成項目が導入されています。
compression
: REDO ログ ファイル#10176 @ スドジの圧縮動作を構成できます。sink.cloud-storage-config
: データをオブジェクトstorage#10109 @ CharlesCheung96にレプリケートするときに、履歴データの自動クリーンアップを設定できます。consistent.flush-concurrency
: 単一の REDO ファイルをアップロードするための同時実行性を設定できます#10226 @ スドジ
改善点
TiDB
DDL スキーマのリロード プロセス中に
tikv_client_read_timeout
使用して、クラスター#48124 @ cfzjywxkでメタリージョンLeaderの読み取りが利用できないことによる影響を軽減します。リソース制御に関する可観測性の向上#49318 @ グロルフ @ バッファフライ @ ノールーシュ
アプリケーションのワークロードを分離するためにリソース グループを使用するユーザーが増えているため、リソース コントロールはリソース グループに基づいた拡張データを提供します。これにより、リソース グループのワークロードと設定を監視し、次のような問題を迅速に特定して正確に診断できるようになります。
- 遅いクエリ : リソース グループ名、リソース ユニット (RU) の消費量、およびリソースの待機時間を追加します。
- ステートメント概要テーブル : リソース グループ名、RU 消費量、およびリソースの待機時間を追加します。
- システム変数
tidb_last_query_info
に、SQL ステートメントによって消費されるRUを示す新しいエントリru_consumption
を追加します。この変数を使用すると、セッション内の最後のステートメントのリソース消費量を取得できます。 - リソース グループに基づいてデータベース メトリックを追加します: QPS/TPS、実行時間 (P999/P99/P95)、失敗数、接続数。
FLASHBACK CLUSTER TO TSO
構文#48372 @ ボーンチェンジャーをサポートします一部の型変換を処理するときに TiDB 実装を最適化し、関連する問題を修正しました#47945 #47864 #47829 #47816 @ ヤンケオ @ ルクワンチャオ
非バイナリ照合順序が設定されており、クエリに
LIKE
含まれる場合、オプティマイザは実行効率を向上させるためにIndexRangeScan
を生成します#48181 #49138 @ 時間と運命通常の
ADD INDEX
タスク#47758 @ タンジェンタにフォールバックするのではなく、実行のためにキューに入れられる複数の高速化されたADD INDEX
DDL タスクをサポートします。
TiFlash
- RU 値をより安定させるためにリクエストユニット (RU)計算方法を改善#8391 @ グオシャオゲ
- 読み取りレイテンシー#8583 @ ジェイ・ソン・ファンに対するディスク パフォーマンス ジッターの影響を軽減します。
- バックグラウンド GC タスクが読み取りおよび書き込みタスクのレイテンシーに及ぼす影響を軽減します#8650 @ ジェイ・ソン・ファン
ツール
バックアップと復元 (BR)
- より効率的なアルゴリズム#50613 @ レヴルスを使用して、データ復元中の SST ファイルのマージ速度を向上させます。
- データ復元中のデータベースのバッチ作成をサポート#50767 @ レヴルス
- データ復元中のバッチでの SST ファイルの取り込みをサポート#16267 @ 3ポインター
- ログ バックアップ中のログとメトリックのグローバル チェックポイントの進行に影響を与える最も遅いリージョンの情報を出力します#51046 @ ユジュンセン
- 大規模なデータセット#48301 @ レヴルスを使用するシナリオでの
RESTORE
ステートメントのテーブル作成パフォーマンスを向上させます。 - BR は、
merge-schedule-limit
構成を0
#7148 @ ボーンチェンジャーに設定することで、リージョンのマージを一時停止できます。 - BR例外処理メカニズムをリファクタリングして、未知のエラー#47656 @ 3ポインターに対する許容度を高めます。
TiCDC
- TiDB ダッシュボード#10263 @ CharlesCheung96での TiCDC ログの検索のサポート
- サポート変更フィードのダウンストリーム同期ステータスのクエリは、TiCDC が受信したアップストリーム データ変更がダウンストリーム システムに完全に同期されているかどうかを判断するのに役立ちます#10289 @ ホンユニャン
- 並列処理#10098 @ CharlesCheung96を増やすことで、データをオブジェクトstorageにレプリケートする TiCDC のパフォーマンスを向上させます。
TiDB Lightning
バグの修正
TiDB
- システム変数
tidb_service_scope
の設定が反映されない問題を修正#49245 @ ywqzzy - 圧縮が有効な場合、通信プロトコルが 16 MB 以上のパケットを処理できない問題を修正#47157 #47161 @ ドヴィーデン
approx_percentile
関数が TiDBpanic#40463 @ xzhangxian1008を引き起こす可能性がある問題を修正- 文字列関数の引数が
NULL
定数の場合、TiDB が暗黙的にfrom_binary
関数を挿入する可能性があり、一部の式をTiFlash #49526 @ ヤンケオにプッシュダウンできなくなる問題を修正しました。 HashJoin
オペレーターがディスク#50841 @ wshwsh12へのスピルに失敗した場合に発生する可能性があるゴルーチン リークの問題を修正します。BIT
型の列が一部の関数#49566 #50850 #50855 @ ジフフストの計算に関与する場合、デコード エラーによりクエリ エラーが発生する可能性がある問題を修正します。- CTE クエリのメモリ使用量が制限#50337 @ グオシャオゲを超えたときに発生するゴルーチン リークの問題を修正します。
- TiFlash の遅延マテリアライゼーションが関連する列#49241 #51204 @ ロイド・ポティガーを処理するときに間違った結果が返される可能性がある問題を修正
- TiDB が履歴統計#49076 @ ホーキングレイを記録するときに TiDB のバックグラウンド ジョブ スレッドがpanicになる可能性がある問題を修正
- TiDB がパーティション テーブル#49023 @ ホーキングレイのグローバル統計のヒストグラムをマージするときに発生する可能性があるエラーを修正しました。
- パーティションが削除された後、
stats_meta
テーブルの履歴統計が更新されない問題を修正します#49334 @ こんにちはラスティン - 誤って
Index Join
プローブ サイド#50382 @ アイリンキッドとして選択された複数値インデックスによって引き起こされる誤ったクエリ結果の問題を修正します。 USE_INDEX_MERGE
ヒントが複数値インデックス#50553 @ アイリンキッドに対して有効にならない問題を修正します。INFORMATION_SCHEMA.ANALYZE_STATUS
システム テーブル#48835 @ こんにちはラスティンをクエリするときにユーザーがエラーを受け取る可能性がある問題を修正します。- TiDB が
group by
#38756 @ こんにちはラスティンの定数値を誤って削除するため、間違ったクエリ結果が発生する問題を修正しました。 - テーブル上の
ANALYZE
タスクのうちprocessed_rows
が、そのテーブルの総行数#50632 @ ホーキングレイを超える可能性がある問題を修正します。 tidb_enable_prepared_plan_cache
システム変数が有効になってから無効になった後、EXECUTE
ステートメントを使用してPREPARE STMT
を実行すると、TiDB がパニックになる可能panicがある問題を修正します#49344 @ qw4990- クエリで
NATURAL JOIN
#32044 @ アイリンキッドを使用するときに発生する可能性があるColumn ... in from clause is ambiguous
エラーを修正しました。 - 複数値インデックスを使用して空の JSON 配列にアクセスすると、誤った結果#50125 @ ヤンケオが返される可能性がある問題を修正します。
- グループ計算に集計関数が使用されている場合に発生する可能性がある
Can't find column ...
エラーを修正#50926 @ qw4990 - 文字列型変数の
SET_VAR
の制御が無効になる場合がある問題を修正#50507 @ qw4990 tidb_server_memory_limit
#48741 @ 徐淮嶼による長期的なメモリ負荷により TiDB の CPU 使用率が高くなる問題を修正- 依存関係のある 2 つの DDL タスクの完了時間が誤って順序付けされる問題を修正します#49498 @ タンジェンタ
- 不正なオプティマイザ ヒントにより有効なヒントが無効になる可能性がある問題を修正#49308 @ ホーキングレイ
CHECK
制約を持つ DDL ステートメントが#47632 @ ジフフストでスタックする問題を修正CHECK
制約のENFORCED
オプションの動作が MySQL 8.0 #47567 #47631 @ ジフフストと矛盾する問題を修正- CTE クエリが再試行プロセス#46522 @ ティエンチャイアマオ中にエラー
type assertion for CTEStorageMap failed
を報告する可能性がある問題を修正します。 tidb_multi_statement_mode
モードが有効になっている場合、インデックス ルックアップを使用するDELETE
およびUPDATE
ステートメントでエラーが報告される可能性がある問題を修正#50012 @ タンジェンタWITH RECURSIVE
CTE を含むUPDATE
またはDELETE
ステートメントが誤った結果を生成する可能性がある問題を修正します#48969 @ ウィノロス- 特定のシナリオ#49285 @ アイリンキッドで、オプティマイザーがTiFlash選択パスを DUAL テーブルに誤って変換する問題を修正します。
- 同じクエリ プランに異なる
PLAN_DIGEST
値、場合によっては#47634 @ キングディラン含まれる問題を修正 - 自動統計更新の時間枠が設定された後でも、その時間枠外で統計が更新される可能性がある問題を修正します#49552 @ ホーキングレイ
ENUM
型のカラムを結合キー#48991 @ ウィノロスとして使用した場合、クエリ結果が正しくない問題を修正ORDER BY
句を使用してUNIQUE
インデックス ルックアップを実行すると、エラー#49920 @ ジャッキースプが発生する可能性がある問題を修正します。- マルチレベルでネストされた
UNION
クエリのLIMIT
無効になる可能性がある問題を修正#49874 @ 定義2014 - MPP で計算した
COUNT(INT)
の結果が#48643 @ アイリンキッドと正しくない場合がある問題を修正 ENUM
またはSET
種類の無効な値を解析すると SQL ステートメント エラー#49487 @ ウィノロスが直接発生する問題を修正します。- TiDB がパニックになり、エラー
invalid memory address or nil pointer dereference
#42739 @ Cbcウェストウルフを報告する問題を修正 - 最初のサブノードとして DUAL テーブルを使用して
UNION ALL
を実行すると、エラー#48755 @ ウィノロスが発生する可能性がある問題を修正します。 UNION ALL
ステートメント#50068 @ ホーキングレイで共通ヒントが有効にならない問題を修正- 正常なシャットダウン#36793 @ bb7133中に TiDBサーバーがpanicになる可能性がある問題を修正
- 一部のタイムゾーン#49586 @ オーバーヴィーナスでサマータイムが正しく表示されない問題を修正
- static
CALIBRATE RESOURCE
が Prometheus データ#49174 @ グロルフに依存する問題を修正 REPLACE INTO
ステートメント#34325 @ ヤンケオでヒントが使用できない問題を修正GROUP_CONCAT(ORDER BY)
構文を含むクエリを実行するとエラー#49986 @ アイリンキッドが返される可能性がある問題を修正します。- 監査ログ用のエンタープライズ プラグインが使用されている場合、TiDBサーバーが大量のリソースを消費する可能性がある問題を修正#49273 @ ルクワンチャオ
- 古いインターフェースを使用すると、テーブル#49751 @ ホーキングレイのメタデータが不整合になる可能性がある問題を修正
tidb_enable_collect_execution_info
を無効にするとコプロセッサ キャッシュがpanic#48212 @ あなた06になる問題を修正- パーティション列タイプが
DATETIME
#48814 @ クレイジークス520の場合、ALTER TABLE ... LAST PARTITION
の実行が失敗する問題を修正 COM_STMT_EXECUTE
を介して実行されたCOMMIT
またはROLLBACK
操作がタイムアウトしたトランザクションを終了できない問題を修正します#49151 @ ジグアン- ヒストグラムの境界に
NULL
#49823 @ アイリンキッドが含まれる場合、ヒストグラム統計が読み取り可能な文字列に解析されない可能性がある問題を修正します。 - メモリ制限#49096 @ アイリンキッドを超えると、共通テーブル式 (CTE) を含むクエリが予期せずスタックする問題を修正します。
- DDL 所有者がネットワーク分離された後に
ADD INDEX
実行すると、TiDB 分散実行フレームワーク (DXF) でデータが矛盾する問題を修正#49773 @ タンジェンタ AUTO_ID_CACHE=1
#50519 @ ティエンチャイアマオの自動インクリメント列を使用すると、同時競合により自動インクリメント ID 割り当てでエラーが報告される問題を修正します。- panicに適用演算子が含まれており、
fatal error: concurrent map writes
エラーが発生すると TiDB がパニックになる可能性がある問題を修正します#50347 @ シーライズ - DDL
jobID
が 0 #46296 @ ジフフストに復元されるときに発生する TiDB ノードのpanic問題を修正 STREAM_AGG()
の CI #49902 @ wshwsh12の処理が間違っているため、クエリ結果が正しくない問題を修正します。- 多数のテーブルまたはパーティション#50077 @ ジムララを処理するときに TiDB ノードで OOM エラーが発生する可能性がある問題を軽減します。
LEADING
ヒントがUNION ALL
のステートメント#50067 @ ホーキングレイで有効にならない問題を修正- ネストされた
UNION
クエリ#49377 @ アイリンキッドでLIMIT
とOPRDERBY
無効になる可能性がある問題を修正 - メモリが
tidb_mem_quota_query
#49033 @ 徐淮嶼を超えると、IndexHashJoin 演算子を含むクエリがスタックする問題を修正します。 - 定数伝播#49440 @ ウィノロスで
ENUM
またはSET
型を処理すると、TiDB が間違ったクエリ結果を返す問題を修正 PREPARE
メソッドを使用してSELECT INTO OUTFILE
を実行すると、エラー#49166 @ qw4990ではなく成功メッセージが誤って返される問題を修正します。- クエリでソートを強制するオプティマイザ ヒント (
STREAM_AGG()
など) が使用されており、その実行プランにIndexMerge
#49605 @ アイリンキッドが含まれている場合、強制ソートが無効になる可能性がある問題を修正します。 - 多数のテーブル#48869 @ ティエンチャイアマオがある場合、
AUTO_ID_CACHE=1
テーブルによって gRPC クライアント リークが発生する可能性がある問題を修正します。 - 非厳密モード (
sql_mode = ''
) で、INSERT
の実行中に切り詰めると引き続きエラー#49369 @ ティエンチャイアマオが報告される問題を修正します。 - データの末尾にスペースが含まれている場合に
LIKE
に_
ワイルドカードを使用すると、誤ったクエリ結果#48983 @ 時間と運命が発生する可能性がある問題を修正します。 tidb_mem_quota_query
システム変数を更新した後にADMIN CHECK
を実行するとERROR 8175
#49258 @ タンジェンタが返される問題を修正- Golang の暗黙的な変換アルゴリズム#49801 @ qw4990によって引き起こされる統計構築時の過剰な統計エラーの問題を修正
tidb_max_chunk_size
が小さい値#48808 @ グオシャオゲに設定されている場合、CTE を含むクエリでruntime error: index out of range [32] with length 32
が報告される問題を修正します。
- システム変数
TiKV
tidb_enable_row_level_checksum
を有効にすると TiKV がpanic#16371 @ cfzjywxkになる可能性がある問題を修正- gRPC スレッドが
is_shutdown
#16236 @ ピンギュをチェックしているときに TiKV がpanicになる可能性がある問題を修正 - TiKV がブラジルとエジプトのタイムゾーンを誤って変換する問題を修正します#16220 @ オーバーヴィーナス
- Titanの
blob-run-mode
オンライン#15978 @ トニーシュクキに更新できない問題を修正 - TiDB と TiKV が
DECIMAL
算術乗算切り捨て#16268 @ ソロッツグを処理するときに一貫性のない結果を生成する可能性がある問題を修正します。 notLeader
またはregionNotFound
#15712 @ ヒューシャープに遭遇したときにフラッシュバックがスタックすることがある問題を修正- 破損した SST ファイルが他の TiKV ノード#15986 @ コナー1996に拡散する可能性がある問題を修正
- TiKV の実行が非常に遅い場合、リージョンマージ#16111 @ オーバーヴィーナス後にpanicが発生する可能性がある問題を修正
- #15817 @ コナー1996のスケールアウト時に DR Auto-Sync のジョイント状態がタイムアウトになる可能性がある問題を修正
- 解決済み TS が 2 時間ブロックされる可能性がある問題を修正#11847 #15520 #39130 @ オーバーヴィーナス
cast_duration_as_time
が間違った結果#16211 @ ゲンリキを返す可能性がある問題を修正
PD
- バッチでリソース グループをクエリすると PD がpanic#7206 @ ノールーシュになる可能性がある問題を修正
- PD が
systemd
#7628 @ バッファフライで起動されたときにリソース制限を読み取れない問題を修正 - PD ディスクレイテンシーにおける継続的なジッターにより、PD が新しいリーダー#7251 @ ヒューシャープの選択に失敗する可能性がある問題を修正します。
- PD のネットワーク分割によりスケジューリングがすぐに開始されないことがある問題を修正#7016 @ ヒューシャープ
- PD監視項目
learner-peer-count
がリーダースイッチ#7728 @ キャビンフィーバーB後に古い値と同期しない問題を修正 - PD リーダーが移動され、新しいリーダーと PD クライアントの間にネットワーク分割がある場合、PD クライアントがリーダー#7416 @ キャビンフィーバーBの情報を更新できない問題を修正します
- Jin Web Framework のバージョンを v1.8.1 から v1.9.1 #7438 @ ニューベルにアップグレードすることで、いくつかのセキュリティ問題を修正します。
- レプリカの数が要件#7584 @ バッファフライを満たさない場合に孤立ピアが削除される問題を修正
pd-ctl
を使用してリーダーなしでリージョンをクエリすると、PD がpanic#7630 @ ルルンクスになる可能性がある問題を修正します。
TiFlash
- レプリカ移行#8323 @ ジェイ・ソン・ファン中に PD とのネットワーク接続が不安定なためにTiFlash がpanicになる可能性がある問題を修正
- TiFlashレプリカを削除してから再度追加すると、 TiFlash #8695 @ ジェイ・ソン・ファンでデータ破損が発生する可能性がある問題を修正します。
- データ挿入#8395 @ ジェイ・ソン・ファンの直後に
DROP TABLE
を実行すると、FLASHBACK TABLE
またはRECOVER TABLE
一部のTiFlashレプリカのデータを回復できない可能性があるという潜在的な問題を修正します。 - Grafana #8076 @ ジェイ・ソン・ファンの一部のパネルの最大パーセンタイル時間の誤った表示を修正
- リモート読み取り#8685 @ グオシャオゲ中にTiFlash がクラッシュする可能性がある問題を修正
ENUM
値が 0 #8311 @ ソロッツグの場合にTiFlash がENUM
を誤って処理する問題を修正- 短いクエリが正常に実行されると過剰な情報ログ#8592 @ ウィンドトーカーが出力される問題を修正します。
- 遅いクエリ#8564 @ ジンヘリンによりメモリ使用量が大幅に増加する問題を修正
lowerUTF8
およびupperUTF8
関数で、大文字と小文字が異なる文字が異なるバイト#8484 @ ゲンリキを占めることができない問題を修正します。- ストリーム読み取り#8505 @ ゲンリチ中に複数のパーティション分割テーブルをスキャンするときに発生する可能性がある OOM の問題を修正します。
- TiFlash がクエリ#8447 @ ジンヘリン中にメモリ制限に遭遇した場合のメモリリークの問題を修正
- DDL の同時実行中にTiFlash で競合が発生した場合のTiFlashpanic問題を修正#8578 @ ジェイ・ソン・ファン
- Null 許容カラムを Null 非許容カラム#8419 @ ジェイ・ソン・ファンに変更する
ALTER TABLE ... MODIFY COLUMN ... NOT NULL
の実行後にTiFlashがパニックになる問題を修正 ColumnRef in (Literal, Func...)
#8631 @ ロイド・ポティガーのようなフィルタリング条件を使用してクエリを実行すると、クエリ結果が正しくなくなる問題を修正FLASHBACK DATABASE
#8450 @ ジェイ・ソン・ファンを実行した後もTiFlashレプリカのデータがガベージ コレクションされる問題を修正- TiFlash が、非集約storageおよびコンピューティングアーキテクチャ#8519 @ ジェイ・ソン・ファンでオブジェクトstorageデータの GC 所有者を選択できない可能性がある問題を修正します。
- 定数文字列パラメーター#8604 @ ウィンドトーカーを含む
GREATEST
またはLEAST
関数で発生する可能性があるランダムな無効なメモリアクセスの問題を修正します。 - ポイントインタイム リカバリ (PITR) の実行後、または
FLASHBACK CLUSTER TO
実行後にTiFlashレプリカ データが誤って削除され、データ異常が発生する可能性がある問題を修正します#8777 @ ジェイ・ソン・ファン - 結合に等価でない条件#8791 @ ウィンドトーカーが含まれている場合、 TiFlash Anti Semi Join が誤った結果を返す可能性がある問題を修正
ツール
バックアップと復元 (BR)
- TiKV ノード#50566 @ レヴルスにリーダーが存在しないためにデータの復元が遅くなる問題を修正
--filter
オプションを指定した後も完全復元ではターゲット クラスターが空である必要があるという問題を修正します#51009 @ 3ポインター- データの復元に失敗した後にチェックポイントから再開すると、エラー
the target cluster is not fresh
が発生する問題を修正します#50232 @ レヴルス - ログ バックアップ タスクを停止すると TiDB がクラッシュする問題を修正します#50839 @ ユジュンセン
- 古いバージョン#49466 @ 3ポインターのバックアップからデータを復元すると
Unsupported collation
エラーが報告される問題を修正します。 - タスクの初期化中に PD への接続に失敗すると、ログ バックアップ タスクを開始できても正しく動作しない問題を修正#16056 @ ユジュンセン
- BR が外部storageファイル#48452 @ 3エースショーハンドに対して間違った URI を生成する問題を修正
- 同じノード#50445 @ 3ポインターで TiKV IP アドレスを変更した後にログのバックアップが停止する問題を修正
- S3 #49942 @ レヴルスからファイルの内容を読み取るときにエラーが発生した場合にBR が再試行できない問題を修正
TiCDC
- Syncpoint が有効になっている場合にエラーが発生した後、シンク モジュールが正しく再起動できない問題を修正します (
enable-sync-point = true
) #10091 @ ひっくり返る - storageシンク#10352 @ CharlesCheung96を使用する場合、storageサービスによって生成されたファイル シーケンス番号が正しく増加しないことがある問題を修正します。
- 同期ポイント テーブルが誤って複製される可能性がある問題を修正#10576 @ 東門
- Apache Pulsar をダウンストリーム#10602 @ 東門として使用する場合、OAuth2.0、TLS、および mTLS を適切に有効にできない問題を修正
- 複数の変更フィード#10430 @ CharlesCheung96を同時に作成すると TiCDC が
ErrChangeFeedAlreadyExists
エラーを返す問題を修正 - 極端なケース#10157 @ スドジでチェンジフィード
resolved ts
が進まない問題を修正 - 特定の特別なシナリオ#10239 @ ひっくり返るで、TiCDC が誤って TiKV との接続を閉じる問題を修正します。
- データをオブジェクトstorageサービス#10137 @ スドジにレプリケートするときに TiCDCサーバーがpanicになる可能性がある問題を修正します。
- 上流テーブル#10522 @ スドジで
TRUNCATE PARTITION
が実行された後、変更フィードがエラーを報告する問題を修正します。 ignore-event
で構成されたadd table partition
イベントをフィルタリングした後、TiCDC が関連パーティションの他のタイプの DML 変更をダウンストリーム#10524 @ CharlesCheung96にレプリケートしない問題を修正します。kv-client
初期化#10095 @ 3エースショーハンド中の潜在的なデータ競合の問題を修正
- Syncpoint が有効になっている場合にエラーが発生した後、シンク モジュールが正しく再起動できない問題を修正します (
TiDB データ移行 (DM)