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