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
コマンドのソースをトレースするタグを追加します#8936pessimistic-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- データベース名が純粋な下位表現ではない場合、データが正しく削除されない場合が
DELETE
問題を修正します#21206 - DML 操作後にスキーマ変更を引き起こすバグを修正#21050
- 結合#21021を使用すると結合された列をクエリできないバグを修正
- 一部の準結合クエリの誤った結果を修正#21019
UPDATE
ステートメント#21002でテーブル ロックが有効にならない問題を修正します。- 再帰的ビュー#21001の構築時に発生するスタック オーバーフローの問題を修正します。
- 外部結合#20954でインデックス マージ ジョイン操作を実行すると返される予期しない結果を修正しました。
- 結果が不定のトランザクションが失敗として扱われる場合がある問題を修正#20925
EXPLAIN FOR CONNECTION
最後のクエリプランを表示できない問題を修正#21315- Read Committed 分離レベルのトランザクションで Index Merge が使用されると、結果が正しくない場合がある問題を修正します#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 がインポーター バックエンドまたはローカル バックエンドを使用して TiKV に SST ファイルを取り込むことができないバグを修正します#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
- チェンジフィードが一時停止または停止したときの goroutine リークを修正#1075
- Kafka プロデューサーの最大再試行タイムアウトを 600 秒に増やし、ダウンストリーム Kafka #1118のサービスまたはネットワーク ジッターによって引き起こされるレプリケーションの中断を防ぎます。
- Kafkaのバッチサイズが反映されないバグを修正#1112
- TiCDC と PD の間のネットワークにジッターがあり、一時停止された変更フィードが同時に再開されている場合、一部のテーブルの行変更が失われる可能性があるバグを修正します#1213
- TiCDC と PD 間のネットワークが安定していない場合、TiCDC プロセスが終了する可能性があるバグを修正#1218
- TiCDC でシングルトン PD クライアントを使用し、TiCDC が誤って PD クライアントを閉じてレプリケーション ブロック#1217を引き起こすバグを修正しました。
- TiCDC 所有者が etcd 監視クライアント#1224でメモリを過剰に消費する可能性があるバグを修正
Dumpling
- MySQL データベースサーバーへの接続が閉じられたときにDumpling がブロックされる可能性がある問題を修正します#190
TiDB Lightning