TiDB 8.1.2 リリースノート
リリース日:2024年12月26日
TiDB バージョン: 8.1.2
クイックアクセス: クイックスタート | 本番環境へのデプロイ
互換性の変更
TiKV設定項目
server.snap-min-ingest-sizeを追加します。これは、TiKVがスナップショットを処理する際にインジェスト方式を採用するかどうかの最小しきい値を指定します。デフォルト値は2MiBです。- スナップショットのサイズがこのしきい値を超えると、TiKVはスナップショットからSSTファイルをRocksDBにインポートするインジェスト方式を採用します。この方式は、大きなファイルの場合、より高速です。
- スナップショットのサイズがこのしきい値を超えない場合、TiKVは直接書き込み方式を採用し、各データをRocksDBに個別に書き込みます。この方式は、小さなファイルの場合により効率的です。
改善点
TiDB
TiKV
- 空のテーブルと小さなリージョンのシナリオでのリージョンマージの速度を向上 #17376 @LykxSassinator
- TiKVの
DiskFull検出を最適化してRaftEngineのspill-dir構成と互換性を持たせ、この機能が一貫して動作することを保証します。 #17356 @LykxSassinator - RocksDB コンパクションのトリガー メカニズムを最適化し、多数の DELETE バージョンを処理するときにディスク領域の再利用を高速化します。 #17269 @AndreMouche
import.num-threads設定項目を動的に変更することをサポート#17807 @RidRisR- Rusoto ライブラリを AWS Rust SDK に置き換えて、バックアップと復元のために外部ストレージ(Amazon S3 など) にアクセスします。これにより、IMDSv2 や EKS Pod Identity などの AWS 機能との互換性が向上します。 #12371 @akoshchiy
TiFlash
- クラスター化インデックスを持つテーブルで、バックグラウンドでの古いデータのガベージコレクションの速度が向上しました。 #9529 @JaySon-Huang
- TLS を有効にした後に証明書を更新することでTiFlash がpanicする可能性がある問題を軽減します#8535 @windtalker
- ストレージとコンピューティングの分離アーキテクチャにおけるリクエストを処理するときにTiFlash が作成する必要があるスレッドの数を減らし、大量のそのようなリクエストを処理するときにTiFlashコンピューティングノードのクラッシュを回避するのに役立ちます#9334 @JinheLin
- JOIN演算子のキャンセルメカニズムを改善し、JOIN演算子がキャンセルリクエストにタイムリーに応答できるようにします#9430 @windtalker
LENGTH()とASCII()関数の実行効率を最適化 #9344 @xzhangxian1008- ストレージとコンピューティングの分離アーキテクチャ内のTiFlashコンピューティングノードの再試行戦略を最適化して、Amazon S3 からファイルをダウンロードする際の例外を処理します。 #9695 @JinheLin
ツール
Backup & Restore (BR)
- バックアップ中の不要なログ出力を削減#55902 @Leavrth
- バックアップパフォーマンスを向上させるために、フルバックアップ中のテーブルレベルのチェックサム計算(
--checksum=false)をデフォルトで無効にする#56373 @Tristan1900
TiCDC
- TiCDCは、
SUPER権限を付与された後に非同期で実行されたDDLタスクのステータスを照会することをサポートし、同じテーブルでDDLタスクを繰り返し実行することによって発生する実行エラーを防止します。 #11521 @CharlesCheung96 - 下流が
SUPER権限が付与されたTiDBの場合、TiCDCは下流データベースからADD INDEX DDLの実行ステータスを照会することをサポートします。これにより、DDL文の実行を再試行する際のタイムアウトによるデータ複製の失敗を回避できる場合があります。 #10682 @CharlesCheung96
- TiCDCは、
バグ修正
TiDB
- v6.5からv7.5以降にアップグレードされたクラスターで、既存のTTLタスクが予期せず頻繁に実行される問題を修正#56539 @lcwangchao
- 特定の状況下でプランキャッシュを使用する際に、メタデータロックの不適切な使用によって異常なデータが書き込まれる可能性がある問題を修正しました#53634 @zimulala
- グローバルソートが有効でリージョンサイズが96 MiB を超えると
IMPORT INTOの実行が停止する問題を修正 #55374 @lance6716 DUMP STATSが統計を JSON に変換するときにヒストグラムの上限と下限が壊れる問題を修正 #56083 @hawkingrei- エイリアスを持つマルチテーブル
DELETE文に対して実行プランバインディングを作成できない問題を修正しました。 #56726 @hawkingrei - TTLテーブルのメモリリークの問題を修正 #56934 @lcwangchao
- パーティション式が
EXTRACT(YEAR FROM col)の場合にパーティションプルーニングが機能しない問題を修正しました #54210 @mjonss - 配置ルールを含むテーブル構造をインポートするときに Plan Replayer がエラーを報告する可能性がある問題を修正しました。 #54961 @hawkingrei
- メモリ使用量が
tidb_mem_quota_queryで設定された制限を超えたためにクエリが終了したときに停止する可能性がある問題を修正しました #55042 @yibin87 - copタスク構築中にTiDBクエリをキャンセルできない問題を修正 #55957 @yibin87
- TTLジョブ実行中に
tidb_ttl_delete_worker_countの値を減らすとジョブが完了しなくなる問題を修正しました #55561 @lcwangchao CAST関数が文字セットの明示的な設定をサポートしていない問題を修正しました #55677 @Defined2014- 書き込み競合が発生したときにTTLタスクをキャンセルできない問題を修正#56422 @YangKeao
IndexNestedLoopHashJoinのデータ競合問題を修正 #49692 @solotzgStreamAggExecのgroupOffsetが空の場合に TiDB がpanicを起こす可能性がある問題を修正しました #53867 @xzhangxian1008- 相関サブクエリと CTE を含むクエリを実行すると、TiDB がハングしたり、誤った結果が返されたりする問題を修正しました。 #55551 @guo-shaoge
- インデックス追加中の再試行によって発生するデータインデックスの不整合の問題を修正しました #55808 @lance6716
- 整数型の列に小さい表示幅を指定すると
out of rangeエラーが発生する可能性がある問題を修正しました。 #55837 @windtalker LOAD DATA ... REPLACE INTO操作でデータの不整合が発生する問題を修正#56408 @fzzf678columnEvaluatorは入力チャンク内の列参照を識別できず、SQL 文を実行するとruntime error: index out of rangeが発生する問題を修正しました。 #53713 @AilinKid- 共通テーブル式 (CTE) に複数のデータ コンシューマーがあり、1つのコンシューマーがデータを読み取らずに終了した場合に発生する可能性のある無効なメモリアクセスの問題を修正しました#55881 @windtalker
- TTLタスクをキャンセルした際に、対応するSQLが強制終了されない問題を修正#56511 @lcwangchao
IMPORT INTO文を使用して一時テーブルをインポートするときに TiDB がパニックになる問題を修正しました #55970 @D3Hunter- クエリ条件
column IS NULLで一意インデックスにアクセスするときに、オプティマイザが行数を誤って 1 と推定する問題を修正しました。 #56116 @hawkingrei - 情報スキーマキャッシュミスにより、ステイル読み取りのクエリレイテンシーが増加する問題を修正しました。 #53428 @crazycs520
UPDATE文がENUM型の値を誤って更新する問題を修正しました #56832 @xhebox- 外部キーを含むテーブル構造をインポートするときに Plan Replayer がエラーを報告する可能性がある問題を修正しました。 #56456 @hawkingrei
tidb_ttl_job_enable変数が無効になった後、TTL タスクがキャンセルされない問題を修正#57404 @YangKeaoUPDATEまたはDELETE文に再帰 CTE が含まれている場合、文がエラーを報告したり、文が有効にならない可能性がある問題を修正しました。 #55666 @time-and-fateINFORMATION_SCHEMA.STATISTICSテーブルのSUB_PART値がNULLになる問題を修正しました #55812 @Defined2014- TiFlashシステムテーブルを照会するためのデフォルトのタイムアウトが短すぎる問題を修正#57816 @JaySon-Huang
default_collation_for_utf8mb4変数の値がSET NAMES文で機能しない問題を修正しました #56439 @Defined2014mysql.tidb_timerテーブルでタイマーを手動で削除すると、TTL 内部コルーチンがpanicになる可能性がある問題を修正しました。 #57112 @lcwangchaotidb_ddl_enable_fast_reorg経由でADD INDEXとCREATE INDEXの加速を有効にすると、Duplicate entryエラーが発生する可能性がある問題を修正しました。 #49233 @lance6716- 大規模なテーブルに非分散方式でインデックスを追加するときにインデックスのタイムスタンプが
0に設定される問題を修正#57980 @lance6716
TiKV
- 構成
resolved-ts.advance-ts-intervalが有効にならないため、TiKV が再起動すると、TiCDC と Point-in-time Recovery (PITR) のレプリケーションレイテンシーが大幅に増加する問題を修正しました。 #17107 @MyonKeminta - リソース制御をトリガーするときに一部のタスクで高いテールレイテンシーが発生する問題を修正しました #17589 @glorv
- リージョンをマージすると稀に TiKV がpanicを起こす可能性がある問題を修正#17840 @glorv
- ディスクがスタックしているときに TiKV が PD にハートビートを報告できない問題を修正しました #17939 @LykxSassinator
- Raftと RocksDB が異なるディスクにデプロイされている場合、RocksDB が配置されているディスクでは低速ディスク検出が機能しない問題を修正#17884 @LykxSassinator
- 古いレプリカがRaftスナップショットを処理するときに、遅い分割操作と新しいレプリカの即時削除によってトリガーされ、TiKV がpanicになる可能性がある問題を修正しました。 #17469 @hbisheng
RADIANS()またはDEGREES()関数を含むクエリを実行するとTiKVがpanicする可能性がある問題を修正しました#17852 @gengliqi- 多数のトランザクションが同じキーのロック解除待ち行列に入っていて、キーが頻繁に更新される場合、デッドロック検出への過度の圧力によって TiKV OOM 問題が発生する可能性がある問題を修正しました #17394 @MyonKeminta
- リージョンを分割した後、リーダーをすぐに選出できない問題を修正しました #17602 @LykxSassinator
- 読み取りスレッドがRaft EngineのMemTable内の古いインデックスにアクセスしたときに発生するpanic問題を修正しました。 #17383 @LykxSassinator
- 大きなテーブルやパーティションを削除した後に発生する可能性のあるフロー制御の問題を修正しました #17304 @Connor1996
- 構成
PD
- PD HTTPクライアントの再試行ロジックが効果がない可能性がある問題を修正#8499 @JmPotato
- 潜在的なセキュリティ脆弱性を修正するために、Gin Web Framework のバージョンを v1.9.1 から v1.10.0 にアップグレードしました#8643 @JmPotato
- etcdリーダー遷移中にPDがリーダーを素早く再選出できない問題を修正 #8823 @rleungx
replication.strictly-match-labelをtrueに設定するとTiFlash が起動しなくなる問題を修正 #8480 @rleungx- 同じストアID で繰り返し作成された場合に
evict-leader-schedulerが正常に動作しない問題を修正 #8756 @okJiang - 乱数ジェネレータの頻繁な作成によって発生するパフォーマンスジッターの問題を修正しました #8674 @rleungx
- ホットスポット キャッシュのメモリリーク問題を修正 #8698 @lhy1024
- ラベル統計のメモリリーク問題を修正 #8700 @lhy1024
- 削除されたリソースグループが監視パネルに引き続き表示される問題を修正しました #8716 @AndreMouche
- マイクロサービスモードでPDリーダーが切り替えられたときにスケジューリングサーバーでデータ競合が発生する可能性がある問題を修正しました #8538 @lhy1024
evict-leader-schedulerで間違ったパラメータを使用すると、PD がエラーを正しく報告せず、一部のスケジューラが利用できなくなる問題を修正しました#8619 @rleungx- リソースグループセレクターがどのパネルでも有効にならない問題を修正しました #56572 @glorv
TiFlash
- 複数のリージョンがスナップショットを同時に適用しているときに発生する誤ったリージョン重複チェックの失敗によりTiFlash がpanicになる可能性がある問題を修正しました。 #9329 @CalvinNeo
- 2番目のパラメータが負の場合に
SUBSTRING()関数が誤った結果を返す問題を修正しました #9604 @guo-shaoge - 遅延マテリアライゼーションが有効になっている場合に一部のクエリでエラーが報告される可能性がある問題を修正#9472 @Lloyd-Pottiger
- テーブルに無効な文字を含むデフォルト値を持つビット型の列が含まれている場合、 TiFlash がテーブルスキーマを解析できない問題を修正しました。 #9461 @Lloyd-Pottiger
- TiFlashでサポートされていない一部の JSON関数がTiFlash にプッシュダウンされる問題を修正しました #9444 @windtalker
- 特定のケースで関数
CAST AS DECIMALの結果の符号が正しくない問題を修正#9301 @guo-shaoge - ストレージとコンピューティングの分離アーキテクチャで、 TiFlash書き込みノードの読み取りスナップショットがタイムリーに解放されない問題を修正しました。 #9298 @JinheLin
SUBSTRING()関数が特定の整数型に対してposとlen引数をサポートせず、クエリエラーが発生する問題を修正しました #9473 @gengliqiCAST()関数を使用して文字列をタイムゾーンまたは無効な文字を含む日付時刻に変換すると、結果が正しくなくなる問題を修正しました#8754 @solotzgLPAD()とRPAD()関数が、場合によっては誤った結果を返す問題を修正しました#9465 @guo-shaoge- ストレージとコンピューティングの分離アーキテクチャで新しい列をクエリすると誤った結果が返される可能性がある問題を修正しました #9665 @zimulala
ツール
Backup & Restore (BR)
- ログに暗号化された情報が出力される問題を修正 #57585 @kennytm
- AWS EBS に基づくスナップショットバックアップが準備フェーズで失敗し、バックアップが停止する可能性がある問題を修正しました。 #52049 @YuJuncen
- バックアップと復元のチェックポイントパスが一部の外部ストレージと互換性がない問題を修正#55265 @Leavrth
k8s.io/apiライブラリのバージョンをアップグレードして潜在的なセキュリティ脆弱性を修正します #57790 @BornChanger- クラスター内に多数のテーブルがあるが、実際のデータサイズが小さい場合に PITR タスクが
Information schema is out of dateエラーを返す可能性がある問題を修正しました#57743 @Tristan1900
TiCDC
- PullerモジュールのResolved TSレイテンシーモニタリングで誤った値が表示される問題を修正しました #11561 @wlwilliamx
enable-table-across-nodesを有効にすると、リージョン分割中にテーブルの一部のスパン レプリケーションタスクが失われる可能性がある問題を修正しました。 #11675 @wk989898- REDOモジュールがエラーを正しく報告できない問題を修正しました #11744 @CharlesCheung96
- TiDB DDL 所有者の変更中に DDL タスクのスキーマバージョンが非増分になったときに、TiCDC が誤って DDL タスクを破棄する問題を修正#11714 @wlwilliamx
- チェンジフィードチェックポイントのbarrier-ts監視メトリックが不正確になる可能性がある問題を修正しました#11553 @3AceShowHand
TiDB Data Migration (DM)