機能の説明
公式のMySQL 5.6以前のバージョンでは、slaveノードで再生を行い、masterノードでbinlogを同期する際はすべてシングルスレッド方式でしたが、5.6およびそれ以降のバージョンでは並列方式に変更されています。ただし公式の並列はdatabaseとlogical clockに基づいて行われるため、並列の粒度が大きく、多くの状況下では理想的な並列効果が得られません。
Tencent Cloud TXSQLカーネルチームは並列レプリケーション機能を最適化し、tableごとの並列をサポートしました。これは粒度をテーブルに分割することに相当し、並列性を向上させてマスター/スレーブの遅延を減少させることができます。
サポートするバージョン
- カーネルバージョン MySQL 8.0 20201230以降
- カーネルバージョン MySQL 5.7 20180530以降
- カーネルバージョン MySQL 5.6 20170830以降
ユースケース
この機能は主に一部の負荷について、slaveマシンのbinlog再生速度を向上させ、マスターマシンとスレーブマシンのdelay減少を可能にします。
利用説明
MySQL 5.6および5.7バージョンでは、パラメータslave_parallel_typeを新しく追加された値TABLEに設定することでこの機能を有効にすることができます。MySQL 8.0バージョンはTABLEモードをサポートしていません。
さらに、information_schemaでステータステーブルcdb_slave_thread_statusを追加し、ステータス情報の表示に用います。
パラメータ名 | 動的 | タイプ | デフォルト | パラメータ値範囲 | 説明 |
---|
slave_parallel_type | YES | char* | SCHEMA | SCHEMA/TABLE | スレーブマシンの並列レプリケーションレベル:SCHEMAはオブジェクトレベルのレプリケーションであり、異なるオブジェクトのレプリケーションイベントを並行して実行できます。TABLEはテーブルレベルのレプリケーションであり、異なるテーブルのレプリケーションイベントを並行して実行できます。 |
パラメータ名 | 動的 | タイプ | デフォルト | パラメータ値範囲 | 説明 |
---|
slave_parallel_type | YES | char* | LOGICAL_CLOCK | DATABASE/TABLE/LOGICAL_CLOCK | スレーブマシンの並列レプリケーションレベル:DATABASEはデータベースレベルのレプリケーションであり、異なるデータベースのレプリケーションイベントを並列して行えます。TABLEはテーブルレベルのレプリケーションであり、異なるテーブルのレプリケーションイベントを並列して実行できます。LOGICAL_CLOCKは論理クロックレベルのレプリケーションであり、マスターマシン上で同一の論理クロックに属するイベントを並列して実行できます。 |
パラメータ名 | 動的 | タイプ | デフォルト | パラメータ値範囲 | 説明 |
---|
slave_parallel_type | YES | char* | LOGICAL_CLOCK | DATABASE/LOGICAL_CLOCK | スレーブマシンの並列レプリケーションレベル:DATABASEはデータベースレベルのレプリケーションであり、異なるデータベースのレプリケーションイベントを並列して行えます。LOGICAL_CLOCKは論理クロックレベルのレプリケーションであり、マスターマシン上で同一の論理クロックに属するイベントを並列して実行できます。 |
この記事はお役に立ちましたか?