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

新機能

  • ティフラッシュ

    • 複数のディスクへのストレージ エンジンの最新データの保存をサポート (実験的)
  • TiDB ダッシュボード

    • SQL ステートメントページ#749のすべてのフィールドによる表示と並べ替えをサポートします。
    • トポロジ グラフのズームとパンをサポート#772
    • [ SQL ステートメント] ページと [スロー クエリ]ページでのディスク使用情報の表示のサポート#777
    • SQL ステートメントおよびスロー クエリページでのリスト データのエクスポートのサポート#778
    • Prometheus アドレスのカスタマイズをサポート#808
    • クラスター統計のページを追加する#815
    • スロー クエリの詳細に時間関連のフィールドを追加します#810

改良点

  • TiDB

    • 等しい条件を他の条件に変換するときは、ヒューリスティックな方法で (インデックス) マージ結合を回避します#21146
    • ユーザー変数の種類を区別する#21107
    • 構成ファイルでGOGC変数の設定をサポート#20922
    • ダンプされたバイナリ時間 ( TimestampDatetime ) を 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-sizestore-max-batch-sizeのデフォルト値を1024 #9020に変更します
    • max-background-flushes構成アイテム#8947を追加
    • パフォーマンスを向上させるためにデフォルトでforce-consistency-checksを無効にします#9029
    • リージョンサイズのクエリをpd heartbeat workerからsplit check worker #9185にオフロードします
  • PD

    • TiKV ストアがTombstoneになったときに TiKV クラスターのバージョンを確認します。これにより、ユーザーはダウングレードまたはアップグレードのプロセス中に互換性のない機能を有効にすることができなくなります#3213
    • 下位バージョンの TiKV ストアがTombstoneからUpに戻ることを許可しない#3206
  • TiDB ダッシュボード

    • SQL文#775の「展開」をクリックすると展開し続ける
    • SQL ステートメントスロー クエリの詳細ページを新しいウィンドウで開く#816
    • スロー クエリの詳細の時間関連フィールドの説明を改善する#817
    • 詳細なエラー メッセージを表示する#794
  • ティフラッシュ

    • レプリカ読み取りのレイテンシーを短縮する
    • TiFlash のエラー メッセージを改善する
    • データ量が膨大な場合にキャッシュ データのメモリ使用量を制限する
    • 処理中のコプロセッサー・タスク数のモニター・メトリックを追加します
  • ツール

    • バックアップと復元 (BR)

      • コマンド ラインであいまいな--checksum false引数を許可しないようにします。これにより、チェックサムが正しく無効になりません。 --checksum=falseだけ受け付けます。 #588
      • BR が誤って存在した後に PD が元の構成を回復できるように、一時的に PD 構成を変更することをサポートし#596
      • 復元後のテーブル分析のサポート#622
      • read index not readyproposal in merging modeのエラーの再試行#626
    • TiCDC

      • TiKV の Hibernate リージョン機能を有効にするためのアラートを追加します#1120
      • スキーマ ストレージのメモリ使用量を減らす#1127
      • インクリメンタルスキャンのデータサイズが大きい場合にレプリケーションを高速化するユニファイドソーターの機能を追加 (実験的) #1122
      • TiCDC Open Protocol メッセージでの最大メッセージ サイズと最大メッセージ バッチの設定をサポート (Kafka シンクのみ) #1079
    • Dumpling

      • 失敗したチャンクでデータのダンプを再試行します#182
      • -F-rの両方の引数の同時設定をサポート#177
      • デフォルトで--filterのシステム データベースを除外する#194
      • --transactional-consistencyパラメーターをサポートし、再試行中の MySQL 接続の再構築をサポートします#199
      • Dumplingで使用される圧縮アルゴリズムを指定する-c,--compressパラメーターの使用をサポートします。空の文字列は、圧縮がないことを意味します。 #202
    • TiDB Lightning

      • デフォルトですべてのシステム スキーマを除外する#459
      • Local-backend または Importer-backend #457の自動ランダム主キーのデフォルト値の設定をサポート
      • 範囲プロパティを使用して、ローカル バックエンド#422で範囲分割をより正確にします
      • tikv-importer.region-split-sizemydumper.read-block-sizemydumper.batch-size 、およびmydumper.max-region-size #471で人間が読める形式 (「2.5 GiB」など) をサポートする
    • 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 TABLESELECTの構文で照合順序を考慮しないバグを修正#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を超える末尾にスペースがある文字列を挿入できないバグを修正します。
    • intyear #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

    • 配置ルールで指定したリーダーの役割が有効にならない場合がある問題を修正#3208
    • trace-region-flowの値が予期せずfalse #3120に設定される問題を修正
    • Time To Live (TTL) が無限のサービスセーフポイントが機能しないバグを修正#3143
  • TiDB ダッシュボード

    • 中国語の時間表示の問題を修正#755
    • ブラウザの互換性通知が機能しない不具合を修正#776
    • トランザクションstart_tsが一部のシナリオで正しく表示されない問題を修正#793
    • 一部の SQL テキストの形式が正しくない問題を修正します#805
  • ティフラッシュ

    • 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

      • 間違ったフィールド情報を使用してキーがエンコードされる問題を修正します#437
      • GC ライフタイム TTL が有効にならない問題を修正#448
      • ローカル バックエンド モード#484で実行中のTiDB Lightningを手動で停止すると、panicが発生する問題を修正します。
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.