TiDB 5.4 リリースノート
発売日:2022年2月15日
TiDB バージョン: 5.4.0
v5.4 の主な新機能または改善点は次のとおりです。
- GBK文字セットをサポートする
- 複数の列のインデックスのフィルタリング結果をマージするインデックスマージを使用したデータへのアクセスをサポートします。
- セッション変数を使用した古いデータの読み取りをサポート
- 統計情報を収集するための設定の永続化をサポート
- TiKV のログstorageエンジンとしてRaft Engineの使用をサポート (実験的)
- クラスタへのバックアップの影響を最適化する
- バックアップstorageとして Azure Blobstorageの使用をサポート
- TiFlashとMPPエンジンの安定性とパフォーマンスを継続的に向上させます
- TiDB Lightningにスイッチを追加して、既存のテーブルにデータをインポートできるようにするかどうかを決定します。
- 継続的なプロファイリング機能の最適化(実験的)
- TiSparkはユーザーの識別と認証をサポートします
互換性の変更
注記:
以前の TiDB バージョンから v5.4.0 にアップグレードする場合、すべての中間バージョンの互換性変更ノートを知りたい場合は、該当するバージョンのリリースノートを確認できます。
システム変数
| 変数名 | タイプを変更 | 説明 |
|---|---|---|
tidb_enable_column_tracking | 新しく追加された | TiDBがPREDICATE COLUMNSを収集することを許可するかどうかを制御します。デフォルト値はOFF. |
tidb_enable_paging | 新しく追加された | IndexLookUp演算子でコプロセッサリクエストを送信する際にページング方式を使用するかどうかを制御します。デフォルト値はOFFです。IndexLookupとLimitを使用し、 LimitをIndexScanにプッシュダウンできない読み取りクエリの場合、読み取りクエリのレイテンシーが長くなり、TiKV のunified read poolの CPU 使用率が高くなる可能性があります。このような場合、 Limit演算子は少量のデータしか必要としないため、 tidb_enable_paging ONに設定すると、TiDB が処理するデータ量が少なくなり、クエリのレイテンシーとリソース消費が削減されます。 |
tidb_enable_top_sql | 新しく追加された | Top SQL機能を有効にするかどうかを制御します。デフォルト値はOFFです。 |
tidb_persist_analyze_options | 新しく追加された | ANALYZE構成の永続化機能を有効にするかどうかを制御します。デフォルト値はONです。 |
tidb_read_staleness | 新しく追加された | 現在のセッションで読み取ることができる履歴データの範囲を制御します。デフォルト値は0です。 |
tidb_regard_null_as_point | 新しく追加された | オプティマイザーがインデックス アクセスのプレフィックス条件として NULL 等価性を含むクエリ条件を使用できるかどうかを制御します。 |
tidb_stats_load_sync_wait | 新しく追加された | 統計情報の同期読み込み機能を有効にするかどうかを制御します。デフォルト値0は、この機能が無効であり、統計情報が非同期に読み込まれることを意味します。この機能が有効になっている場合、この変数は、SQL最適化が統計情報の同期読み込みをタイムアウトまでに待機できる最大時間を制御します。 |
tidb_stats_load_pseudo_timeout | 新しく追加された | 統計情報の同期ロードがタイムアウトに達したときに、SQLが失敗するか( OFF )、疑似統計情報を使用するか( ON )を制御します。デフォルト値はOFFです。 |
tidb_backoff_lock_fast | 修正済み | デフォルト値は100から10に変更されます。 |
tidb_enable_index_merge | 修正済み | デフォルト値がOFFからONに変更されます。
|
tidb_store_limit | 修正済み | バージョン5.4.0より前では、この変数はインスタンスレベルとグローバルの両方で設定できました。バージョン5.4.0以降では、この変数はグローバル設定のみをサポートします。 |
コンフィグレーションファイルのパラメータ
| コンフィグレーションファイル | コンフィグレーション | タイプを変更 | 説明 |
|---|---|---|---|
| ティドブ | stats-load-concurrency | 新しく追加された | TiDB同期ロード統計機能が同時に処理できる列の最大数を制御します。デフォルト値は5です。 |
| ティドブ | stats-load-queue-size | 新しく追加された | TiDB同期ロード統計機能がキャッシュできる列リクエストの最大数を制御します。デフォルト値は1000です。 |
| ティクブ | snap-generator-pool-size | 新しく追加された | snap-generatorスレッドプールのサイズ。デフォルト値は2です。 |
| ティクブ | log.file.max-size log.file.max-days log.file.max-backups | 新しく追加された | 詳細はTiKVコンフィグレーションファイル - log.file参照。 |
| ティクブ | raft-engine | 新しく追加された | enable 、 dir 、 batch-compression-threshold 、 bytes-per-sync 、 target-file-size 、 purge-threshold 、 recovery-mode 、 recovery-read-block-size 、 recovery-read-block-size 、 recovery-threadsが含まれます。詳細はTiKVコンフィグレーションファイル - raft-engine参照してください。 |
| ティクブ | backup.enable-auto-tune | 新しく追加された | バージョン5.3.0では、デフォルト値はfalseです。バージョン5.4.0以降では、デフォルト値はtrueに変更されました。このパラメータは、クラスターリソースの使用率が高い場合に、バックアップタスクで使用されるリソースを制限することでクラスターへの影響を軽減するかどうかを制御します。デフォルト設定では、バックアップタスクの速度が低下する可能性があります。 |
| ティクブ | log-level log-format log-file log-rotation-size | 修正済み | TiKVログパラメータの名前は、TiDBログパラメータと一致する名前log.file.filename log.level log.enable-timestampに置き換えられます。古いパラメータのみを設定し、その値をデフォルト以外の値に設定した場合、古いパラメータは新しいパラメータと互換性を保ちます。古いパラメータと新しいパラメータの両方を設定した場合、新しいパラメータlog.format有効になります。詳細については、 TiKVコンフィグレーションファイル - ログ参照してください。 |
| ティクブ | log-rotation-timespan | 削除済み | ログローテーションの間隔。この期間が経過すると、ログファイルがローテーションされます。つまり、現在のログファイルのファイル名にタイムスタンプが追加され、新しいログファイルが作成されます。 |
| ティクブ | allow-remove-leader | 削除済み | メインスイッチの削除を許可するかどうかを決定します。 |
| ティクブ | raft-msg-flush-interval | 削除済み | Raftメッセージをバッチ送信する間隔を指定します。Raft メッセージは、この設定項目で指定された間隔ごとにRaft送信されます。 |
| PD | log.level | 修正済み | デフォルト値は「INFO」から「info」に変更され、大文字と小文字が区別されないことが保証されます。 |
| TiFlash | profile.default.enable_elastic_threadpool | 新しく追加された | エラスティックスレッドプール機能を有効または無効にするかどうかを決定します。この設定項目を有効にすると、同時実行性の高いシナリオにおいてTiFlashのCPU使用率が大幅に向上します。デフォルト値はfalseです。 |
| TiFlash | storage.format_version | 新しく追加された | DTFileのバージョンを指定します。デフォルト値は2で、ハッシュがデータファイルに埋め込まれます。値を3に設定することもできます。 3の場合、データファイルにはメタデータとトークンデータのチェックサムが含まれ、複数のハッシュアルゴリズムがサポートされます。 |
| TiFlash | logger.count | 修正済み | デフォルト値は10に変更されます。 |
| TiFlash | status.metrics_port | 修正済み | デフォルト値は8234に変更されます。 |
| TiFlash | raftstore.apply-pool-size | 新しく追加された | Raftデータをstorageにフラッシュするプール内のスレッドの許容数。デフォルト値は4です。 |
| TiFlash | raftstore.store-pool-size | 新しく追加された | Raftを処理するスレッドの許容数。これはRaftstoreスレッドプールのサイズです。デフォルト値は4です。 |
| TiDB データ移行 (DM) | collation_compatible | 新しく追加された | CREATE SQL文のデフォルトの照合照合順序を同期するモード。値のオプションは「loose」(デフォルト)と「strict」です。 |
| TiCDC | max-message-bytes | 修正済み | Kafkaシンクのデフォルト値max-message-bytesを104857601 (10MB)に変更します。 |
| TiCDC | partition-num | 修正済み | Kafka Sink のデフォルト値partition-numを4から3に変更します。これにより、TiCDC は Kafaka パーティションにメッセージをより均等に送信するようになります。 |
| TiDB Lightning | meta-schema-name | 修正済み | ターゲットTiDB内のメタデータのスキーマ名を指定します。v5.4.0以降では、 並行輸入 (対応するパラメータはtikv-importer.incremental-import = true )を有効にした場合にのみこのスキーマが作成されます。 |
| TiDB Lightning | task-info-schema-name | 新しく追加された | TiDB Lightningが競合を検出した際に重複データを保存するデータベース名を指定します。デフォルトの値は「lightning_task_info」です。このパラメータは、「duplicate-resolution」機能を有効にした場合にのみ指定してください。 |
| TiDB Lightning | incremental-import | 新しく追加された | 既にデータが存在するテーブルへのデータのインポートを許可するかどうかを決定します。デフォルト値はfalseです。 |
その他
- TiDBとPDの間にインターフェースが追加されました。1システムテーブル
information_schema.TIDB_HOT_REGIONS_HISTORY使用する場合、TiDBは対応するバージョンのPDを使用する必要があります。 - TiDBサーバー、PDサーバー、およびTiKVサーバーは、ログ名、出力形式、ローテーションおよび有効期限のルールを管理するために、ログ関連パラメータに統一された命名方法を使用します。詳細については、 TiKV 構成ファイル - ログ参照してください。
- バージョン5.4.0以降、プランキャッシュによってキャッシュされた実行プランに対してSQLバインディングを作成すると、そのバインディングによって、対応するクエリに対して既にキャッシュされているプランが無効化されます。新しいバインディングは、バージョン5.4.0より前にキャッシュされた実行プランには影響しません。
- v5.3以前のバージョンでは、 TiDB データ移行 (DM)ドキュメントはTiDBのドキュメントとは独立していました。v5.4以降、DMのドキュメントはTiDBのドキュメントに統合され、同じバージョンのDMドキュメントサイトにアクセスすることなく、 DMドキュメント直接読むことができます。
- cdclog とともに、実験的機能である Point-in-time Recovery (PITR) を削除しました。v5.4.0 以降、cdclog ベースの PITR と cdclog はサポートされなくなりました。
- システム変数を「DEFAULT」に設定する動作をMySQLとより互換性のあるものにする#29680
- システム変数
lc_time_names読み取り専用#30084に設定する tidb_store_limitのスコープをINSTANCEまたはGLOBALからGLOBAL #30756に設定する- 列にゼロが含まれている場合、整数型列を時間型列に変換することを禁止します#25728
- 浮動小数点値#30148を挿入するときに
InfまたはNAN値に対してエラーが報告されない問題を修正しました - 自動IDが範囲外の場合に
REPLACE文が他の行を誤って変更する問題を修正#30301
新機能
SQL
TiDBはv5.4.0以降、GBK文字セットをサポートしています。
v5.4.0 より前では、 TiDB は
ascii、binary、latin1、utf8、およびutf8mb4文字セットをサポートしています。中国語ユーザーへのサポートを強化するため、TiDBはv5.4.0以降、GBK文字セットをサポートしています。TiDBクラスタを初めて初期化する際に、TiDB構成ファイルで
new_collations_enabled_on_first_bootstrapオプションを有効にすると、TiDB GBK文字セットはgbk_binとgbk_chinese_ci両方の照合順序をサポートします。GBK文字セットを使用する場合は、互換性の制限に注意する必要があります。詳細については文字セットと照合順序 - GBK参照してください。
Security
TiSparkはユーザー認証と承認をサポートします
TiSpark 2.5.0以降、TiSparkはデータベースユーザー認証と、データベースレベルまたはテーブルレベルの読み取り/書き込み権限の両方をサポートしています。この機能を有効にすると、データ取得のための描画などの不正なバッチタスクの実行を防止でき、オンラインクラスターの安定性とデータセキュリティが向上します。
この機能はデフォルトで無効になっています。有効にすると、TiSpark を介して操作するユーザーに必要な権限がない場合、TiSpark から例外が発行されます。
TiUPはルートユーザーの初期パスワードの生成をサポートしています
クラスタ起動コマンドにパラメータ
--initが導入されました。このパラメータにより、 TiUPを使用してデプロイされた TiDB クラスタでは、 TiUP がデータベースの root ユーザーに対して強力な初期パスワードを生成します。これにより、空のパスワードを持つ root ユーザーを使用することによるセキュリティリスクを回避し、データベースのセキュリティを確保します。
パフォーマンス
列指向storageエンジンTiFlashとコンピューティングエンジンMPPの安定性とパフォーマンスを継続的に向上
より多くの関数をMPP エンジンにプッシュダウンすることをサポートします。
STRCMP()RPAD()関数:LPAD()QUARTER()関数SUBDATE(string, real)ADDDATE(string, real)DATE_ADD(string, real)DATE_SUB(string, real)
リソース利用率を向上させるためにエラスティック スレッド プール機能を導入します (実験的)
TiKVからデータを複製する際に、行ベースのstorage形式から列ベースのstorage形式にデータを変換する効率を改善し、データ複製の全体的なパフォーマンスを50%向上させます。
一部の設定項目のデフォルト値を調整することで、 TiFlash のパフォーマンスと安定性が向上します。HTAP ハイブリッドロードでは、単一テーブルに対する単純なクエリのパフォーマンスが最大 20% 向上します。
セッション変数を通じて指定された時間範囲内の履歴データを読み取る
TiDBは、 Raftコンセンサスアルゴリズムに基づくマルチレプリカ分散データベースです。高同時実行性と高スループットが求められるアプリケーションシナリオにおいて、TiDBはフォロワーレプリカを通じて読み取りパフォーマンスをスケールアウトし、読み取りリクエストと書き込みリクエストを分離します。
TiDBは、様々なアプリケーションシナリオに対応できるよう、フォロワー読み取りモードとして、強力な一貫性のある読み取りと弱い一貫性のある履歴読み取りの2つのモードを提供しています。強力な一貫性のある読み取りモードは、リアルタイムデータを必要とするアプリケーションシナリオに適しています。ただし、このモードでは、リーダーとフォロワー間のデータレプリケーションのレイテンシーとスループットの低下により、特に地理的に分散したデプロイメントでは、読み取りリクエストのレイテンシーが大きくなる可能性があります。
リアルタイムデータに対する要件がそれほど厳しくないアプリケーションシナリオでは、履歴読み取りモードが推奨されます。このモードはレイテンシーを短縮し、スループットを向上させることができます。TiDBは現在、以下の方法による履歴データの読み取りをサポートしています。SQL文を使用して過去の時点からデータを読み取るか、過去の時点に基づいて読み取り専用トランザクションを開始するかです。どちらの方法でも、特定の時点または指定された時間範囲内の履歴データの読み取りがサポートされています。詳細については、
AS OF TIMESTAMP句を使用して履歴データを読み取るを参照してください。v5.4.0以降、TiDBはセッション変数を介して指定された時間範囲内の履歴データの読み取りをサポートすることで、履歴読み取りモードの使いやすさを向上させました。このモードは、準リアルタイムシナリオにおいて、低レイテンシかつ高スループットの読み取りリクエストに対応します。変数は以下のように設定できます。
set @@tidb_replica_read=leader_and_follower set @@tidb_read_staleness="-5"この設定により、TiDB は最も近いリーダー ノードまたはフォロワー ノードを選択し、5 秒以内に最新の履歴データを読み取ることができます。
インデックス統合の GA
インデックスマージは、TiDB v4.0でSQL最適化のための実験的機能として導入されました。この手法は、クエリで複数列のデータのスキャンが必要な場合の条件フィルタリングを大幅に高速化します。次のクエリを例に挙げましょう。1
WHEREのステートメントで、ORで接続されたフィルタリング条件がそれぞれ列key1とkey2にインデックスを持っている場合、インデックスマージ機能はそれぞれのインデックスを同時にフィルタリングし、クエリ結果をマージして、マージされた結果を返します。SELECT * FROM table WHERE key1 <= 100 OR key2 = 200;TiDB v4.0より前のバージョンでは、テーブルに対するクエリは、フィルタリングに一度に1つのインデックスのみを使用できます。複数の列のデータをクエリする場合は、インデックスマージを有効にすると、個々の列のインデックスを使用して、短時間で正確なクエリ結果を取得できます。インデックスマージにより、不要なテーブル全体のスキャンが回避され、多数の複合インデックスを作成する必要がなくなります。
バージョン5.4.0では、インデックスマージがGAになります。ただし、以下の制限事項にご注意ください。
インデックスマージは、選言正規形(X 1 ⋁ X 2 ⋁ …X n )のみをサポートします。つまり、この機能は、
WHEREの節内のフィルタリング条件がORの節で連結されている場合にのみ機能します。新規にデプロイされたv5.4.0以降のTiDBクラスターでは、この機能はデフォルトで有効になっています。以前のバージョンからアップグレードされたv5.4.0以降のTiDBクラスターでは、この機能はアップグレード前の設定を継承し、必要に応じて設定を変更できます(v4.0より前のTiDBクラスターではこの機能は存在せず、デフォルトで無効になっています)。
Raft Engineのサポート (実験的)
TiKVのログstorageエンジンとしてRaft Engine使用をサポートします。RocksDBと比較して、 Raft EngineはTiKVのI/O書き込みトラフィックを最大40%、CPU使用率を10%削減し、フォアグラウンドスループットを約5%向上させ、特定の負荷条件下でテールレイテンシーを20%削減します。さらに、 Raft Engineはログリサイクルの効率を向上させ、過酷な条件下でのログ蓄積の問題を修正します。
Raft Engineはまだ実験的機能であり、デフォルトでは無効になっています。v5.4.0のRaft Engineのデータ形式は以前のバージョンと互換性がありませんのでご注意ください。クラスターをアップグレードする前に、すべてのTiKVノードでRaft Engineが無効になっていることを確認してください。RaftRaft Engineはv5.4.0以降のバージョンでのみ使用することをお勧めします。
PREDICATE COLUMNSの統計収集をサポート (実験的)ほとんどの場合、SQL文を実行する際、オプティマイザは一部の列(例えば、文中の
WHERE、JOIN、ORDER BY、GROUP BY列)の統計情報のみを使用します。これらの使用される列はPREDICATE COLUMNS呼ばれます。v5.4.0 以降では、
tidb_enable_column_trackingシステム変数の値をONに設定して、TiDB がPREDICATE COLUMNS収集できるようにすることができます。設定後、TiDBは100 *
stats-leaseごとにPREDICATE COLUMNS情報をmysql.column_stats_usageのシステムテーブルに書き込みます。ビジネスのクエリパターンが安定している場合は、ANALYZE TABLE TableName PREDICATE COLUMNS構文を使用してPREDICATE COLUMNS番目の列のみの統計情報を収集することで、統計収集のオーバーヘッドを大幅に削減できます。統計情報の同期読み込みをサポート(実験的)
v5.4.0以降、TiDBは統計情報の同期ロード機能を導入しました。この機能はデフォルトでは無効になっています。この機能を有効にすると、SQL文の実行時に、TiDBはヒストグラム、TopN、Count-Min Sketch統計などの大規模な統計情報をメモリに同期ロードできるようになります。これにより、SQL最適化における統計情報の完全性が向上します。
安定性
永続的なANALYZE構成をサポート
統計は、オプティマイザが実行計画を生成する際に参照する基本情報の一種です。統計の精度は、生成される実行計画の妥当性に直接影響します。統計の精度を確保するためには、テーブル、パーティション、インデックスごとに異なる収集設定を設定する必要がある場合があります。
v5.4.0以降、TiDBはいくつか
ANALYZE設定の永続化をサポートしています。この機能により、既存の設定を将来の統計収集に簡単に再利用できます。ANALYZE設定の永続化機能はデフォルトで有効になっています(システム変数tidb_analyze_versionはデフォルトで2tidb_persist_analyze_optionsデフォルトでONです)。この機能を使用すると、ANALYZE文を手動で実行する際に、その文で指定された永続化設定を記録できます。記録されると、次回 TiDB が統計を自動的に更新するとき、またはこれらの設定を指定せずに手動で統計を収集するときに、TiDB は記録された設定に従って統計を収集します。
高可用性と災害復旧
クラスタへのバックアップタスクの影響を軽減する
バックアップと復元(BR)では、自動チューニング機能(デフォルトで有効)が導入されています。この機能は、クラスターリソースの使用状況を監視し、バックアップタスクで使用されるスレッド数を調整することで、バックアップタスクがクラスターに与える影響を軽減します。場合によっては、バックアップ用のクラスターハードウェアリソースを増やし、自動チューニング機能を有効にすると、バックアップタスクがクラスターに与える影響を10%以下に抑えることができます。
バックアップのターゲットstorageとして Azure Blob Storage をサポート
バックアップと復元(BR)は、リモートバックアップstorageとしてAzure Blob Storageをサポートしています。Azure CloudにTiDBをデプロイすると、クラスターデータをAzure Blob Storageサービスにバックアップできるようになります。
データ移行
TiDB Lightningは、データを含むテーブルへのデータのインポートを許可するかどうかを決定する新しい機能を導入しました。
TiDB Lightning、設定項目
incremental-importが導入されました。これは、データが存在するテーブルへのデータのインポートを許可するかどうかを決定します。デフォルト値はfalseです。並列インポートモードを使用する場合は、設定をtrueに設定する必要があります。TiDB Lightningは並列インポートのメタ情報を格納するスキーマ名を導入します
TiDB Lightning、
meta-schema-name設定項目が導入されています。並列インポートモードにおいて、このパラメータは、ターゲットクラスタ内の各TiDB Lightningインスタンスのメタ情報を格納するスキーマ名を指定します。デフォルトの値は「lightning_metadata」です。このパラメータに設定される値は、同じ並列インポートに参加する各TiDB Lightningインスタンスで同じである必要があります。そうでない場合、インポートされたデータの正確性は保証されません。TiDB Lightningは重複解決を導入
ローカルバックエンドモードでは、 TiDB Lightningはデータのインポートが完了する前に重複データを出力し、その後データベースから重複データを削除します。インポート完了後に重複データを解決し、アプリケーションルールに従って適切なデータを選択して挿入することができます。後続の増分データ移行フェーズで重複データが発生することを防ぐため、重複データに基づいて上流のデータソースをクリーンアップすることをお勧めします。
TiDB データ移行 (DM) におけるリレー ログの使用を最適化します。
source構成内のenable-relayスイッチを回復します。start-relayおよびstop-relayコマンドを使用してリレー ログを動的に有効化および無効化することをサポートします。リレー ログのステータスを
sourceにバインドします。3source任意の DM ワーカーに移行された後も、有効または無効の元のステータスを維持します。リレー ログのstorageパスを DM-worker 構成ファイルに移動します。
DMにおける照合順序処理の最適化
設定項目を
collation_compatible追加します。値のオプションはloose(デフォルト)とstrictです。- アプリケーションに照合順序に関する厳密な要件がなく、クエリ結果の照合順序がアップストリームとダウンストリームで異なる可能性がある場合は、デフォルトの
looseモードを使用してエラーの報告を回避できます。 - アプリケーションで照合順序に関する厳格な要件があり、上流と下流の照合順序が一貫している必要がある場合は、モード
strictを使用できます。ただし、下流が上流のデフォルトの照合順序をサポートしていない場合、データレプリケーションでエラーが発生する可能性があります。
- アプリケーションに照合順序に関する厳密な要件がなく、クエリ結果の照合順序がアップストリームとダウンストリームで異なる可能性がある場合は、デフォルトの
DM の
transfer sourceを最適化して、レプリケーション タスクをスムーズに実行できるようにします。DMワーカーノードの負荷が不均衡な場合、コマンド
transfer sourceを使用して、sourceの設定を別の負荷に手動で転送できます。最適化後、コマンドtransfer sourceによって手動操作が簡素化されます。DMは他の操作を内部的に完了するため、関連するすべてのタスクを一時停止することなく、ソースをスムーズに転送できます。DM OpenAPI が一般公開 (GA) されました
DMは、データソースの追加やタスク管理など、APIを介した日常的な管理をサポートします。バージョン5.4.0では、DM OpenAPIがGAになります。
診断効率
Top SQL (実験的機能)
ソースを消費するクエリを簡単に見つけられるように、新しい実験的機能であるTop SQL (デフォルトでは無効) が導入されました。
TiDBデータ共有サブスクリプション
TiCDC のクラスターへの影響を最適化する
TiCDC を使用すると、TiDB クラスターのパフォーマンスへの影響が大幅に軽減されます。テスト環境では、TiCDC が TiDB に及ぼすパフォーマンスへの影響を 5% 未満に抑えることができました。
展開と保守
継続的なプロファイリングの強化(実験的)
サポートされるコンポーネントの追加: TiDB、PD、TiKV に加えて、TiDB v5.4.0 はTiFlashの CPU プロファイリングもサポートします。
より多くの形式のプロファイリング表示: フレーム チャート上での CPU プロファイリングと Goroutine の結果の表示をサポートします。
より多くのデプロイメント環境がサポートされます: 継続的なプロファイリングは、 TiDB Operatorを使用してデプロイされたクラスターでも使用できます。
継続的なプロファイリングはデフォルトで無効になっていますが、TiDB ダッシュボードで有効にすることができます。
継続的なプロファイリングは、 TiUP v1.9.0 以降またはTiDB Operator v1.3.0 以降を使用してデプロイまたはアップグレードされたクラスターに適用できます。
改善点
ティドブ
- キャッシュされたクエリプランをクリアするための
ADMIN {SESSION | INSTANCE | GLOBAL} PLAN_CACHE構文をサポートする#30370
- キャッシュされたクエリプランをクリアするための
TiKV
- コプロセッサーは、ストリームのような方法でリクエストを処理するためのページングAPIをサポートしています#11448
- 読み取り操作で二次ロックが解決されるのを待つ必要がないように
read-through-lockサポートする#11402 - ディスク領域の枯渇によるpanicを回避するためにディスク保護メカニズムを追加する#10537
- ログのアーカイブとローテーションをサポート#11651
- Raftクライアントによるシステムコールを減らしCPU効率を上げる#11309
- コプロセッサーはTiKV #11495への部分文字列のプッシュダウンをサポートします
- 読み取りコミット分離レベル#11485でロックの読み取りをスキップすることでスキャンパフォーマンスを向上します。
- バックアップ操作で使用されるデフォルトのスレッドプールのサイズを減らし、負荷が高いときにスレッドプールの使用を制限します#11000
- Apply スレッド プールと Store スレッド プールのサイズを動的に調整する機能をサポート#11159
snap-generatorスレッドプール#11247のサイズ設定をサポート- 頻繁に読み書きが行われるファイルが多数ある場合に発生するグローバルロック競合の問題を最適化します#250
PD
TiFlash
- 現地オペレーターのコミュニケーションを最適化する
- gRPC の非一時的スレッド数を増やして、スレッドの頻繁な作成や破棄を回避する
ツール
バグ修正
ティドブ
- クラスターをv4.xからv5.xにアップグレードするときに発生する
tidb_analyze_version値の変更の問題を修正しました#25422 - サブクエリ#30748で異なる照合順序を使用した場合に誤った結果が発生する問題を修正しました
- TiDBの
concat(ifnull(time(3))の結果がMySQL #29498の結果と異なる問題を修正 - 楽観的トランザクションモード#30410で潜在的なデータインデックスの不整合が発生する問題を修正
- 式を TiKV #30200にプッシュダウンできない場合に IndexMerge のクエリ実行プランが間違っている問題を修正しました
- 同時列型変更によりスキーマとデータの間に不整合が発生する問題を修正#31048
- サブクエリ#30913がある場合にIndexMergeクエリの結果が間違っている問題を修正
- クライアント#30896でFetchSizeが大きすぎる値に設定されている場合に発生するpanic問題を修正しました
- LEFT JOIN が誤って INNER JOIN #20510に変換される可能性がある問題を修正しました
CASE-WHEN式と照合順序を一緒に使用するとpanicが発生する可能性がある問題を修正#30245IN値にバイナリ定数#31261が含まれている場合に発生する誤ったクエリ結果の問題を修正しました- CTE にサブクエリ#31255がある場合に発生する誤ったクエリ結果の問題を修正しました
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE文を実行するとpanic#28078が発生する問題を修正しました- INDEX HASH JOINが
send on closed channelエラーを返す問題を修正しました#31129
- クラスターをv4.xからv5.xにアップグレードするときに発生する
TiKV
PD
TiFlash
- MPPクエリが停止したときにTiFlashがpanicになる可能性がある問題を修正しました
where <string>句を含むクエリが間違った結果を返す問題を修正しました- 整数主キーの列タイプをより広い範囲に設定すると発生する可能性のあるデータの不整合の問題を修正しました。
- 入力時間が1970-01-01 00:00:01 UTCより前の場合、
unix_timestampの動作がTiDBまたはMySQLの動作と一致しない問題を修正しました。 - TiFlash が再起動後に
EstablishMPPConnectionエラーを返す可能性がある問題を修正しました CastStringAsDecimalTiFlashとTiDB/TiKVの動作が一致しない問題を修正- クエリ結果に
DB::Exception: Encode type of coprocessor response is not CHBlockエラーが返される問題を修正しました castStringAsRealTiFlashとTiDB/TiKVの動作が一致しない問題を修正- TiFlashの
date_add_string_xxx関数の返された結果がMySQLの結果と一致しない問題を修正しました
ツール
バックアップと復元 (BR)
TiCDC
min.insync.replicasがreplication-factorより小さい場合にレプリケーションを実行できない問題を修正しました#3994cached region監視メトリックがマイナス#4300になる問題を修正mq sink write row監視データがない問題を修正#3431sql mode#3810の互換性の問題を修正- レプリケーションタスクが削除されたときに発生する可能性のあるpanic問題を修正#3128
- デフォルトの列値#3929を出力するときに発生するpanicとデータの不整合の問題を修正しました
- デフォルト値を複製できない問題を修正#3793
- デッドロックによりレプリケーションタスクが停止する可能性がある問題を修正#4055
- ディスクが完全に書き込まれたときにログが出力されない問題を修正#3362
- DDL文の特別なコメントによりレプリケーションタスクが停止する問題を修正#3755
- RHELリリース#3584のタイムゾーンの問題によりサービスを開始できない問題を修正しました
- 不正確なチェックポイント#3545によって発生する可能性のあるデータ損失の問題を修正しました
- コンテナ環境#1798のOOM問題を修正
config.Metadata.Timeout#3352の誤った構成によって発生するレプリケーション停止の問題を修正しました
TiDB データ移行 (DM)
TiDB Lightning
TiDBBinlog
CREATE PLACEMENT POLICYステートメント#1118と互換性がないため、 Drainer が失敗する問題を修正しました。