TiDB 6.5.4 リリースノート
発売日:2023年8月28日
TiDB バージョン: 6.5.4
互換性の変更
Cursor Fetch使用して大きな結果セットを取得するときにTiDBがメモリを大量に消費する問題を修正するために、TiDBは結果セットを自動的にディスクに書き込んでメモリを解放します#43233 @ ヤンケオ- RocksDBの定期的な圧縮をデフォルトで無効にすることで、TiKV RocksDBのデフォルトの動作がv6.5.0より前のバージョンと一致するようになりました。この変更により、アップグレード後に大量の圧縮が行われることによるパフォーマンスへの影響を回避できます。さらに、TiKVでは2つの新しい設定項目
rocksdb.[defaultcf|writecf|lockcf].periodic-compaction-secondsとrocksdb.[defaultcf|writecf|lockcf].ttl導入され、RocksDB #15355 @ LykxSassinatorの定期的な圧縮を手動で設定できるようになりました。
行動の変化
- 複数の変更を含むトランザクションにおいて、更新イベントで主キーまたはNULL以外の一意のインデックス値が変更された場合、TiCDCはイベントを削除イベントと挿入イベントに分割し、すべてのイベントが挿入イベントに先行する削除イベントの順序に従うようにします。詳細については、 ドキュメント参照してください。
改善点
TiDB
TiKV
check_leaderリクエストに gzip 圧縮を使用してトラフィック#14553 @ あなた06を削減しますMax gap of safe-tsとMin safe ts regionメトリックを追加し、tikv-ctl get-region-read-progressコマンドを導入して、resolved-tsと安全な ts の状態をより適切に観察および診断します#15082 @ エキシウム- TiKV で RocksDB の設定を公開し、ユーザーが TTL や定期的な圧縮などの機能を無効にできるようにします#14873 @ LykxSassinator
- Titan マニフェストファイルを書き込むときにミューテックスを保持しないようにして、他のスレッドに影響を与えないようにします#15351 @ コナー1996
- 圧縮メカニズムを最適化します。リージョンが分割されるときに、分割するキーがない場合、圧縮がトリガーされ、過剰な MVCC バージョン#15282 @ スペードA-タンが排除されます。
PD
TiFlash
ツール
バックアップと復元 (BR)
TiCDC
- TiCDC が失敗後に再試行するときのステータス メッセージを改善する#9483 @ アズドンメン
- TiCDC が Kafka に同期する際に制限を超えるメッセージを処理する方法を最適化し、主キーのみをダウンストリーム#9574 @ 3エースショーハンドに送信することをサポートしました。
- ストレージシンクは、HEX形式のデータの16進エンコードをサポートするようになり、AWS DMS形式仕様#9373 @ チャールズ・チュン96と互換性があります。
TiDB データ移行 (DM)
Dumpling
バグ修正
TiDB
STREAM_AGG()演算子#40857 @ ドゥーシル9を押し下げるとindex out of rangeエラーが報告される可能性がある問題を修正しましたCREATE TABLE文にサブパーティション定義#41198 #41200 @ ミョンスが含まれている場合、TiDB がすべてのパーティション情報を無視して非パーティションテーブルを作成する問題を修正しました。stale_read_ts設定が間違っているとPREPARE stmtデータを誤って読み取る可能性がある問題を修正#43044 @ あなた06- ActivateTxn #42092 @ ホーキングレイで起こりうるデータ競合の問題を修正しました
- バッチクライアントがタイムリーに再接続しない問題を修正#44431 @ crazycs520
- SQLコンパイルエラーログが編集されない問題を修正#41831 @ ランス6716
- CTEと相関サブクエリを同時に使用すると、クエリ結果が不正確になったり、panicが発生する可能性がある問題を修正#44649 #38170 #44774 @ ウィノロス @ グオシャオゲ
- TTLタスクが時間#40109 @ ヤンケオで統計更新をトリガーできない問題を修正
- GC ロック解決ステップで一部の悲観的ロック#45134 @ ミョンケミンタが見逃される可能性がある問題を修正しました
- バイナリプロトコルを使用してTiDBに接続し、多数の
PREPAREとEXECUTEステートメント#44612 @ wshwsh12を実行すると、メモリリークと実行時間が増加し続ける問題を修正しました。 INFORMATION_SCHEMA.DDL_JOBSテーブルのQUERY列目のデータ長が列定義#42440 @ 天菜まおを超える可能性がある問題を修正しました- 多数のリージョンがあるが、
PrepareまたはExecute#39605 @ djshow832を使用して一部の仮想テーブルをクエリするときにテーブル ID をプッシュダウンできないという PD OOM 問題を修正しました。 - パーティションテーブル#41638 @ xuyifangreeneyesに新しいインデックスを追加した後、パーティションパーティションテーブルで統計の自動収集が正しくトリガーされない可能性がある問題を修正しました。
- 統計情報におけるSQL実行詳細のメモリ消費量が多すぎると、極端なケースでTiDB OOMが発生する問題を修正#44047 @ wshwsh12
- バッチコプロセッサの再試行によって誤ったリージョン情報が生成される可能性があり、クエリが失敗する問題を修正しました#44622 @ ウィンドトーカー
indexMergeのクエリが#45279 @ xzhangxian1008で強制終了されたときに発生するハングアップの問題を修正しました- システムテーブル
INFORMATION_SCHEMA.TIKV_REGION_STATUSをクエリすると、場合によっては誤った結果が返される問題を修正しました#45531 @ 定義2014 tidb_enable_parallel_apply有効になっている場合、MPP モードでのクエリ結果が正しくない問題を修正#45299 @ ウィンドトーカーtidb_opt_agg_push_down有効になっている場合にクエリが誤った結果を返す可能性がある問題を修正#44795 @ アイリンキッド- 仮想列#41014 @ アイリンキッドによって発生する適切な物理プランが見つからない問題を修正しました
- 空の
processInfo#43829 @ ジムララによって引き起こされるpanic問題を修正 - 文中の
n負の数#44786 @ xheboxの場合に文SELECT CAST(n AS CHAR)のクエリ結果が正しくない問題を修正しました - MySQLカーソルフェッチプロトコル使用時に、結果セットのメモリ消費量が
tidb_mem_quota_query上限を超え、TiDBのメモリオーバーフローが発生する問題を修正しました。修正後、TiDBは結果セットを自動的にディスクに書き込み、メモリを解放します#43233 @ ヤンケオ - BR #44716 @ 天菜まおを使用して
AUTO_ID_CACHE=1テーブルを復元するときに発生するduplicate entryエラーを修正します - テーブルパーティション定義で
FLOOR()関数を使用してパーティション列を#42323 @ ジフハウスに丸めた場合、SELECTステートメントがパーティションテーブルに対してエラーを返す問題を修正しました。 - 同時ビューによって DDL 操作がブロックされる可能性がある問題を修正#40352 @ 沢民州
datetime値が#39336 @ xuyifangreeneyesと正しくないために統計収集タスクが失敗する問題を修正しました- クラスターのPDノードが交換された後、一部のDDL文が一定期間スタックする可能性がある問題を修正しました#33908
- PD時間#44822 @ ジグアンに突然の変化があったときに
resolve lockハングする可能性がある問題を修正しました - インデックススキャン#45126 @ wshwsh12における潜在的なデータ競合問題を修正
FormatSQL()メソッドが入力#44542 @ ホーキングレイの非常に長い SQL 文を適切に切り捨てることができない問題を修正しました。- 権限#45320 @ ロイド・ポティガーがなくてもユーザーが
INFORMATION_SCHEMA.TIFLASH_REPLICAテーブルの情報を表示できる問題を修正 DATETIMEまたはTIMESTAMP列を数値定数#38361 @ イービン87と比較するときに、MySQL と動作が一致しない問題を修正しました。- インデックス結合のエラーによりクエリが停止する可能性がある問題を修正#45716 @ wshwsh12
- 接続を切断すると go コルーチン リークが発生する可能性がある問題を修正#46034 @ ピンギュ
tmp-storage-quota設定が#45161 #26806 @ wshwsh12で有効にならない問題を修正- クラスター#38484 @ ヘヘチェンでTiFlashノードがダウンした場合にTiFlashレプリカが利用できなくなる問題を修正しました。
Config.Labels同時に読み書きする場合に、データ競合により TiDB がクラッシュする問題を修正#45561 @ ゲンリキ- クラスタが大きい場合、クライアントが定期的に更新される
min-resolved-tsPD OOMを引き起こす可能性がある問題を修正しました#46664 @ HuSharp
TiKV
ttl-check-poll-interval設定項目がRawKV API V2 #15142 @ ピンギュで有効にならない問題を修正- オンラインアンセーフリカバリがタイムアウト#15346 @ コナー1996で中止されない問題を修正
FLASHBACK#15258 @ 金星の上を実行した後にリージョンマージがブロックされる可能性がある問題を修正しました- 1つのTiKVノードが分離され、別のノードが再起動されたときに発生する可能性のあるデータの不整合の問題を修正しました#15035 @ 金星の上
- データレプリケーション自動同期モード#14975 @ ノルーシュで同期回復フェーズでQPSがゼロに低下する問題を修正しました。
- 暗号化により部分書き込み#15080 @ タボキ中にデータ破損が発生する可能性がある問題を修正
- ストアハートビートの再試行回数を#15184 @ ノルーシュに減らして、ハートビートストームの問題を修正しました。
- 保留中の圧縮バイト#14392 @ コナー1996量が多い場合にトラフィック制御が機能しない可能性がある問題を修正しました。
- PDとTiKV間のネットワーク中断によりPITRが#15279 @ ユジュンセンで停止する可能性がある問題を修正しました
- TiCDC の古い値機能が有効になっているときに TiKV がより多くのメモリを消費する可能性がある問題を修正#14815 @ ユジュンセン
PD
- etcd がすでに起動しているがクライアントがまだ接続していない場合、クライアントを呼び出すと PD がpanic#6860 @ HuSharpになる可能性がある問題を修正しました。
- リーダーが長時間退出できない問題を修正#6918 @ バッファフライ
- 配置ルールが
LOCATION_LABELS使用する場合、SQL とルールチェッカーが#38605 @ ノルーシュと互換性がない問題を修正しました - PD が予期せず複数の学習者をリージョン#5786 @ ハンドゥンDMに追加する可能性がある問題を修正しました。
- ルールチェッカーがピア#6559 @ ノルーシュを選択した場合に、不健全なピアを削除できない問題を修正しました
unsafe recoveryで不合格になった学習者のピアがauto-detectモード#6690 @ v01dstarで無視される問題を修正
TiFlash
fspDATETIME、TIMESTAMP、またはTIMEデータ型#7809 @ ジェイソン・ファンに変更した後にクエリが失敗する問題を修正しました- 領域#7762 @ リデジュの無効な範囲キーによりTiFlashデータが不整合になる問題を修正しました
- 同じ MPP タスク内に複数の HashAgg 演算子がある場合、MPP タスクのコンパイルに非常に長い時間がかかり、クエリのパフォーマンスに重大な影響を与える可能性がある問題を修正しました#7810 @ シーライズ
- オンラインアンセーフリカバリ#7671 @ ホンユニャンを使用した後、 TiFlashの再起動に時間がかかりすぎる問題を修正しました
- TiFlash が#6462 @ リトルフォール割り算を行うときに
DECIMAL結果を誤って丸める問題を修正しました
ツール
バックアップと復元 (BR)
- BRで使用されるグローバルパラメータ
TableColumnCountLimitとIndexLimitデフォルト値を最大値#45793 @ リーヴルスに増やすことで、復元が失敗する問題を修正しました。 - PITR #43184 @ リーヴルスで DDL メタ情報を処理するときに書き換えが失敗する問題を修正しました
- PITR実行中に関数の戻り値をチェックしないことで発生するpanicの問題を修正#45853 @ リーヴルス
- Amazon S3 #41916 #42033 @ 3ポイントシュート以外の S3 互換storage使用時に無効なリージョン ID が取得される問題を修正
- RawKVモード#37085 @ ピンギュのきめ細かなバックアップフェーズで発生する可能性のあるエラーを修正
- TiDBクラスタ#40759 @ ジョッカウにPITRバックアップタスクがない場合に頻度
resolve lockが高すぎる問題を修正 - リージョンリーダーシップの移行が発生すると、PITR ログバックアップの進行のレイテンシーが長くなるという問題を軽減します#13638 @ ユジュンセン
- BRで使用されるグローバルパラメータ
TiCDC
- ダウンストリームでエラーが発生し、 #9450 @ ヒックで再試行すると、レプリケーションタスクが停止する可能性がある問題を修正しました。
- Kafka #9504 @ 3エースショーハンドに同期するときに再試行間隔が短いためにレプリケーションタスクが失敗する問題を修正しました
- TiCDC がアップストリーム#9430 @ スドジの 1 つのトランザクションで複数の一意のキー行を変更するときに同期書き込み競合を引き起こす可能性がある問題を修正しました。
- TiCDC が誤って名前変更 DDL 操作を同期する可能性がある問題を修正#9488 #9378 #9531 @ アズドンメン
- 下流で短期的な障害が発生したときにレプリケーションタスクが停止する可能性がある問題を修正#9542 #9272 #9582 #9592 @ ヒック
- TiCDC ノードのステータスが#9354 @ スドジに変化したときに発生する可能性のあるpanic問題を修正しました。
- Kafka Sink がエラーに遭遇すると、changefeed の進行#9309 @ ヒックが無期限にブロックされる可能性がある問題を修正しました。
- ダウンストリームが Kafka の場合、TiCDC がダウンストリームのメタデータを頻繁にクエリし、ダウンストリームに過度のワークロードが発生する問題を修正しました#8957 #8959 @ ハイラスティン
- 一部の TiCDC ノードがネットワークから分離されているときに発生する可能性のあるデータの不整合の問題を修正#9344 @ チャールズ・チュン96
- 再実行ログが有効で、下流に例外#9172 @ チャールズ・チュン96がある場合にレプリケーションタスクが停止する可能性がある問題を修正しました。
- PD #9294 @ アズドンメンが一時的に利用できないために変更フィードが失敗する問題を修正しました
- TiDB または MySQL #9180 @ アズドンメンにデータを複製するときに、下流の双方向レプリケーション関連の変数を頻繁に設定することによって発生する下流ログが多すぎる問題を修正しました。
- Avroプロトコルが
Enumタイプの値#9259 @ 3エースショーハンドを誤って識別する問題を修正しました
TiDB データ移行 (DM)
TiDB Lightning
- エンジンがデータ#44867 @ D3ハンターをインポートしているときにディスク クォータ チェックがブロックされる可能性がある問題を修正しました
- ターゲットクラスタ#45462 @ D3ハンターで SSL が有効になっているときにチェックサムがエラー
Region is unavailableを報告する問題を修正しました - エンコードエラーが正しく記録されない問題を修正#44321 @ lyzx2001
- CSVデータ#43284 @ lyzx2001をインポートする際にルートがpanicになる可能性がある問題を修正
- 論理インポートモードでテーブル A をインポートすると、テーブル B が存在しないと誤って報告される可能性がある問題を修正しました#44614 @ dsdashun
NEXT_GLOBAL_ROW_ID#45427 @ lyzx2001を保存するときにデータ型が間違っている問題を修正しましたchecksum = "optional"#45382 @ lyzx2001のときにチェックサムがエラーを報告する問題を修正しました- PDクラスタアドレスが#43436 @ リチュンジュに変更されるとデータのインポートが失敗する問題を修正しました
- 一部のPDノードが#43400 @ リチュンジュで失敗した場合にデータのインポートが失敗する問題を修正しました
- 自動増分列を持つテーブルが
AUTO_ID_CACHE=1設定すると、ID アロケータのベース値が正しくなくなる#46100 @ D3ハンターという問題を修正しました
Dumpling
TiDBBinlog