TiDB 5.2.4 リリースノート
リリース日:2022年4月26日
TiDB バージョン: 5.2.4
互換性の変更
TiDB
- システム変数
tidb_analyze_version
のデフォルト値を2
から1
に変更します#31748
- システム変数
TiKV
- 不要なRaftログを圧縮するための時間間隔 (デフォルトでは
"2s"
) を制御するにはraft-log-compact-sync-interval
を追加します#11404 - デフォルト値の
raft-log-gc-tick-interval
を"10s"
から"3s"
に変更します#11404 storage.flow-control.enable
をtrue
に設定すると、storage.flow-control.hard-pending-compaction-bytes-limit
の値がrocksdb.(defaultcf|writecf|lockcf).hard-pending-compaction-bytes-limit
#11424の値を上書きします。
- 不要なRaftログを圧縮するための時間間隔 (デフォルトでは
ツール
TiDB Lightning
- データ インポート#30018後に空のリージョンが多すぎるのを避けるために、デフォルト値
regionMaxKeyCount
を 1_440_000 から 1_280_000 に変更します。
- データ インポート#30018後に空のリージョンが多すぎるのを避けるために、デフォルト値
改善点
TiKV
ツール
TiCDC
- TiCDC が Kafka パーティション間でメッセージをより均等に分散できるように、Kafka Sink のデフォルト値
partition-num
を#3337に変更します。 - TiKV ストアがダウンした場合に KV クライアントが回復するまでの時間を短縮します#3191
- Grafana #4891に
Lag analyze
パネルを追加する - Kafka プロデューサの構成パラメータを公開して、TiCDC #4385で構成できるようにします。
- 変更フィードを再開するための指数バックオフ メカニズムを追加します#3329
- 「EventFeed 再試行速度制限」ログの数を減らす#4006
- デフォルト値の
max-message-bytes
を 10M #4041に設定します。 no owner alert
、mounter row
、table sink total row
、buffer sink total row
などの Prometheus および Grafana モニタリング メトリックとアラートを追加します#4054 #1606- Grafana ダッシュボードで複数の Kubernetes クラスターをサポート#4665
- キャッチアップ ETA (到着予定時刻) を
changefeed checkpoint
モニタリング指標に追加します#5232
- TiCDC が Kafka パーティション間でメッセージをより均等に分散できるように、Kafka Sink のデフォルト値
バグの修正
TiDB
- Enum 値#32428に対する Nulleq 関数の間違った範囲計算結果を修正しました。
- INDEX HASH JOIN が
send on closed channel
エラー#31129を返す問題を修正 - 同時に列の型を変更すると、スキーマとデータの間で不整合が発生する問題を修正します#31048
- 楽観的トランザクション モード#30410での潜在的なデータ インデックスの不一致の問題を修正します。
- JSON 型の列が
CHAR
型の列#29401に結合すると SQL 操作がキャンセルされる問題を修正 - トランザクションを使用する場合と使用しない場合に、ウィンドウ関数が異なる結果を返す可能性がある問題を修正します#29947
- SQL ステートメントに自然結合#25041含まれる場合、予期せず
Column 'col_name' in field list is ambiguous
エラーが報告される問題を修正します。 Decimal
~String
#29417をキャストする際に長さ情報が間違っている問題を修正tidb_enable_vectorized_expression
の値が異なるためにGREATEST
関数が一貫性のない結果を返す問題を修正します (on
またはoff
に設定) #29434left join
#31321を使用して複数のテーブルのデータを削除した場合の誤った結果を修正- TiDB が重複したタスクをTiFlash #32814にディスパッチする可能性があるバグを修正
- クエリ#31636を実行するときの MPP タスク リストが空のエラーを修正しました。
- innerWorkerpanic#31494によって引き起こされるインデックス結合の間違った結果を修正します。
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
ステートメントを実行するとpanic#28078が発生する問題を修正Order By
#30271の最適化による間違ったクエリ結果を修正ENUM
型列#27831でJOIN
実行したときに発生する可能性がある間違った結果を修正しました。ENUM
データ型#29357でCASE WHEN
関数を使用するときのpanicを修正しました。- ベクトル化された式#29244の関数
microsecond
の誤った結果を修正します。 - ウィンドウ関数により TiDB がエラーを報告する代わりにpanicを引き起こす問題を修正します#30326
- 特定の場合に Merge Join 演算子が間違った結果を取得する問題を修正します#33042
- 相関サブクエリが定数#32089を返すと TiDB が間違った結果を取得する問題を修正
ENUM
列またはSET
列のエンコーディングが間違っているため、TiDB が間違ったデータを書き込む問題を修正します#32302- TiDB #31638で新しい照合順序が有効になっている場合、
ENUM
またはSET
列のMAX
またはMIN
関数が間違った結果を返す問題を修正します。 - IndexHashJoin オペレーターが正常に終了しない問題を修正します#31062
- テーブルに仮想列#30965がある場合、TiDB が間違ったデータを読み取る可能性がある問題を修正
- スロークエリログ#30309でログレベルの設定が反映されない問題を修正
- 場合によっては、パーティション化されたテーブルがインデックスを完全に使用してデータをスキャンできない問題を修正します#33966
- TiDB のバックグラウンド HTTP サービスが正常に終了せず、クラスターが異常な状態になる場合がある問題を修正します#30571
- TiDB が予期せず認証失敗のログを多数出力する場合がある問題を修正#29709
- システム変数
max_allowed_packet
が有効にならない問題を修正#31422 - 自動 ID が範囲#29483の外にある場合、
REPLACE
ステートメントが他の行を誤って変更する問題を修正します。 - スロークエリログが正常にログ出力できず、メモリを過剰に消費する可能性がある問題を修正#32656
- NATURAL JOIN の結果に予期しない列が含まれる場合がある問題を修正#24981
- データ#29711のクエリにプレフィックス列インデックスが使用されている場合、1 つのステートメントで
ORDER BY
とLIMIT
を一緒に使用すると間違った結果が出力される可能性がある問題を修正します。 - 楽観的トランザクションのリトライ時にDOUBLE型の自動インクリメント列が変更される場合がある問題を修正#29892
- STR_TO_DATE 関数がマイクロ秒部分の前のゼロを正しく処理できない問題を修正します#30078
- TiFlash は空の範囲を持つテーブルの読み取りをまだサポートしていませんが、 TiFlashを使用して空の範囲を持つテーブルをスキャンすると、TiDB が間違った結果を取得する問題を修正します#33083
TiKV
- 古いメッセージによって TiKV がpanicになるバグを修正#12023
- メモリメトリクス#12160のオーバーフローによって引き起こされる断続的なパケット損失とメモリ不足 (OOM) の問題を修正します。
- TiKV が Ubuntu 18.04 でプロファイリングを実行するときに発生する潜在的なpanicの問題を修正します#9765
- 間違った文字列一致#12329が原因で tikv-ctl が間違った結果を返す問題を修正
- レプリカの読み取りが線形化可能性#12109に違反する可能性があるバグを修正
- TiKV が 2 年以上実行されている場合にpanicになる可能性があるバグを修正#11940
- フロー制御が有効で、
level0_slowdown_trigger
が明示的に設定されている場合の QPS ドロップの問題を修正します#11424 - cgroup コントローラーがマウントされていないときに発生するpanicの問題を修正します#11569
- 遅れているリージョンピア#11526でのリージョンのマージによって発生する可能性のあるメタデータの破損を修正します。
- TiKVの動作停止後にResolved TSのレイテンシーが増加する問題を修正#11351
- 極端な条件でリージョンのマージ、ConfChange、およびスナップショットが同時に発生したときに発生するpanicの問題を修正します#11475
- tikv-ctl が正しいリージョン関連情報を返せないバグを修正#11393
- 10 進数の除算結果が 0 の場合の負号の問題を修正します#29586
- 悲観的トランザクションモードでプリライトリクエストを再試行すると、まれにデータ不整合のリスクが発生する可能性がある問題を修正します#11187
- 統計スレッド#11195のデータ監視によって発生するメモリリークを修正しました。
- TiKV メトリクス#11299でインスタンスごとの gRPC リクエストの平均レイテンシーが不正確である問題を修正します。
- ピアのステータスが
Applying
#11746のときにスナップショット ファイルを削除することによって引き起こされるpanicの問題を修正します。 - GC ワーカーがビジー状態#11903の場合、TiKV が一定範囲のデータを削除できない (内部コマンド
unsafe_destroy_range
が実行されることを意味します) というバグを修正します。 - 初期化されていないレプリカを削除すると古いレプリカが再作成される可能性がある問題を修正します#10533
- TiKV が逆テーブル スキャンを実行するときに TiKV がメモリロックを検出できない問題を修正します#11440
- コルーチンの実行が速すぎる場合に時折発生するデッドロックの問題を修正します#11549
- ピアを破棄するとレイテンシーが長くなる可能性がある問題を修正#10210
- マージ対象のターゲットリージョンが無効であるため、TiKV がパニックを起こして予期せずピアを破棄する問題を修正します#12232
- リージョン#12048をマージするときに、ターゲット ピアが初期化されずに破棄されたピアに置き換えられるときに発生する TiKVpanicの問題を修正します。
- スナップショットの適用が中止されたときに発生する TiKVpanicの問題を修正します#11618
- オペレーターの実行が失敗した場合、TiKV が送信されるスナップショットの数を正しく計算できないバグを修正#11341
PD
TiFlash
- MPP タスクがスレッドを永久にリークする可能性があるバグを修正#4238
- 複数値式#4016で
IN
の結果が正しくない問題を修正 - 日付形式で
'\n'
無効な区切り文字#4036として識別される問題を修正します。 - 重い読み取りワークロードで列を追加した後の潜在的なクエリ エラーを修正#3967
- 無効なstorageディレクトリ構成が予期せぬ動作を引き起こすバグを修正#4093
- 一部の例外が正しく処理されないバグを修正#4101
STR_TO_DATE()
関数がマイクロ秒#3557を解析する際に先頭のゼロを誤って処理するバグを修正INT
からDECIMAL
にキャストするとオーバーフローが発生する可能性がある問題を修正#3920DATETIME
からDECIMAL
#4151をキャストするときに発生する間違った結果を修正FLOAT
~DECIMAL
#3998キャスト時に発生するオーバーフローを修正- TiFlashと TiDB または TiKV #3475で
CastStringAsReal
動作が矛盾する問題を修正 - TiFlashと TiDB または TiKV #3619で
CastStringAsDecimal
動作が矛盾する問題を修正 - TiFlashの再起動後に
EstablishMPPConnection
エラーが返されることがある問題を修正#3615 - TiFlashレプリカの数を 0 #3659に設定した後、古いデータを再利用できない問題を修正
- 主キーが
handle
#3569の主キー列を拡張するときに発生する可能性のあるデータの不整合を修正しました。 - SQL ステートメントに非常に長いネストされた式が含まれている場合に発生する可能性のある解析エラーを修正します#3354
- クエリに
where <string>
句#3447が含まれる場合に発生する可能性のある間違った結果を修正 new_collations_enabled_on_first_bootstrap
有効になっている場合に発生する可能性のある間違った結果を修正#3388 、 #3391- TLS が有効になっているときに発生するpanicの問題を修正します#4196
- メモリ制限が有効になっているときに発生するpanicの問題を修正します#3902
- MPP クエリが停止するとTiFlashが時折クラッシュする問題を修正#3401
Unexpected type of column: Nullable(Nothing)
#3351の予期しないエラーを修正- 遅れているリージョンピア#4437でのリージョンのマージによって発生する可能性のあるメタデータの破損を修正します。
JOIN
を含むクエリでエラーが発生した場合にハングする可能性がある問題を修正#4195- 不正な実行プランにより、MPP クエリに対して誤った結果が返される可能性がある問題を修正#3389
ツール
バックアップと復元 (BR)
- BR がRawKV #32607のバックアップに失敗する問題を修正
TiCDC
- デフォルト値を複製できない問題を修正#3793
- 場合によってはシーケンスが不正に複製されるバグを修正#4563
- PDリーダーがキルされた場合にTiCDCノードが異常終了するバグを修正#4248
batch-replace-enable
が無効になっている場合、MySQL シンクが重複したreplace
SQL ステートメントを生成するバグを修正#4501- デフォルトの列値#3929を出力するときに発生するpanicとデータの不整合の問題を修正します。
mq sink write row
監視データがない問題を修正#3431min.insync.replicas
がreplication-factor
#3994より小さい場合にレプリケーションが実行できない問題を修正- レプリケーション タスクが削除されたときに発生する潜在的なpanicの問題を修正します#3128
- 必要なプロセッサ情報が存在しない場合にHTTP APIがパニックするバグを修正#3840
- 不正確なチェックポイント#3545によって引き起こされる潜在的なデータ損失の問題を修正します。
- デッドロックによりレプリケーション タスクが停止するという潜在的な問題を修正します#4055
- etcd #2980でタスクステータスを手動でクリーンアップするときに発生する TiCDCpanicの問題を修正します。
- DDL ステートメント内の特別なコメントによりレプリケーション タスクが停止する問題を修正します#3755
config.Metadata.Timeout
#3352の誤った構成によって引き起こされるレプリケーション停止の問題を修正します。- RHEL リリース#3584のタイムゾーンの問題によりサービスを開始できない問題を修正
stopped
クラスターのアップグレード後に変更フィードが自動的に再開される問題を修正#3473- MySQL シンクのデッドロックによって引き起こされる過度に頻繁な警告の問題を修正します#2706
- Canal および Maxwell プロトコル#3676で
enable-old-value
設定項目が自動的にtrue
に設定されないバグを修正 - Avro シンクが JSON 型列の解析をサポートしていない問題を修正します#3624
- チェンジフィードチェックポイントラグ#3010の負の値エラーを修正
- コンテナ環境の OOM 問題を修正する#1798
- DDL 処理後のメモリリーク問題を修正#3174
- 同じノード#4464でテーブルが繰り返しスケジュールされると、変更フィードがスタックする問題を修正します。
- PDノードが異常#4778の場合、オープンAPIによるステータス問い合わせがブロックされる場合があるバグを修正
- 所有者の変更によって引き起こされた誤ったメトリクスを修正する#4774
- Unified Sorter #4447によって使用されるワーカープールの安定性の問題を修正しました。
cached region
監視メトリクスがマイナス#4300になる問題を修正
TiDB Lightning