TiDB 6.5.1 リリースノート
発売日:2023年3月10日
TiDB バージョン: 6.5.1
クイックアクセス: クイックスタート | 本番環境へのデプロイ
互換性の変更
2023年2月20日以降、TiDBおよびTiDB Dashboardの新しいバージョン(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
ツール
Backup & Restore (BR)
TiCDC
- プルベースのシンクを有効にしてシステムスループットを最適化します#8232 @Rustin170506
- GCS 互換または Azure 互換のオブジェクトストレージへの REDO ログの保存をサポート #7987 @CharlesCheung96
- シンクのスループットを向上させるために、非同期モードでMQシンクとMySQLシンクを実装します#5928 @amyangfei @CharlesCheung96
バグ修正
TiDB
pessimistic-auto-commit設定項目がPointGetクエリで有効にならない問題を修正しました #39928 @zyguan- 長いセッション接続で
INSERTまたはREPLACE文がpanicする可能性がある問題を修正しました #40351 @winoros auto analyzeが正常なシャットダウンに長い時間がかかる問題を修正#40038 @xuyifangreeneyes- DDL取り込み中にデータ競合が発生する可能性がある問題を修正 #40970 @tangenta
- インデックスを追加するとデータ競合が発生する可能性がある問題を修正しました #40879 @tangenta
- テーブルに多数のリージョンがある場合に無効なリージョンキャッシュが原因でインデックスの追加操作が非効率になる問題を修正しました。 #38436 @tangenta
- 初期化中にTiDBがデッドロックする可能性がある問題を修正#40408 @Defined2014
- TiDB がキー範囲を構築するときに
NULL値を不適切に処理するため、予期しないデータが読み取られる問題を修正しました。 #40158 @tiancaiamao - メモリの再利用により、システム変数の値が誤って変更される可能性がある問題を修正#40979 @lcwangchao
- テーブルの主キーに
ENUM列が含まれている場合にTTLタスクが失敗する問題を修正しました #40456 @lcwangchao - 一意インデックスを追加するときに TiDB がパニックを起こす問題を修正しました #40592 @tangenta
- 同じテーブルを同時に切り捨てるときに、一部の切り捨て操作が MDL によってブロックされない問題を修正#40484 @wjhuang2016
- 動的トリミングモードでパーティションテーブルにグローバルバインディングが作成された後にTiDBが再起動できない問題を修正しました #40368 @Yisaer
- "cursor read"メソッドを使用してデータを読み取ると、GC のためにエラーが返される可能性がある問題を修正しました。 #39447 @zyguan
SHOW PROCESSLISTの結果でEXECUTE情報が null になる問題を修正しました #41156 @YangKeaoglobalMemoryControlクエリを強制終了しているときに、KILL操作が終了しない可能性がある問題を修正しました #41057 @wshwsh12indexMergeエラーに遭遇した後に TiDB がpanicする可能性がある問題を修正#41047 #40877 @guo-shaoge @windtalkerANALYZE文がKILLで終了する可能性がある問題を修正しました #41825 @XuHuaiyuindexMergeで goroutine リークが発生する可能性がある問題を修正しました #41605 @guo-shaoge #41545- 符号なしの
TINYINT/SMALLINT/INT値を0より小さいDECIMAL/FLOAT/DOUBLE値と比較するときに誤った結果になる可能性がある問題を修正しました。 #41736 @LittleFall tidb_enable_reuse_chunkを有効にするとメモリリークが発生する可能性がある問題を修正 #40987 @guo-shaoge- タイムゾーンでのデータ競合によりデータインデックスの不整合が発生する可能性がある問題を修正#40710 @wjhuang2016
batch cop実行中のスキャン詳細情報が不正確になる可能性がある問題を修正#41582 @you06copの上限同時実行数が制限されない問題を修正 #41134 @you06cursor read分のstatement contextが誤ってキャッシュされる問題を修正 #39998 @zyguan- メモリリークとパフォーマンスの低下を防ぐため、古くなったリージョンキャッシュを定期的にクリーンアップします#40355 @sticnarf
year <cmp> const含むクエリでプランキャッシュを使用すると間違った結果が返される可能性がある問題を修正しました #41626 @qw4990- 大きな範囲と大量のデータ変更を伴うクエリを実行するときに大きな推定エラーが発生する問題を修正#39593 @time-and-fate
- Plan Cache の使用時に、一部の条件が Join 演算子を通じてプッシュダウンできない問題を修正しました。 #38205 @qw4990 #40093
- IndexMerge プランが SET 型の列 に誤った範囲を生成する可能性がある問題を修正しました #41293 @time-and-fate #41273
- プランキャッシュが
int_col <cmp> decimal条件 を処理するときにフルスキャン プランをキャッシュする可能性がある問題を修正しました #41032 @qw4990 #40679 - プランキャッシュが
int_col in (decimal...)条件を処理するときにフルスキャン プランをキャッシュする可能性がある問題を修正しました #40224 @qw4990 ignore_plan_cacheヒントがINSERT文 では機能しない可能性がある問題を修正しました #39717 @qw4990 #40079- 自動分析により 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
- インデックスを追加するときに
Pessimistic lock not foundエラーが発生する問題を修正しました #41515 @tangenta - 一意インデックスを追加するときに誤って報告される重複キーエラーの問題を修正しました #41630 @tangenta
- TiDB で
pagingを使用するとパフォーマンスが低下する問題を修正 #40741 @solotzg
TiKV
- Resolved TSによりネットワークトラフィックが増加する問題を修正#14092 @overvenus
- 悲観的DML 失敗後のDML実行中にTiDBとTiKV間のネットワーク障害によって発生するデータの不整合の問題を修正しました。 #14038 @MyonKeminta
const Enum型を他の型にキャストするときに発生するエラーを修正しました #14156 @wshwsh12- Cop タスクのページングが不正確になる問題を修正#14254 @you06
batch_copモードでscan_detailフィールドが不正確になる問題を修正 #14109 @you06- Raft Engineの潜在的なエラーを修正しました。このエラーにより、TiKV がRaftデータの破損を検出し、TiKV の再起動に失敗する可能性があります。
#14338@tonyxuqqi
PD
TiFlash
- 直交積を計算するときにセミ結合が過剰なメモリを使用する問題を修正しました #6730 @gengliqi
- TiFlashログ検索が遅すぎる問題を修正#6829 @hehechen
- 繰り返し再起動するとファイルが誤って削除され、 TiFlash が起動できなくなる問題を修正#6486 @JaySon-Huang
- 新しい列を追加した後にクエリを実行すると、 TiFlash がエラーを報告する可能性がある問題を修正しました。 #6726 @JaySon-Huang
- TiFlashがIPv6構成をサポートしない問題を修正 #6734 @ywqzzy
ツール
Backup & Restore (BR)
- PDとtidb-server間の接続障害により、PITRバックアップの進行が進まない問題を修正しました。 #41082 @YuJuncen
- PDとTiKV 間の接続障害によりTiKVがPITRタスクをリッスンできない問題を修正しました #14159 @YuJuncen
- PITRがPDクラスタの構成変更をサポートしない問題を修正 #14165 @YuJuncen
- PITR機能がCAバンドルをサポートしない問題を修正 #38775 @3pointer
- PITRバックアップタスクを削除すると、残りのバックアップデータによって新しいタスクでデータの不整合が発生する問題を修正しました。 #40403 @joccau
- BRが
backupmetaファイルを解析するときにpanicを引き起こす問題を修正しました #40878 @MoCuishle28 - リージョンサイズ取得に失敗したために復元が中断される問題を修正しました #36053 @YuJuncen
- TiDBクラスタにPITRバックアップタスクがない場合に頻度
resolve lockが高すぎる問題を修正 #40759 @joccau - ログバックアップが実行中のクラスタにデータを復元すると、ログバックアップファイルが復元できなくなる問題を修正#40797 @Leavrth
- 完全バックアップの失敗後にチェックポイントからバックアップを再開しようとしたときに発生するpanicの問題を修正#40704 @Leavrth
- PITRエラーが上書きされる問題を修正 #40576 @Leavrth
- PITR バックアップタスクで、先行所有者と GC 所有者が異なる場合にチェックポイントが進まない問題を修正しました#41806 @joccau
TiCDC
- TiKV または TiCDC ノードスケールインまたはスケールアウトなどの特別なシナリオで、changefeed がスタックする可能性がある問題を修正しました。 #8174 @hicqu
- REDOログのストレージパスで事前チェックが実行されない問題を修正 #6335 @CharlesCheung96
- S3ストレージ障害に対して、REDO ログが許容できる期間が不十分である問題を修正しました #8089 @CharlesCheung96
transaction-atomicityとprotocol構成ファイル経由で更新できない問題を修正 #7935 @CharlesCheung96- TiCDC が過度に多数のテーブルを複製するとチェックポイントが進めなくなる問題を修正しました #8004 @overvenus
- レプリケーション遅延が過度に高い場合に、REDOログを適用するとOOMが発生する可能性がある問題を修正#8085 @CharlesCheung96
- REDOログがメタへの書き込みを有効にするとパフォーマンスが低下する問題を修正しました #8074 @CharlesCheung96
- TiCDCが大きなトランザクションを分割せずにデータを複製するとコンテキスト期限が超過するバグを修正 #7982 @hi-rustin
- PDが異常なときにチェンジフィードを一時停止すると、誤ったステータスになる問題を修正しました。 #8330 @sdojjy
- TiDB または MySQL シンクにデータを複製するときに、主キーのない非 NULL ユニーク インデックスを持つ列に
CHARACTER SETを指定した場合に発生するデータの不整合を修正しました。 #8420 @asddongmen - テーブルスケジューリングとブラックホールシンクのpanic問題を修正#8024 #8142 @hicqu
TiDB Data Migration (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