PolarDB for MySQLは、Alibaba cloudによって開発されたクラウドネイティブのHTAPデータベースサービスです。 PolarDB for MySQLは、MySQL 5.6、MySQL 5.7、およびMySQL 8.0と完全に互換性があります。 PolarDB for MySQL Enterprise Editionは、クラウドネイティブアーキテクチャ、分離されたコンピューティングとストレージリソース、統合されたソフトウェアとハードウェアを使用します。 このデータベースサービスは、高い弾力性、高いパフォーマンス、高い可用性、高い信頼性、および費用対効果を特徴としています。
アーキテクチャ
PolarDB for MySQLは、安定性、信頼性、高可用性、弾力性などの商用データベースの利点と、使いやすさ、オープン性、高速イテレーションなどのオープンソースのクラウドデータベースの利点を統合したクラウドネイティブアーキテクチャを使用しています。 次の図は、PolarDB for MySQLのアーキテクチャを示しています。
図 1. PolarDB for MySQLアーキテクチャ
PolarDB for MySQLのアーキテクチャは、次の機能を強調しています。
1つのプライマリノードと複数の読み取り専用ノード
PolarDBは分散クラスターアーキテクチャを使用します。 Cluster Editionクラスターには、高可用性を確保するために1つのプライマリノードと1〜15の読み取り専用ノードが含まれています。 プライマリノードは読み取り要求と書き込み要求を処理し、読み取り専用ノードは読み取り要求のみを処理します。 Cluster Editionクラスターは、プライマリノードと読み取り専用ノード間のアクティブ /アクティブフェールオーバーを実装します。 この方法により、データベースの高可用性が保証されます。
デカップリングされたコンピューティングとストレージ
PolarDBは、コンピューティングをストレージから分離します。 これにより、ビジネス要件に基づいてAlibaba Cloudにデプロイされたクラスターをスケーリングできます。 データベース計算ノード (データベースエンジンサーバ) は、メタデータのみを格納する。 リモートデータノード (データベースストレージサーバー) は、データファイルやredoログなどのデータを保存します。 コンピューティングノード間でredoログに関連するメタデータを同期するだけで済みます。 これにより、プライマリノードと読み取り専用ノード間のレプリケーション遅延が削減されます。 プライマリノードに障害がある場合、読み取り専用ノードは短期間でプライマリノードとして機能できます。
読み書き分離
読み書き分離は、デフォルトでPolarDB Cluster Editionによって無料で提供される、透過的で可用性の高い、適応型の負荷分散機能です。 読み書き分離機能は、クラスターエンドポイントに基づいてPolarDB Cluster Editionの異なるノードにSQLリクエストを自動的に転送し、クラスターが大量の同時リクエストを集約して処理できるようにします。 詳細については、「読み書き分離」「」「」をご参照ください。
高速ネットワーク接続
データは、高速ネットワーク上でリモートダイレクトメモリアクセス (RDMA) プロトコルを使用して、クラスタの計算ノードとストレージノードの間で送信されます。 I/Oはもはやデータベースのパフォーマンスを制限する要因ではありません。
共有分散ストレージ
複数の計算ノードが1組のデータを共有する。 各計算ノードは、同じデータセットを格納する必要はない。 これにより、ストレージコストが大幅に削減されます。 新しく開発された分散ストレージおよび分散ファイルシステムを使用することで、ストレージスペースをスムーズにオンラインでスケーリングできます。 この機能は、単一のデータベースサーバーのストレージスペースに制限されず、数百テラバイトのデータに対応できます。
複数のデータレプリカとParallel-Raftプロトコル
データノード上のデータには複数のレプリカがあり、データの信頼性が保証されます。 さらに、Parallel-Raftプロトコルを使用して、これらのレプリカ間でデータの一貫性を確保します。
コア機能
ターボチャージMySQL
オープンソースMySQLおよびApsaraDB RDS for MySQLとの完全互換性: アプリケーションのコードや設定を変更することなく、これらのデータベースからPolarDB for MySQLにデータを移行できます。
強力な機能: プライマリノードと読み取り専用ノードの1対多および多対多の関連付け、共有ストレージ、大きなテーブル (60億行) の高速処理、スムーズなフェールオーバー、フラッシュバッククエリ、高速DDLクエリ (応答時間は数秒以内) 。
ネイティブHTAP
トランザクション処理 (TP) と分析処理 (AP) の両方が1か所で実行されるため、開発コストとO&Mコストが削減されます。
抽出、変換、負荷 (ETL) は必要なく、信頼性の高いリアルタイムのデータ分析を保証します。
複数のプライマリノード (Multi-master Cluster Edition)
すべてのノードが読み取りと書き込みの両方のワークロードを処理します。 ノードを追加して、書き込みパフォーマンスを線形にスケーリングできます。
ノードは、業務を中断することなく5〜10秒以内に切り替えることができます。
ディザスタリカバリのための世界的な地理的冗長性
ジオディザスタリカバリ: リージョンでクラスターに障害が発生した場合、ビジネスの継続性を保証します。
高いリソース使用率: セカンダリクラスターは、読み取り機能と書き込み機能の両方を提供します。
世界中の最も近いアクセスは、ビジネスパフォーマンスを向上させます。
PolarDB for MySQL Enterprise Editionの理由
PolarDB for MySQLは、オープンソースのMySQLデータベースと同じ方法で使用できます。 PolarDB for MySQLには次の利点があります。
費用対効果
Smart-SSDは高い圧縮率を提供し、読み書きパフォーマンスに影響を与えることなく、ストレージコストを40% 削減できます。
計算ノードはストレージリソースを共有します。 読み取り専用ノードを追加すると、計算ノードに対してのみ料金が発生するため、スケールアウトコストが大幅に削減されます。
データの量が増えると、ストレージスペースが自動的に拡張されます。 占有されたストレージスペースに対してのみ支払います。
高い伸縮性
ノードは数分で追加または削除でき、一時的にスケールアップおよびスケールダウンできます。 ストレージ容量は、データ量の変更に応じてビジネスを中断することなく自動的に拡張されます。
サーバーレスクラスターの仕様は、ワークロードの変動に対処するために1秒以内にスケーリングできます。
ハイパフォーマンス
PolarDBが使用するデータベースエンジンは、オープンソースエンジンで最適化されています。 PolarDBは、物理レプリケーション、RDMAプロトコル、共有分散ストレージなどの機能も活用して、オープンソースMySQLデータベースの6倍のパフォーマンスを実現します。
高可用性、信頼性、およびセキュリティ
共有分散ストレージは、データがプライマリノードからセカンダリノードに非同期で同期されるときに発生するデータの不整合の問題を解消します。 これにより、クラスタ内で単一障害点が発生した場合のデータ損失がゼロになります。
複数のデータレプリカがゾーン間でデプロイされます。 プライマリノードに障害が発生した場合、RTOは10秒未満です。
GDNは、2秒未満のクラスター間レイテンシ、分単位の切り替え、およびアクティブな地理的冗長性をサポートします。 オールラウンドおよび多次元保護方法は、高可用性を保証します。
PolarDBは、アクセス、ストレージ、管理の観点からデータを保護するために、IPホワイトリスト、VPC、複数のデータレプリカなどのさまざまなセキュリティ対策を採用しています。
ロック不要バックアップ
分散ストレージに基づいて実装されたスナップショットは、数分でテラバイトのデータを持つデータベースをバックアップできます。 バックアッププロセス全体でロックは不要で、高い効率とビジネスへの影響を最小限に抑えます。
PolarDB for MySQLのエディションには、Cluster Edition、Multi-master Cluster (Database/Table) Edition、Single Node Edition、X-Engineがあります。 詳細については、「エディション」をご参照ください。
PolarDB for MySQLの使用方法
PolarDB for MySQLクラスターの管理には、次の方法があります。 1つ以上を選択して、クラスター、データベース、アカウントの作成などの操作を実行できます。
コンソール: PolarDBコンソールは使いやすいwebベースのGUIです。
CLI: Alibaba Cloud CLIを使用して、PolarDBコンソールで使用可能なすべての操作を実行できます。
SDK: SDKを使用して、PolarDBコンソールで使用できるすべての操作を実行できます。
API: API操作を呼び出して、PolarDBコンソールで使用可能なすべての操作を実行できます。
PolarDB for MySQLクラスターの作成後、次のいずれかの方法でPolarDB for MySQLクラスターに接続できます。
DMS: Data Management (DMS) を使用してPolarDBクラスターに接続し、DMSのwebページでデータベースを開発できます。 詳細については、「DMSを使用したクラスターへの接続」をご参照ください。
クライアント: MySQL-FrontやHeidiSQLなどの一般的なデータベースクライアントを使用して、PolarDB for MySQLクラスターに接続できます。