TiDB 6.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 への変更ログのレプリケートをサポートします
  • TiCDC は、レプリケーション中の大規模なトランザクションの分割をサポートしており、大規模なトランザクションによって引き起こされるレプリケーションのレイテンシーを大幅に削減します。
  • シャードテーブルのマージおよび移行の楽観的モードが GA になりました

新機能

SQL

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

    ユーザードキュメント: List パーティショニングList COLUMNS パーティショニング

  • 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 パフォーマンス メトリックを再編成し、これらのメトリックをさまざまな色で表示します。これらの色を確認することで、システム全体の性能ボトルネックを一目で特定することができ、性能診断時間を大幅に短縮し、性能解析と診断を簡素化します。

    ユーザードキュメント

パフォーマンス

  • カスタマイズされたリージョンサイズをサポート

    v6.1.0 以降、 coprocessor.region-split-sizeを構成してリージョンをより大きなサイズに設定できるようになりました。これにより、リージョンの数が効果的に削減され、リージョンの管理が容易になり、クラスターのパフォーマンスと安定性が向上します。

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

  • バケットを使用した同時実行性の向上をサポート (実験的)

    リージョン をより大きなサイズに設定した後、クエリの同時実行性をさらに向上させるために、TiDB では、リージョン内のより小さな範囲であるバケットの概念を導入しています。リージョンがより大きなサイズに設定されている場合、クエリ単位としてバケットを使用すると、同時クエリのパフォーマンスを最適化できます。バケットをクエリ単位として使用すると、ホットスポット リージョンのサイズを動的に調整して、スケジューリングの効率と負荷バランスを確保することもできます。この機能は現在実験的です。本番環境での使用はお勧めできません。

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

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

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

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

  • 結合順序ヒント構文のサポート

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

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

    ユーザードキュメント: LEADINGSTRAIGHT_JOIN#29932

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

    • FROM_DAYS
    • TO_DAYS
    • TO_SECONDS
    • WEEKOFYEAR

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

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

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

    ユーザードキュメント: MPP モードでパーティション化されたテーブルにアクセスする動的プルーニングモード#3873

安定性

  • SST破損からの自動回復

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

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

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

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

    ユーザードキュメント

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

    TiDB のトランザクションは、Multi-Version Concurrency Control (MVCC) メカニズムを採用しています。新しく書き込まれたデータが古いデータを上書きする場合、古いデータは置き換えられず、両方のバージョンのデータが保存されます。古いデータはガベージ コレクション (GC) タスクによって定期的にクリーンアップされ、storage領域を再利用してクラスターのパフォーマンスと安定性を向上させるのに役立ちます。 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 構成項目をシステム変数に変換して、動的に変更して永続化できるようにします。元の構成項目は変換後は非推奨になることに注意してください。変換された構成アイテムの詳細なリストについては、 コンフィグレーションファイルのパラメータを参照してください。
    • 一部の TiKV パラメーターのオンライン構成をサポートします。パラメータの詳細なリストについては、 その他を参照してください。
    • TiFlash構成項目max_threadsをシステム変数tidb_max_tiflash_threadsに変換して、構成を動的に変更して永続化できるようにします。変換後も元の構成アイテムが残ることに注意してください。

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

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

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

    ユーザードキュメント

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

    enable-global-kill構成 (デフォルトで有効) を使用して、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 Key Valuestorageとして使用される場合、TiKV はクライアントから渡された Raw データのみを保存するため、基本的な Key Value の読み取りおよび書き込み機能のみを提供します。

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

    • データは MVCC に保存され、データの変更タイムスタンプが記録されます。この機能は、変更データ キャプチャと増分バックアップと復元を実装するための基盤を築きます。
    • データはさまざまな用途に応じてスコープ設定され、単一の TiDB クラスター、トランザクション KV、RawKV アプリケーションの共存をサポートします。

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

MySQLの互換性

  • MySQL によるユーザーレベルのロック管理との互換性をサポート

    ユーザーレベルのロックは、MySQL が組み込み関数を通じて提供するユーザー名付きのロック管理システムです。ロック関数は、ロックのブロック、待機、その他のロック管理機能を提供します。ユーザーレベルのロックは、Rails、Elixir、Ecto などの ORM フレームワークでも広く使用されています。 v6.1.0 以降、TiDB は MySQL と互換性のあるユーザーレベルRELEASE_LOCK GET_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 は SASL GSSAPI 認証タイプをサポートし、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 ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。
tidb_committer_concurrency新しく追加されたこの設定は以前はtidb.tomlオプション ( performance.committer-concurrency ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。
tidb_enable_auto_analyze新しく追加されたこの設定は以前はtidb.tomlオプション ( run-auto-analyze ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。
tidb_enable_new_only_full_group_by_check新しく追加されたこの変数は、TiDB がONLY_FULL_GROUP_BYチェックを実行するときの動作を制御します。
tidb_enable_outer_join_reorder新しく追加されたv6.1.0 以降、TiDB の結合したテーブルの再配置アルゴリズムは、Outer Join をサポートしています。この変数はサポート動作を制御します。デフォルト値はONです。
tidb_enable_prepared_plan_cache新しく追加されたこの設定は以前はtidb.tomlオプション ( prepared-plan-cache.enabled ) でしたが、TiDB v6.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 ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。
tidb_mem_quota_analyze新しく追加されたこの変数は、ユーザーによる手動実行や TiDB バックグラウンドでの自動分析タスクなど、TiDB が統計を更新するときの最大メモリ使用量ANALYZE TABLE制御します。
tidb_nontransactional_ignore_error新しく追加されたこの変数は、非トランザクション DML ステートメントでエラーが発生した場合に、ただちにエラーを返すかどうかを指定します。
tidb_prepared_plan_cache_memory_guard_ratio新しく追加されたこの設定は以前はtidb.tomlオプション ( prepared-plan-cache.memory-guard-ratio ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。
tidb_prepared_plan_cache_size新しく追加されたこの設定は以前はtidb.tomlオプション ( prepared-plan-cache.capacity ) でしたが、TiDB v6.1.0 以降はシステム変数に変更されました。
tidb_stats_cache_mem_quota新しく追加されたこの変数は、TiDB 統計キャッシュのメモリ割り当てを設定します。

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

コンフィグレーションファイルコンフィグレーション種類の変更説明
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新しく追加されたGlobal Kill (インスタンス間でのクエリまたは接続の終了) 機能を有効にするかどうかを制御します。値がtrueの場合、 KILLKILL TIDBステートメントの両方でインスタンス間のクエリまたは接続を終了できるため、クエリまたは接続が誤って終了することを心配する必要はありません。
TiDBenable-stats-cache-mem-quota新しく追加された統計キャッシュのメモリ割り当てを有効にするかどうかを制御します。
TiKVraft-engine.enable修正済みデフォルト値がFALSEからTRUEに変更されました。
TiKVregion-max-keys修正済みデフォルト値は 1440000 からregion-split-keys / 2 * 3に変更されます。
TiKVregion-max-size修正済みデフォルト値が 144 MB からregion-split-size / 2 * 3に変更されました。
TiKVcoprocessor.enable-region-bucket新しく追加されたリージョンをバケットと呼ばれる小さな範囲に分割するかどうかを決定します。
TiKVcoprocessor.region-bucket-size新しく追加されたenable-region-bucketが true の場合のバケットのサイズ。
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 が生のキー/値ストアとして機能するときに TiKV によって使用されるstorage形式とインターフェイスのバージョン。
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 以降、TiKV プロセスは、SST ファイルが破損してから 1 時間後に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

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

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

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

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

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

      • 散乱リージョンをバッチ モードに最適化して、散乱リージョンプロセスの安定性を向上させます#33618
    • TiCDC

      • TiCDC は、レプリケーション中の大規模なトランザクションの分割をサポートしており、これにより、大規模なトランザクションによって発生するレプリケーションのレイテンシーが大幅に削減されます#5280

バグの修正

  • TiDB

    • in関数がbit種類のデータを処理するときにpanicが発生する可能性がある問題を修正します。 #33070
    • UnionScan演算子が順序#33175を維持できないため、間違ったクエリ結果が表示される問題を修正
    • 特定の場合に Merge Join 演算子が間違った結果を取得する問題を修正します#33042
    • 動的枝刈りモード#33231においてindex joinの結果が間違っている場合がある問題を修正
    • パーティションテーブルの一部のパーティションが削除されると、データがガベージコレクションされない場合がある問題を修正します#33620
    • クラスターの PD ノードが交換された後、一部の DDL ステートメントが一定期間スタックすることがある問題を修正します#33908
    • INFORMATION_SCHEMA.CLUSTER_SLOW_QUERYテーブルがクエリされるときに TiDBサーバーがメモリ不足になる可能性がある問題を修正します。この問題は、Grafana ダッシュボード#33893で遅いクエリをチェックすると発生する可能性があります。
    • システム変数max_allowed_packetが有効にならない問題を修正#31422
    • TopSQL モジュールのメモリリークの問題を修正#34525 #34502
    • 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デッド ループに陥った後、短時間で TiKVメモリ使用量が急増する問題を修正#12416
    • Follower Read #12478を使用すると TiKV がinvalid store ID 0エラーを報告する問題を修正
  • PD

    • not leader #4797の間違ったステータス コードを修正
    • いくつかの特殊なケースにおける TSO フォールバックのバグを修正#4884
    • PDリーダー移転後、削除された墓石ストアが再び表示される問題を修正#4941
    • PDリーダー転送#4769直後にスケジューリングが開始できない問題を修正
  • TiDB ダッシュボード

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

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

    • TiCDC

      • DDL スキーマのバッファリング方法を最適化することで過剰なメモリ使用量を修正します#1386
      • 特別な増分スキャン シナリオ#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

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

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.