TiDB 4.0.9 リリースノート
発売日:2020年12月21日
TiDB バージョン: 4.0.9
互換性の変更
TiDB
enable-streaming構成項目#21055廃止する
TiKV
- 保存時の暗号化が有効になっている場合のI/Oとミューテックスの競合を軽減します。この変更は下位互換性がありません。クラスターをv4.0.9より前のバージョンにダウングレードする必要がある場合は、ダウングレード前に
security.encryption.enable-file-dictionary-logを無効にし、TiKVを再起動する必要があります#9195
- 保存時の暗号化が有効になっている場合のI/Oとミューテックスの競合を軽減します。この変更は下位互換性がありません。クラスターをv4.0.9より前のバージョンにダウングレードする必要がある場合は、ダウングレード前に
新機能
TiFlash
- storageエンジンの最新データを複数のディスクに保存する機能をサポート (実験的)
TiDBダッシュボード
改善点
TiDB
- 等号条件を他の条件に変換するときに、(インデックス)マージ結合をヒューリスティックな方法で回避する#21146
- ユーザー変数の種類を区別する#21107
- 設定ファイル#20922の
GOGC変数の設定をサポート - ダンプされたバイナリタイム(
TimestampとDatetime)をMySQL #21135との互換性を高める LOCK IN SHARE MODE構文#21005使用する文にエラーメッセージを表示する- ショートカット可能な式で定数を折り畳むときに不要な警告やエラーを出力しないようにする#21040
LOAD DATA文#21199を準備するときにエラーが発生する- 整数列の型を変更するときに整数ゼロフィルサイズの属性を無視する#20986
EXPLAIN ANALYZE#21066の結果にDML文の実行プログラム関連の実行時情報を追加します。- 単一のSQL文で主キーの複数の更新を許可しない#21113
- 接続アイドル時間の監視メトリックを追加する#21301
runtime/traceツールの実行中にスローログを一時的に有効にする#20578
TiKV
splitコマンド#8936のソースをトレースするためのタグを追加しますpessimistic-txn.pipelined構成#9100動的な変更をサポート- バックアップと復元およびTiDB Lightning #9098実行する際のパフォーマンスへの影響を軽減します
- SST 取り込みエラー#9096監視メトリックを追加します
- 一部のピアがログを複製する必要がある場合にリーダーが休止状態にならないようにします#9093
- パイプライン化された悲観的ロックの成功率を向上させる#9086
- デフォルト値の
apply-max-batch-sizeとstore-max-batch-sizeを1024#9020に変更します max-background-flushes構成項目#8947追加する- パフォーマンスを向上させるためにデフォルトで
force-consistency-checks無効にする#9029 - リージョンサイズを
pd heartbeat workerからsplit check worker#9185にオフロードする
PD
TiDBダッシュボード
TiFlash
- レプリカ読み取りのレイテンシーを削減
- TiFlashのエラーメッセージを改善する
- データ量が大きい場合、キャッシュデータのメモリ使用量を制限する
- 処理されているコプロセッサタスクの数を監視するメトリックを追加します。
ツール
バックアップと復元 (BR)
TiCDC
Dumpling
TiDB Lightning
TiDBBinlog
- 上流PDがダウンしているか、下流へのDDLまたはDML文の適用に失敗した場合は、ゼロ以外のコードでDrainerプロセスを終了します#1012
バグ修正
TiDB
- プレフィックスインデックスを条件
OR条件#21287で使用した場合に誤った結果が出る問題を修正 - 自動再試行が有効になっているときにpanicを引き起こす可能性があるバグを修正#21285
- 列タイプ#21273に応じてパーティション定義をチェックするときに発生するバグを修正しました
- パーティション式の値の型がパーティション列の型と一致しないバグを修正しました#21136
- ハッシュ型パーティションがパーティション名が一意かどうかをチェックしないバグを修正#21257
- ハッシュパーティションテーブル#21238に
INT以外の型の値を挿入した後に返される誤った結果を修正しました。 INSERTステートメントでインデックス結合を使用すると、場合によっては予期しないエラーが発生する問題を修正しました#21249CASE WHEN演算子のBigInt符号なし列値がBigInt符号付き値#21236に誤って変換される問題を修正しました- インデックスハッシュ結合とインデックスマージ結合が照合順序#21219考慮しないバグを修正しました
- パーティションテーブルが構文
CREATE TABLEとSELECT照合順序を考慮しないバグを修正#21181 slow_queryのクエリ結果で一部の行が欠落する可能性がある問題を修正#21211- データベース名が純粋な下位表現でない場合、データが正しく削除#21206れない可能性がある問題を修正しました
DELETE - DML操作後にスキーマ変更を引き起こすバグを修正#21050
- 結合#21021使用するときに結合された列をクエリできないバグを修正しました
- 一部のセミ結合クエリの誤った結果を修正#21019
- テーブルロックが
UPDATE文#21002で有効にならない問題を修正 - 再帰ビュー#21001構築時に発生するスタックオーバーフローの問題を修正
- 外部結合#20954でインデックスマージ結合操作を実行したときに返される予期しない結果を修正しました
- 結果が未確定のトランザクションが失敗として扱われることがある問題を修正#20925
EXPLAIN FOR CONNECTION最後のクエリプランを表示できない問題を修正#21315- インデックスマージがRead Committed分離レベルのトランザクションで使用されると、結果が正しくなくなる可能性がある問題を修正しました#21253
- 書き込み競合後のトランザクション再試行によって発生する自動ID割り当ての失敗を修正#21079
LOAD DATA#21074を使用してJSONデータを正しくTiDBにインポートできない問題を修正しました- 新しく追加された
Enum型列のデフォルト値が正しくない問題を修正しました#20998 adddate関数が無効な文字を挿入する問題を修正#21176- 状況によっては間違った
PointGetプランが生成され、間違った結果#21244が発生する問題を修正しました - MySQL #20888との互換性を保つため、
ADD_DATE関数の夏時間の変換を無視する varcharまたはcharの長さ制約を超える末尾のスペースを含む文字列を挿入できないバグを修正しました#21282intとyearと#21283比較するときに、整数が[1, 69]から[2001, 2069]または[70, 99]から[1970, 1999]に変換されないバグを修正しました。Double型フィールド#21272を計算するときにsum()関数の結果がオーバーフローすることによって引き起こされるpanicを修正しましたDELETEユニークキー#20705にロックを追加できないバグを修正- スナップショットの読み取りがロックキャッシュ#21539にヒットするバグを修正
- 長時間トランザクションで大量のデータを読み込んだ後に発生する可能性のあるメモリリークの問題を修正#21129
- サブクエリでテーブルエイリアスを省略すると構文エラーが返される問題を修正しました#20367
- クエリ内の
IN番目の関数の引数が時間型の場合、クエリが誤った結果を返す可能性がある問題を修正しました#21290
- プレフィックスインデックスを条件
TiKV
- 255列を超える場合にコプロセッサーが誤った結果を返す可能性がある問題を修正#9131
- リージョンマージによりネットワークパーティション#9108中にデータが失われる可能性がある問題を修正しました
latin1文字セット#9082を使用するとANALYZE文がpanicを引き起こす可能性がある問題を修正しました- 数値型を時間型に変換するときに返される誤った結果を修正#9031
- 透過的データ暗号化 (TDE) が有効な場合、 TiDB Lightning がインポーターバックエンドまたはローカルバックエンドを使用して SST ファイルを TiKV に取り込むことができないバグを修正しました#8995
- 無効な値
advertise-status-addrを修正する(0.0.0.0) #9036 - コミットされたトランザクションでキーがロックされ削除されたときに、キーが存在することを示すエラーが返される問題を修正しました#8930
- RocksDB キャッシュ マッピング エラーによりデータ破損が発生する問題を修正#9029
- リーダーが転送された後にFollower Readが古いデータを返す可能性があるバグを修正#9240
- 悲観的ロック#9282で古い値が読み取られる可能性がある問題を修正
- リーダー転送後にレプリカ読み取りで古いデータが取得される可能性があるバグを修正#9240
- プロファイリング#9229後に
SIGPROF受信すると発生するTiKVクラッシュの問題を修正
PD
TiDBダッシュボード
TiFlash
INFORMATION_SCHEMA.CLUSTER_HARDWARE使用されていないディスクの情報が含まれている可能性がある問題を修正しました- デルタキャッシュのメモリ使用量の見積もりが実際の使用量よりも小さい問題を修正しました
- スレッド情報統計によるメモリリークを修正
ツール
バックアップと復元 (BR)
- S3 シークレットアクセスキー#617の特殊文字によって発生する障害を修正
TiCDC
- 所有者キャンペーンキーが削除されたときに複数の所有者が存在する可能性がある問題を修正#1104
- TiKVノードがクラッシュまたはクラッシュから回復した際に、TiCDCがデータレプリケーションを続行できなくなる可能性があるバグを修正しました。このバグはv4.0.8にのみ存在します#1198
- テーブルが初期化される前にメタデータがetcdに繰り返しフラッシュされる問題を修正#1191
- スキーマstorageがTiDB テーブル#1114をキャッシュするときに、早期 GC または更新のレイテンシー
TableInfoによって発生するレプリケーション中断の問題を修正しました。 - DDL操作が頻繁に行われる場合にスキーマstorageのメモリ消費量が多すぎる問題を修正しました#1127
- チェンジフィードが一時停止または停止したときのゴルーチンリークを修正#1075
- 下流の Kafka #1118サービスまたはネットワークジッターによるレプリケーションの中断を防ぐために、Kafka プロデューサーの最大再試行タイムアウトを 600 秒に増やします。
- Kafka のバッチサイズが有効にならないバグを修正#1112
- TiCDC と PD 間のネットワークにジッターがあり、一時停止中の変更フィードが同時に再開されると、一部のテーブルの行の変更が失われる可能性があるバグを修正しました#1213
- TiCDCとPD間のネットワークが安定していない場合にTiCDCプロセスが終了する可能性があるバグを修正#1218
- TiCDC でシングルトン PD クライアントを使用し、TiCDC が誤って PD クライアントを閉じてレプリケーション ブロック#1217が発生するバグを修正しました。
- TiCDC 所有者が etcd ウォッチクライアント#1224でメモリを過剰に消費する可能性があるバグを修正しました
Dumpling
- MySQLデータベースサーバーへの接続が閉じられたときにDumplingがブロックされる可能性がある問題を修正しました#190
TiDB Lightning