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

TiDB 5.3 リリースノート



発売日:2021年11月30日

TiDB バージョン: 5.3.0

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

  • 一時テーブルを導入してアプリケーションロジックを簡素化し、パフォーマンスを向上させる
  • テーブルとパーティションの属性設定をサポート
  • システムセキュリティを強化するために、TiDB Dashboardで最小限の権限を持つユーザーの作成をサポートします。
  • TiDBのタイムスタンプ処理フローを最適化して全体的なパフォーマンスを向上させる
  • TiDB Data Migration (DM)のパフォーマンスを強化し、MySQLからTiDBへのデータ移行のレイテンシーを低減します。
  • 複数のTiDB Lightningインスタンスを使用した並列インポートをサポートし、完全なデータ移行の効率を向上します。
  • 単一のSQL文でクラスタのオンサイト情報を保存・復元する機能をサポートし、実行計画に関する問題のトラブルシューティング効率を向上します。
  • データベースパフォーマンスの観測性を向上させるために、継続的なプロファイリングの実験的機能をサポートします。
  • システムのパフォーマンスと安定性を向上させるために、ストレージとコンピューティングエンジンの最適化を継続します。
  • I/O 操作をRaftstoreスレッドプールから分離することで、TiKV の書き込みレイテンシーを削減します (デフォルトでは無効)

互換性の変更

システム変数

変数名タイプを変更説明
tidb_enable_noop_functions変更一時テーブルが TiDB でサポートされるようになったため、 CREATE TEMPORARY TABLEDROP TEMPORARY TABLE tidb_enable_noop_functionsを有効にする必要がなくなりました。
tidb_enable_pseudo_for_outdated_stats新しく追加されたテーブルの統計情報が期限切れになった場合のオプティマイザの動作を制御します。デフォルト値はONです。テーブル内の変更された行数が総行数の80%を超える場合(この比率は設定pseudo-estimate-ratioで調整できます)、オプティマイザは総行数以外の統計情報は信頼できないと判断し、代わりに疑似統計情報を使用します。値をOFFに設定すると、統計情報が期限切れになってもオプティマイザは引き続きそれらを使用します。
tidb_enable_tso_follower_proxy新しく追加されたTSOFollowerプロキシ機能を有効または無効にします。デフォルト値はOFFで、これはTSOFollowerプロキシ機能が無効であることを意味します。この場合、TiDBはPDリーダーからのみTSOを取得します。この機能を有効にすると、TiDBはTSOを取得する際にすべてのPDノードに均等にリクエストを送信します。PDフォロワーはTSOリクエストを転送することで、PDリーダーのCPU負荷を軽減します。
tidb_tso_client_batch_max_wait_time新しく追加されたTiDBがPDにTSOを要求した際に、バッチ保存操作の最大待機時間を設定します。デフォルト値は0で、追加の待機時間はありません。
tidb_tmp_table_max_size新しく追加された一時テーブル個の最大サイズを制限します。一時テーブルがこのサイズを超えるとエラーが発生します。

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

コンフィグレーションファイルコンフィグレーション項目タイプを変更説明
TiDBprepared-plan-cache.capacity変更キャッシュされるステートメントの数を制御します。デフォルト値は100から1000に変更されます。
TiKVstorage.reserve-space変更TiKV起動時にディスク保護のために予約される領域を制御します。v5.3.0以降では、予約領域の80%がディスク容量不足時の運用・保守に必要な追加ディスク領域として使用され、残りの20%は一時ファイルの保存に使用されます。
TiKVmemory-usage-limit変更この設定項目は TiDB v5.3.0 で新しく追加され、その値は storage.block-cache.capacity に基づいて計算されます。
TiKVraftstore.store-io-pool-size新しく追加されたRaft I/Oタスクを処理するスレッドの許容数。これはStoreWriterスレッドプールのサイズです。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
TiKVraftstore.raft-write-size-limit新しく追加されたRaftデータがディスクに書き込まれるしきい値を決定します。データサイズがこの設定項目の値より大きい場合、データはディスクに書き込まれます。raftstore.store-io-pool-sizeの値が0の場合、この設定項目は有効になりません。
TiKVraftstore.raft-msg-flush-interval新しく追加されたRaftメッセージをバッチ送信する間隔を指定します。バッチ送信されたRaftメッセージは、この設定項目で指定された間隔ごとに送信されます。raftstore.store-io-pool-sizeの値が0の場合、この設定項目は無効になります。
TiKVraftstore.raft-reject-transfer-leader-duration削除済みLeaderが新しく追加されたノードに転送される最小期間を決定します。
PDlog.file.max-days変更ログを保持する最大日数を制御します。デフォルト値は1から0に変更されます。
PDlog.file.max-backups変更保持されるログの最大数を制御します。デフォルト値は7から0に変更されます。
PDpatrol-region-interval変更replicaChecker がリージョンのヘルス状態をチェックする実行頻度を制御します。この値が小さいほど、replicaChecker の実行速度が速くなります。通常、このパラメータを調整する必要はありません。デフォルト値は100msから10msに変更されています。
PDmax-snapshot-count変更単一のストアが同時に受信または送信するスナップショットの最大数を制御します。PDスケジューラは、この設定に基づいて、通常のトラフィックに使用されるリソースがプリエンプトされるのを防ぎます。デフォルト値は3から64に変更されました。
PDmax-pending-peer-count変更単一ストア内の保留中のピアの最大数を制御します。PDスケジューラはこの設定に依存して、一部のノードで古いログを持つリージョンが過剰に生成されるのを防ぎます。デフォルト値は16から64に変更されました。
TiDB Lightningmeta-schema-name新しく追加されたターゲットクラスター内の各TiDB Lightningインスタンスのメタ情報が格納されるスキーマ名。デフォルト値は"lightning_metadata"です。

その他

  • 一時テーブル:

    • TiDB クラスター v5.3.0 より前のバージョンでローカル一時テーブルを作成した場合、これらのテーブルは通常のテーブルであり、クラスターを v5.3.0 以降にアップグレードした後も通常のテーブルとして扱われます。v5.3.0 以降のバージョンの TiDB クラスターでグローバル一時テーブルを作成した場合、クラスターを v5.3.0 より前のバージョンにダウングレードすると、これらのテーブルは通常のテーブルとして扱われ、データエラーが発生します。

    • v5.3.0以降、TiCDCとBRはグローバル一時テーブルサポートします。v5.3.0より前のバージョンのTiCDCとBRを使用してグローバル一時テーブルをダウンストリームに複製すると、テーブル定義エラーが発生します。

    • 次のクラスターは、v5.3.0 以降である必要があります。そうでない場合、グローバル一時テーブルを作成するときにデータ エラーが報告されます。

      • TiDB移行ツールを使用してインポートするクラスター
      • TiDB移行ツールを使用してクラスタを復元しました
      • TiDB移行ツールを使用したレプリケーションタスクの下流クラスタ
    • 一時テーブルの互換性情報については、 MySQL 一時テーブルとの互換性および他の TiDB 機能との互換性の制限を参照してください。

  • v5.3.0より前のリリースでは、システム変数が無効な値に設定された場合、TiDBはエラーを報告します。v5.3.0以降のリリースでは、システム変数が無効な値に設定された場合、TiDBは「|警告 | 1292 | 切り捨てられた不正なxxx: 'xx'」などの警告とともに成功を返します。

  • SHOW CREATE VIEWを実行するためにSHOW VIEW権限が必要ない問題を修正しました。これで、 SHOW CREATE VIEW文を実行するにはSHOW VIEW権限が必要になります。

  • システム変数sql_auto_is_nullが noop関数に追加されます。 tidb_enable_noop_functions = 0/OFFの場合、この変数値を変更するとエラーが発生します。

  • GRANT ALL ON performance_schema.*構文は許可されなくなりました。この文を TiDB で実行するとエラーが発生します。

  • バージョン5.3.0より前のバージョンでは、新しいインデックスが追加されると、指定期間外でも自動分析が予期せず実行される問題を修正しました。バージョン5.3.0では、変数tidb_auto_analyze_start_timetidb_auto_analyze_end_timeで期間を設定すると、その期間のみ自動分析が実行されます。

  • プラグインのデフォルトのストレージディレクトリが""から/data/deploy/pluginに変更されます。

  • DMコードはTiCDCコードリポジトリのフォルダ"dm"に移行されました。DMのバージョン番号はTiDBに準じます。v2.0.xの次に新しいDMバージョンはv5.3.0となり、v2.0.xからv5.3.0へのアップグレードはリスクなしで行えます。

  • Prometheusのデフォルトのデプロイバージョンは、v2.8.1から2021年5月にリリースされるバージョン2.27.1にアップグレードされました。このバージョンでは、より多くの機能が提供され、セキュリティ問題が修正されています。Prometheus v2.8.1と比較して、v2.27.1ではアラートの時刻表示がUnixタイムスタンプからUTCに変更されました。詳細はPrometheusコミットを参照してください。

新機能

SQL

  • SQL インターフェースを使用してデータの配置ルールを設定する(実験的機能)

    データの配置ルールを設定するためのSQLインターフェースを提供する[CREATE | ALTER] PLACEMENT POLICY構文をサポートします。この機能を使用すると、特定のリージョン、データセンター、ラック、ホスト、またはレプリカ数ルールにスケジュールするテーブルとパーティションを指定できます。これにより、コスト削減と柔軟性の向上というアプリケーションの要求を満たすことができます。一般的なユーザーシナリオは以下のとおりです。

    • 異なるアプリケーションの複数のデータベースを統合してデータベースのメンテナンスコストを削減し、ルール構成を通じてアプリケーションリソースの分離を実現します。

    • 重要なデータのレプリカ数を増やして、アプリケーションの可用性とデータの信頼性を向上させます。

    • 新しいデータを SSD に保存し、古いデータを HHD に保存することで、データのアーカイブとストレージのコストを削減します。

    • ホットスポットデータのリーダーを高性能TiKVインスタンスにスケジュールする

    • コスト効率を向上させるために、コールドデータを低コストのストレージメディアに分離する

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

  • 一時テーブル

    一時テーブルを作成するためのCREATE [GLOBAL] TEMPORARY TABLE文をサポートします。この機能を使用すると、アプリケーションの計算処理中に生成される一時データを簡単に管理できます。一時データはメモリに保存され、 tidb_tmp_table_max_size変数を使用して一時テーブルのサイズを制限できます。TiDBは以下の種類の一時テーブルをサポートしています。

    • グローバル一時テーブル

      • クラスター内のすべてのセッションに表示され、テーブルスキーマは永続的です。
      • トランザクションレベルのデータ分離を提供します。一時データはトランザクション内でのみ有効です。トランザクションが終了すると、データは自動的に削除されます。
    • ローカル一時テーブル

      • 現在のセッションにのみ表示され、テーブルスキーマは永続的ではありません。

      • 重複したテーブル名をサポートします。アプリケーションに複雑な命名規則を設計する必要はありません。

      • セッションレベルのデータ分離を提供し、よりシンプルなアプリケーションロジックの設計を可能にします。トランザクションが完了すると、一時テーブルは削除されます。

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

  • FOR UPDATE OF TABLES構文をサポートする

    複数のテーブルを結合する SQL 文の場合、 TiDB は、 OF TABLESに含まれるテーブルに関連付けられた行に対する悲観的ロックの取得をサポートします。

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

  • 表属性

    テーブルまたはパーティションの属性を設定できるALTER TABLE [PARTITION] ATTRIBUTESステートメントをサポートします。現在、TiDB はmerge_option属性の設定のみをサポートしています。この属性を追加することで、リージョンのマージ動作を明示的に制御できます。

    ユーザーシナリオ: SPLIT TABLE操作を実行すると、一定期間(PDパラメータsplit-merge-intervalで制御)経過してもデータが挿入されない場合、空のリージョンはデフォルトで自動的にマージされます。この場合、テーブル属性をmerge_option=denyに設定することで、リージョンの自動マージを回避できます。

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

セキュリティ

  • TiDB Dashboardで最小限の権限を持つユーザーの作成をサポート

    TiDB Dashboardのアカウントシステムは、 TiDB SQLのアカウントシステムと一致しています。TiDB Dashboardにアクセスするユーザーは、TiDB SQLユーザーの権限に基づいて認証および認可されます。そのため、TiDB Dashboardでは限定的な権限、つまり読み取り専用権限のみが必要です。最小限の権限の原則に基づいてユーザーがTiDB Dashboardにアクセスできるように設定することで、高い権限を持つユーザーのアクセスを回避できます。

    TiDB Dashboardにアクセスしてサインインするには、最小限の権限を持つSQLユーザーを作成することをお勧めします。これにより、高い権限を持つユーザーによるアクセスを回避し、セキュリティを向上できます。

    ユーザードキュメント

パフォーマンス

  • PDのタイムスタンプ処理フローを最適化

    TiDBは、PDFollowerプロキシを有効にし、PDクライアントがTSOをバッチで要求する際に必要なバッチ待機時間を変更することで、タイムスタンプ処理フローを最適化し、PDのタイムスタンプ処理負荷を軽減します。これにより、システム全体のスケーラビリティが向上します。

    • システム変数tidb_enable_tso_follower_proxyを介して PDFollowerプロキシの有効化/無効化をサポートします。PD の TSO リクエスト負荷が高すぎる場合、PD フォロワープロキシを有効にすると、フォロワーのリクエストサイクル中に収集された TSO リクエストをリーダーノードに一括転送できます。このソリューションにより、クライアントとリーダー間の直接的なインタラクション数を効果的に削減し、リーダーへの負荷を軽減し、TiDB 全体のパフォーマンスを向上させることができます。

    • システム変数tidb_tso_client_batch_max_wait_timeを使用して、PDクライアントがTSOをバッチリクエストするために必要な最大待機時間を設定できます。この時間の単位はミリ秒です。PDのTSOリクエスト負荷が高い場合は、待機時間を増やしてバッチサイズを大きくすることで、負荷を軽減し、スループットを向上させることができます。

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

安定性

  • 一部のストアが永久的に損傷した後のオンラインの安全でない回復をサポートします(実験的機能)

    オンラインデータアンセーフリカバリを実行するコマンドpd-ctl unsafe remove-failed-storesをサポートします。データレプリカの大部分が永続的な損傷(ディスク損傷など)などの問題に遭遇し、それらの問題によってアプリケーションのデータ範囲が読み取りまたは書き込み不能になったとします。このような場合、PDに実装されているオンラインアンセーフリカバリ機能を使用してデータをリカバリし、再び読み取りまたは書き込み可能になります。

    機能関連の操作は、TiDB チームのサポートを受けて実行することをお勧めします。

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

データ移行

  • DMレプリケーションパフォーマンスの強化

    MySQL から TiDB への低レイテンシのデータレプリケーションを保証するために、次の機能をサポートしています。

    • 1行の複数の更新を1つのステートメントにまとめる
    • 複数行のバッチ更新を1つのステートメントにマージする
  • DM クラスターをより適切に管理するために DM OpenAPI を追加します (実験的機能)

    DMは、DMクラスタのクエリと操作のためのOpenAPI機能を提供します。これはdmctlツールの機能に類似しています。

    現在、DM OpenAPI は実験的機能であり、デフォルトで無効になっています。本番環境での使用は推奨されません。

    ユーザードキュメント

  • TiDB Lightning並列インポート

    TiDB Lightningは、従来の機能を拡張し、並列インポート機能を提供します。複数のLightningインスタンスを同時にデプロイすることで、単一または複数のテーブルを下流のTiDBに並列インポートできます。お客様の利用方法を変えることなく、データ移行能力を大幅に向上させ、よりリアルタイムなデータ移行を実現し、さらなる処理、統合、分析を可能にします。これにより、企業のデータ管理効率が向上します。

    当社のテストでは、10個のTiDB Lightningインスタンスを使用して、合計20TiBのMySQLデータを8時間以内にTiDBにインポートできました。複数テーブルのインポートパフォーマンスも向上しました。1個のTiDB Lightningインスタンスで250GiB/hのインポートをサポートし、全体的な移行速度は従来の8倍に向上しました。

    ユーザードキュメント

  • TiDB Lightning事前チェック

    TiDB Lightningは、移行タスクを実行する前に設定を確認する機能を提供します。これはデフォルトで有効になっています。この機能は、ディスク容量と実行設定に関するいくつかの定期的なチェックを自動的に実行します。主な目的は、後続のインポートプロセス全体がスムーズに実行されるようにすることです。

    ユーザードキュメント

  • TiDB LightningはGBK文字セットのファイルのインポートをサポートします

    ソースデータファイルの文字セットを指定できます。TiDB Lightningは、インポートプロセス中に、指定された文字セットからUTF-8エンコードに変換します。

    ユーザードキュメント

  • sync-diff-inspectorの改善

    • 比較速度を375 MB/秒から700 MB/秒に向上

    • 比較中にTiDBノードのメモリ消費量をほぼ半分に削減

    • ユーザーインターフェースを最適化し、比較中に進行状況バーを表示します

      ユーザードキュメント

診断効率

  • クラスターのオンサイト情報を保存および復元する

    TiDB クラスタの問題を特定してトラブルシューティングする際には、システム情報やクエリプランの情報が必要になることがよくあります。より便利かつ効率的に情報を取得し、クラスタの問題をトラブルシューティングできるよう、TiDB v5.3.0 ではPLAN REPLAYERコマンドが導入されました。このコマンドを使用すると、クラスタのオンサイト情報を簡単に保存・復元できるため、トラブルシューティングの効率が向上し、管理のために問題をアーカイブしやすくなります。

    PLAN REPLAYERの特徴は以下のとおりです。

    • オンサイトトラブルシューティング時の TiDB クラスターの情報を ZIP 形式のファイルにエクスポートしてストレージ。

    • 別のTiDBクラスタからエクスポートされたZIP形式のファイルをクラスタにインポートします。このファイルには、オンサイトトラブルシューティング時の後者のTiDBクラスタの情報が含まれています。

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

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

  • TiCDC 結果的に一貫性のあるレプリケーション

    TiCDCは、災害シナリオにおいて結果整合性のあるレプリケーション機能を提供します。プライマリTiDBクラスタで災害が発生し、短期間でサービスを再開できない場合、TiCDCはセカンダリクラスタのデータの整合性を確保する機能を提供する必要があります。同時に、TiCDCは、データベースが長時間利用できなくなり業務に支障をきたすことを回避するため、ビジネス部門がトラフィックをセカンダリクラスタに迅速に切り替えられるようにする必要があります。

    この機能は、TiCDC が TiDB クラスターからセカンダリリレーショナルデータベース TiDB/ Aurora/MySQL/MariaDB に増分データをレプリケーションすることをサポートします。プライマリクラスターがクラッシュした場合、災害発生前の TiCDC のレプリケーション状態が正常で、レプリケーション遅延が小さいという条件付きで、TiCDC は 5分以内にセカンダリクラスターをプライマリクラスター内の特定のスナップショットに復旧できます。これにより、データ損失は 30分未満、つまり RTO <= 5分、RPO <= 30分を実現できます。

    ユーザードキュメント

  • TiCDCは、TiCDCタスクを管理するためのHTTPプロトコルOpenAPIをサポートしています。

    TiDB v5.3.0以降、TiCDC OpenAPIが一般提供(GA)されました。本番環境では、OpenAPIを使用してTiCDCクラスターのクエリと操作を行うことができます。

デプロイと保守

  • 継続的なプロファイリング(実験的機能)

    TiDB Dashboardは、TiDBクラスターの稼働中にインスタンスのパフォーマンス分析結果をリアルタイムで自動保存する継続的プロファイリング機能をサポートしています。パフォーマンス分析結果はフレームグラフで確認できるため、より詳細な観察が可能になり、トラブルシューティングにかかる​​時間を短縮できます。

    この機能はデフォルトで無効になっており、TiDB Dashboardの継続プロファイルページで有効にする必要があります。

    この機能は、 TiUP v1.7.0 以降を使用してアップグレードまたはインストールされたクラスターでのみ使用できます。

    ユーザードキュメント

テレメトリー

TiDBは、TEMPORARY TABLE機能が使用されているかどうかに関する情報をテレメトリレポートに追加します。これにはテーブル名やテーブルデータは含まれません。

テレメトリの詳細とこの動作を無効にする方法については、 テレメトリーを参照してください。

削除された機能

TiCDC v5.3.0以降、TiDBクラスター間の循環レプリケーション機能(v5.0.0では実験的機能)は削除されました。TiCDCのアップグレード前にこの機能を使用してデータをレプリケーションしていた場合、アップグレード後も関連データは影響を受けません。

改善点

  • TiDB

    • コプロセッサがロックに遭遇したときに影響を受けるSQL文をデバッグログに表示します。これは問題の診断に役立ちます#27718
    • SQL論理レイヤーでデータをバックアップおよび復元するときに、バックアップおよび復元データのサイズを表示する機能をサポート #27247
    • tidb_analyze_version2の場合の ANALYZE のデフォルトのコレクション ロジックを改善し、コレクションを高速化し、リソースのオーバーヘッドを削減します。
    • ANALYZE TABLE table_name COLUMNS col_1, col_2, ... , col_n構文を導入します。この構文を使用すると、幅の広いテーブル内の一部の列のみの統計情報を収集できるため、統計収集の速度が向上します。
  • TiKV

    • ディスクスペース保護を強化してストレージの安定性を向上

      ディスク書き込みエラーが発生した場合にTiKVがpanicに陥る可能性がある問題を解決するため、TiKVは2段階のしきい値防御メカニズムを導入し、過剰なトラフィックによるディスク残容量の枯渇を防ぎます。さらに、このメカニズムは、しきい値に達した際に領域を回収する機能も提供します。残容量しきい値に達すると、一部の書き込み操作が失敗し、TiKVはディスクフルエラーとディスクフルノードのリストを返します。この場合、領域を回復してサービスを復旧するには、 Drop/Truncate Tableを実行するか、ノードをスケールアウトします。

    • L0フロー制御のアルゴリズムを簡素化する #10879

    • ラフトクライアントモジュールのエラーログレポートを改善 #10944

    • パフォーマンスのボトルネックにならないようにログスレッドを改善する#10841

    • 書き込みクエリの統計タイプを追加する#10507

    • I/O操作をRaftstoreスレッドプールから分離することで、書き込みレイテンシーを削減します(デフォルトでは無効)。チューニングの詳細については、 TiKV スレッドプールのパフォーマンスを調整する を参照してください。 #10540

  • PD

    • ホットスポット スケジューラの QPS ディメンションに書き込みクエリの種類を追加する #3869
    • バランスリージョンスケジューラの再試行制限を動的に調整して、スケジューラのパフォーマンスを向上させることをサポートします。 #3744
    • TiDB Dashboardをv2021.10.08.1 に更新 #4070
    • リーダー排除スケジューラが不健全なピアを持つリージョンをスケジュールできるようにサポート#4093
    • スケジューラの終了プロセスを高速化 #4146
  • TiFlash

    • TableScanオペレーターの実行効率を大幅に向上

    • Exchangeオペレーターの実行効率を向上させる

    • ストレージエンジンの GC 中の書き込み増幅とメモリ使用量を削減します (実験的機能)

    • TiFlash の再起動時にTiFlashの安定性と可用性が向上し、再起動後に発生する可能性のあるクエリの失敗が減少します。

    • 複数の新しい文字列および時間関数を MPP エンジンにプッシュダウンする機能をサポート

      • 文字列関数: LIKE パターン、FORMAT()、LOWER()、LTRIM()、RTRIM()、SUBSTRING_INDEX()、TRIM()、UCASE()、UPPER()
      • 数学関数:ROUND(小数点、整数)
      • 日付と時刻関数: HOUR(), MICROSECOND(), MINUTE(), SECOND(), SYSDATE()
      • 型変換関数: CAST(time, real)
      • 集計関数: GROUP_CONCAT(), SUM(enum)
    • 512ビットSIMDをサポート

    • 古いデータのクリーンアップアルゴリズムを強化してディスク使用量を削減し、ファイルをより効率的に読み取ります

    • 一部のLinux以外のシステムでダッシュボードにメモリやCPUの情報が表示されない問題を修正

    • TiFlashログファイルの命名スタイルを統一し (TiKV の命名スタイルと一貫性を保つ)、logger.count と logger.size の動的な変更をサポートします。

    • 列ベースのファイルのデータ検証機能の改善(チェックサム、実験的機能)

  • ツール

    • TiCDC

      • Kafka シンク設定項目MaxMessageBytesのデフォルト値を 64 MB から 1 MB に減らし、大きなメッセージが Kafka ブローカーによって拒否される問題を修正しました。 #3104
      • レプリケーションパイプラインのメモリ使用量を削減する#2553 #3037 #2726
      • 監視項目とアラートルールを最適化して、同期リンク、メモリGC、および在庫データスキャンプロセスの可観測性を向上させる#2735 #1606 #3000 #2985 #2156
      • 同期タスクのステータスが正常であれば、ユーザーの誤解を避けるために、過去のエラーメッセージは表示されなくなります#2242

バグ修正

  • TiDB

    • 実行中に発生するエラーを修正しました。これは、パーティションテーブル で集計オペレーターをプッシュダウンする際に、スキーマ列の浅いコピーが行われることが原因で発生します。 #26554 #27797
    • plan cache符号なしフラグの変更を検出できない問題を修正#28254
    • パーティション関数が範囲外の場合の誤ったパーティションプルーニングを修正#28233
    • プランナーが場合によっては無効なプランをキャッシュする可能性がある問題を修正join #28087
    • ハッシュ列の型がenum の場合の誤ったIndexLookUpJoin修正 #27893
    • アイドル接続をリサイクルすると、まれにリクエストの送信がブロックされる可能性があるバッチクライアントのバグを修正しました#27688
    • ターゲットクラスタでチェックサムの実行に失敗した場合のTiDB Lightning panic問題を修正しました。 #27686
    • いくつかのケースでdate_adddate_sub関数の誤った結果を修正#27232
    • ベクトル化された式の関数hourの誤った結果を修正します #28643
    • MySQL 5.1 またはそれ以前のクライアントバージョンに接続する際の認証の問題を修正しました #27855
    • 新しいインデックスが追加されたときに、指定された時間外にauto analyzeがトリガーされる可能性がある問題を修正しました#28698
    • セッション変数を設定するとtidb_snapshot が無効になるバグを修正 #28683
    • ピアが見つからないリージョンが多数あるクラスタでBRが機能しないバグを修正#27534
    • サポートされていないcast TiFlash にプッシュダウンされたときに発生するtidb_cast to Int32 is not supportedのような予期しないエラーを修正しました #23907
    • %s value is out of range in '%s'エラーメッセージにDECIMAL overflowが欠落している問題を修正 #27964
    • MPPノードの可用性検出が一部のコーナーケースで機能しないバグを修正#3118
    • MPP task ID を割り当てる際のDATA RACE問題を修正 #27952
    • 空のdual table を削除した後のMPPクエリのINDEX OUT OF RANGEエラーを修正 #28250
    • MPPクエリの誤検知エラーログinvalid cop task execution summaries lengthの問題を修正 #1791
    • MPPクエリのエラーログcannot found column in Schema columnの問題を修正 #28149
    • TiFlashがシャットダウンするときに TiDB がpanicする可能性がある問題を修正#28096
    • 安全でない3DES(トリプルデータ暗号化アルゴリズム)ベースのTLS暗号スイートのサポートを削除します。 #27859
    • Lightning が事前チェック中にオフラインの TiKV ノードに接続し、インポートに失敗する問題を修正しました#27826
    • 多数のファイルをテーブルにインポートするときに事前チェックに時間がかかりすぎる問題を修正しました #27605
    • 式書き換えると間違った照合順序が推測される問題を修正between #27146
    • group_concat関数が照合順序を考慮していなかった問題を修正#27429
    • extract関数の引数が負の期間場合に発生する結果の誤りを修正 #27236
    • NO_UNSIGNED_SUBTRACTION に設定されている場合にパーティションの作成が失敗する問題を修正 #26765
    • 列プルーニングと集計プッシュダウンで副作用のある式を避ける #27106
    • 不要なgRPCログを削除する#24190
    • 有効な小数点以下の桁数を制限することで精度関連の問題を修正する#3091
    • plus式のオーバーフローのチェック方法が間違っている問題を修正 #26977
    • new collationデータを持つテーブルから統計をダンプするときにdata too longエラーが発生する問題を修正しました#27024
    • 再試行されたトランザクションのステートメントがTIDB_TRX に含まれない問題を修正 #28670
    • plugin_dir構成の誤ったデフォルト値を修正 #28084
    • 名前付きタイムゾーンとUTCオフセットが指定された場合、 CONVERT_TZ関数がNULL返す問題を修正しました。 #8311
    • CREATE SCHEMAステートメントの一部として何も提供されていない場合、新しいスキーマに対してcharacter_set_servercollation_serverで指定された文字セットを使用しない問題を修正しました。 #27214
  • TiKV

    • リージョン移行時にRaftstoreのデッドロックによりTiKVが利用できなくなる問題を修正しました。回避策としては、スケジュールを無効にし、利用できないTiKV を再起動してください。 #10909
    • 輻輳エラーによりCDCがスキャン再試行を頻繁に追加する問題を修正 #11082
    • チャネルがいっぱいになるとRaft接続が切断される問題を修正#11047
    • Raftクライアント実装でバッチメッセージが大きすぎる問題を修正 #9714
    • resolved_ts で一部のコルーチンがリークする問題を修正 #10965
    • 応答サイズが4 GiBを超えるとコプロセッサに発生するpanic問題を修正#9012
    • スナップショットファイルがガベージコレクションできない場合に、スナップショット ガベージコレクション (GC) で GC スナップショットファイルが失われる問題を修正しました#10813
    • コプロセッサー要求の処理中にタイムアウトによって発生するpanic問題を修正#10852
    • 統計スレッドの監視データによって発生するメモリリークを修正しました #11195
    • 一部のプラットフォームから cgroup 情報を取得する際に発生するpanic問題を修正#10980
    • MVCC 削除バージョンが圧縮フィルタ GC によって削除されないため、スキャンパフォーマンスが低下する問題を修正しました。 #11248
  • PD

    • ピア数が設定されたピア数を超えたために、PD がデータがあり保留中の状態のピアを誤って削除する問題を修正しました。 #4045
    • PDが時間内にピアを修正しない問題を修正#4077
    • 散布範囲スケジューラが空のリージョンをスケジュールできない問題を修正しました #4118
    • キーマネージャのCPU使用率が高すぎる問題を修正#4071
    • ホットリージョンスケジューラの設定時に発生する可能性のあるデータ競合の問題を修正しました。 #4159
    • リージョン機能スタックによりリーダー選出が遅くなる問題を修正 #3936
  • TiFlash

    • TiFlashストアサイズ統計の不正確さの問題を修正
    • ライブラリnslがないため、一部のプラットフォームでTiFlashが起動に失敗する問題を修正しました。
    • 書き込み圧力が大きい場合、 wait indexの無限待機をブロックします (デフォルトの 5分のタイムアウトが追加されます)。これにより、 TiFlash がデータ複製を待機してサービスを提供するのに時間がかかりすぎるのを防ぎます。
    • ログボリュームが大きい場合にログ検索が遅くなり、結果が表示されない問題を修正しました
    • 古い履歴ログを検索するときに最新のログしか検索できない問題を修正しました
    • 新しい照合順序が有効になっているときに間違った結果になる可能性を修正しました
    • SQL 文に非常に長いネストされた式が含まれている場合に発生する可能性のある解析エラーを修正しました。
    • ExchangeオペレーターのBlock schema mismatchエラーを修正
    • Decimal型の比較時に発生する可能性のあるCan't compareエラーを修正
    • left/substring関数の3rd arguments of function substringUTF8 must be constantsエラーを修正する
  • ツール

    • TiCDC

      • 上流の TiDB インスタンスが予期せず終了すると、TiCDC レプリケーションタスクが終了する可能性がある問題を修正しました#3061
      • TiKV が同じリージョンに重複したリクエストを送信したときに TiCDC プロセスがpanicになる可能性がある問題を修正しました。 #2386
      • 下流の TiDB/MySQL の可用性を検証する際の不要な CPU 消費を修正#3073
      • TiCDCによって生成されるKafkaメッセージの量がmax-message-size に制限されない問題を修正 #2962
      • Kafka メッセージの書き込み中にエラーが発生すると、TiCDC 同期タスクが一時停止する可能性がある問題を修正しました#2978
      • force-replicateが有効になっているときに、有効なインデックスのない一部のパーティションテーブルが無視される可能性がある問題を修正#2834
      • 株価データのスキャンに時間がかかりすぎると、TiKV が GC を実行するため株価データのスキャンが失敗する可能性がある問題を修正しました#2470
      • 一部のタイプの列を Open Protocol 形式にエンコードするときに発生する可能性のあるpanic問題を修正しました。 #2758
      • 一部のタイプの列をAvro形式にエンコードする際に発生する可能性のあるpanic問題を修正しました #2648
    • TiDB Binlog

      • ほとんどのテーブルがフィルタリングされると、特定の負荷でチェックポイントを更新できない問題を修正しました。 #1075

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