重要

古いバージョンの TiDB データベース (TiDB {{ curdocVersion }}) のドキュメントを表示しています。

TiDBデータベースの最新の安定バージョンを使用することをお勧めします。
重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

TiDB4.0RC.2リリースノート

発売日:2020年5月15日

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

互換性の変更

  • TiDB

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

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

    • TiDB Lightning

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

重要なバグ修正

  • TiDB

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

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

新機能

  • TiDB

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

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

    • ノードをオフラインにするときにピアを削除する速度制限を排除する#2372
  • TiFlash

    • Grafanaの読み取りインデックスのカウントグラフの名前を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
    • INSERT DELETEがシーケンスオブジェクトANALYZE#16957できる問題を修正しUPDATE
    • ブートストラップフェーズの内部SQLステートメントがステートメントの概要テーブル#17062で内部クエリとして正しくマークされない問題を修正します。
    • TiFlashではサポートされているがTiKVではサポートされていないフィルター条件がIndexLookupJoinオペレーター#17036にプッシュダウンされたときに発生するエラーを修正します。
    • 照合順序を有効にした後に発生する可能性があるLIKE式の同時実行の問題を修正します#16997
    • 照合順序を有効にした後、 LIKE関数がRangeクエリインデックスを正しく構築できない問題を修正します#16783
    • Plan Cacheステートメントがトリガーされた後に@@LAST_PLAN_FROM_CACHEを実行すると、間違った値が返される問題を修正します#16831
    • IndexMerge #16947の候補パスを計算するときに、インデックスのTableFilterが失われる問題を修正します。
    • MergeJoinヒントを使用し、 TableDual演算子が存在する場合、物理クエリプランを生成できない問題を修正します#17016
    • ステートメントの要約表#17018Stmt_Type列の値の誤った大文字化を修正します。
    • 異なるユーザーが同じ#16996を使用するとサービスを開始できないため、 Permission Deniedエラーが報告される問題を修正しtmp-storage-path
    • 結果タイプが#16995などの複数の入力列によって決定される式に対して、 NotNullFlagの結果タイプが誤って設定される問題を修正しCASE WHEN
    • ダーティストアが存在する場合、緑色のGCが未解決のロックを残す可能性がある問題を修正します#16949
    • 複数の異なるロックを持つ単一のキーに遭遇したときに、緑色のGCが未解決のロックを残す可能性がある問題を修正します#16948
    • サブクエリが親クエリ列#16952を参照するため、 INSERT VALUEステートメントに間違った値を挿入する問題を修正します。
    • 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ウィンドウ関数のエラーメッセージがMySQL3のエラーメッセージと矛盾する問題を修正し#16165
    • データベース名に大文字の#17167が含まれている場合にFLASH TABLEステートメントが実行されない問題を修正します
    • Projectionexecutorの不正確なメモリトレースを修正します#17118
    • 異なるタイムゾーンでのSLOW_QUERYのテーブルの誤った時間フィルタリングの問題を修正します#17164
    • 仮想生成された列#17126IndexMergeが使用されたときに発生するパニックの問題を修正します
    • INSTRおよびLOCATE関数の大文字化の問題を修正します#17068
    • tidb_allow_batch_copの構成を有効にした後にtikv server timeoutのエラーが頻繁に報告される問題を修正します#17161
    • FloatタイプでXORの操作を実行した結果が、 #16978の結果と矛盾する問題を修正します。
    • サポートされていないALTER TABLE REORGANIZE PARTITIONステートメントが実行されたときにエラーが報告されない問題を修正します#17178
    • EXPLAIN FORMAT="dot" FOR CONNECTION IDがサポートされていないプランに遭遇したときにエラーが報告される問題を修正します#17160
    • ステートメント要約表#17086EXEC_COUNT列にあるプリペアドステートメントのレコードの問題を修正します。
    • ステートメントサマリーシステム変数#17129を設定するときに値が検証されない問題を修正します
    • プランキャッシュが有効になっているときにオーバーフロー値を使用してUNSIGNED BIGINT主キーをクエリすると、エラーが報告される問題を修正します#17120
    • GrafanaTiDBサマリーダッシュボードのマシンインスタンスとリクエストタイプによる誤ったQPS表示を修正します#17105
  • TiKV

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

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

    • 一部のシナリオで、使用済み容量の誤った情報が報告されるという問題を修正します
  • ツール

    • TiDB Binlog

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

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

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

      • TiKV1に再接続するときにTiCDCがスタックする可能性がある問題を修正し#531

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

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

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

      • BRがauto_random属性#241のテーブルを復元した後、データを挿入するとduplicate entryエラーがトリガーされる可能性がある問題を修正します。