TiDB 5.0.4 リリースノート

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

TiDB バージョン: 5.0.4

互換性の変更

  • ティビ

    • 新しいセッションで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
      • パーティションテーブルにクラスター化インデックスがある場合に間違ったデータinsert ignore duplicate update挿入される可能性がある問題を修正#25846
      • ポイント取得またはバッチポイント取得#24562でキーがENUM型の場合にクエリ結果が間違っている可能性がある問題を修正しました
      • BIT型の値を#23479で割ったときに発生する誤った結果を修正
      • preparedステートメントと直接クエリの結果が矛盾する可能性がある問題を修正#22949
      • YEAR型を文字列または整数型#23262と比較するとクエリ結果が間違っている可能性がある問題を修正しました

機能強化

  • ティビ

    • 最適化の推定を無視し、MPPモード#26382を強制的に使用する設定tidb_enforce_mpp=1をサポート
  • ティクヴ

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

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

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

改善点

  • ティビ

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

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

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

    • Dumpling

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

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

バグの修正

  • ティビ

    • パーティションテーブルをクエリし、パーティションキーに条件IS NULLがある場合に TiDB がpanicになる可能性がある問題を修正しました#23802
    • FLOAT64型のオーバーフローチェックがMySQL #23897と異なる問題を修正
    • case when#26662の間違った文字セットと照合順序を修正
    • 悲観的トランザクションをコミットすると書き込み競合が発生する可能性がある問題を修正#25964
    • 悲観的トランザクションのインデックスキーが繰り返しコミットされる可能性があるバグを修正#26359 #10600
    • 非同期コミットロックを解決する際に TiDB がpanic可能性がある問題を修正#25778
    • INDEX MERGE #25045使用時に列が見つからないことがあるバグを修正
    • ALTER USER REQUIRE SSLユーザーのauthentication_string #25225をクリアするバグを修正
    • 新しいクラスターの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のコプロセッサー Cacheパネルのメトリックが間違っている問題を修正しました#26338
    • 同じパーティションを同時に切り捨てると DDL ステートメントがスタックする問題を修正しました#26229
    • セッション変数をGROUP BY項目#27106として使用した場合に発生する誤ったクエリ結果の問題を修正
    • テーブル#25902を結合する際のVARCHARとタイムスタンプ間の誤った暗黙的な変換を修正
    • 関連するサブクエリステートメントの誤った結果を修正する#27233
  • ティクヴ

    • 破損したスナップショットファイルによって引き起こされる潜在的なディスクフル問題を修正#10813
    • Titan を有効にした 5.0 より前のバージョンからアップグレードするときに発生する TiKVpanicの問題を修正#10843
    • 新しいバージョンの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
  • TiFlash

    • テーブルスキャンタスクの実行時に発生する可能性のある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
    • ティCDC

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

このページは役に立ちましたか?