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