TiDB 5.0.4 リリースノート

リリース日:2021年9月27日

TiDB バージョン: 5.0.4

互換性の変更

  • TiDB

    • 新しいセッションでSHOW VARIABLESを実行すると遅い問題を修正します。この修正により、 #19341で行われた一部の変更が元に戻り、互換性の問題が発生する可能性があります。 #24326
    • tidb_stmt_summary_max_stmt_count変数のデフォルト値を200から3000 #25873に変更します。
    • 次のバグ修正により実行結果が変更され、アップグレードの非互換性が生じる可能性があります。
      • UNIONの子にNULLの値#26559が含まれている場合、TiDB が間違った結果を返す問題を修正します。
      • greatest(datetime) union nullが空の文字列#26532を返す問題を修正
      • last_day関数の動作が SQL モード#26000で互換性がない問題を修正
      • having節が正しく動作しない場合がある問題を修正#26496
      • between式の前後の照合が異なる場合に発生する誤った実行結果を修正します#27146
      • group_concat関数の列に非ビン照合順序がある場合に発生する誤った実行結果を修正します#27429
      • 新しい照合順序が有効になっている場合、複数の列でcount(distinct)式を使用すると間違った結果が返される問題を修正します#27091
      • extract関数の引数が負の期間#27236の場合に発生する結果の誤りを修正します。
      • SQL_MODE'STRICT_TRANS_TABLES' #26762の場合、無効な日付を挿入してもエラーが報告されない問題を修正します。
      • SQL_MODE'NO_ZERO_IN_DATE' #26766の場合、無効なデフォルト日付を使用してもエラーが報告されない問題を修正します。
      • プレフィックス インデックス#26029のクエリ範囲のバグを修正
      • LOAD DATAステートメントが utf8 以外のデータを異常にインポートする可能性がある問題を修正します#25979
      • 副次索引に主キーと同じ列がある場合、 insert ignore on duplicate updateが誤ったデータを挿入する可能性がある問題を修正します#25809
      • パーティション化されたテーブルにクラスター化されたインデックスがある場合に間違ったデータが挿入される可能性がある問題を修正し#25846 insert ignore duplicate update
      • ポイントgetやバッチポイント#24562でキーがENUM型の場合、クエリ結果がおかしくなることがある問題を修正
      • BIT型の値#23479を除算するときに発生する誤った結果を修正します。
      • preparedステートメントと直接クエリの結果が一致しない可能性がある問題を修正します#22949
      • YEAR型を文字列または整数型と比較すると、クエリの結果が正しくない場合がある問題を修正#23262

機能強化

  • TiDB

    • オプティマイザの推定を無視して強制的に MPP モード#26382を使用する設定tidb_enforce_mpp=1をサポート
  • TiKV

    • TiCDC 構成の動的変更をサポート#10645
  • PD

    • TiDB ダッシュボード#3884に OIDC ベースの SSO サポートを追加
  • ティフラッシュ

    • DAG リクエストでHAVING()の機能をサポート
    • DATE()機能をサポート
    • インスタンスごとの書き込みスループット用に Grafana パネルを追加する

改良点

  • TiDB

    • ヒストグラムの行数に基づいて自動分析をトリガーする#24237
    • ノードに障害が発生して#26757前に再起動した場合、TiFlash ノードへのリクエストの送信を一定期間停止します。
    • split regionの上限を増やしてsplit tablepresplitをより安定させる#26657
    • MPP クエリの再試行のサポート#26483
    • MPP クエリを起動する前に、TiFlash の可用性を確認してください#1807
    • 安定した結果モードをサポートして、クエリ結果をより安定させます#26084
    • MySQL システム変数init_connectとそれに関連する機能#18894のサポート
    • COUNT(DISTINCT) MPPモードの集計機能を徹底的に押し下げる#25861
    • 集計関数をEXPLAINステートメントでプッシュダウンできない場合にログ警告を出力する#25736
    • Grafana ダッシュボード#25327TiFlashQueryTotalCounterのエラー ラベルを追加する
    • HTTP API #24209によるセカンダリ インデックスを介したクラスター化インデックス テーブルの MVCC データの取得のサポート
    • パーサー#24371preparedステートメントのメモリ割り当てを最適化する
  • TiKV

    • 読み取り待機レイテンシーを短縮するために、読み取り準備完了と書き込み準備完了を別々に処理する#10475
    • 解決済み TS メッセージのサイズを縮小してネットワーク帯域幅を節約する#2448
    • slogger スレッドが過負荷になり、キューがいっぱいになったときに、スレッドをブロックする代わりにログを削除します#10841
    • TiKV コプロセッサーのスローログを、リクエストの処理に費やされた時間のみを考慮するようにします#10841
    • 事前書き込みを可能な限り冪等にして、未確定エラーの可能性を減らします#10587
    • 低い書き込みフロー#10662で誤った「GC can not work」アラートを回避する
    • 復元するデータベースは、バックアップ中に常に元のクラスター サイズと一致するようにします。 #10643
    • panic出力がログ#9955にフラッシュされることを確認します。
  • PD

    • PD 間のリージョン情報の同期のパフォーマンスを向上させます#3993
  • ツール

    • Dumpling

      • START TRANSACTION ... WITH CONSISTENT SNAPSHOTまたはSHOW CREATE TABLEの構文をサポートしていない MySQL 互換データベースのバックアップのサポート#309
    • TiCDC

      • ユニファイド ソーターが並べ替えにメモリを使用している場合のメモリ管理を最適化します#2553
      • メジャーまたはマイナー バージョン間での TiCDC クラスターの動作を禁止する#2598
      • テーブルのリージョンがすべて TiKV ノードから転送されるときのゴルーチンの使用量を減らします#2284
      • 削除file sorter #2326
      • 常に TiKV から古い値を引き出し、出力はenable-old-value #2301に従って調整されます
      • PD エンドポイントで証明書が見つからない場合に返されるエラー メッセージを改善します#1973
      • 同時実行性が高い場合、より少ないゴルーチンのためにワーカープールを最適化します#2211
      • グローバル gRPC 接続プールを追加し、KV クライアント間で gRPC 接続を共有する#2533

バグの修正

  • TiDB

    • パーティション化されたテーブルにクエリを実行し、パーティション キーの条件がIS NULL #23802の場合に TiDB がpanicになる可能性がある問題を修正します。
    • FLOAT64型のオーバーフローチェックがMySQL #23897と異なる問題を修正
    • case when#26662の間違った文字セットと照合順序を修正します
    • 悲観的なトランザクションをコミットすると書き込み競合が発生する可能性があるという問題を修正します#25964
    • 悲観的なトランザクションのインデックス キーが繰り返しコミットされる可能性があるバグを修正#26359 #10600
    • 非同期コミット ロックを解決するときに TiDB がpanicになる可能性がある問題を修正します#25778
    • INDEX MERGE #25045使用時に列が見つからないことがあるバグを修正
    • ユーザーのauthentication_string #25225ALTER USER REQUIRE SSLでクリアしてしまう不具合を修正
    • 新しいクラスタのtidb_gc_scan_lock_modeグローバル変数の値が、実際のデフォルト モード「LEGACY」ではなく「PHYSICAL」を示すバグを修正します#25100
    • TIKV_REGION_PEERSシステムテーブルが正しいDOWNステータスを表示しないバグを修正#24879
    • HTTP API 使用時にメモリリークが発生する問題を修正#24649
    • ビューがDEFINER #24414をサポートしていない問題を修正
    • tidb-server --helpがコード2 #24046で終了する問題を修正
    • グローバル変数dml_batch_sizeの設定が反映されない問題を修正#24709
    • read_from_storageと分割テーブルを同時に使用するとエラー#20372が発生する問題を修正
    • 射影演算子#24264を実行すると TiDB がパニックになる問題を修正
    • 統計がクエリのpanicを引き起こす可能性がある問題を修正します#24061
    • BIT列でapprox_percentile関数を使用するとpanic#23662が発生する可能性がある問題を修正します。
    • Grafana のCoprocessor Cacheパネルのメトリックが間違っている問題を修正します#26338
    • 同じパーティションを同時に切り捨てると DDL ステートメントがスタックする問題を修正します#26229
    • GROUP BY項目#27106にセッション変数を使用した場合に発生する、誤ったクエリ結果の問題を修正します。
    • テーブルを結合するときのVARCHARとタイムスタンプの間の間違った暗黙的な変換を修正します#25902
    • 関連付けられたサブクエリ ステートメントの間違った結果を修正する#27233
  • TiKV

    • 破損したスナップショット ファイルが原因で発生する可能性のあるディスクがいっぱいになる問題を修正します#10813
    • Titan を有効にして 5.0 より前のバージョンからアップグレードするときに発生する#10843panicの問題を修正します。
    • 新しいバージョンの TiKV が v5.0.x にロールバックできない問題を修正#10843
    • 5.0 より前のバージョンから 5.0 以降のバージョンにアップグレードするときに発生する TiKVpanicの問題を修正します。アップグレード前に Titan を有効にしてクラスターを TiKV v3.x からアップグレードした場合、このクラスターで問題が発生する可能性があります。 #10774
    • 左悲観ロックによる解析エラーを修正#26404
    • 特定のプラットフォームで期間を計算するときに発生するpanicを修正します#10571
    • Load Base Split のbatch_get_commandのキーがエンコードされていない問題を修正#10542
  • PD

    • PD が時間#4077でダウンしたピアを修正しない問題を修正します。
    • replication.max-replicasが更新された後、デフォルトの配置ルールのレプリカ数が一定のままになる問題を修正します#3886
    • TiKV #3868をスケールアウトすると PD がpanicになることがあるバグを修正
    • 複数のスケジューラが同時に実行されている場合に発生するスケジュールの競合の問題を修正します#3807
    • スケジューラーを削除しても再度表示されることがある問題を修正#2572
  • ティフラッシュ

    • テーブル スキャン タスクの実行時に発生する潜在的なpanicの問題を修正します。
    • MPP タスクの実行時に発生する潜在的なメモリ リークの問題を修正します。
    • DAQ リクエストの処理時に TiFlash がduplicated regionエラーを発生させるバグを修正
    • 集計関数COUNTまたはCOUNT DISTINCTを実行したときに予期しない結果が生じる問題を修正
    • MPP タスクの実行時に発生する潜在的なpanicの問題を修正します
    • 複数のディスクに展開されたときに TiFlash がデータを復元できないという潜在的なバグを修正します
    • 分解時に発生する潜在的なpanicの問題を修正しますSharedQueryBlockInputStream
    • 分解時に発生する潜在的なpanicの問題を修正しますMPPTask
    • TiFlash が MPP 接続の確立に失敗したときの予期しない結果の問題を修正
    • ロックを解決するときに発生する潜在的なpanicの問題を修正します
    • 負荷の高い書き込みでメトリクスのストア サイズが不正確になる問題を修正
    • クエリにCONSTANT<<=>>= 、またはCOLUMNなどのフィルターが含まれている場合に発生する誤った結果のバグを修正します
    • 長時間実行した後、TiFlash がデルタ データをガベージ コレクションできないという潜在的な問題を修正します。
    • メトリクスが間違った値を表示する潜在的なバグを修正
    • TiFlash が複数のディスクに展開されている場合に発生する可能性のあるデータの不整合の問題を修正します。
  • ツール

    • Dumpling

      • MySQL 8.0.3 以降でshow table statusの実行がスタックする問題を修正#322
    • TiCDC

      • mysql.TypeString, mysql.TypeVarString, mysql.TypeVarcharなどのデータ型を JSON にエンコードする際にプロセスpanicが発生する問題を修正#2758
      • このテーブルが再スケジュールされているときに、複数のプロセッサが同じテーブルにデータを書き込む可能性があるために発生するデータの不整合の問題を修正します#2417
      • TiCDC がキャプチャするリージョンが多すぎる場合に発生する OOM を回避するために、 #2724ウィンドウ サイズを小さくします。
      • メモリ プレッシャが高い場合に gRPC 接続が頻繁に切断されるエラーを修正します#2202
      • unsigned TINYINT type #2648で TiCDC がpanicになるバグを修正
      • アップストリーム#2612でトランザクションを挿入し、同じ行のデータを削除すると、TiCDC Open Protocol が空の値を出力する問題を修正します。
      • スキーマ変更#2603の終了 TS で変更フィードが開始されると、DDL 処理が失敗するバグを修正します。
      • タスクがタイムアウトするまで、無応答のダウンストリームが古い所有者のレプリケーション タスクを中断する問題を修正します#2295
      • メタデータ管理のバグを修正#2558
      • TiCDC 所有者の切り替え後に発生するデータの不整合の問題を修正します#2230
      • capture listコマンド#2388の出力に古いキャプチャが表示されることがある問題を修正します。
      • 統合テスト#2422で DDL ジョブの重複が発生した場合に発生するErrSchemaStorageTableMissのエラーを修正します。
      • ErrGCTTLExceededエラーが発生するとチェンジフィードを削除できない不具合を修正#2391
      • cdclog への大きなテーブルの複製が失敗するバグを修正#1259 #2424
      • CLI の下位互換性の問題を修正します#2373
      • SinkManager #2299でマップへの安全でない同時アクセスの問題を修正
      • DDL ステートメントの実行時に所有者がクラッシュすると、DDL が失われる可能性がある問題を修正します#1260
      • リージョンが初期化された直後にロックが解除される問題を修正#2188
      • 新しいパーティション テーブルを追加するときに発生する余分なパーティション ディスパッチの問題を修正します#2263
      • TiCDC が変更フィードを削除しても警告を発し続ける問題を修正#2156
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.