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

TiDB 6.3.0 リリースノート



発売日:2022年9月30日

TiDBバージョン: 6.3.0-DMR

クイックアクセス: クイックスタート

バージョン6.3.0-DMRの主な新機能と改善点は以下のとおりです。

  • TiKVは、SM4アルゴリズムを用いた保存データの暗号化をサポートしています。
  • TiDBはSM3アルゴリズムを用いた認証をサポートしています。
  • CREATE USERおよびALTER USER文はACCOUNT LOCK/UNLOCKオプションをサポートします。
  • JSONデータ型と関数が一般提供(GA)されます。
  • TiDBは、NULL値を考慮したアンチジョインをサポートしています。
  • TiDBは、より詳細な粒度で実行時間メトリクスを提供します。
  • 範囲パーティションの定義を簡素化するために、新しい構文糖衣が追加されました。
  • 範囲COLUMNSパーティショニングは、複数の列を定義することをサポートしています。
  • インデックス追加時のパフォーマンスが3倍に向上しました。
  • リソースを大量に消費するクエリが、軽量クエリの応答時間に与える影響を50%以上削減します。

新機能

SQL

  • 範囲パーティション定義を簡素化するための新しい構文糖衣(範囲INTERVALパーティショニング)を追加(実験的) #35683 @mjonss

    TiDBは、範囲パーティションを定義する新しい方法として、 区間分割を提供します。すべてのパーティションを列挙する必要がないため、範囲パーティショニングのDDL文の長さが大幅に短縮されます。構文は、従来の範囲パーティショニングと同じです。

  • 範囲COLUMNSパーティショニングは、複数の列の定義をサポートします #36636 @mjonss

    TiDB は範囲列によるパーティション分割(列リスト)をサポートしています。 column_listは単一列に制限されなくなりました。基本的な機能はMySQLと同じです。

  • パーティション交換が GA になりました #35996 @ymkzpx

  • TiFlashへのさらに 2つのウィンドウ関数のプッシュダウンをサポート #5579 @SeaRise

    • LEAD()
    • LAG()
  • DDL変更時のDML成功率を向上させるための軽量メタデータロックを提供する(実験的) #37275 @wjhuang2016

    TiDB は、変更されるメタデータオブジェクトをサポートするために、オンライン非同期スキーマ変更アルゴリズムを使用します。トランザクションが実行されると、トランザクションの開始時に対応するメタデータスナップショットを取得します。トランザクション中にメタデータが変更された場合、データの一貫性を確保するために、TiDB はInformation schema is changedエラーを返し、トランザクションはコミットに失敗します。この問題を解決するために、TiDB v6.3.0 では、オンライン DDL アルゴリズムにメタデータロックが導入されました。可能な限り DML エラーを回避するために、TiDB はテーブルメタデータの変更中に DML と DDL の優先順位を調整し、実行中の DDL が古いメタデータを持つ DML のコミットを待つようにします。

  • インデックス追加のパフォーマンスを向上させ、DML トランザクションへの影響を軽減します (実験的) #35983 @benjamin2037

    インデックス作成時のバックフィル処理速度を向上させるため、TiDB v6.3.0 では、 tidb_ddl_enable_fast_reorgシステム変数が有効になっている場合、 ADD INDEXおよびCREATE INDEX DDL 操作が高速化されます。この機能が有効になっている場合、インデックス追加時のパフォーマンスは約 3 倍になります。

セキュリティ

  • TiKV は保存時の暗号化に SM4 アルゴリズムをサポートしています #13041 @jiayang-zheng

    SM4アルゴリズムを追加します 保存時のTiKV暗号化用です。保存時の暗号化を設定する際に、 data-encryption-method構成の値をsm4-ctrに設定することで、SM4暗号化機能を有効にできます。

  • TiDBはSM3アルゴリズムによる認証をサポートします #36192 @CbcWestwolf

    TiDBは、SM3アルゴリズムに基づいた認証プラグインtidb_sm3_passwordを追加します。このプラグインが有効になっている場合、ユーザーパスワードはSM3アルゴリズムを使用して暗号化および検証されます。

  • TiDB JDBC は SM3 アルゴリズムによる認証をサポート #25 @lastincisor

    ユーザーパスワードの認証には、クライアント側のサポートが必要です。 JDBCはSM3アルゴリズムをサポートしていますので、TiDB-JDBC経由でSM3認証を使用してTiDBに接続できるようになります。

可観測性

  • TiDBはSQLクエリ実行時間の詳細なメトリクスを提供します #34106 @cfzjywxk

    TiDB v6.3.0 は実行時間の詳細な観察のためのきめ細かいデータ メトリクスを提供します。完全でセグメント化されたメトリクスを通じて、SQL クエリの主な消費時間を明確に把握でき、主要な問題を迅速に見つけてトラブルシューティングの時間を節約できます。

  • スローログとTRACEステートメントの出力強化 #34106 @cfzjywxk

    TiDB v6.3.0 では、スローログとTRACEの出力が強化されています。TiDB の解析から KV RocksDB によるディスクへの書き込みまでの SQL クエリのフルリンク期間を観察できるため、診断機能がさらに強化されます。

  • TiDB Dashboardはデッドロック履歴情報を提供します #34106 @cfzjywxk

    バージョン6.3.0以降、TiDB Dashboardではデッドロック履歴が提供されます。TiDB Dashboardのスローログを確認し、一部のSQL文のロック待機時間が極端に長い場合は、デッドロック履歴を確認することで根本原因を特定でき、診断が容易になります。

パフォーマンス

  • TiFlash がFastScan の使い方を変更 (実験的) #5252 @hongyunyan

    バージョン6.2.0では、 TiFlashにFastScan機能が導入されました。これにより、期待通りのパフォーマンス向上が実現しましたが、使用上の柔軟性に欠けていました。そのため、バージョン6.3.0では、 TiFlashはFastScanの使い方を変更します。 FastScanを有効または無効にするためのALTER TABLE ... SET TIFLASH MODE ...構文は非推奨となりました。代わりに、システム変数tiflash_fastscanを使用して、FastScanを有効にするかどうかを簡単に制御できます。

    バージョン 6.2.0 からバージョン 6.3.0 にアップグレードすると、バージョン 6.2.0 のすべての FastScan 設定が無効になりますが、データの通常の読み取りには影響しません。変数tiflash_fastscanを設定する必要があります。バージョン 6.2.0 またはそれ以前のバージョンからバージョン 6.3.0 にアップグレードすると、データの一貫性を維持するために、すべてのセッションで FastScan 機能がデフォルトで有効になりません。

  • TiFlashは、複数の同時実行タスクのシナリオにおけるデータスキャン性能を最適化します #5376 @JinheLin

    TiFlash は、同じデータの読み取り操作を組み合わせることで、同じデータの重複読み取りを削減します。リソースのオーバーヘッドを最適化し、 同時実行タスクの場合のデータスキャン性能を向上させる。複数の同時タスクの場合、各タスクが同じデータを個別に読み取る必要がある状況を回避し、同じデータを同時に複数読み取る可能性を回避します。

    この機能はバージョン6.2.0では実験的に提供されており、バージョン6.3.0で正式リリースとなります。

  • TiFlashデータレプリケーションのパフォーマンスが向上 #5237 @breezewish

    TiFlashは、TiKVからのデータレプリケーションにRaftプロトコルを使用します。v6.3.0より前は、大量のレプリカデータのレプリケーションに時間がかかることがよくありました。TiDB v6.3.0では、 TiFlashのデータレプリケーションメカニズムが最適化され、レプリケーション速度が大幅に向上しました。BRを使用してデータをリカバリする場合、 TiDB Lightningを使用してデータをインポートする場合、または新しいTiFlashレプリカを追加する場合、 TiFlashレプリカのレプリケーションがより迅速に行われます。TiFlashを使用したクエリもより迅速に実行できます。さらに、 TiFlashレプリカのスケールアップ、スケールダウン、またはレプリカ数の変更時にも、 TiFlashレプリカはより迅速に安全でバランスの取れた状態に到達します。

  • TiFlash は個々のCOUNT(DISTINCT)の 3 段階集約をサポートしています #37202 @fixdb

    TiFlashはCOUNT(DISTINCT)を1つだけ含むクエリを3段階集計に書き換えることをサポートしています。 これにより、同時実行性とパフォーマンスが向上します。

  • TiKVはログのリサイクルをサポートしています #214 @LykxSassinator

    TiKV はRaft Engineのリサイクルログファイルをサポートしています。これにより、 Raftログの追加中のネットワーク ディスクのロングテールレイテンシーが短縮され、書き込みワークロード時のパフォーマンスが向上します。

  • TiDB は null 認識アンチ結合をサポートします #37525 @Arenatlx

    TiDB v6.3.0 では、新しい結合ヌル値認識型アンチジョイン(NAAJ)が導入されています。 NAAJ は、コレクション操作を処理するときに、コレクションが空であるか、 NULLであるかを認識できます。これによりIN= ANYなどの操作の実行効率が最適化され、SQL パフォーマンスが向上します。

  • ハッシュ結合のビルド終了を制御するオプティマイザヒントを追加 #35439 @Reminiscent

    バージョン6.3.0では、TiDBオプティマイザに、ハッシュ結合、そのプローブ終了、および構築終了を指定するための2つのヒント、 HASH_JOIN_BUILD()HASH_JOIN_PROBE()が導入されました。オプティマイザが最適な実行計画を選択できない場合、これらのヒントを使用してプランに介入できます。

  • セッションレベルの共通テーブル式 (CTE) インラインをサポート #36514 @elsa0520

    TiDB v6.2.0 では、オプティマイザにMERGEヒントを導入し、CTE のインライン実行を可能にしました。これにより、CTE クエリ結果の利用者はTiFlashで並列実行できるようになりました。v6.3.0 では、セッション変数tidb_opt_force_inline_cte導入され、セッション内での CTE のインライン実行が可能になりました。これにより、使いやすさが大幅に向上します。

トランザクション

  • 悲観的トランザクションにおける一意制約のチェックの延期をサポート #36579 @ekexium

    TiDB が固有の制約チェックを行うかを制御できるシステム変数tidb_constraint_check_in_place_pessimisticを使用できます。悲観的トランザクションにおいて。この変数はデフォルトでは無効になっています。変数を有効にすると ( ONに設定)、TiDB は悲観的トランザクションにおけるロック操作と一意制約チェックを必要になるまで延期し、バルク DML 操作のパフォーマンスを向上させます。

  • Read-Committed 分離レベルで TSO を取得する方法を最適化します #36812 @TonsnakeLin

    Read-Committed 分離レベルでは、TSOのフェッチ方法を制御するためのシステム変数tidb_rc_write_check_tsが導入されます。プランキャッシュがヒットした場合、TiDBはTSOのフェッチ頻度を減らすことでバッチDML文の実行効率を向上させ、バッチで実行されるタスクの実行時間を短縮します。

安定性

  • リソースを大量に消費するクエリが軽量クエリの応答時間に与える影響を軽減する #13313 @glorv

    リソースを大量に消費するクエリと軽量クエリが同時に実行されると、軽量クエリの応答時間に影響が出ます。この場合、トランザクションサービスの品質を確保するため、TiDBは軽量クエリを優先的に処理することが求められます。v6.3.0では、TiKVが読み取りリクエストのスケジューリングメカニズムを最適化し、各ラウンドにおけるリソースを大量に消費するクエリの実行時間が期待値を満たすようにしました。これにより、リソースを大量に消費するクエリが軽量クエリの応答時間に与える影響が大幅に軽減され、混合ワークロードシナリオにおけるP99レイテンシーが50%以上削減されます。

  • 統計情報が古くなった場合に統計情報を読み込むデフォルトポリシーを変更する #27601 @xuyifangreeneyes

    v5.3.0 では、統計情報が古くなったときのオプティマイザの動作を制御するために、システム変数tidb_enable_pseudo_for_outdated_statsが導入されました。デフォルト値はONで、これは旧バージョンの動作を維持することを意味します。つまり、SQL文に関係するオブジェクトの統計情報が古くなった場合、オプティマイザは (テーブルの総行数以外の) 統計情報はもはや信頼できないと判断し、代わりに擬似統計情報を使用します。実際のユーザーシナリオのテストと分析の結果、v6.3.0 以降、デフォルト値tidb_enable_pseudo_for_outdated_statsOFFに変更されました。統計情報が古くなっても、オプティマイザはテーブル上の統計情報を使用するため、実行計画がより安定します。

  • Titan の無効化が GA に@tabokie

    オンライン TiKV ノードに対してTitanを無効にすることができます。

  • グローバル統計が準備できていない場合は、 staticパーティションプルーニングを使用します #37535 @Yisaer

    dynamic pruningが有効になっている場合、オプティマイザは世界の統計に基づいて実行計画を選択します。グローバル統計が完全に収集される前に擬似統計を使用すると、パフォーマンスが低下する可能性があります。v6.3.0 では、グローバル統計の収集が完了する前にdynamicプルーニングモードを有効にすると、グローバル統計が完全に収集されるまで TiDB はstaticモードのままになります。これにより、パーティションプルーニングの設定を変更したときのパフォーマンスの安定性が確保されます。

使いやすさ

  • SQLベースのデータ配置ルールとTiFlashレプリカ間の競合に対処する #37171 @lcwangchao

    TiDB v6.0.0 はSQLベースのデータ配置ルールを提供します。ただし、実装上の問題により、この機能はTiFlashレプリカと競合します。 TiDB v6.3.0 は実装メカニズムを最適化し、SQL ベースのデータ配置ルールとTiFlashの間の競合を解決します。

MySQLとの互換性

  • MySQL 8.0との互換性を向上させるため、4つの正規表現関数(REGEXP_INSTR()REGEXP_LIKE()REGEXP_REPLACE()REGEXP_SUBSTR())をサポート #23881 @windtalker

    MySQL との互換性の詳細については、 MySQLとの正規表現互換性を参照してください。

  • CREATE USER および ALTER USER文は ACCOUNT LOCK/UNLOCK オプションをサポートします #37051 @CbcWestwolf

    CREATE USER文を使用してユーザーを作成する際、 ACCOUNT LOCK/UNLOCKオプションを使用して、作成したユーザーがロックされているかどうかを指定できます。ロックされたユーザーはデータベースにログインできません。

    ALTER USERステートメントのACCOUNT LOCK/UNLOCKオプションを使用すると、既存ユーザーのロック状態を変更できます。

  • JSON データ型と JSON関数がGA になりました #36993 @xiongjiwei

    JSONは、多くのプログラムで採用されている一般的なデータ形式です。TiDBは、以前のバージョンからJSONサポート実験的機能として導入しており、MySQLのJSONデータ型および一部のJSON関数と互換性があります。

    TiDB v6.3.0 では、JSON データ型と関数がGA になり、TiDB のデータ型が強化され、 発現指数および生成列での JSON関数の使用がサポートされ、TiDB と MySQL の互換性がさらに向上しました。

バックアップと復元

  • PITR はバックアップ ストレージとしてGCSとAzure Blob Storageサポートしています @joccau

    TiDBクラスターがGoogle CloudまたはAzureにデプロイされている場合、クラスターをv6.3.0にアップグレードすると、PITR機能を使用できます。

  • BRは AWS S3 オブジェクト ロックをサポートします #13442 @3pointer

    S3オブジェクトロックを有効にすることで、AWS 上のバックアップデータが改ざんまたは削除されないように保護できます。

データ移行

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

  • TiCDCは、地理的に分散した複数のデータソースからデータを複製できる展開トポロジをサポートしています #5301 @sdojjy

    v6.3.0 以降、単一の TiDB クラスターから複数の地理的に分散されたデータ システムへのデータの複製をサポートするために、 TiCDCは複数のIDCにデプロイできます 。この機能は、地理的に分散されたデータレプリケーションおよび展開トポロジの機能を提供するのに役立ちます。

  • TiCDCは、アップストリームとダウンストリーム間でスナップショットの一貫性を維持することをサポートしています(同期ポイント) #6977 @asddongmen

    ディザスタリカバリのためのデータレプリケーションのシナリオでは、TiCDC は、ダウンストリーム スナップショットがアップストリーム スナップショットと一貫性を保つように 定期的に下流データのスナップショットを維持するをサポートします。この機能により、TiCDC は読み取りと書き込みが分離されるシナリオをより適切にサポートし、コストの削減に役立ちます。

  • TiCDC はグレースフル アップグレードをサポート #4757 @overvenus@3AceShowHand

    TiCDCをTiUP>=v1.11.0)またはTiDB Operator>=v1.3.8)を使用してデプロイする場合、TiCDCクラスタをスムーズにアップグレードできます。アップグレード中は、データレプリケーションのレイテンシーが30秒以下に抑えられます。これにより安定性が向上し、TiCDCはレイテンシーに敏感なアプリケーションをより適切にサポートできるようになります。

互換性の変更

システム変数

変数名変更の種類説明
default_authentication_plugin変更新しいオプションtidb_sm3_passwordを追加します。この変数をtidb_sm3_passwordに設定すると、暗号化アルゴリズムとして SM3 が使用されます。
sql_require_primary_key新しく追加されたテーブルに主キーが必要であるという要件を強制するかどうかを制御します。この変数を有効にすると、主キーのないテーブルを作成または変更しようとするとエラーが発生します。
tidb_adaptive_closest_read_threshold新しく追加されたtidb_replica_readclosest-adaptiveに設定されている場合、TiDBサーバーが読み取りリクエストを TiDBサーバーと同じリージョンのレプリカに送信することを優先するしきい値を制御します。
tidb_constraint_check_in_place_pessimistic新しく追加されたTiDB が悲観的トランザクションで固有の制約いつチェックするかを制御します。
tidb_ddl_disk_quota新しく追加されたtidb_ddl_enable_fast_reorgが有効になっている場合にのみ有効になります。インデックス作成時のバックフィル処理中にローカルストレージを使用する際の制限を設定します。
tidb_ddl_enable_fast_reorg新しく追加されたインデックス作成時のバックフィル速度を向上させるために、 ADD INDEXおよびCREATE INDEX DDL 操作の高速化を有効にするかどうかを制御します。
tidb_ddl_flashback_concurrency新しく追加されたflashback clusterの同時実行を制御します。この変数で制御される機能は、TiDB v6.3.0 では完全には動作しません。デフォルト値を変更しないでください。
tidb_enable_exchange_partition非推奨exchange partitions with tables機能を有効にするかどうかを制御します。デフォルト値はONです。つまり、 exchange partitions with tablesがデフォルトで有効になっています。
tidb_enable_foreign_key新しく追加されたFOREIGN KEY機能を有効にするかどうかを制御します。この変数で制御される機能は、TiDB v6.3.0では完全には動作しません。デフォルト値を変更しないでください。
tidb_enable_general_plan_cache新しく追加された一般プランキャッシュ機能を有効にするかどうかを制御します。この変数で制御される機能は、TiDB v6.3.0 では完全には動作しません。デフォルト値を変更しないでください。
tidb_enable_metadata_lock新しく追加されたメタデータロック機能を有効にするかどうかを指定します。
tidb_enable_null_aware_anti_join新しく追加された特殊な集合演算子NOT INおよび!= ALLを制御します。
tidb_enable_pseudo_for_outdated_stats変更統計情報が古くなっている場合に、オプティマイザがテーブルの統計情報を使用する動作を制御します。デフォルト値はONからOFFに変更されます。これは、テーブルの統計情報が古くなっている場合でも、オプティマイザが引き続きテーブルの統計情報を使用することを意味します。
tidb_enable_rate_limit_action変更データを読み取るオペレーターの動的メモリ制御機能を有効にするかどうかを制御します。この変数がONに設定されている場合、メモリ使用量はtidb_mem_quota_queryの制御下にない可能性があります。そのため、デフォルト値はONからOFFに変更されます。
tidb_enable_tiflash_read_for_write_stmt新しく追加されたSQL書き込みステートメント内の読み取りリクエストをTiFlashにプッシュダウンするかどうかを制御します。この変数で制御される機能は、TiDB v6.3.0では完全には動作しません。デフォルト値は変更しないでください。
tidb_enable_unsafe_substitute新しく追加された式を生成列に安全でない方法で置き換えるかどうかを制御します。
tidb_general_plan_cache_size新しく追加された一般プランキャッシュでキャッシュできる実行計画の最大数を制御します。この変数で制御される機能は、TiDB v6.3.0 では完全には動作しません。デフォルト値を変更しないでください。
tidb_last_plan_replayer_token新しく追加された読み取り専用であり、現在のセッションでの最後のPLAN REPLAYER DUMP実行の結果を取得するために使用されます。
tidb_max_paging_size新しく追加されたこの変数は、コプロセッサのページングリクエスト処理中に最小行数を設定するために使用されます。
tidb_opt_force_inline_cte新しく追加されたセッション全体の共通テーブル式 (CTE) をインライン化するかどうかを制御します。デフォルト値はOFFで、これはデフォルトでは CTE のインライン化が強制されないことを意味します。
tidb_opt_three_stage_distinct_agg新しく追加されたCOUNT(DISTINCT)集計を MPP モードで 3 段階集計に書き換えるかどうかを指定します。デフォルト値はONです。
tidb_partition_prune_mode変更動的剪定を有効にするかどうかを指定します。v6.3.0 以降、デフォルト値はdynamicに変更されます。
tidb_rc_read_check_ts変更タイムスタンプの取得を最適化するために使用され、read-committed分離レベルのシナリオ(読み取りと書き込みの競合がまれなシナリオ)に適しています。この機能は特定のサービスワークロード向けに設計されており、他のシナリオではパフォーマンスが低下する可能性があります。そのため、v6.3.0以降、この変数の適用範囲がGLOBAL \| SESSIONからINSTANCEに変更されました。つまり、特定のTiDBインスタンスに対してこの機能を有効にできます。
tidb_rc_write_check_ts新しく追加されたタイムスタンプの取得を最適化するために使用され、悲観的トランザクションのRC分離レベルにおいてポイント書き込み競合が少ないシナリオに適しています。この変数を有効にすると、ポイント書き込みステートメントの実行中にグローバルタイムスタンプを取得する際に発生するレイテンシーとオーバーヘッドを回避できます。
tiflash_fastscan新しく追加されたFastScanを有効にするかどうかを制御します。FastScanファストスキャンが有効になっている場合( ONに設定)、 TiFlashはより効率的なクエリパフォーマンスを提供しますが、クエリ結果の正確性やデータの一貫性は保証されません。

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

コンフィグレーションファイルコンフィグレーション変更の種類説明
TiDBtemp-dir新しく追加されたTiDB が一時データを格納するために使用するファイルシステム上の場所を指定します。機能が TiDB ノードでローカルストレージを必要とする場合、TiDB は対応する一時データをこの場所に格納します。デフォルト値は/tmp/tidbです。
TiKVauto-adjust-pool-size新しく追加されたスレッドプールのサイズを自動的に調整するかどうかを制御します。有効にすると、現在のCPU使用率に基づいてUnifyReadPoolスレッドプールのサイズを自動的に調整することで、TiKVの読み取りパフォーマンスが最適化されます。
TiKVdata-encryption-method変更新しい値オプションsm4-ctrが導入されました。この設定項目がsm4-ctrに設定されている場合、データは保存される前に SM4 を使用して暗号化されます。
TiKVenable-log-recycle新しく追加されたRaft Engineで古いログファイルを再利用するかどうかを決定します。有効にすると、論理的に削除されたログファイルは再利用のために予約されます。これにより、書き込みワークロードのロングテールレイテンシーが削減されます。この設定項目はフォーマットバージョンが 2 以上の場合のみ使用できます。
TiKVformat-version新しく追加されたRaft Engineのログファイルのバージョンを指定します。デフォルトのログファイル バージョンは、TiKV v6.3.0 より前のバージョンでは1です。ログファイルは、TiKV >= v6.1.0 で読み取ることができます。デフォルトのログファイル バージョンは、TiKV v6.3.0 以降では2です。TiKV v6.3.0 以降では、ログファイルを読み取ることができます。
TiKVlog-backup.enable変更バージョン6.3.0以降、デフォルト値がfalseからtrueに変更されました。
TiKVlog-backup.max-flush-interval変更バージョン6.3.0以降、デフォルト値が5minから3minに変更されました。
PD診断を有効にする新しく追加された診断機能を有効にするかどうかを制御します。デフォルト値はfalseです。
TiFlashdt_enable_read_thread非推奨バージョン6.3.0以降、この設定項目は非推奨となりました。デフォルトでは、スレッドプールがストレージエンジンからの読み取りリクエストを処理するために使用され、無効にすることはできません。
DMsafe-mode-duration新しく追加された自動セーフモードの継続時間を指定します。
TiCDCenable-sync-point新しく追加されたSyncpoint機能を有効にするかどうかを指定します。
TiCDCsync-point-interval新しく追加されたSyncpointがアップストリームとダウンストリームのスナップショットを同期させる間隔を指定します。
TiCDCsync-point-retention新しく追加されたSyncpointがダウンストリームテーブルにデータを保持する期間を指定します。この期間を超えると、データは削除されます。
TiCDCsink-uri.memory非推奨memoryソートは非推奨です。いかなる状況でも使用することは推奨されません。

その他

  • ログバックアップは、バックアップストレージとしてGCSとAzure Blob Storageをサポートしています。
  • ログバックアップはexchange partition DDLと互換性を持つようになりました。
  • 以前ファストスキャンを有効にするために使用されていた SQL文ALTER TABLE ...SET TiFLASH MODE ...非推奨となり、システム変数tiflash_fastscanに置き換えられました。v6.2.0 から v6.3.0 にアップグレードすると、v6.2.0 のすべての FastScan 設定が無効になりますが、データの通常の読み取りには影響しません。この場合、FastScan を有効または無効にするには、変数tiflash_fastscanを設定する必要があります。以前のバージョンから v6.3.0 にアップグレードすると、データの一貫性を保つために、すべてのセッションで FastScan 機能はデフォルトで有効になりません。
  • TiFlashをLinux AMD64アーキテクチャにデプロイするには、CPUがAVX2命令セットをサポートしている必要があります。 grep avx2 /proc/cpuinfoに出力があることを確認してください。TiFlashをLinux ARM64アーキテクチャにデプロイするには、CPUがARMv8命令セットアーキテクチャをサポートしている必要があります。 grep 'crc32' /proc/cpuinfo | grep 'asimd'に出力があることを確認してください。命令セット拡張機能を使用することで、TiFlashのベクトル化エンジンはより優れたパフォーマンスを発揮できます。
  • TiDBと連携するHAProxyの最小バージョンはv1.5です。v1.5からv2.1までのHAProxyバージョンでは、 post-41mysql-check設定オプションを設定する必要があります。HAProxy v2.2以降の使用をお勧めします。

削除された機能

バージョン6.3.0以降、TiCDCはPulsarシンクの設定をサポートしなくなりました。StreamNativeが提供するkopを代替として使用できます。

改善点

  • TiDB

    • TiDB は、テーブルの存在を確認する際に、対象テーブル名の大文字小文字を区別しなくなりました #34610 @tiancaiamao
    • init_connectの値を設定する際に解析チェックを追加することで MySQL の互換性を向上させます #35324 @CbcWestwolf
    • 新しい接続に対して生成されるログ警告を改善 #34964 @xiongjiwei
    • DDL履歴ジョブのクエリ用HTTP APIを最適化し、 start_job_idパラメータのサポートを追加 #35838 @tiancaiamao
    • JSON パスの構文が間違っている場合にエラーを報告する#22525 #34959 @xiongjiwei
    • 誤った共有の問題を修正することで、結合操作のパフォーマンスを向上させます #37641 @gengliqi
    • PLAN REPLAYERを使用して複数のSQL文の実行計画情報を一度にエクスポートできるようにすることで、トラブルシューティングの効率化を図ります。 #37798 @Yisaer
  • TiKV

    • ピアが到達不能になった後にRaftstore がメッセージを過剰にブロードキャストするのを回避するためにunreachable_backoffアイテムの設定をサポートします #13054 @5kbpers
    • TSOサービスの耐障害性を向上させる #12794 @pingyu
    • RocksDB で同時に実行されるサブコンパクション操作の数を動的に変更する機能をサポートする ( rocksdb.max-sub-compactions ) #13145 @ethercflow
    • 空のリージョンをマージする際のパフォーマンスを最適化する #12421 @tabokie
    • 正規表現関数をさらにサポート #13483 @gengliqi
    • CPU使用率に基づいてスレッドプールサイズを自動的に調整する機能をサポート #13313 @glorv
  • PD

    • TiDB DashboardにおけるTiKV IO MBpsメトリックのクエリを改善する #5366 @YiniXu9506
    • TiDB DashboardのURLをmetricsからmonitoringに変更してください #5366 @YiniXu9506
  • TiFlash

    • elt 関数の TiFlash へのプッシュダウンをサポート #5104 @Willendless
    • TiFlashへのleftShift関数のプッシュダウンをサポートします #5099 @AnnieoftheStars
    • castTimeAsDuration 関数の TiFlash へのプッシュダウンのサポート #5306 @AntiTopQuark
    • TiFlashへのHexIntArg/HexStrArg関数のプッシュダウンをサポートします #5107 @YangKeao
    • TiFlashのインタープリタをリファクタリングし、新しいインタープリタプランナーをサポートする #4739 @SeaRise
    • TiFlashのメモリトラッカーの精度を向上 #5609 @bestwoody
    • UTF8_BIN/ASCII_BIN/LATIN1_BIN/UTF8MB4_BIN照合順序を使用した文字列列のパフォーマンスを改善 #5294 @solotzg
    • ReadLimiterでバックグラウンドでI/Oスループットを計算 #5401 , #5091 @Lloyd-Pottiger
  • ツール

    • Backup & Restore (BR)

      • PITRはログバックアップで生成された小さなファイルをマージできるため、バックアップファイルの数を大幅に削減できます。 #13232 @Leavrth
      • PITRは、復元後にアップストリームクラスタ構成に基づいてTiFlashレプリカの数を自動的に構成することをサポートします #37208 @YuJuncen
    • TiCDC

      • TiCDCと、上流のTiDBで導入された並行DDLフレームワークとの互換性を向上させる #6506 @lance6716
      • MySQL シンクでエラーが発生した場合の DML文のロギングstart tsのサポート #6460 @overvenus
      • api/v1/health API を強化して、TiCDC クラスターのより正確な正常性状態を返します #4757 @overvenus
      • MQ シンクと MySQL シンクを非同期モードで実装して、シンクのスループットを向上させます #5928 @hicqu@Rustin170506
      • 非推奨の Pulsar シンクを削除します #7087 @Rustin170506
      • 変更フィードに関係のない DDL文を破棄することで、レプリケーションのパフォーマンスを向上させます #6447 @asddongmen
    • TiDB Data Migration (DM)

      • MySQL 8.0をデータソースとして使用する際の互換性を向上させる #6448 @lance6716
      • "invalid connection"が発生した場合にDDLを非同期で実行することでDDLを最適化する #4689 @lyzx2001
    • TiDB Lightning

      • S3外部ストレージURLのクエリパラメータを追加し、指定されたロールを引き受けることで別のアカウントのS3データにアクセスできるようにする #36891 @dsdashun

バグ修正

  • TiDB

    • PREPARE文の権限チェックがスキップされる問題を修正 #35784 @lcwangchao
    • システム変数tidb_enable_noop_variableWARNに設定できてしまう問題を修正しました #36647 @lcwangchao
    • 式インデックスが定義されている場合、 ORDINAL_POSITIONテーブルのINFORMATION_SCHEMA.COLUMNS列が正しくない可能性がある問題を修正します。 #31200 @bb7133
    • TiDB がタイムスタンプがMAXINT32より大きい場合にエラーを報告しない問題を修正 #31585 @bb7133
    • Enterpriseプラグイン使用時にTiDBサーバーが起動できない問題を修正 #37319 @xhebox
    • SHOW CREATE PLACEMENT POLICYの誤った出力を修正 #37526 @xhebox
    • 一時テーブルでの予期しないEXCHANGE PARTITION動作を修正 #37201 @lcwangchao
    • INFORMATION_SCHEMA.TIKV_REGION_STATUSのクエリで誤った結果が返される問題を修正しました @zimulala
    • ビューに対するEXPLAINクエリが権限をチェックしない問題を修正 #34326 @hawkingrei
    • JSON nullNULLに更新できない問題を修正 #37852 @YangKeao
    • DDL ジョブのrow_countが不正確である問題を修正 #25968 @Defined2014
    • FLASHBACK TABLEが正しく動作しない問題を修正 #37386 @tiancaiamao
    • 標準的な MySQL プロトコルでpreparedステートメントフラグを処理できない問題を修正 #36731 @dveeden
    • 一部の極端なケースで起動時に表示される可能性のある、TiDB ステータスの誤りに関する問題を修正しました #36791 @xhebox
    • INFORMATION_SCHEMA.VARIABLES_INFOがセキュリティ強化モード (SEM) に準拠していない問題を修正します #37586 @CbcWestwolf
    • UNIONを含むクエリで文字列から文字列へのキャストが失敗する問題を修正 #31678 @cbcwestwolf
    • TiFlashのパーティションテーブルで動的モードを有効にした際に発生する誤った結果を修正 #37254 @wshwsh12
    • TiDBにおけるバイナリ文字列とJSON間のキャストおよび比較がMySQLと互換性がない問題を修正#31918 #25053 @YangKeao
    • TiDB のJSON_OBJECTAGGJSON_ARRAYAGGがバイナリ値で MySQL と互換性がない問題を修正 #25053 @YangKeao
    • JSONの不透明な値の比較でpanicが発生する問題を修正 #37315 @YangKeao
    • JSON集計関数で単精度浮動小数点数が使用できない問題を修正 #37287 @YangKeao
    • UNION演算子が予期しない空の結果を返す可能性がある問題を修正 #36903 @tiancaiamao
    • castRealAsTime式の結果が MySQL と一致しない問題を修正します #37462 @mengxin9014
    • 悲観的DML 操作が非一意インデックスキーをロックする問題を修正 #36235 @ekexium
    • auto-commitの変更がトランザクションコミットの動作に影響を与える問題を修正 #36581 @cfzjywxk
    • DML実行エンジンを使用したEXPLAIN ANALYZE文がトランザクションコミットが完了する前に結果を返す可能性がある問題を修正しました #37373 @cfzjywxk
    • UPDATE 文が場合によっては誤って投影を削除し、 Can't find column エラーが発生する問題を修正しました。 #37568 @AilinKid
    • 結合したテーブルの再配置操作が誤って外部結合条件をプッシュダウンする問題を修正 #37238 @AilinKid
    • 一部のパターンで INNOT IN サブクエリが Can't find column エラーを報告する問題を修正しました。 #37032 @AilinKid
    • UPDATEステートメントに共通テーブル式 (CTE) が含まれている場合にCan't find columnが報告される問題を修正 #35758 @AilinKid
    • 間違ったPromQLを修正 #35856 @Defined2014
  • TiKV

    • リージョンのハートビートが中断された後、PD が TiKV に再接続しない問題を修正 #12934 @bufferflies
    • Raftstoreがビジー状態のときにリージョンが重複する可能性がある問題を修正 #13160 @5kbpers
    • PD クライアントがデッドロックを引き起こす可能性がある問題を修正#13191 @bufferflies #12933 @BurtonQin
    • 暗号化が無効になっている場合に TiKV がpanicする可能性がある問題を修正 #13081 @jiayang-zheng
    • ダッシュボードのUnified Read Pool CPUの誤った表現を修正 #13086 @glorv
    • TiKVインスタンスが隔離されたネットワーク環境にある場合、TiKVサービスが数分間利用できなくなる問題を修正します #12966 @cosven
    • TiKV が誤ってPessimisticLockNotFoundエラーを報告する問題を修正 #13425 @sticnarf
    • 状況によってはPITRによりデータ損失が発生する可能性がある問題を修正 #13281 @YuJuncen
    • 長い悲観的トランザクションがある場合にチェックポイントが進まない問題を修正 #13304 @YuJuncen
    • TiKV が JSON 内の datetime 型 ( DATETIMEDATETIMESTAMPおよびTIME ) とSTRING型を区別しない問題を修正 #13417 @YangKeao
    • JSON boolと他のJSON値の比較におけるMySQLとの非互換性を修正#13386 #37481 @YangKeao
  • PD

    • enable-forwardingが有効になっている場合にgRPCがエラーを不適切に処理する問題によって発生するPDパニックを修正 #5373 @bufferflies
    • 不健康なリージョンがPD panicを引き起こす可能性がある問題を修正 #5491 @nolouch
    • TiFlashラーナーレプリカが作成されない可能性がある問題を修正 #5401 @HunDunDM
  • TiFlash

    • ウィンドウ関数がクエリのキャンセル時にTiFlashをクラッシュさせる可能性がある問題を修正 #5814 @SeaRise
    • CAST(value AS DATETIME)への誤ったデータ入力が原因でTiFlashシステムの CPU 使用率が高くなる問題を修正しました #5097 @xzhangxian1008
    • CAST(Real/Decimal AS time)の結果が MySQL と一致しない問題を修正します #3779 @mengxin9014
    • ストレージ内の一部の古いデータが削除できない問題を修正 #5570 @JaySon-Huang
    • ページ GC がテーブルの作成をブロックする可能性がある問題を修正 #5697 @JaySon-Huang
    • NULL値を含む列でプライマリ インデックスを作成した後に発生するpanicを修正 #5859 @JaySon-Huang
  • ツール

    • Backup & Restore (BR)

      • チェックポイントの情報が古くなる可能性がある問題を修正 #36423 @YuJuncen
      • 復元中に同時実行数の設定が大きすぎるため、リージョンのバランスが取れていない問題を修正 #37549 @3pointer
      • クラスター内に TiCDC が存在する場合にログバックアップチェックポイント TS が停止する可能性がある問題を修正します #37822 @YuJuncen
      • 外部ストレージの認証キーに特殊文字が含まれている場合にバックアップと復元が失敗する可能性がある問題を修正しました #37469 @MoCuishle28
    • TiCDC

      • TiCDCがgRPCサービスで誤ったPDアドレスに対して不正確なエラーを返す問題を修正 #6458 @crelax
      • cdc cause cli changefeed listコマンドが失敗した変更フィードを返さない問題を修正 #6334 @asddongmen
      • 変更フィードの初期化に失敗した場合に TiCDC が利用できなくなる問題を修正 #6859 @asddongmen
    • TiDB Binlog

      • コンプレッサーがgzipに設定されている場合に、 DrainerがPumpにリクエストを正しく送信できない問題を修正 #1152 @lichunzhu
    • TiDB Data Migration (DM)

      • DM が Specified key was too long エラーを報告する問題を修正しました #5315 @lance6716
      • リレーがエラーに遭遇した際のゴルーチンリークを修正 #6193 @lance6716
      • collation_compatible "strict"に設定した場合に、DM が重複した照合順序を持つ SQL を生成する可能性がある問題を修正します #6832 @lance6716
      • DM-workerログにおける警告メッセージ「 binlog status_varsからタイムゾーンを取得する際にエラーが発生しました」の表示を減らす #6628 @lyzx2001
      • レプリケーション中にlatin1データが破損する可能性がある問題を修正 #7028 @lance6716
    • TiDB Lightning

      • TiDB Lightning がParquet ファイル内のスラッシュ、数字、または非 ASCII 文字で始まる列をサポートしない問題を修正しました #36980 @D3Hunter

貢献者

TiDBコミュニティの以下の貢献者の皆様に感謝申し上げます。

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