PolarDB for MySQL には、Cluster Edition と Multi-master Cluster (Limitless) の 2 つのエディションがあります。このトピックでは、各エディションのアーキテクチャ、メリット、ユースケースについて説明します。
次の表に、2 つのエディションのユースケースの比較を示します。
|
エディション |
説明 |
ユースケース |
|
Cluster Edition |
コンピューティングとストレージの分離アーキテクチャを使用して、迅速な弾性スケーリング、大容量のストレージ、プライマリノードと読み取り専用ノード間の低レイテンシーを実現します。 |
|
|
Multi-master Cluster (Limitless) |
このエディションは、複数の読み取り/書き込みノードを使用するマルチライター/マルチリーダーアーキテクチャを提供します。すべてのノードは、共有分散ストレージ (PolarStore) を介してデータを共有し、クラスターエンドポイントを介してアクセスできます。PolarProxy は SQL ステートメントを自動的にルーティングします。 |
|
Cluster Edition
Cluster Edition は、コンピューティングとストレージの分離アーキテクチャを使用して、迅速な弾性スケーリング、大容量のストレージ、プライマリノードと読み取り専用ノード間の低レイテンシーを提供します。
-
シングルライター、マルチリーダー
PolarDB は分散クラスターアーキテクチャを使用します。Cluster Edition クラスターには、1 つのプライマリノードと最大 15 の読み取り専用ノード、またはプライマリノードのみが含まれます。これらのデータベースノードは、データベースエンジン層を形成します。プライマリノードは読み取りおよび書き込みリクエストを処理し、読み取り専用ノードは読み取りリクエストのみを処理します。プライマリノードと読み取り専用ノードは、アクティブ/アクティブフェイルオーバーを使用して、高可用性のデータベースサービスを提供します。
-
共有分散ストレージ (PolarStore)
複数のコンピュートノードは、各ノードが独自のコピーを保存するのではなく、単一のデータコピーを共有します。この設計により、ストレージコストが大幅に削減されます。分散ブロックストアとファイルシステムに基づいているため、ストレージは単一サーバーの容量制限に関係なく、オンラインでスムーズにスケーリングできます。これにより、クラスターは最大数百テラバイトのデータセットをサポートできます。
-
コンピューティングとストレージの分離
コンピューティングとストレージの分離アーキテクチャにより、パブリッククラウド環境での弾性的なクラスタースケーリングが可能になります。データベースのコンピュートノードはメタデータのみを保存します。ストレージノードは、データファイルと REDO ログを共有分散ストレージ (PolarStore) に保存します。コンピュートノードは REDO ログのメタデータを同期するだけでよいため、プライマリノードと読み取り専用ノード間のレプリケーション遅延が大幅に短縮されます。プライマリノードに障害が発生した場合、システムは読み取り専用ノードを迅速に新しいプライマリノードに昇格させることができます。
-
読み書き分離
PolarProxy の読み書き分離機能は、Cluster Edition でデフォルトで提供される、透過的で可用性が高く、適応性のある負荷分散機能です。クラスターエンドポイントを介して、SQL リクエストは Cluster Edition のさまざまなデータベースノードに自動的に転送され、集約された高スループットの同時 SQL 処理を提供します。詳細については、「読み書き分離とは」をご参照ください。
-
高速相互接続
高速ネットワークがデータベースのコンピュートノードとストレージノードを相互接続します。これらのノードは、リモートダイレクトメモリアクセス (RDMA) プロトコルを使用してデータを転送します。これにより、I/O パフォーマンスのボトルネックが解消されます。
-
データの信頼性と一貫性
ストレージノードは複数のコピーにわたってデータを複製して信頼性を確保し、システムは Parallel-Raft プロトコルを使用してデータ一貫性を保証します。
アーキテクチャ
次の図は、Cluster Edition クラスターのアーキテクチャを示しています:
サポートされているカーネルバージョン
Cluster Edition は、PolarDB for MySQL の 5.6、5.7、8.0 の 3 つのカーネルバージョンをサポートしています。
ユースケース
-
中規模および大規模企業向けの本番データベース。
-
インターネット、IoT、小売、eコマース、物流、ゲームなどの業界向けのデータベース。
-
金融、証券、保険など、データセキュリティ要件が高い業界向けのコアデータベース。
ノード仕様と料金
Cluster Edition は dedicated specifications と general-purpose specifications をサポートしています。詳細については、「課金項目」をご参照ください。
Multi-master Cluster (Limitless)
PolarDB for MySQL は Multi-master Cluster (Limitless) をリリースしました。これにより、アーキテクチャがシングルライター、マルチリーダーからマルチライター、マルチリーダーにアップグレードされ、データベースの同時読み取りおよび書き込み機能が強化されます。
アーキテクチャ
次の図は、Multi-master Cluster (Limitless) クラスターのアーキテクチャを示しています:
クラスター内のすべてのデータファイルは、共有分散ストレージ (PolarStore) に保存されます。読み取り/書き込みノードは、分散ファイルシステム (PolarFileSystem) を使用してこれらのデータファイルを共有します。クラスター全体にはクラスターエンドポイントを介してアクセスでき、PolarProxy は SQL ステートメントを正しい読み取り/書き込みノードに自動的にルーティングします。
サポートされているカーネルバージョン
Multi-master Cluster (Limitless) は、PolarDB for MySQL の 8.0 カーネルバージョンでのみ利用可能です。
メリット
-
数秒での書き込みの水平スケーリング
このアーキテクチャは、同時書き込みを異なるコンピュートノードに分散し、最大 32 ノードでの同時書き込みをサポートします。これらのノード間で異なるデータベースを数秒で動的にスケジュールでき、これにより全体の同時読み取りおよび書き込みスループットが大幅に向上します。
-
マルチプライマリフェイルオーバー (スタンバイノード不要)
読み取り/書き込みノードに障害が発生した場合、トラフィックは数秒でトラフィックの少ない別の読み取り/書き込みノードにフェイルオーバーします。このモデルでは、アイドル状態のホットスタンバイリソースが不要になり、コストを半分に削減できる可能性があります。
-
グローバル読み取り専用ノード
グローバル読み取り専用ノードは、すべての読み取り/書き込みノードからのデータの統合ビューを提供します。これは、データの統合が必要なクエリを実行する場合に役立ちます。
ユースケース
Multi-master Cluster (Limitless) は、マルチテナント SaaS アプリケーション、ゲーム、eコマースなど、高同時実行性の読み取り/書き込みワークロードに最適です。
-
マルチテナント SaaS アプリケーション:高同時実行性のパフォーマンス要求への対応とテナント間の負荷分散
Multi-master Cluster (Limitless) を使用すると、テナントのデータベースを異なる読み取り/書き込みノード間で数秒で移行したり、新しい読み取り/書き込みノードを追加してトラフィックスパイクに対応したりして、効果的な負荷分散を実現できます。
-
グローバルサーバーゲームと eコマース:数分でのスケールイン/アウトによる、急成長するビジネスリクエストへの適応
数秒単位の水平スケーリングと透過的ルーティングにより、Multi-master Cluster (Limitless) はミドルウェアやデータベース/テーブルシャーディングと連携して、数秒で透過的なスケーリングを提供できます。この機能により、スケールアウト時間が数日から数分に短縮されます。
-
シャーディングされたサーバーゲーム:柔軟なスケーリングによるパフォーマンスとスケーラビリティの向上
ゲームの成長段階では、一部のデータベースを新しい読み取り/書き込みノードに迅速に移動して負荷を分散できます。ゲームの衰退段階では、データベースをより少ない読み取り/書き込みノードに統合して、運用コストを削減できます。
ノード仕様と料金
Multi-master Cluster (Limitless) は dedicated specifications と general-purpose specifications をサポートしています。詳細については、「エンタープライズエディションのコンピュートノード仕様」をご参照ください。
Multi-master Cluster (Limitless) の課金の詳細については、「課金項目」をご参照ください。