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

TiDB6.1.0リリースノート

発売日:2022年6月13日

TiDBバージョン:6.1.0

6.1.0では、主な新機能または改善点は次のとおりです。

  • List パーティショニングとリストのCOLUMNSパーティショニングがGAになり、 MySQL 5.7と互換性があります
  • TiFlashパーティションテーブル(動的プルーニング)がGAになります
  • MySQLと互換性のあるユーザーレベルのロック管理をサポートする
  • 非トランザクションDMLステートメントをサポートします( DELETEのみをサポートします)
  • TiFlashはオンデマンドのデータ圧縮をサポートします
  • MPPはウィンドウ関数フレームワークを導入します
  • TiCDCは、Avroを介したKafkaへの変更ログの複製をサポートしています
  • シャードテーブルをマージおよび移行するための楽観的なモードはGAになります

新機能

SQL

  • List パーティショニングとリストのCOLUMNSパーティショニングがGAになります。どちらもMySQL 5.7と互換性があります。

    ユーザーList COLUMNS パーティショニングList パーティショニング

  • TiFlashは、コンパクトコマンドの開始をサポートしています。 (実験的)

    TiFlash v6.1.0ではALTER TABLE ... COMPACTステートメントが導入されています。これは、既存のバックグラウンド圧縮メカニズムに基づいて物理データを手動で圧縮する方法を提供します。このステートメントを使用すると、以前の形式でデータを更新し、必要に応じていつでも読み取り/書き込みパフォーマンスを向上させることができます。クラスタをv6.1.0にアップグレードした後、このステートメントを実行してデータを圧縮することをお勧めします。このステートメントは標準SQL構文の拡張であるため、MySQLクライアントと互換性があります。 TiFlashアップグレード以外のシナリオでは、通常、このステートメントを使用する必要はありません。

    ユーザードキュメント #4145

  • TiFlashはウィンドウ関数フレームワークを実装し、次のウィンドウ関数をサポートします。

    • RANK()
    • DENSE_RANK()
    • ROW_NUMBER()

    ユーザードキュメント #33072

可観測性

  • 連続プロファイリングは、ARMアーキテクチャとTiFlashをサポートします。

    ユーザードキュメント

  • Grafanaは、パフォーマンス概要ダッシュボードを追加して、全体的なパフォーマンス診断のためのシステムレベルのエントリを提供します。

    TiDBの視覚化された監視コンポーネントGrafanaの新しいダッシュボードとして、パフォーマンスの概要は、全体的なパフォーマンス診断のためのシステムレベルのエントリを提供します。トップダウンのパフォーマンス分析方法に従って、パフォーマンス概要ダッシュボードはデータベースの時間内訳に基づいてTiDBパフォーマンスメトリックを再編成し、これらのメトリックをさまざまな色で表示します。これらの色を確認することで、システム全体のパフォーマンスのボトルネックを一目で特定できます。これにより、パフォーマンスの診断時間が大幅に短縮され、パフォーマンスの分析と診断が簡素化されます。

    ユーザードキュメント

パフォーマンス

  • カスタマイズされたリージョンサイズをサポート(実験的)

    リージョンをより大きなサイズに設定すると、リージョンの数を効果的に減らし、リージョンの管理を容易にし、クラスタのパフォーマンスと安定性を向上させることができます。この機能は、リージョン内のより小さな範囲であるバケットの概念を導入します。クエリユニットとしてバケットを使用すると、リージョンがより大きなサイズに設定されている場合に、同時クエリのパフォーマンスを最適化できます。バケットをクエリユニットとして使用すると、ホットリージョンのサイズを動的に調整して、スケジューリングの効率と負荷分散を確保することもできます。この機能は現在実験的です。実稼働環境での使用はお勧めしません。

    ユーザードキュメント #11515

  • デフォルトのログストレージエンジンとしてRaft Engineを使用する

    v6.1.0以降、TiDBはログのデフォルトのストレージRaft EngineとしてRaftEngineを使用します。 RocksDBと比較して、 Raft EngineはTiKVI / O書き込みトラフィックを最大40%、CPU使用率を10%削減し、特定の負荷の下でフォアグラウンドスループットを約5%向上させ、テールレイテンシーを20%削減します。

    ユーザードキュメント #95

  • 結合順序ヒント構文をサポートする

    • LEADINGヒントは、結合操作のプレフィックスとして指定された順序を使用するようにオプティマイザに通知します。結合の適切なプレフィックスを使用すると、結合の初期段階でデータ量をすばやく削減し、クエリのパフォーマンスを向上させることができます。
    • STRAIGHT_JOINヒントは、 FROM句のテーブルの順序と一致する順序でテーブルを結合するようにオプティマイザに通知します。

    これにより、テーブル結合の順序を修正する方法が提供されます。ヒントを適切に使用すると、SQLのパフォーマンスとクラスタの安定性を効果的に高めることができます。

    ユーザーSTRAIGHT_JOIN #29932 LEADING

  • TiFlashはさらに4つの関数をサポートしています。

    • FROM_DAYS
    • TO_DAYS
    • TO_SECONDS
    • WEEKOFYEAR

    ユーザードキュメント #4679 #4678 #4677

  • TiFlashは、動的プルーニングモードでパーティションテーブルをサポートします。

    OLAPシナリオのパフォーマンスを向上させるために、パーティションテーブルで動的プルーニングモードがサポートされています。 TiDBをv6.0.0より前のバージョンからアップグレードする場合は、パフォーマンスを最大化するために、既存のパーティションテーブルの統計を手動で更新することをお勧めします(v6.1.0へのアップグレード後に作成された新しいインストールまたは新しいパーティションには必要ありません)。

    ユーザー動的プルーニングモード #3873 MPPモードでパーティションテーブルにアクセスする

安定性

  • SST破損からの自動回復

    RocksDBがバックグラウンドで破損したSSTファイルを検出すると、TiKVは影響を受けたピアをスケジュールし、他のレプリカを使用してそのデータを回復しようとします。 background-error-recovery-windowパラメーターを使用して、リカバリーの最大許容時間を設定できます。時間枠内に回復操作が完了しない場合、TiKVはpanicになります。この機能は、回復可能な損傷したストレージを自動的に検出して回復するため、クラスタの安定性が向上します。

    ユーザードキュメント #10578

  • 非トランザクションDMLステートメントをサポートする

    大規模なデータ処理のシナリオでは、大規模なトランザクションを伴う単一のSQLステートメントが、クラスタの安定性とパフォーマンスに悪影響を与える可能性があります。 v6.1.0以降、TiDBは、バッチ処理のためにDELETEのステートメントを複数のステートメントに分割する構文の提供をサポートしています。分割ステートメントは、トランザクションのアトミック性と分離を損ないますが、クラスタの安定性を大幅に向上させます。詳細な構文については、 BATCHを参照してください。

    ユーザードキュメント

  • TiDBは、最大GC待機時間の構成をサポートします

    TiDBのトランザクションは、マルチバージョン同時実行制御(MVCC)メカニズムを採用しています。新しく書き込まれたデータが古いデータを上書きしても、古いデータは置き換えられず、両方のバージョンのデータが保存されます。古いデータは、ガベージコレクション(GC)タスクによって定期的にクリーンアップされます。これにより、ストレージスペースを再利用して、クラスタのパフォーマンスと安定性を向上させることができます。 GCはデフォルトで10分ごとにトリガーされます。長時間実行されるトランザクションが対応する履歴データにアクセスできるようにするために、実行中のトランザクションがある場合、GCタスクは遅延されます。 GCタスクが無期限に遅延しないようにするために、TiDBはシステム変数tidb_gc_max_wait_timeを導入して、GCタスクの最大遅延時間を制御します。最大遅延時間を超えると、GCが強制的に実行されます。変数のデフォルト値は24時間です。この機能を使用すると、GCの待機時間と長時間実行されるトランザクションの関係を制御できるため、クラスタの安定性が向上します。

    ユーザードキュメント

  • TiDBは、自動統計収集タスクの最大実行時間の構成をサポートします

    データベースは、統計を収集することでデータの分布を効果的に理解できます。これにより、合理的な実行プランが生成され、SQL実行の効率が向上します。 TiDBは、バックグラウンドで頻繁に変更されるデータオブジェクトに関する統計を定期的に収集します。ただし、統計の収集はクラスタリソースを消費し、ビジネスのピーク時にビジネスの安定した運用に影響を与える可能性があります。

    v6.1.0以降、TiDBではバックグラウンド統計収集の最大実行時間を制御するためにtidb_max_auto_analyze_timeが導入されています。これは、デフォルトでは12時間です。アプリケーションでリソースのボトルネックが発生しない場合は、TiDBがタイムリーに統計を収集できるように、この変数を変更しないことをお勧めします。

    ユーザードキュメント

使いやすさ

  • 複数のレプリカが失われた場合のワンストップオンラインデータリカバリをサポート

    TiDB v6.1.0より前では、マシンの障害が原因で複数のリージョンレプリカが失われた場合、ユーザーはすべてのTiKVサーバーを停止し、 TiKV Controlを使用してTiKVを1つずつ回復する必要があります。 TiDB v6.1.0以降、リカバリプロセスは完全に自動化されており、TiKVを停止する必要がなく、オンラインの他のアプリケーションに影響を与えません。回復プロセスは、 PD Controlを使用してトリガーでき、よりユーザーフレンドリーな要約情報を提供します。

    ユーザードキュメント #10483

  • 履歴統計収集タスクの表示をサポート

    SHOW ANALYZE STATUSステートメントを使用して、クラスターレベルの統計収集タスクを表示できます。 TiDB v6.1.0より前では、 SHOW ANALYZE STATUSステートメントはインスタンスレベルのタスクのみを表示し、履歴タスクレコードはTiDBの再起動後にクリアされます。したがって、履歴統計の収集時間と詳細を表示することはできません。 TiDB v6.1.0以降、統計収集タスクの履歴レコードは保持され、クラスタの再起動後にクエリを実行できます。これにより、統計の異常によって引き起こされるクエリパフォーマンスの問題をトラブルシューティングするためのリファレンスが提供されます。

    ユーザードキュメント

  • オンラインでのTiDB、TiKV、およびTiFlash構成の変更のサポート

    以前のTiDBバージョンでは、構成アイテムを変更した後、変更を有効にするためにクラスタを再起動する必要があります。これにより、オンラインサービスが中断される可能性があります。この問題に対処するために、TiDB v6.1.0にはオンライン構成機能が導入されており、クラスタを再起動せずにパラメーターの変更を検証できます。具体的な最適化は次のとおりです。

    • 一部のTiDB構成アイテムをシステム変数に変換して、オンラインで変更して永続化できるようにします。元の構成アイテムは、変換後に非推奨になることに注意してください。変換された構成アイテムの詳細なリストについては、 Configuration / コンフィグレーションファイルのパラメーターを参照してください。
    • 一部のTiKVパラメーターのオンライン構成をサポートします。パラメータの詳細なリストについては、 その他を参照してください。
    • TiFlash構成アイテムmax_threadsをシステム変数tidb_max_tiflash_threadsに変換して、構成をオンラインで変更して永続化できるようにします。元の構成アイテムは変換後も残ることに注意してください。

    以前のバージョンからアップグレードされたv6.1.0クラスター(オンラインおよびオフラインのアップグレードを含む)の場合、次の点に注意してください。

    • アップグレード前に構成ファイルで指定された構成アイテムがすでに存在する場合、TiDBは、アップグレードプロセス中に、構成されたアイテムの値を対応するシステム変数の値に自動的に更新します。このように、アップグレード後、システムの動作はパラメーターの最適化の影響を受けません。
    • 上記の自動更新は、アップグレード中に1回だけ発生します。アップグレード後、非推奨の構成アイテムは無効になります。

    この機能を使用すると、システムを再起動してサービスを中断する代わりに、パラメーターをオンラインで変更し、検証して永続化することができます。これにより、日常のメンテナンスが容易になります。

    ユーザードキュメント

  • クエリまたは接続の強制終了をグローバルにサポート

    enable-global-kill構成(デフォルトで有効)を使用して、グローバルキル機能を制御できます。

    TiDB v6.1.0より前では、操作が多くのリソースを消費し、クラスタの安定性の問題を引き起こす場合、ターゲットTiDBインスタンスに接続してから、 KILL TIDB ${id};コマンドを実行してターゲット接続と操作を終了する必要があります。多くのTiDBインスタンスの場合、この方法は使いやすくなく、間違った操作をする傾向があります。 v6.1.0以降、 enable-global-killの構成が導入され、デフォルトで有効になっています。クライアントとTiDBの間にプロキシがある場合に、他のクエリやセッションを誤って誤って終了することを心配することなく、任意のTiDBインスタンスでkillコマンドを実行して、指定した接続と操作を終了できます。現在、TiDBはCtrl+Cを使用してクエリまたはセッションを終了することをサポートしていません。

    ユーザードキュメント #8854

  • TiKV API V2(実験的)

    v6.1.0より前では、TiKVがRawキー値ストレージとして使用される場合、TiKVは、クライアントから渡された生データのみを保存するため、基本的なキー値の読み取りおよび書き込み機能のみを提供します。

    TiKV API V2は、次のような新しいRawKeyValueストレージ形式とアクセスインターフェイスを提供します。

    • データはMVCCに保存され、データの変更タイムスタンプが記録されます。この機能は、変更データのキャプチャと増分バックアップおよび復元を実装するための基盤を築きます。
    • データはさまざまな使用法に応じてスコープが設定され、単一のTiDBクラスタ、トランザクションKV、RawKVアプリケーションの共存をサポートします。
    警告
    基盤となるストレージ形式が大幅に変更されたため、API V2を有効にした後、TiKVクラスタをv6.1.0より前のバージョンにロールバックすることはできません。 TiKVをダウングレードすると、データが破損する可能性があります。

    ユーザードキュメント #11745

MySQLの互換性

  • MySQLを使用したユーザーレベルのロック管理との互換性をサポート

    ユーザーレベルのロックは、組み込み関数を介してMySQLによって提供されるユーザー名のロック管理システムです。ロック関数は、ロックのブロック、待機、およびその他のロック管理機能を提供できます。ユーザーレベルのロックは、Rails、Elixir、EctoなどのORMフレームワークでも広く使用されています。 v6.1.0以降、TiDBはMySQL互換のユーザーレベルのロック管理をサポートし、 GET_LOCK 、およびRELEASE_LOCKの関数をサポートしてRELEASE_ALL_LOCKSます。

    ユーザードキュメント #14994

データ移行

  • シャードテーブルをマージおよび移行するための楽観的なモードはGAになります

    DMは、毎日の使用シナリオの90%をカバーする楽観的なモードで、シャーディングされたテーブルからデータをマージおよび移行するタスクに対して、多数のシナリオテストを追加します。悲観的モードと比較して、楽観的モードはより簡単で効率的に使用できます。使用上の注意をよく理解した後で、楽観的なモードを使用することをお勧めします。

    ユーザードキュメント

  • DM WebUIは、指定されたパラメーターに従ってタスクを開始することをサポートします

    移行タスクを開始するときに、開始時間とセーフモード期間を指定できます。これは、多数のソースを使用して増分移行タスクを作成する場合に特に役立ち、ソースごとにbinlogの開始位置を指定する必要がなくなります。

    ユーザードキュメント #5442

TiDBデータ共有サブスクリプション

  • TiDBは、さまざまなサードパーティのデータエコシステムとのデータ共有をサポートしています

    • TiCDCは、TiDBインクリメンタルデータをAvro形式でKafkaに送信することをサポートし、Confluentを介してKSQLやSnowflakeなどのサードパーティとデータを共有できるようにします。

      ユーザードキュメント #5338

    • TiCDCは、テーブルごとにTiDBからさまざまなKafkaトピックへの増分データのディスパッチをサポートします。これをCanal-json形式と組み合わせると、Flinkと直接データを共有できます。

      ユーザードキュメント #4423

    • TiCDCはSASLGSSAPI認証タイプをサポートし、Kafkaを使用したSASL認証の例を追加します。

      ユーザードキュメント #4423

  • TiCDCは、 charset=GBKのテーブルの複製をサポートしています。

    ユーザードキュメント #4806

互換性の変更

システム変数

変数名タイプを変更する説明
tidb_enable_list_partition修正済みデフォルト値はOFFからONに変更されます。
tidb_mem_quota_query修正済みこの変数はGLOBALスコープを追加し、変数値はクラスタに保持されます。
tidb_query_log_max_len修正済み変数スコープがINSTANCEからGLOBALに変更されました。変数値はクラスタに保持され、値の範囲は[0, 1073741824]に変更されます。
require_secure_transport新しく追加されましたこの設定は、以前はtidb.tomlオプション( security.require-secure-transport )でしたが、TiDBv6.1.0以降のシステム変数に変更されました。
tidb_committer_concurrency新しく追加されましたこの設定は、以前はtidb.tomlオプション( performance.committer-concurrency )でしたが、TiDBv6.1.0以降のシステム変数に変更されました。
tidb_enable_auto_analyze新しく追加されましたこの設定は、以前はtidb.tomlオプション( run-auto-analyze )でしたが、TiDBv6.1.0以降のシステム変数に変更されました。
tidb_enable_new_only_full_group_by_check新しく追加されましたこの変数は、TiDBがONLY_FULL_GOUP_BYチェックを実行するときの動作を制御します。
tidb_enable_outer_join_reorder新しく追加されましたv6.1.0以降、TiDBの結合したテーブルの再配置アルゴリズムは外部結合をサポートしています。この変数はサポート動作を制御し、デフォルト値はONです。
tidb_enable_prepared_plan_cache新しく追加されましたこの設定は、以前はtidb.tomlオプション( prepared-plan-cache.enabled )でしたが、TiDBv6.1.0以降のシステム変数に変更されました。
tidb_gc_max_wait_time新しく追加されましたこの変数は、コミットされていないトランザクションによってブロックされるGCセーフポイントの最大時間を設定するために使用されます。
tidb_max_auto_analyze_time新しく追加されましたこの変数は、auto analyzeの最大実行時間を指定するために使用されます。
tidb_max_tiflash_threads新しく追加されましたこの変数は、TiFlashがリクエストを実行するための最大同時実行性を設定するために使用されます。
tidb_mem_oom_action新しく追加されましたこの設定は、以前はtidb.tomlオプション( oom-action )でしたが、TiDBv6.1.0以降のシステム変数に変更されました。
tidb_mem_quota_analyze新しく追加されましたこの変数は、TiDBが統計を更新するときの最大メモリ使用量を制御します。これには、ユーザーが手動で実行したANALYZE TABLEや、TiDBバックグラウンドでの自動分析タスクが含まれます。
tidb_nontransactional_ignore_error新しく追加されましたこの変数は、非トランザクションDMLステートメントでエラーが発生したときにエラーをすぐに返すかどうかを指定します。
tidb_prepared_plan_cache_memory_guard_ratio新しく追加されましたこの設定は、以前はtidb.tomlオプション( prepared-plan-cache.memory-guard-ratio )でしたが、TiDBv6.1.0以降のシステム変数に変更されました。
tidb_prepared_plan_cache_size新しく追加されましたこの設定は、以前はtidb.tomlオプション( prepared-plan-cache.capacity )でしたが、TiDBv6.1.0以降のシステム変数に変更されました。
tidb_stats_cache_mem_quota新しく追加されましたこの変数は、TiDB統計キャッシュのメモリクォータを設定します。

Configuration / コンフィグレーションファイルのパラメーター

Configuration / コンフィグレーションファイルConfiguration / コンフィグレーションタイプを変更する説明
TiDBcommitter-concurrency削除されましたシステム変数tidb_committer_concurrencyに置き換えられました。この構成アイテムは無効になりました。値を変更する場合は、対応するシステム変数を変更する必要があります。
TiDBlower-case-table-names削除されました現在、TiDBはlower_case_table_name=2のみをサポートしています。別の値が設定されている場合、クラスタがv6.1.0にアップグレードされた後、その値は失われます。
TiDBmem-quota-query削除されましたシステム変数tidb_mem_quota_queryに置き換えられました。この構成アイテムは無効になりました。値を変更する場合は、対応するシステム変数を変更する必要があります。
TiDBoom-action削除されましたシステム変数tidb_mem_oom_actionに置き換えられました。この構成アイテムは無効になりました。値を変更する場合は、対応するシステム変数を変更する必要があります。
TiDBprepared-plan-cache.capacity削除されましたシステム変数tidb_prepared_plan_cache_sizeに置き換えられました。この構成アイテムは無効になりました。値を変更する場合は、対応するシステム変数を変更する必要があります。
TiDBprepared-plan-cache.enabled削除されましたシステム変数tidb_enable_prepared_plan_cacheに置き換えられました。この構成アイテムは無効になりました。値を変更する場合は、対応するシステム変数を変更する必要があります。
TiDBquery-log-max-len削除されましたシステム変数tidb_query_log_max_lenに置き換えられました。この構成アイテムは無効になりました。値を変更する場合は、対応するシステム変数を変更する必要があります。
TiDBrequire-secure-transport削除されましたシステム変数require_secure_transportに置き換えられました。この構成アイテムは無効になりました。値を変更する場合は、対応するシステム変数を変更する必要があります。
TiDBrun-auto-analyze削除されましたシステム変数tidb_enable_auto_analyzeに置き換えられました。この構成アイテムは無効になりました。値を変更する場合は、対応するシステム変数を変更する必要があります。
TiDBenable-global-kill新しく追加されましたグローバルキル(インスタンス間のクエリまたは接続の終了)機能を有効にするかどうかを制御します。値がtrueの場合、 KILLステートメントとKILL TIDBステートメントの両方でインスタンス間のクエリまたは接続を終了できるため、クエリまたは接続を誤って終了することを心配する必要はありません。
TiDBenable-stats-cache-mem-quota新しく追加されました統計キャッシュのメモリクォータを有効にするかどうかを制御します。
TiKVraft-engine.enable修正済みデフォルト値はFALSEからTRUEに変更されます。
TiKVregion-max-keys修正済みデフォルト値は1440000からregion-split-keys / 2 * 3に変更されます。
TiKVregion-max-size修正済みデフォルト値は144MBからregion-split-size / 2 * 3に変更されます。
TiKVcoprocessor.enable-region-bucket新しく追加されましたリージョンをバケットと呼ばれる小さな範囲に分割するかどうかを決定します。
TiKVcoprocessor.region-bucket-size新しく追加されましたenable-region-bucketが真の場合のバケットのサイズ。
TiKVcausal-ts.renew-batch-min-size新しく追加されましたローカルにキャッシュされたタイムスタンプの最小数。
TiKVcausal-ts.renew-interval新しく追加されましたローカルにキャッシュされたタイムスタンプが更新される間隔。
TiKVmax-snapshot-file-raw-size新しく追加されましたスナップショットファイルのサイズがこの値を超えると、スナップショットファイルは複数のファイルに分割されます。
TiKVraft-engine.memory-limit新しく追加されましたRaft Engineのメモリ使用量の制限を指定します。
TiKVstorage.background-error-recovery-window新しく追加されましたRocksDBが回復可能なバックグラウンドエラーを検出した後、最大回復時間が許可されます。
TiKVstorage.api-version新しく追加されましたTiKVが生のKey-Valueストアとして機能するときにTiKVによって使用されるストレージ形式とインターフェイスバージョン。
PDschedule.max-store-preparing-time新しく追加されましたストアがオンラインになるまでの最大待機時間を制御します。
TiCDCenable-tls新しく追加されましたTLSを使用してダウンストリームのKafkaインスタンスに接続するかどうか。
TiCDCsasl-gssapi-user
sasl-gssapi-password
sasl-gssapi-auth-type
sasl-gssapi-service-name
sasl-gssapi-realm
sasl-gssapi-key-tab-path
sasl-gssapi-kerberos-config-path
新しく追加されましたKafkaのSASL/GSSAPI認証をサポートするために使用されます。詳細については、 kafkaでシンクURIを構成するを参照してください。
TiCDCavro-decimal-handling-mode
avro-bigint-unsigned-handling-mode
新しく追加されましたAvro形式の出力の詳細を決定します。
TiCDCdispatchers.topic新しく追加されましたTiCDCがインクリメンタルデータをさまざまなKafkaトピックにディスパッチする方法を制御します。
TiCDCdispatchers.partition新しく追加されましたdispatchers.partitiondispatchers.dispatcherのエイリアスです。 TiCDCがインクリメンタルデータをKafkaパーティションにディスパッチする方法を制御します。
TiCDCschema-registry新しく追加されましたAvroスキーマを格納するスキーマレジストリエンドポイントを指定します。
DMdmctl start-relayコマンドのworker削除されましたこのパラメーターの使用はお勧めしません。より簡単な実装を提供します。
DMソース構成ファイルのrelay-dir削除されましたワーカー構成ファイル内の同じ構成項目に置き換えられました。
DMタスク構成ファイルのis-sharding削除されましたshard-modeの構成アイテムに置き換えられました。
DMタスク構成ファイルのauto-fix-gtid削除されましたv5.xで非推奨になり、v6.1.0で正式に削除されました。
DMソース構成ファイルのmeta-dircharset削除されましたv5.xで非推奨になり、v6.1.0で正式に削除されました。

その他

  • プリペアドプランキャッシュをデフォルトで有効にする

    プリペアドプランキャッシュは、新しいクラスターでデフォルトで有効になっており、 Prepare / Executeリクエストの実行プランをキャッシュします。その後の実行では、クエリプランの最適化をスキップできるため、パフォーマンスが向上します。アップグレードされたクラスターは、構成ファイルから構成を継承します。新しいクラスターは新しいデフォルト値を使用します。つまり、 プリペアドプランキャッシュはデフォルトで有効になっており、各セッションは最大100のプランをキャッシュできます( capacity=100 )。この機能のメモリ消費量については、 プリペアドプランキャッシュのメモリ管理を参照してください。

  • TiDB v6.1.0より前のバージョンでは、 SHOW ANALYZE STATUSはインスタンスレベルのタスクを示し、タスクレコードはTiDBの再起動後にクリアされます。 TiDB v6.1.0以降、 SHOW ANALYZE STATUSはクラスターレベルのタスクを示し、タスクレコードは再起動後も保持されます。 tidb_analyze_version = 2の場合、 Job_info列にanalyze option情報が追加されます。

  • TiKV内の破損したSSTファイルにより、TiKVプロセスがpanicになる可能性があります。 TiDB v6.1.0より前は、SSTファイルが破損しているため、TiKVはすぐにpanicに陥りました。 TiDB v6.1.0以降、SSTファイルが破損してから1時間後にTiKVプロセスがpanicになります。

  • 次のTiKV構成アイテムはオンラインで値を変更するをサポートします。

    • raftstore.raft-entry-max-size
    • quota.foreground-cpu-time
    • quota.foreground-write-bandwidth
    • quota.foreground-read-bandwidth
    • quota.max-delay-duration
    • server.grpc-memory-pool-quota
    • server.max-grpc-send-msg-len
    • server.raft-msg-max-batch-size
  • v6.1.0では、一部の構成ファイルのパラメーターがシステム変数に変換されます。以前のバージョンからアップグレードされたv6.1.0クラスター(オンラインおよびオフラインのアップグレードを含む)の場合、次の点に注意してください。

    • アップグレード前に構成ファイルで指定された構成アイテムがすでに存在する場合、TiDBは、アップグレードプロセス中に、構成されたアイテムの値を対応するシステム変数の値に自動的に更新します。このように、アップグレード後、パラメータの最適化によってシステムの動作が変わることはありません。
    • 上記の自動更新は、アップグレード中に1回だけ発生します。アップグレード後、非推奨の構成アイテムは無効になります。
  • ダッシュボードページがDM WebUIから削除されます。

  • dispatchers.topicdispatchers.partitionが有効になっている場合、TiCDCをv6.1.0より前のバージョンにダウングレードすることはできません。

  • Avroプロトコルを使用するTiCDC Changefeedは、v6.1.0より前のバージョンにダウングレードすることはできません。

改善点

  • TiDB

    • UnionScanReadオペレーター#32433のパフォーマンスを向上させる
    • EXPLAINの出力でのタスクタイプの表示を改善します(MPPタスクタイプを追加します) #33332
    • #10377のデフォルト値としてrand()を使用することをサポートします
    • #33870のデフォルト値としてuuid()を使用することをサポートします
    • 列の文字セットをlatin1からutf8に変更することをサポートしutf8mb4 #34008
  • TiKV

    • インメモリペシミスティックロックを使用する場合のCDCの古い値のヒット率を改善する#12279
    • ヘルスチェックを改善して、使用できないRaftstoreを検出し、TiKVクライアントが時間#12398でリージョンキャッシュを更新できるようにします。
    • Raft Engineでのメモリ制限の設定を#12255
    • TiKVは、損傷したSSTファイルを自動的に検出して削除し、製品の可用性を向上させます#10578
    • CDCはRawKV1をサポートし#11965
    • 大きなスナップショットファイルを複数のファイルに分割することをサポート#11595
    • スナップショットガベージコレクションをRaftstoreからバックグラウンドスレッドに移動して、スナップショットGCがRaftstoreメッセージループをブロックしないようにします#11966
    • 最大メッセージ長( max-grpc-send-msg-len )とgPRCメッセージの最大バッチサイズ( raft-msg-max-batch-size )の動的設定をサポート#12334
    • Raftを介しオンラインの安全でない復元計画の実行を#10483
  • PD

    • リージョンラベルの存続時間(TTL)をサポート#4694
    • サポートリージョンバケット#4668
    • デフォルトでSwaggerサーバーのコンパイルを無効にする#4932
  • TiFlash

    • マージフェーズ#4451でより効率的なアルゴリズムが使用されるように、集計演算子のメモリ計算を最適化します。
  • ツール

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

      • 空のデータベースのバックアップと復元のサポート#33866
    • TiDB Lightning

      • スキャッターリージョンプロセスの安定性を向上させるために、スキャッターリージョンをバッチモードに最適化する#33618

バグの修正

  • TiDB

    • in関数がbit型データを処理するときに発生する可能性のあるpanicの問題を修正します#33070
    • UnionScan演算子は順序#33175を維持できないため、誤ったクエリ結果の問題を修正します
    • マージ結合演算子が特定の場合に間違った結果を得る問題を修正します#33042
    • 動的プルーニングモード#33231index joinの結果が間違っている可能性があるという問題を修正します。
    • パーティションテーブルの一部のパーティションが削除されたときにデータがガベージコレクションされない可能性がある問題を修正します#33620
    • クラスタのPDノードが置き換えられた後、一部のDDLステートメントが一定期間スタックする可能性がある問題を修正します#33908
    • INFORMATION_SCHEMA.CLUSTER_SLOW_QUERYのテーブルが照会されたときにTiDBサーバーのメモリが不足する可能性がある問題を修正します。この問題は、Grafanaダッシュボード#33893で遅いクエリをチェックしたときにトリガーされる可能性があります
    • システム変数max_allowed_packetが有効にならない問題を修正します#31422
    • #34502モジュールのメモリリークの問題を修正します#34525
    • PointGetプラン#32371でプランキャッシュが間違っている可能性がある問題を修正します
    • プランキャッシュがRC分離レベル#34447で開始されたときに、クエリ結果が間違っている可能性があるという問題を修正します。
  • TiKV

    • TiKVインスタンスがオフラインになるとRaftログラグが増加する問題を修正します#12161
    • マージされるターゲットリージョンが無効であるためにTiKVがパニックになり、予期せずピアを破壊する問題を修正します#12232
    • v5.3.1またはv5.4.0からv6.0.0以降のバージョン#12269にアップグレードするときにTiKVがfailed to load_latest_optionsエラーを報告する問題を修正します。
    • メモリリソースが不足しているときにRaftログを追加することによって引き起こされるOOMの問題を修正します#11379
    • ピアの破壊とリージョン#12368のバッチ分割の間の競合によって引き起こされるTiKVpanicの問題を修正します
    • stats_monitorがデッドループ#12416に陥った後、短時間でTiKVメモリ使用量が急増する問題を修正します。
    • フォロワー読み取り#12478を使用するとTiKVがinvalid store ID 0エラーを報告する問題を修正します
  • PD

    • 13の間違ったステータスnot leaderを修正し#4797
    • 一部のコーナーケースでのTSOフォールバックのバグを修正#4884
    • PDリーダーの転送後に削除されたトゥームストーンストアが再び表示される問題を修正します#4941
    • PDリーダーの転送直後にスケジューリングを開始できない問題を修正します#4769
  • TiDBダッシュボード

    • Top SQL機能が有効になる前に実行されていたSQLステートメントのCPUオーバーヘッドをTop SQLが収集できないバグを修正します#33859
  • TiFlash

    • 多くのINSERTおよびDELETE操作後の潜在的なデータの不整合を修正します#4956
  • ツール

    • TiCDC

      • DDLスキーマのバッファリング方法を最適化することにより、過剰なメモリ使用量を修正します#1386
      • 大規模なトランザクションによって引き起こされるOOMを修正する#5280
      • 特別なインクリメンタルスキャンシナリオで発生するデータ損失を修正#5468
    • TiDBデータ移行(DM)

      • start-timeタイムゾーンの問題を修正し、DMの動作をダウンストリームタイムゾーンの使用からアップストリームタイムゾーン#5271の使用に変更します。
      • タスクが自動的に再開した後、DMがより多くのディスクスペースを占有する問題を修正します#3734 #5344
      • チェックポイントフラッシュにより、失敗した行のデータがスキップされる可能性がある問題を修正します#5279
      • 場合によっては、ダウンストリームでフィルター処理されたDDLを手動で実行すると、タスクの再開に失敗する可能性があるという問題を修正します#5272
      • case-sensitive: trueが設定されていない場合に大文字のテーブルを複製できない問題を修正します#5255
      • SHOW CREATE TABLEステートメント#5159によって返されるインデックスの最初に主キーがない場合に発生するDMワーカーのpanicの問題を修正します。
      • GTIDを有効にした場合、またはタスクが自動的に再開された場合に、CPU使用率が増加し、大量のログが出力される可能性がある問題を修正します#5063
      • DM WebUIのオフラインオプションおよびその他の使用#4993の問題を修正します。
      • アップストリーム#3731でGTIDが空の場合、インクリメンタルタスクの開始に失敗する問題を修正します。
      • 空の構成でdm-masterがpanicになる可能性がある問題を修正します#3732
    • TiDB Lightning

      • 事前チェックでローカルディスクリソースとクラスタの可用性がチェックされない問題を修正します#34213
      • スキーマ#33381の誤ったルーティングの問題を修正します
      • TiDB LightningがパニックになったときにPD構成が正しく復元されない問題を修正します#31733
      • auto_increment#29737の範囲外のデータが原因で発生するローカルバックエンドのインポートの失敗の問題を修正します。
      • auto_random列またはauto_increment列がnullの場合のローカルバックエンドインポートの失敗の問題を修正します#34208