すべてのプロダクト
Search
ドキュメントセンター

PolarDB:RDMAベースのログ配信

最終更新日:May 30, 2024

PolarDB for MySQLは、リモートダイレクトメモリアクセス (RDMA) テクノロジーを使用してログの出荷を最適化し、RDMAベースのログ出荷ソリューションを提供します。 このソリューション共有ストレージまたはTCPに基づく従来の出荷方法の代わりにRDMAを使用します。これにより、100% によってログ出荷スループットが向上し、レプリケーションが削減されます。 50% 以上の待ち時間。 このトピックでは、RDMAベースのログ出荷の仕組み、この機能を有効にする方法、および標準シナリオでの実行方法について説明します。

どのようにRDMAベースのログ出荷は機能します

デフォルトでは、PolarDBは共有ストレージまたはTCPに基づくメソッドを使用してログを同期します。 ログ同期を高速化し、オーバーヘッドを削減するために、PolarDBではRDMAベースのログ出荷テクノロジが導入されています。 これがRDMAベースのログ出荷の仕組みです。

  • 読み取り専用ノードのredoログバッファは、プライマリノードのredoログバッファのリモートイメージと見なされます。

  • ログバッファがディスクに書き込まれる前に、プライマリノードはリモート読み取り専用ノードのログバッファにredoログを非同期に書き込み、オフセットを読み取り専用ノードに同期します。

  • 読み取り専用ノードは、共有ストレージ内のredoログの代わりにローカルログバッファを読み取ります。これにより、レプリケーションと同期が高速化されます。

従来の方法の両面動作と比較して、RDMAベースのログ出荷の片面動作は、READ/WRITE動詞を使用し、受信側CPUを伴わない。 ログは、リモートアドレスとキーを使用して、リモート読み取り専用ノードのメモリに書き込まれます。

制限

  • クラスターはPolarDB for MySQL 8.0.1で、リビジョンバージョンは8.0.1.1.33以降です。

  • グローバルデータベースネットワーク (GDN) のセカンダリクラスターのRDMAベースのログ出荷機能を有効にすることはできません。

使用法

loose_innodb_polar_log_rdma_transferパラメーターを設定して、RDMAベースのログ配信を有効にします。

パラメーター

レベル

説明

loose_innodb_polar_log_rdma_transfer

グローバル

RDMAベースのログ出荷機能を有効にするかどうかを指定します。 有効な値:

  • ON

  • OFF (デフォルト)

パフォーマンステスト

レプリケーション待ち時間の短縮

さまざまな書き込みシナリオで、RDMAベースのログ転送により、読み取り専用ノードのレプリケーション遅延を大幅に削減できます。

次の例では、32 CPUコアと128 GBのメモリを使用したPolarDB for MySQL 8.0クラスターレプリケーション遅延テストについて説明します。 テストでは20のテーブルを使用し、それぞれに200万行のデータが含まれています。 このテストでは、RDMAベースのログ転送が有効または無効で、書き込み速度が異なる場合の読み取り専用ノードのレプリケーション待ち時間を比較します

image..png

前の図に示すように、RDMAベースのログ転送が有効になっている場合、読み取り専用ノードのレプリケーション待機時間は、redo書き込み速度の増加に伴い大幅に短縮されます。

PolarDBのSCCパフォーマンスの向上

グローバル一貫性 (高パフォーマンスモード) が有効になっている場合、読み取り専用ノードのレプリケーションレイテンシがPolarDB for MySQLのパフォーマンスに大きく影響します。 RDMAベースのログ配信は、厳密整合性クラスタ (SCC) パフォーマンスを効果的に向上させることができます。

次の例では、8 CPUコアと32 GBのメモリを使用したPolarDB for MySQL 8.0クラスターSCCパフォーマンステストについて説明します。 テストでは20のテーブルを使用し、それぞれに200万行のデータが含まれています。 このテストでは、RDMAベースのログ転送が有効または無効で、スレッド数が異なる場合の読み取り専用ノードのSCCパフォーマンスを比較します。

image..png

前の図に示すように、RDMAベースのログ転送を有効にすると、読み取り専用ノードのSCCパフォーマンスが約20% 向上します。