TiDB 6.5.1 リリースノート
発売日:2023年3月10日
TiDB バージョン: 6.5.1
互換性の変更
2023年2月20日以降、TiDBおよびTiDBダッシュボードの新しいバージョン(v6.5.1を含む)では、 テレメトリ機能デフォルトで無効化され、使用状況情報は収集されず、PingCAPと共有されません。これらのバージョンにアップグレードする前に、クラスターがデフォルトのテレメトリ設定を使用している場合、アップグレード後にテレメトリ機能が無効化されます。具体的なバージョンについては、 TiDB リリース タイムライン参照してください。
tidb_enable_telemetryシステム変数のデフォルト値がONからOFFに変更されます。- TiDB
enable-telemetry構成項目のデフォルト値がtrueからfalseに変更されます。 - PD
enable-telemetry構成項目のデフォルト値がtrueからfalseに変更されます。
v1.11.3 以降、新規に導入されたTiUPではテレメトリ機能がデフォルトで無効化され、使用状況情報は収集されません。v1.11.3 より前のバージョンのTiUPから v1.11.3 以降のバージョンにアップグレードした場合、テレメトリ機能はアップグレード前と同じ状態を維持します。
潜在的な正確性の問題のため、パーティション化されたテーブルでの列タイプの変更はサポートされなくなりました#40620 @ mjonss
TiKV
advance-ts-interval設定項目のデフォルト値が1sから20sに変更されました。この設定項目を変更することで、レイテンシーを短縮し、 ステイル読み取りデータの適時性を向上させることができます。詳細はステイル読み取りのレイテンシーを削減ご覧ください。ネットワーク トラフィックを削減するために、TiKV
cdc.min-ts-interval構成項目の既定値が"200ms"から"1s"に変更されました。
改善点
TiDB
v6.5.1以降、 TiDB Operator v1.4.3以降でデプロイされたTiDBクラスタはIPv6アドレスをサポートします。これにより、TiDBはより広いアドレス空間をサポートし、セキュリティとネットワークパフォーマンスを向上させることができます。
- IPv6 アドレスの完全サポート: TiDB は、クライアント接続、ノード間の内部通信、外部システムとの通信など、すべてのネットワーク接続で IPv6 アドレスの使用をサポートします。
- デュアルスタックのサポート:まだIPv6への完全移行の準備が整っていない場合でも、TiDBはデュアルスタックネットワークをサポートしています。つまり、同じTiDBクラスタ内でIPv4とIPv6の両方のアドレスを使用し、設定によってIPv6を優先するネットワーク展開モードを選択できます。
IPv6 の導入の詳細については、 Kubernetes 上の TiDB ドキュメント参照してください。
TiDB クラスタの初期化時に実行される SQL スクリプトの指定をサポート#35624 @ morgo
TiDB v6.5.1 では、新しい設定項目
initialize-sql-fileが追加されました。TiDB クラスタを初めて起動する際に、コマンドラインパラメータ--initialize-sql-fileを設定することで、実行する SQL スクリプトを指定できます。この機能は、システム変数の値の変更、ユーザーの作成、権限の付与などの操作を行う際に使用できます。詳細については、 ドキュメント参照してください。メモリリークとパフォーマンスの低下を防ぐため、期限切れのリージョンキャッシュを定期的にクリアします#40461 @ sticnarf
PROXYプロトコルフォールバックモードを有効にするかどうかを制御する新しい設定項目
--proxy-protocol-fallbackableを追加します。このパラメータをtrueに設定すると、TiDBはPROXYクライアント接続とPROXYプロトコルヘッダー#41409 @ blacktear23のないクライアント接続を受け入れます。範囲外推定の最適化戦略を改善する#39008 @ time-and-fate
TiKV
TiFlash
ツール
バックアップと復元 (BR)
TiCDC
- プルベースのシンクを有効にしてシステムスループットを最適化します#8232 @ Rustin170506
- GCS 互換または Azure 互換のオブジェクトstorage#7987 @ CharlesCheung96への REDO ログの保存をサポート
- シンクのスループットを向上させるために、非同期モードでMQシンクとMySQLシンクを実装します#5928 @ amyangfei @ CharlesCheung96
バグ修正
TiDB
pessimistic-auto-commit構成項目がポイント取得クエリ#39928 @ zyguanで有効にならない問題を修正しました- 長いセッション接続#40351 @ winorosで
INSERTまたはREPLACEステートメントがpanic可能性がある問題を修正しました auto analyze正常なシャットダウンに長い時間がかかる問題を修正#40038 @ xuyifangreeneyes- DDL取り込み#40970 @ tangenta中にデータ競合が発生する可能性がある問題を修正
- インデックスを#40879 @ tangentaで追加するとデータ競合が発生する可能性がある問題を修正しました
- テーブル#38436 @ tangentaに多数のリージョンがある場合に無効なリージョンキャッシュが原因でインデックスの追加操作が非効率になる問題を修正しました。
- 初期化中にTiDBがデッドロックする可能性がある問題を修正#40408 @ Defined2014
- TiDB がキー範囲#40158 @ tiancaiamaoを構築するときに
NULL値を不適切に処理するため、予期しないデータが読み取られる問題を修正しました。 - メモリの再利用により、システム変数の値が誤って変更される可能性がある問題を修正#40979 @ lcwangchao
- テーブルの主キーに
ENUM列#40456 @ lcwangchaoが含まれている場合にTTLタスクが失敗する問題を修正しました - ユニークインデックス#40592 @ tangentaを追加するときに TiDB がパニックを起こす問題を修正しました
- 同じテーブルを同時に切り捨てるときに、一部の切り捨て操作が MDL によってブロックされない問題を修正#40484 @ wjhuang2016
- 動的トリミングモード#40368 @ Yisaerでパーティションテーブルにグローバルバインディングが作成された後にTiDBが再起動できない問題を修正しました
- 「カーソル読み取り」メソッドを使用してデータを読み取ると、GC #39447 @ zyguanのためにエラーが返される可能性がある問題を修正しました。
SHOW PROCESSLIST#41156 @ YangKeaoの結果でEXECUTE情報が null になる問題を修正しましたglobalMemoryControlクエリを強制終了しているときに、KILL操作が#41057 @ wshwsh12で終了しない可能性がある問題を修正しましたindexMergeエラーに遭遇した後に TiDB がpanic可能性がある問題を修正#41047 #40877 @ guo-shaoge @ windtalkerANALYZE文がKILL#41825 @ XuHuaiyuで終了する可能性がある問題を修正しましたindexMerge#41545 #41605 @ guo-shaogeで goroutine リークが発生する可能性がある問題を修正しました- 符号なしの
TINYINT/SMALLINT/INT値を0#41736 @ LittleFallより小さいDECIMAL/FLOAT/DOUBLE値と比較するときに誤った結果になる可能性がある問題を修正しました。 tidb_enable_reuse_chunk有効にするとメモリリーク#40987 @ guo-shaogeが発生する可能性がある問題を修正- タイムゾーンでのデータ競合によりデータインデックスの不整合が発生する可能性がある問題を修正#40710 @ wjhuang2016
batch cop実行中のスキャン詳細情報が不正確になる可能性がある問題を修正#41582 @ you06copの上限同時実行数が#41134 @ you06に制限されない問題を修正cursor read分のstatement contextが誤って#39998 @ zyguanキャッシュされる問題を修正- メモリリークとパフォーマンスの低下を防ぐため、古くなったリージョンキャッシュを定期的にクリーンアップします#40355 @ sticnarf
year <cmp> const含むクエリでプラン キャッシュを使用すると間違った結果#41626 @ qw4990が返される可能性がある問題を修正しました- 大きな範囲と大量のデータ変更を伴うクエリを実行するときに大きな推定エラーが発生する問題を修正#39593 @ time-and-fate
- Plan Cache #40093 #38205 @ qw4990の使用時に、一部の条件が Join 演算子を通じてプッシュダウンできない問題を修正しました。
- IndexMerge プランが SET 型の列#41273 #41293 @ time-and-fateに誤った範囲を生成する可能性がある問題を修正しました
- プランキャッシュが
int_col <cmp> decimal条件#40679 #41032 @ qw4990を処理するときにフルスキャン プランをキャッシュする可能性がある問題を修正しました - プランキャッシュが
int_col in (decimal...)条件#40224 @ qw4990を処理するときにフルスキャン プランをキャッシュする可能性がある問題を修正しました ignore_plan_cacheヒントがINSERTステートメント#40079 #39717 @ qw4990では機能しない可能性がある問題を修正しました- 自動分析により TiDB が#40038 @ xuyifangreeneyesで終了できなくなる問題を修正しました
- パーティションテーブル#40309 @ winorosの符号なし主キーに不正なアクセス間隔が構築される可能性がある問題を修正しました。
- プランキャッシュがシャッフル演算子をキャッシュし、誤った結果を返す可能性がある問題を修正#38335 @ qw4990
- パーティションテーブルにグローバルバインディングを作成すると、TiDB が#40368 @ Yisaerで起動に失敗する可能性がある問題を修正しました。
- スローログ#41458 @ time-and-fateでクエリプラン演算子が欠落する可能性がある問題を修正しました
- 仮想列を持つ TopN 演算子が誤って TiKV またはTiFlash #41355 @ Dousir9にプッシュダウンすると、誤った結果が返される可能性がある問題を修正しました。
- インデックス#40698 #40730 #41459 #40464 #40217 @ tangentaを追加するときにデータの不整合が発生する問題を修正しました
- インデックス#41515 @ tangentaを追加するときに
Pessimistic lock not foundエラーが発生する問題を修正しました - ユニークインデックス#41630 @ tangentaを追加するときに誤って報告される重複キーエラーの問題を修正しました
- TiDB #40741 @ solotzgで
paging使用するとパフォーマンスが低下する問題を修正
TiKV
- 解決されたTSによりネットワークトラフィックが増加する問題を修正#14092 @ overvenus
- 悲観的DML #14038 @ MyonKeminta失敗後のDML実行中にTiDBとTiKV間のネットワーク障害によって発生するデータの不整合の問題を修正しました。
const Enum型を他の型#14156 @ wshwsh12にキャストするときに発生するエラーを修正しました- 警官タスクのページングが不正確になる問題を修正#14254 @ you06
batch_copモード#14109 @ you06でscan_detailフィールドが不正確になる問題を修正- Raft Engineの潜在的なエラーを修正しました。このエラーにより、TiKV がRaftデータの破損を検出し、 #14338 @ tonyxuqqiの再起動に失敗する可能性があります。
PD
TiFlash
- 直交積#6730 @ gengliqiを計算するときにセミ結合が過剰なメモリを使用する問題を修正しました
- TiFlashログ検索が遅すぎる問題を修正#6829 @ hehechen
- 繰り返し再起動するとファイルが誤って削除され、 TiFlash が起動できなくなる問題を修正#6486 @ JaySon-Huang
- 新しい列#6726 @ JaySon-Huangを追加した後にクエリを実行すると、 TiFlash がエラーを報告する可能性がある問題を修正しました。
- TiFlashがIPv6構成#6734 @ ywqzzyをサポートしない問題を修正
ツール
バックアップと復元 (BR)
- PDとtidb-server間の接続障害により、PITRバックアップの進行が#41082 @ YuJuncenに進まない問題を修正しました。
- PDとTiKV #14159 @ YuJuncen間の接続障害によりTiKVがPITRタスクをリッスンできない問題を修正しました
- PITRがPDクラスタ#14165 @ YuJuncenの構成変更をサポートしない問題を修正
- PITR機能がCAバンドル#38775 @ 3pointerをサポートしない問題を修正
- PITRバックアップタスクを削除すると、残りのバックアップデータによって新しいタスク#40403 @ joccauでデータの不整合が発生する問題を修正しました。
- BRが
backupmetaファイル#40878 @ MoCuishle28を解析するときにpanicを引き起こす問題を修正しました - リージョンサイズ#36053 @ YuJuncen取得に失敗したために復元が中断される問題を修正しました
- TiDBクラスタ#40759 @ joccauにPITRバックアップタスクがない場合に頻度
resolve lockが高すぎる問題を修正 - ログバックアップが実行中のクラスタにデータを復元すると、ログバックアップファイルが復元できなくなる問題を修正#40797 @ Leavrth
- 完全バックアップの失敗後にチェックポイントからバックアップを再開しようとしたときに発生するpanicの問題を修正#40704 @ Leavrth
- PITRエラーが#40576 @ Leavrthで上書きされる問題を修正
- PITR バックアップ タスクで、先行所有者と GC 所有者が異なる場合にチェックポイントが進まない問題を修正しました#41806 @ joccau
TiCDC
- TiKV または TiCDC ノード#8174 @ hicquスケールインまたはスケールアウトなどの特別なシナリオで、changefeed がスタックする可能性がある問題を修正しました。
- REDOログ#6335 @ CharlesCheung96のstorageパスで事前チェックが実行されない問題を修正
- S3storage障害#8089 @ CharlesCheung96に対して、REDO ログが許容できる期間が不十分である問題を修正しました
transaction-atomicityとprotocol構成ファイル#7935 @ CharlesCheung96経由で更新できない問題を修正- TiCDC が過度に多数のテーブル#8004 @ overvenusを複製するとチェックポイントが進めなくなる問題を修正しました
- レプリケーション遅延が過度に高い場合に、REDOログを適用するとOOMが発生する可能性がある問題を修正#8085 @ CharlesCheung96
- REDOログがメタ#8074 @ CharlesCheung96への書き込みを有効にするとパフォーマンスが低下する問題を修正しました
- TiCDCが大きなトランザクション#7982をハイラスティンに分割せずにデータを複製するとコンテキスト期限が超過するバグを修正
- PDが異常なときにチェンジフィードを一時停止すると、誤ったステータス#8330 @ sdojjyになる問題を修正しました。
- TiDB または MySQL シンクにデータを複製するときに、主キー#8420 @ asddongmenのない非 NULL ユニーク インデックスを持つ列に
CHARACTER SET指定した場合に発生するデータの不整合を修正しました。 - テーブルスケジューリングとブラックホールシンクのpanic問題を修正#8024 #8142 @ hicqu
TiDB データ移行 (DM)
TiDB Lightning
- TiDB Lightningの事前チェックで、以前に失敗したインポートによって残されたダーティデータを見つけられない問題を修正#39477 @ dsdashun
- TiDB Lightningが分割領域フェーズ#40934 @ lance6716でパニックになる問題を修正
- 競合解決ロジック(
duplicate-resolution)によってチェックサム#40657 @ sleepymoleの不一致が発生する可能性がある問題を修正しました。 - 並列インポート中に、最後のTiDB Lightningインスタンスを除くすべてのインスタンスがローカル重複レコードに遭遇した場合に、 TiDB Lightning が競合解決を誤ってスキップする可能性がある問題を修正しました#40923 @ lichunzhu
- ローカルバックエンドモードでデータをインポートする際に、インポートされたターゲットテーブルの複合主キーに
auto_random列があり、ソースデータ#41454 @ D3Hunterでその列の値が指定されていない場合、ターゲット列が自動的にデータを生成しない問題を修正しました。