📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB 6.1.0 リリースノート



リリース日:2022年6月13日

TiDB バージョン: 6.1.0

クイックアクセス: クイックスタート | 本番環境へのデプロイ

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

  • リストパーティショニングとリストCOLUMNSパーティショニングが GA になり、 MySQL 5.7と互換性があります
  • TiFlashパーティションテーブル(動的プルーニング)が GA になりました
  • ユーザーレベルのロック管理をサポートし、MySQLと互換性があります
  • 非トランザクションDML文をサポート( DELETEのみサポート)
  • TiFlashはオンデマンドのデータ圧縮をサポート
  • MPPはウィンドウ関数フレームワークを導入する
  • TiCDCはAvro経由でKafkaへの変更ログの複製をサポートします
  • TiCDCはレプリケーション中に大規模なトランザクションを分割することをサポートしており、これにより大規模なトランザクションによって発生するレプリケーションのレイテンシーが大幅に削減されます。
  • シャードテーブルのマージと移行の楽観的モードがGAになりました

新機能

SQL

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

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

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

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

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

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

可観測性

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

    ユーザードキュメント

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

    TiDB可視化監視コンポーネントGrafanaの新しいダッシュボードである「Performance Overview」は、システム全体のパフォーマンス診断のためのエントリーを提供します。トップダウン型パフォーマンス分析手法に基づき、「Performance Overview」ダッシュボードは、TiDBのパフォーマンスメトリクスをデータベース時間の内訳に基づいて整理し、異なる色で表示します。これらの色を確認することで、システム全体のパフォーマンスボトルネックを一目で特定できるため、パフォーマンス診断時間を大幅に短縮し、パフォーマンス分析と診断を簡素化します。

    ユーザードキュメント

パフォーマンス

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

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

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

  • 同時実行性を高めるためにバケットの使用をサポート(実験的)

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

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

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

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

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

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

    • LEADINGヒントは、指定した順序を結合操作のプレフィックスとして使用するようにオプティマイザに指示します。適切な結合のプレフィックスにより、結合の初期段階でデータ量を素早く削減し、クエリのパフォーマンスを向上できます。

    • STRAIGHT_JOINヒントは、 FROM句内のテーブルの順序と一致する順序でテーブルを結合するようにオプティマイザに通知します。

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

      ユーザードキュメント: LEADING 、 STRAIGHT_JOIN 、 #29932

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

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

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

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

安定性

  • SST 破損からの自動回復

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

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

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

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

    ユーザードキュメント

  • TiDBは最大GC待機時間の設定をサポートしています

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

    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 Valueストレージとして使用される場合、TiKV はクライアントから渡された生データのみを保存するため、基本的な Key Value の読み取りおよび書き込み機能のみを提供します。

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

    • データはMVCCに保存され、データの変更タイムスタンプが記録されます。この機能は、変更データキャプチャ(CDC)と増分バックアップおよびリストアの実装の基盤となります。

    • データはさまざまな使用法に応じてスコープ設定され、単一の TiDB クラスター、トランザクション KV、RawKV アプリケーションの共存をサポートします。

      ユーザードキュメント #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 は 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新しく追加されたバージョン6.1.0以降、TiDBの結合したテーブルの再配置アルゴリズムは外部結合をサポートしています。この変数はサポートの動作を制御し、デフォルト値は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新しく追加されたこの変数は、ユーザーによる手動実行ANALYZE TABLEや TiDB のバックグラウンドでの自動分析タスクなど、TiDB が統計を更新する際の最大メモリ使用量を制御します。
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の場合、 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変更デフォルト値が 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 が RawKV ストアとして機能するときに TiKV によって使用されるストレージ形式とインターフェース バージョン。
PDschedule.max-store-preparing-time新しく追加されたストアがオンラインになるまでの最大待機時間を制御します。
TiCDCenable-tls新しく追加されたダウンストリーム Kafka インスタンスに接続するために TLS を使用するかどうか。
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.partitionはdispatchers.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-dirとcharset削除済み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.topicとdispatchers.partitionが有効になっている場合、TiCDC を v6.1.0 より前のバージョンにダウングレードすることはできません。

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

改善点

  • TiDB

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

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

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

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

    • Backup & Restore (BR)

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

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

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

バグ修正

  • TiDB

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

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

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

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

    • 多数のINSERTおよびDELETE操作後に発生する可能性のあるデータの不整合を修正#4956
  • ツール

    • TiCDC

      • DDLスキーマのバッファリング方法を最適化することで過剰なメモリ使用量を修正#1386
      • 特別な増分スキャンシナリオで発生するデータ損失を修正#5468
    • TiDB Data Migration (DM)

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

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

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