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 より前のバージョンにダウングレードする必要がある場合は、ダウングレードの前に
新機能
ティフラッシュ
- 複数のディスクへのストレージ エンジンの最新データの保存をサポート (実験的)
TiDB ダッシュボード
改良点
TiDB
- 等しい条件を他の条件に変換するときは、ヒューリスティックな方法で (インデックス) マージ結合を回避します#21146
- ユーザー変数の種類を区別する#21107
- 構成ファイルで
GOGC
変数の設定をサポート#20922 - ダンプされたバイナリ時間 (
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 のエラー メッセージを改善する
- データ量が膨大な場合にキャッシュ データのメモリ使用量を制限する
- 処理中のコプロセッサー・タスク数のモニター・メトリックを追加します
ツール
バックアップと復元 (BR)
TiCDC
Dumpling
TiDB Lightning
Binlog
- アップストリーム PD がダウンしている場合、またはダウンストリームへの DDL または DML ステートメントの適用が失敗した場合は、 #1012以外のコードでDrainerプロセスを終了します。
バグの修正
TiDB
OR
条件#21287でプレフィックス インデックスを使用すると、誤った結果が得られる問題を修正します。- 自動再試行が有効になっているときにpanicを引き起こす可能性があるバグを修正します#21285
- 列タイプ#21273によるパーティション定義のチェック時に発生するバグを修正
- パーティション式の値の型がパーティション列の型#21136と一致しない不具合を修正
- ハッシュ型パーティションがパーティション名が一意かどうかをチェックしないバグを修正#21257
- 非
INT
型の値をハッシュ パーティション テーブルに挿入した後に返される間違った結果を修正します#21238 - 場合によっては
INSERT
ステートメントでインデックス結合を使用すると予期しないエラーが発生する問題を修正#21249 CASE 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 分離レベルのトランザクションで Index Merge を使用すると、結果が正しくない可能性がある問題を修正します#21253
- 書き込み競合後のトランザクションの再試行によって引き起こされる自動 ID 割り当ての失敗を修正します#21079
LOAD DATA
#21074を使用して JSON データを TiDB に正しくインポートできない問題を修正- 新しく追加された
Enum
型の列のデフォルト値が正しくない問題を修正します#20998 adddate
関数が無効な文字を挿入する問題を修正#21176- 一部の状況で間違った
PointGet
プランが生成され、間違った結果が生じる問題を修正#21244 - MySQL #20888と互換性を持たせるために、
ADD_DATE
の関数で夏時間の変換を無視します。 varchar
またはchar
の長さ制限#21282を超える末尾にスペースがある文字列を挿入できないバグを修正します。int
とyear
#21283を比較するとき、整数を[1, 69]
から[2001, 2069]
または[70, 99]
から[1970, 1999]
に変換しないバグを修正しますDouble
型フィールド#21272の計算時にsum()
関数の結果がオーバーフローしてpanicが発生する問題を修正DELETE
ユニークキーのロック追加に失敗するバグを修正#20705- スナップショットの読み込みがロックキャッシュにヒットするバグを修正#21539
- 存続期間の長いトランザクションで大量のデータを読み取った後の潜在的なメモリ リークの問題を修正します#21129
- サブクエリでテーブル エイリアスを省略すると、構文エラー#20367が返される問題を修正します。
- クエリの
IN
関数の引数が時間型の場合、クエリが間違った結果を返すことがある問題を修正します#21290
TiKV
- 列数が 255 を超えると、Coprocessor が間違った結果を返すことがある問題を修正します#9131
- リージョンマージがネットワーク パーティション#9108中にデータ損失を引き起こす可能性がある問題を修正します
latin1
文字セット#9082を使用すると、ANALYZE
ステートメントでpanicが発生する可能性がある問題を修正します。- 数値型を時間型に変換するときに返される間違った結果を修正します#9031
- 透過的データ暗号化 (TDE) が有効になっている場合、 TiDB Lightningが Importer-backend または Local-backend を使用して SST ファイルを TiKV に取り込めないというバグを修正します#8995
- 無効な
advertise-status-addr
値を修正 (0.0.0.0
) #9036 - コミットされたトランザクションでキーがロックされ、削除されている場合、キーが存在することを示すエラーが返される問題を修正します#8930
- RocksDB キャッシュ マッピング エラーが原因でデータが破損する問題を修正します#9029
- リーダーが転送された後、Follower Read が古いデータを返す可能性があるバグを修正します#9240
- 悲観的ロック#9282で古い値が読み取られる可能性がある問題を修正します。
- リーダーの転送後にレプリカの読み取りで古いデータが取得される可能性があるバグを修正します#9240
- プロファイリング#9229後に
SIGPROF
を受信すると TiKV がクラッシュする問題を修正
PD
TiDB ダッシュボード
ティフラッシュ
INFORMATION_SCHEMA.CLUSTER_HARDWARE
に使用されていないディスクの情報が含まれる可能性がある問題を修正- Delta Cache のメモリ使用量の見積もりが実際の使用量よりも少ない問題を修正
- スレッド情報の統計によって引き起こされるメモリ リークを修正します。
ツール
バックアップと復元 (BR)
- S3 シークレット アクセス キー#617の特殊文字による障害を修正します。
TiCDC
- 所有者のキャンペーン キーを削除すると複数の所有者が存在する可能性がある問題を修正します#1104
- TiKV ノードがクラッシュまたはクラッシュから回復したときに、TiCDC がデータの複製を続行できない可能性があるというバグを修正します。このバグは v4.0.8 にのみ存在します。 #1198
- テーブルが初期化される前に、メタデータが etcd に繰り返しフラッシュされる問題を修正します#1191
- スキーマ ストレージが TiDB テーブルをキャッシュしている場合に、初期の GC または更新のレイテンシー
TableInfo
によって引き起こされるレプリケーションの中断の問題を修正します#1114 - DDL 操作が頻繁に行われると、スキーマ ストレージがメモリを消費しすぎる問題を修正します#1127
- 変更フィードが一時停止または停止されたときのゴルーチン リークを修正します#1075
- Kafka プロデューサーで最大再試行タイムアウトを 600 秒に増やして、ダウンストリーム Kafka #1118でのサービスまたはネットワーク ジッターによって引き起こされるレプリケーションの中断を防ぎます。
- Kafkaのバッチサイズが反映されないバグを修正#1112
- TiCDC と PD 間のネットワークにジッターがあり、一時停止中の変更フィードが同時に再開されると、一部のテーブルの行の変更が失われる可能性があるというバグを修正し#1213 。
- TiCDC と PD 間のネットワークが安定していない場合、 #1218プロセスが終了する可能性があるバグを修正します。
- TiCDC でシングルトン PD クライアントを使用し、TiCDC が誤って PD クライアントを閉じてレプリケーション ブロック#1217が発生するバグを修正します。
- TiCDC 所有者が etcd ウォッチ クライアントでメモリを消費しすぎる可能性があるバグを修正します#1224
Dumpling
- MySQL データベースサーバーへの接続が閉じられたときにDumplingがブロックされる可能性がある問題を修正し#190 。
TiDB Lightning