重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

TiDB5.0.4リリースノート

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

TiDBバージョン:5.0.4

互換性の変更

  • TiDB

    • 新しいセッションでSHOW VARIABLESを実行すると時間がかかる問題を修正します。この修正により、 #19341で行われたいくつかの変更が元に戻り、互換性の問題が発生する可能性があります。 #24326
    • tidb_stmt_summary_max_stmt_count変数のデフォルト値を200から#25873に変更し3000
    • 次のバグ修正により、実行結果が変更され、アップグレードの非互換性が発生する可能性があります。
      • 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
      • セカンダリインデックスの列がプライマリキー#25809と同じである場合、 insert ignore on duplicate updateが間違ったデータを挿入する可能性がある問題を修正します。
      • パーティションテーブルにクラスター化されたインデックスがある場合、 insert ignore duplicate updateが間違ったデータを挿入する可能性がある問題を修正します#25846
      • キーがENUMタイプのポイント取得またはバッチポイント取得#24562の場合、クエリ結果が間違っている可能性がある問題を修正します。
      • BITタイプの値を#23479で除算するときに発生する誤った結果を修正します
      • preparedステートメントと直接クエリの結果に一貫性がない可能性があるという問題を修正します#22949
      • YEAR型を文字列または整数型#23262と比較すると、クエリ結果が間違っている可能性がある問題を修正します。

機能の強化

  • TiDB

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

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

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

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

改善点

  • TiDB

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

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

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

    • Dumpling

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

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

バグの修正

  • TiDB

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

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

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

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

    • Dumpling

      • MySQL8.0.3以降のバージョン#322show table statusの実行がスタックする問題を修正します
    • TiCDC

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