このトピックでは、PolarDB for MySQLのマルチマスタークラスター (データベース /テーブル) エディションについて説明します。
PolarDB for MySQLの顧客、特にティア1の顧客の成長に伴い、1つのプライマリノードと複数の読み取り専用ノードで構成されるPolarDB for MySQLアーキテクチャでは、大規模な顧客ビジネスに必要な十分な書き込みパフォーマンスを提供できません。
したがって、PolarDB for MySQLは、複数のプライマリノードと読み取り専用ノードを含むマルチマスター (データベース /テーブル) アーキテクチャを提供します。 新しいアーキテクチャは、ソフトウェアサービス (SaaS) 、ゲーム、eコマースのマルチテナントなど、並行性の高い読み取りおよび書き込みシナリオに適しています。
次の図は、Multi-master Cluster (Database/Table) Editionのアーキテクチャを示しています。
クラスター内のすべてのデータファイルはPolarStoreに保存されます。 各プライマリノードは、PolarFileSystemを使用してデータファイルを共有します。 クラスターエンドポイントを使用して、クラスター内のすべてのノードにアクセスできます。 データベースプロキシは、SQL文を必要なプライマリノードに自動的に転送します。
コアの利点
書き込みスケールアウト (秒単位)
最大32個の計算ノード上のデータベースへの同時データ書き込みがサポートされています。 データベースのノードの動的フェールオーバーを数秒以内に実装して、クラスターの全体的な同時読み取りおよび書き込み機能を向上させることができます。
複数のマスターバックアップ (読み取り専用ノードなし) 。
プライマリノードに障害が発生した場合、別の低トラフィックのプライマリノードへのフェールオーバーは数秒で実装できます。 ホットスタンバイに追加のアイドルリソースが展開されないため、コストが半分になります。
シナリオ
Multi-master Cluster (Database/Table) Editionは、SaaSのマルチテナント、ゲーム、eコマースなどのシナリオに適しています。 これらのシナリオは、同時実行性の高い読み取りおよび書き込み要求を備えています。
SaaSのマルチテナンシー: テナント間の高い並行性と負荷バランス
シナリオ: テナントのデータベース数が急激に変化し、負荷量が大幅に変化します。 ユーザーは、最適なエクスペリエンスを提供するために、異なるインスタンス間でデータベースリソースをスケジュールする必要があります。
解決策: Multi-master Cluster (Database/Table) Editionは、顧客がテナントのデータベースの異なるプライマリノード間で切り替えたり、新しいプライマリノードを数秒で追加してバーストトラフィックを処理するのに役立ちます。 これは負荷分散を実施する。
グローバルゲームサーバーとeコマースシナリオ: 数分で拡大するビジネスリクエストに対応
シナリオ: ミドルウェアベースまたはビジネスベースのデータベースおよびテーブルシャーディングソリューションがよく使用されます。 バージョンの更新や主要なプロモーションでは、クラスター容量の大幅なスケールアウトが必要です。 迅速なスケールインは、バージョンの更新や主要なプロモーションが終了するときに必要です。 しかし、従来のクラスタのスケーリングは、データ移行のための複雑なステップを伴う。
解決策: Multi-master Cluster (Database/Table) Editionのスケールアウトと透過的なルーティング機能を、ミドルウェアベースまたはビジネスベースのデータベースおよびテーブルシャーディングソリューションとともに使用して、スケールアウト処理を数日から数分に短縮できます。
さまざまなサーバーにデプロイされたゲームアプリケーション: パフォーマンスとスケーラビリティ
シナリオ: ゲームの成長期間中、データベースの負荷は重く、機能は継続的に増加します。 この期間中、データベースの数は増え続けています。 その結果、プライマリノードの負荷も増加する。 ゲームの辞退期間中、データベースの負荷は大幅に削減され、データベースはマージされます。 その結果、プライマリノードの負荷も低減される。
解決策: 成長期間中に、一部のデータベースを新しいプライマリノードに切り替えて、負荷分散を実装できます。 拒否期間中は、データベースをいくつかのプライマリノードに集約して、運用コストを削減できます。
パフォーマンス向上
テスト後、クラスターのデータベースがより多くのプライマリノードに切り替えられるため、クラスターの全体的な同時読み取りおよび書き込み機能は線形に増加します。 次のコードスニペットは、ストレステストの例を示しています。
テストの背景: クラスターには8つのデータベースと8つのプライマリノードがあります。
テスト手順: テストの開始時に、8つのデータベースが1つのプライマリノードを共有します。 データはすべてのデータベースに同時に同期され、同じストレステストを実行します。 ストレステスト期間中、8つのデータベースがそれぞれ2つのプライマリノード、4つのプライマリノード、8つのプライマリノードにスケジュールされます。 クラスターの全体的なパフォーマンスの変化傾向を表示します。
次の図は、QPSの変化傾向を示しています。
上の図では、データベースがより多くのプライマリノードにスケジュールされているため、クラスターの全体的な同時読み取りおよび書き込み機能が大幅に改善され、線形的に増加しています。
サポートされているカーネルバージョン
PolarDB for MySQL 8.0は、マルチマスタークラスター (データベース /テーブル) エディションをサポートしています。
ノードの仕様と価格
マルチマスタークラスタ (データベース /テーブル) エディションは、専用および汎用仕様をサポートしています。 詳細については、「PolarDB For MySQL Enterprise Editionのコンピュートノード仕様」をご参照ください。
マルチマスタークラスタ (データベース /テーブル) エディションの課金の詳細については、「課金項目」をご参照ください。
Usage
詳細については、「Usage」をご参照ください。