📣
TiDB Cloud Essential はパブリックプレビュー中です。このページは自動翻訳されたものです。原文はこちらからご覧ください。

バッチテーブル作成

データの復元時、バックアップ&リストア(BR)は対象のTiDBクラスター内にデータベースとテーブルを作成し、バックアップデータをそれらのテーブルに復元します。TiDB v6.0.0より前のバージョンでは、 BRは復元プロセスでテーブルを作成するためにシリアル実行実装を使用していました。しかし、 BRが多数のテーブル(約50,000個)を含むデータを復元する場合、この実装ではテーブルの作成に多くの時間がかかります。

テーブル作成プロセスを高速化し、データの復元時間を短縮するために、TiDB v6.0.0 ではバッチテーブル作成機能が導入されました。この機能はデフォルトで有効になっています。

注記:

  • バッチテーブル作成機能を使用するには、TiDBとBRの両方がv6.0.0以降である必要があります。TiDBまたはBRのいずれかがv6.0.0より前の場合、 BRはシリアル実行実装を使用します。
  • クラスター管理ツール ( TiUPなど) を使用しており、TiDB とBR がv6.0.0 以降のバージョンであるか、TiDB とBRが v6.0.0 より前のバージョンから v6.0.0 以降にアップグレードされているとします。

使用シナリオ

膨大な数のテーブル (たとえば 50,000 テーブル) を含むデータを復元する必要がある場合は、バッチ テーブル作成機能を使用して復元プロセスを高速化できます。

詳しい効果についてはバッチテーブル作成機能のテストご覧ください。

バッチテーブル作成を使用する

BRはデフォルトでバッチテーブル作成機能を有効にします。v6.0.0以降では、復元プロセスを高速化するために、デフォルト設定は--ddl-batch-size=128 。そのため、このパラメータを設定する必要はありません。3 --ddl-batch-size=128 、バッチでテーブルを作成し、各バッチで128個のテーブルを作成することを意味します。

この機能を無効にするには、 --ddl-batch-size1に設定します。以下のコマンド例をご覧ください。

tiup br restore full \ --storage local:///br_data/ --pd "${PD_IP}:2379" --log-file restore.log \ --ddl-batch-size=1

この機能が無効にされると、 BR は代わりにシリアル実行実装使用します。

実装

  • v6.0.0 より前のシリアル実行実装:

    データを復元する際、 BR は対象の TiDB クラスター内にデータベースとテーブルを作成し、バックアップデータをテーブルに復元します。テーブルを作成するために、 BR はまず TiDB 内部 API を呼び出し、次にテーブル作成タスクを処理します。これはCreate Table文の実行と同様に機能します。TiDB DDL オーナーはテーブルを順次作成します。DDL オーナーがテーブルを作成すると、それに応じて DDL スキーマのバージョンが変更され、各バージョンの変更は他の TiDB DDL ワーカー( BRを含む)に同期されます。そのため、多数のテーブルを復元する場合、シリアル実行の実装には時間がかかります。

  • v6.0.0 以降のバッチテーブル作成実装:

    デフォルトでは、 BRは複数のバッチでテーブルを作成し、各バッチには128個のテーブルが含まれます。この実装により、 BRが1バッチのテーブルを作成する際に、TiDBスキーマバージョンは1回のみ変更されます。この実装により、テーブル作成速度が大幅に向上します。

機能テスト

このセクションでは、バッチテーブル作成機能に関するテスト情報について説明します。テスト環境は次のとおりです。

  • クラスタ構成:

    • 15 個の TiKV インスタンス。各 TiKV インスタンスには、16 個の CPU コア、80 GB のメモリ、および RPC リクエストを処理するための 16 個のスレッド ( import.num-threads = 16) が搭載されています。
    • 3 つの TiDB インスタンス。各 TiDB インスタンスには、16 個の CPU コアと 32 GB のメモリが搭載されています。
    • 3 つの PD インスタンス。各 PD インスタンスには、16 個の CPU コアと 32 GB のメモリが搭載されています。
  • 復元するデータのサイズ: 16.16 TB

テスト結果は次のとおりです。

'[2022/03/12 22:37:49.060 +08:00] [INFO] [collector.go:67] ["Full restore success summary"] [total-ranges=751760] [ranges-succeed=751760] [ranges-failed=0] [split-region=1h33m18.078448449s] [restore-ranges=542693] [total-take=1h41m35.471476438s] [restore-data-size(after-compressed)=8.337TB] [Size=8336694965072] [BackupTS=431773933856882690] [total-kv=148015861383] [total-kv-size=16.16TB] [average-speed=2.661GB/s]'

テスト結果から、1 つの TiKV インスタンスを復元する平均速度は 181.65 MB/秒 ( average-speedに相当) であることtikv_countわかります。

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