ビジネスデータ量とアクセス負荷が増大し続けるにつれて、シングルノードデータベース はストレージ容量と読み取り/書き込みパフォーマンスのボトルネックに直面する可能性があります。PolarDB for MySQL のマルチマスタークラスターパーティションテーブル は、分散キーによってデータを複数の物理シャード へ 水平分割し、複数の読み取り/書き込みノードが共同でビジネス負荷を担います。このソリューションは、共有ストレージの弾力性と分散コンピューティングの水平スケーリング能力を組み合わせ、大規模ワークロードの同時実行スループットを向上させるために利用できます。
製品アーキテクチャ
マルチマスタークラスターパーティションテーブル は、コンピュート・ストレージ分離アーキテクチャを採用しています。
ストレージレイヤー:ストレージリソース (共有ストレージ) をプールし、オンデマンドでリソースを割り当てます。
コンピューティングレイヤー:複数のノードが同時に読み書き (シェアードナッシング) することで、読み取り/書き込みパフォーマンスを水平にスケールアウトします。
適用範囲
現在、PolarDB for MySQL のカーネルバージョン 8.0.2 のみが、マルチマスタークラスターパーティションテーブルをサポートしています。
主な利点と機能
自動水平分割
マルチマスタークラスターパーティションテーブルを作成する際に分散キーを指定すると、システムは分散ルールに従ってデータを異なる物理シャード に 自動的に分散します。
ビジネスに対する透過性
マルチマスタークラスターパーティションテーブルの使用方法は通常のテーブル と 似ているため、アプリケーション側でデータの物理的な分散を意識する必要は通常ありません。
書き込みの水平スケールアウト
複数の読み取り/書き込みノード が 同時に書き込みタスクを実行でき、コンピューティングリソース は ビジネス負荷に応じて柔軟にスケーリングできます。
統合された分散 DDL
完全に統合された分散 DDL フレームワークを提供することで、インデックスの追加/削除や列定義の変更などすべての関連操作を、統一された透過的なプロセスでスムーズに完了できます。これにより、メンテナンスのワークフローが大幅に簡素化されます。
グローバル読み取り機能
グローバル読み取り専用ノード を介してクラスター内のグローバルデータを読み取り、データベース間およびシャード間の読み取り専用クエリを実行できます。追加の集約クラスターや DTS 同期リンクを構築する必要はありません。
シナリオ
マルチマスタークラスターパーティションテーブル は、Multi-master Cluster (Limitless) によって提供されるデータ編成形式で、主に E コマースやゲームなど、データ量が大きく高同時実行の読み取り/書き込みを伴うアプリケーションシナリオ向けに設計されています。
E コマース取引シナリオ
大規模なテーブル、高同時実行の書き込み、ホットスポットワークロード に対して、分散キーを使用してデータとアクセス負荷を複数の読み取り/書き込みノード に 分散させ、単一ノード への 負荷を軽減します。
データベースとテーブルのシャーディングシナリオ
すでにデータベースとテーブルのシャーディングアーキテクチャ を 採用しているワークロード に対して、透過的なデータ分割と統合された分散 DDL 機能を提供し、アプリケーションの変更や日常のメンテナンスにかかるコストを削減します。
パフォーマンス比較
Sysbench を使用して、市場の主要な商用分散データベース 2 種 (分散データベース 1 および分散データベース 2) と、PolarDB のマルチマスタークラスターパーティションテーブル に対してストレステスト を実行しました。
テストの説明:購入ページで、分散データベース 1、分散データベース 2、およびPolarDB のマルチマスタークラスターパーティションテーブルをそれぞれ購入し、購入したクラスターのコストが同じであることを確認します。
テスト手順:32 コア、128 GB のメモリを搭載した ECS テストインスタンス上で Sysbench を実行し、128 の同時リクエストスレッドを通じて各分散データベースのパフォーマンステストを行います。oltp_point_select、oltp_read_only、oltp_write_only、oltp_read_write の 4 つのワークロードパターンをテストし、各分散データベースのパフォーマンスを評価します。
テスト結果:以下は、QPS を例とした各分散データベースのパフォーマンス比較です。

上記のテスト環境とワークロードでは、PolarDB のマルチマスタークラスターパーティションテーブル は 全体的に良好なパフォーマンスを示しています。実際のパフォーマンスは、インスタンスの仕様、データ規模、データ分散、ビジネス負荷などの要因によって影響を受ける可能性があります。