TiDB 4.0 RC.2 リリースノート

発売日:2020年5月15日

TiDB バージョン: 4.0.0-rc.2

互換性の変更

  • TiDB

    • TiDB Binlogが有効な場合、単一トランザクション (100 MB) のサイズ制限を削除します。現在、トランザクションのサイズ制限は 10 GB です。ただし、TiDB Binlogが有効でダウンストリームが Kafka の場合、Kafka #16941の 1 GB のメッセージ サイズ制限に従ってtxn-total-size-limitパラメータを構成します。
    • CLUSTER_LOGテーブルのクエリ時に時間範囲が指定されていない場合、デフォルトの時間範囲のクエリからエラーを返し、指定された時間範囲を要求するように動作を変更します#17003
    • CREATE TABLEステートメントを使用して分割テーブルを作成するときに、サポートされていないsub-partitionまたはlinear hashオプションを指定すると、オプションが無視された分割テーブルではなく、通常のテーブルが作成されます#17197
  • TiKV

    • 暗号化関連の構成をセキュリティ関連の構成に移動します。つまり、TiKV 構成ファイルの[encryption][security.encryption] #7810に変更します。
  • ツール

    • TiDB Lightning

      • データのインポート時にデフォルトの SQL モードをONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USERに変更して、互換性を向上させます#316
      • tidb-backend モード#312での PD または TiKV ポートへのアクセスを許可しない
      • ログ情報をデフォルトで tmp ファイルに出力し、 TiDB Lightningの起動時に tmp ファイルのパスを出力します#313

重要なバグ修正

  • TiDB

    • WHERE節に同等の条件が 1 つしかない場合に間違ったパーティションが選択される問題を修正します#17054
    • WHERE句に文字列列#16660のみが含まれている場合に、誤ったインデックス範囲を構築することによって引き起こされる誤った結果の問題を修正します。
    • DELETE操作#16991後のトランザクションでPointGetクエリを実行すると発生するpanicの問題を修正します。
    • エラーが発生したときに GC ワーカーでデッドロックが発生する可能性がある問題を修正します#16915
    • TiKV 応答が遅いがダウンしていない場合、不要な RegionMiss リトライを回避する#16956
    • ログ出力に干渉する問題を解決するために、MySQL プロトコルのハンドシェイク フェーズでクライアントのログ レベルをDEBUGに変更します#16881
    • TRUNCATE操作後、テーブルで定義されたPRE_SPLIT_REGIONS情報に従ってリージョンが事前に分割されない問題を修正します#16776
    • 2 フェーズ コミット#16876の第 2 フェーズで TiKV が使用できない場合、リトライによってゴルーチンが急増する問題を修正します。
    • 一部の式をプッシュダウンできない場合のステートメント実行のpanic問題を修正します#16869
    • パーティション化されたテーブルでの IndexMerge 操作の誤った実行結果を修正します#17124
    • メモリ トラッカー#17234のミューテックス競合によって引き起こされるwide_tableのパフォーマンス低下を修正します。
  • ティフラッシュ

    • データベースまたはテーブルの名前に特殊文字が含まれていると、アップグレード後にシステムが正常に起動できない問題を修正

新機能

  • TiDB

    • データをバックアップおよび復元するためのBACKUPおよびRESTOREコマンドのサポートを追加します#16960
    • コミット前に 1 つのリージョン内のデータ ボリュームの事前チェックをサポートし、データ ボリュームがしきい値#16959を超えた場合にリージョンを事前に分割します
    • Sessionスコープを持つ新しいLAST_PLAN_FROM_CACHE変数を追加して、最後に実行されたステートメントがプラン キャッシュ#16830にヒットするかどうかを示します
    • スローログとSLOW_LOGテーブル#16904Cop_time情報の記録をサポート
    • Go ランタイム#16928のメモリ ステータスを監視するメトリックを Grafana に追加します。
    • 一般ログ#16946での分離レベルforUpdateTSおよびRead Consistency情報の出力をサポート
    • TiKVリージョン#16925でのロック解決の重複リクエストの折りたたみをサポート
    • PD/TiKV ノードの構成を変更するSET CONFIGステートメントを使用したサポート#16853
    • CREATE TABLEステートメント#16813auto_randomオプションをサポートする
    • DistSQL リクエストに TaskID を割り当てて、TiKV がリクエストをより適切にスケジュールおよび処理できるようにします#17155
    • MySQL クライアントへのログイン後の TiDBサーバーのバージョン情報の表示をサポート#17187
    • GROUP_CONCAT機能#16990ORDER BY節をサポート
    • ステートメントがプラン キャッシュにヒットするかどうかを示すために、スロー ログにPlan_from_cacheの情報を表示するサポート#17121
    • TiDBダッシュボードにTiFlashマルチディスク展開の容量情報を表示できる機能を追加
    • ダッシュボードで SQL ステートメントを使用して TiFlash ログを照会する機能を追加します
  • TiKV

    • tikv-ctl の暗号化デバッグをサポートし、暗号化ストレージが有効な場合にクラスターの操作と管理に tikv-ctl を使用できるようにします#7698
    • スナップショットでのロック列ファミリーの暗号化のサポート#7712
    • Grafana ダッシュボードのヒートマップを使用して Raftstoreレイテンシーの概要を表示し、ジッターの問題をより適切に診断します#7717
    • gRPC メッセージ#7824のサイズの上限設定をサポート
    • Grafana ダッシュボードに暗号化関連の監視メトリクスを追加します#7827
    • アプリケーション層プロトコル ネゴシエーション (ALPN) #7825をサポート
    • タイタン#7818に関する統計をさらに追加する
    • クライアントから提供されたタスク ID を統合読み取りプールの識別子として使用して、タスクの優先度が同じトランザクション内の別のタスクによって下げられるのを回避するためのサポート#7814
    • batch insert要求#7718のパフォーマンスを改善する
  • PD

    • ノードをオフラインにする際のピア削除の速度制限をなくす#2372
  • ティフラッシュ

    • Grafana のRead Indexの Count グラフの名前をOpsに変更します
    • システム負荷が低いときにファイル記述子を開くためのデータを最適化して、システム リソースの消費を削減します。
    • 容量関連の構成パラメータを追加して、データ ストレージ容量を制限します
  • ツール

    • TiDB Lightning

      • tidb-lightning-ctl にfetch-modeサブコマンドを追加して、TiKV クラスター モード#287を出力します。
    • TiCDC

      • cdc cli (changefeed) #546を使用したレプリケーション タスクの管理のサポート
    • バックアップと復元 (BR)

      • バックアップ中の GC 時間の自動調整をサポート#257
      • データを復元するときに PD パラメータを調整して復元を高速化する#198

バグの修正

  • TiDB

    • 複数の演算子での式の実行にベクトル化を使用するかどうかを決定するロジックを改善します#16383
    • IndexMergeヒントがデータベース名を正しくチェックできない問題を修正#16932
    • シーケンス オブジェクト#17037の切り詰めを禁止する
    • シーケンス オブジェクト#16957INSERT / UPDATE / ANALYZE / DELETEステートメントを実行できる問題を修正します。
    • ブートストラップ フェーズの内部 SQL ステートメントがステートメント サマリー テーブルで内部クエリとして正しくマークされない問題を修正します#17062
    • TiFlash ではサポートされているが TiKV ではサポートされていないフィルター条件がIndexLookupJoinオペレーター#17036にプッシュされると発生するエラーを修正します。
    • 照合順序が有効になった後に発生する可能性があるLIKE式の同時実行の問題を修正します#16997
    • 照合順序が有効になった後、 LIKE関数がRangeクエリ インデックスを正しく構築できないという問題を修正します#16783
    • Plan Cacheステートメントがトリガーされた後に@@LAST_PLAN_FROM_CACHEを実行すると、間違った値が返される問題を修正します#16831
    • IndexMerge #16947の候補パスを計算するときに、インデックスのTableFilterが欠落する問題を修正します
    • MergeJoinヒントを使用し、 TableDual演算子が存在する場合、物理クエリ プランを生成できない問題を修正します#17016
    • 明細書の概要表のStmt_Type列の値の間違った大文字化を修正します#17018
    • 異なるユーザーが同じtmp-storage-path #16996を使用するとサービスを開始できず、 Permission Deniedエラーが報告される問題を修正
    • CASE WHEN #16995などの複数の入力列によって結果の型が決定される式に対して、 NotNullFlagの結果の型が正しく設定されない問題を修正します。
    • ダーティ ストアが存在する場合、緑色の GC が未解決のロックを残す可能性がある問題を修正します#16949
    • 複数の異なるロックを持つ 1 つのキーに遭遇したときに、緑色の GC が未解決のロックを残す可能性があるという問題を修正します#16948
    • サブクエリが親クエリ列を参照するため、 INSERT VALUEステートメントに間違った値を挿入する問題を修正します#16952
    • Float#16666AND演算子を使用すると、誤った結果が得られる問題を修正
    • 高価なログ#16907WAIT_TIMEフィールドの誤った情報を修正します。
    • ペシミスティック トランザクション モード#16897でスロー ログにSELECT FOR UPDATEステートメントが記録されない問題を修正
    • EnumまたはSetタイプ#16892の列でSELECT DISTINCTを実行したときに発生する誤った結果を修正します。
    • SHOW CREATE TABLEステートメント#16864auto_random_baseの表示エラーを修正
    • WHERE#16559の誤った値string_valueを修正します。
    • GROUP BYウィンドウ関数のエラー メッセージが MySQL #16165のエラー メッセージと一致しない問題を修正
    • データベース名に大文字の#17167が含まれている場合、 FLASH TABLEステートメントの実行に失敗する問題を修正します。
    • Projection executor #17118の不正確なメモリ トレースを修正します。
    • 異なるタイム ゾーンでのSLOW_QUERYテーブルの不適切な時間フィルタリングの問題を修正します#17164
    • 仮想生成列#17126IndexMergeを使用すると発生するpanicの問題を修正します。
    • INSTRおよびLOCATE関数の大文字化の問題を修正#17068
    • tidb_allow_batch_cop構成を有効にした後、 tikv server timeoutエラーが頻繁に報告される問題を修正#17161
    • Float 型でXORの操作を実行した結果が MySQL 8.0 の結果と一致しない問題を修正#16978
    • サポートされていないALTER TABLE REORGANIZE PARTITIONステートメントを実行したときにエラーが報告されない問題を修正します#17178
    • EXPLAIN FORMAT="dot" FOR CONNECTION IDサポートされていないプランに遭遇したときにエラーが報告される問題を修正します#17160
    • 明細書の要約表のEXEC_COUNT列にあるプリペアドステートメントのレコードの問題を修正します#17086
    • Statement Summary システム変数#17129を設定すると、値が検証されない問題を修正します。
    • プラン キャッシュが有効な場合にオーバーフロー値を使用してUNSIGNED BIGINT主キーをクエリすると、エラーが報告される問題を修正します#17120
    • Grafana TiDB サマリーダッシュボードのマシン インスタンスとリクエスト タイプによる誤った QPS 表示を修正します#17105
  • TiKV

    • 復元後に空のリージョンが多数生成される問題を修正#7632
    • 順不同の読み取りインデックス応答を受信したときの Raftstore のpanic問題を修正します#7370
    • 統合スレッド プールが有効になっている場合に、無効なストレージまたはコプロセッサの読み取りプール構成が拒否されない可能性がある問題を修正します#7513
    • join TiKVサーバーがシャットダウンされたときの操作のpanicの問題を修正します#7713
    • 診断 API #7776を介して TiKV スロー ログを検索すると、結果が返されない問題を修正します。
    • TiKV ノードを長時間実行すると、顕著なメモリの断片化が発生する問題を修正します#7556
    • 無効な日付が格納されている場合に SQL ステートメントの実行に失敗する問題を修正します#7268
    • GCS #7739からバックアップ データを復元できない問題を修正
    • 保管時の暗号化中に KMS キー ID が検証されない問題を修正します#7719
    • 異なるアーキテクチャのコンパイラーにおけるコプロセッサーの根本的な正確性の問題を修正します#7714 #7730
    • 暗号化が有効な場合のsnapshot ingestionのエラーを修正#7815
    • Invalid cross-device link設定ファイル書き換え時のエラーを修正#7817
    • 構成ファイルを空のファイルに書き込むときの間違った toml 形式の問題を修正します#7817
    • Raftstore で破棄されたピアが引き続きリクエストを処理できる問題を修正します#7836
  • PD

    • pd-ctl #2399region keyコマンドを使用するときに発生する404の問題を修正します。
    • TSO および ID 割り当てのモニター メトリックが Grafana ダッシュボードから欠落している問題を修正します#2405
    • pd-recover が Docker イメージに含まれていない問題を修正します#2406
    • データ ディレクトリのパスを絶対パスに解析して、TiDB ダッシュボードが PD 情報を正しく表示しない可能性がある問題を修正します#2420
    • pd-ctl #2416scheduler config shuffle-region-schedulerコマンドを使用するとデフォルト出力がない問題を修正
  • ティフラッシュ

    • 一部のシナリオで使用済み容量の間違った情報が報告される問題を修正
  • ツール

    • Binlog

      • ダウンストリームが Kafka #962の場合、 mediumint型のデータが処理されない問題を修正
      • DDL のデータベース名がキーワード#961の場合、reparo が DDL ステートメントの解析に失敗する問題を修正します。
    • TiCDC

      • TZ環境変数が設定されていない場合に間違ったタイム ゾーンを使用する問題を修正します#512

      • 一部のエラーが正しく処理されないため、サーバーの終了時に所有者がリソースをクリーンアップしないという問題を修正します#528

      • TiKV #531に再接続すると TiCDC がスタックする問題を修正

      • テーブル スキーマを初期化するときのメモリ使用量を最適化します#534

      • watchモードを使用してレプリケーション ステータスの変化を監視し、準リアルタイムの更新を実行してレプリケーションの遅延を減らします#481

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

      • BR がauto_random属性#241を持つテーブルを復元した後、データを挿入するとduplicate entryエラーがトリガーされる可能性がある問題を修正します。
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.