MariaDB Xpandは、MariaDBの新製品です。以前はClustrixDBと呼ばれていましたが、2018年9月にMariaDBCorporationによって買収されました。
ClustrixDBは個別のエンティティとして使用できなくなりましたが、MariaDBEnterpriseServerの一部として含まれるようになりました。現在Xpandと呼ばれ、分散データとトランザクション処理でMariaDB Enterprise Serverを拡張し、シェアードナッシングアーキテクチャで毎秒数百万のトランザクションに拡張できる分散SQLデータベースに変換します。ただし、DBAはレプリケートされたテーブルと分散されたテーブルの両方を使用することを選択できるため、Xpandはオールオアナッシングではありません。 Xpandは、クラスター内の使用可能なノード間で並列クエリを実行できるため、複雑なクエリや分析処理に適しています。
基本的に、Xpandはシェアードナッシングアーキテクチャであり、スケールアウトSQLデータベースとして設計されており、元々は自動データ再配布を備えたコモディティハードウェアで実行できるようにゼロから構築されています(したがって、シャーディングする必要はありません)。 )。フォールトトレランスが組み込まれており、すべてシンプルなSQLインターフェイスでアクセスでき、ビジネスクリティカルなMySQL機能(レプリケーション、トリガー、保存されたルーチンなど)をサポートします。このライセンスはプロプライエタリとしてのみ利用可能であるため、この製品を利用する場合は、有効なライセンスを取得するために、最初にMariaDBセールスに連絡する必要があります。
MariaDBXpandを使用する場合
Xpandは、大量のデータを処理するように設計されており、データベースをより効率的に拡張できます。これは、クラスターのスケールアウトがXpand自体によって簡単かつ自動的に行われることを意味します。 MariaDBプラットフォームX5のリリース以降、Xpandは、分散SQLソリューションの一部として顧客に提供されるプラットフォームの一部になっています。 Xpandスマートエンジンを使用すると、お客様は、単一ノードでの高性能混合読み取り/書き込みワークロードのInnoDBストレージエンジンのスイートスポットを超えて拡張できます。レプリケーションを介して拡張を追加し、大規模な場合に高可用性フォールトトレラント分散ソリューションを採用することもできます。ワークロードをスケーリングします。
Xpandを使用すると、テーブルごとに柔軟にスケーリングできます。単一のテーブルにXpandを使用することから始め、単一のノードが処理できる範囲を超えてニーズが拡大するにつれて、使用法を拡張します。企業のニーズがレプリケーションやクラスタリングを超えて成長するにつれて、分散SQLの使用を増やします。データまたはクエリの量が増えてパフォーマンスが低下した場合は、Xpandを使用してテーブルまたはデータベース全体を分散し、スループットと同時実行性を向上させることができます。 Xpandには高可用性と弾力性が組み込まれているため、スケールアウトする必要に応じてノードを透過的に追加または削除できます。
MariaDB ColumnStoreと同様に、列型スマートエンジン、クロスエンジンJOINは、レプリケートされたテーブルと分散されたテーブルの間で可能です(推奨されます)。データベース全体を分散する他の分散SQL実装とは異なり、MariaDBでは、Xpandを介して複製された小さなデータセットと大規模な分散データセットにInnoDBを組み合わせて使用できます。
残念ながら、ClustrixDBからMariaDB Xpandへの変更の状態に関する正式なドキュメントはありません。そのため、ClustrixDBの動作に関するドキュメントについては、https://docs.clustrix.com/に依存することをお勧めします。 GTIDがClustrixDBでサポートされていないことも知られていますが、これはMariaDB10.5のリリース以降に変更されている可能性があります。
MariaDB Xpandはどのように機能しますか?
MariaDB Xpandを使用してデプロイするには、XpandプラグインがインストールされたMariaDB Enterprise Serverが必要であり、Xpandノードが一緒に実行されている必要があります。これは、高可用性のためにMaxScaleとMariaDB Serverのレプリケーション設定をセットアップする方法と同様であり、MaxScaleを最上位に配置して接続を管理し、InnoDBでレプリケートされた小さなデータセットを持つフロントエンドEnterpriseServerインスタンス間で透過的にフェイルオーバーできます。 Xpandで最高のパフォーマンスを実現するには、フロントエンドサーバーとノードを別々の物理サーバーで実行する必要があります。これがどのように機能するかについては、MariaDBの以下のMariaDBXpandトポロジアーキテクチャを参照してください。
https://mariadb.com/resources/blog/mariadb-adds-xpand-for-distributed-sql /上記でさらに説明するために、Xpandは、Xpandを使用して構築されたテーブルごとにいくつかのスライスを分割します。各スライスはプライマリノードに保存され、フォールトトレランスを確保するために1つ以上の他のノードに複製されます。各Xpandノードは、読み取りと書き込みの両方を実行できます。また、各ノードにはデータ分布のマップがあります。
読み取り操作の場合、クエリの大部分はXpandにプッシュダウンされ、そこでクエリが評価され、クエリの関連部分が適切なXpandノードに送信されます。 MariaDB Enterprise Serverは、Xpandノードから戻りデータを収集して結果セットを生成します。
書き込み操作の場合、MariaDB Xpandは「リバランサー」と呼ばれるコンポーネントを使用して、使用可能なXpandノード全体にデータを自動的かつ透過的に分散します。
各Xpandノードは、読み取りと書き込みの両方を実行できます。クエリがMariaDBEnterpriseServerによって受信されると、クエリオプティマイザーによって評価され、クエリの一部が関連するXpandノードに送信されます。結果が収集され、単一の結果セットがクライアントに返されます。
MariaDB Xpandは、シェアードナッシングアーキテクチャを活用しています。単一のノードが各リクエストを処理し、メモリとストレージは共有されません。
MariaDBXpandHAとフォールトトレランス
MariaDB Xpandは、設計上フォールトトレラントです。 Xpandは、バックグラウンドで実行されるリバランサープロセスを使用して、すべてのデータの2つのレプリカを維持します。 Xpandは、データを失うことなく、単一のノードまたはゾーンに障害が発生する可能性があります。
ノードに障害が発生すると、残りのノードからデータのバランスが取り直され、介入なしでデータ保護が自動的に回復します。ゾーンに障害が発生した場合、リバランサーはノードと残りのゾーンの間で同じ操作を実行します。
障害が発生したノードが置き換えられると、リバランサーはデータを再配布し、MariaDBXpandを目的のノード数に復元します。
MariaDBXpandによる水平スケールアウト
MariaDB Xpandは、設計上柔軟性があります。 MariaDB Enterprise Serverの負荷が増加した場合は、デプロイメントにサーバーを追加し、MariaDBMaxScaleを使用してサーバー間の負荷分散を行うことができます。各サーバーはXpandノードに接続して、Xpandテーブルに保存されているデータにアクセスできます。
MariaDB Xpandの負荷が増加した場合は、新しいノードを追加してスケールアウトできます。 Xpandノードをデプロイメントに追加すると、リバランスプロセスは既存のノードからデータを再配布します。完了すると、XpandノードはMariaDBEnterpriseServerからの読み取り操作と書き込み操作の両方を処理できるようになります。
MariaDB Xpandの負荷が減少した場合は、ノードを削除してスケールダウンできます。 Xpandノードをデプロイメントから削除すると、リバランスプロセスによってデータが残りのノードに再配布され、フォールトトレランスが確保されます。
MariaDBXpandをスケーラブルにする理由
- シェアードナッシングアーキテクチャ。潜在的なボトルネックを排除します。これを、ボトルネックになり、拡張性がなく、管理が難しい共有ディスク/共有キャッシュアーキテクチャと比較してください。
これは、クエリを処理しているノードに大量のデータを定期的に移動し、クエリに適合しないすべてのデータ(通常は大量のデータ)を削除する他のシステムとは大きく異なります。 。 Xpandは、適格なデータをネットワークを介して要求側ノードに移動するだけで、ネットワークトラフィックのボトルネックを大幅に軽減します。さらに、より多くのプロセッサがデータ選択プロセスに参加します。複数のノードでデータを並行して選択することにより、システムは、最初に他のノードから必要なすべてのデータを収集する必要がある単一のノードによってすべてのデータが選択された場合よりも迅速に結果を生成します。システム内のノード。
各ノードは特定のパーティションに焦点を合わせ、他のノードから生データを要求するのではなく、他のノードに作業項目を送信するため、各ノードのキャッシュにはそのノードのデータが多く含まれ、他のノードからの冗長性の少ないデータが含まれます。これは、キャッシュヒット率がはるかに高くなり、低速のディスクアクセスの必要性が大幅に減少することを意味します。
MariaDBXpandのデプロイ
MariaDB Xpandの使用を開始するために、2つの別々のMariaDBXpandデプロイメントがあります。 Xpandデプロイメントは、フロントエンドサーバーと呼ばれるMariaDB Enterprise Serverインスタンスで構成され、Xpandプラグインがインストールされており、Xpandノードはこれらのフロントエンドサーバーと一緒に実行されます。最高のパフォーマンスを得るには、EnterpriseServerとXpandノードを別々の物理サーバーにインストールできます。
- MariaDBXpandノードを設定する必要があります。 Xpandノードは、MariaDBEnterpriseServerのストレージバックエンドにXpandストレージエンジンプラグインを提供するようにデプロイメントで構成されます。サーバーは、XpandテーブルのデータをローカルファイルシステムではなくXpandノードに保存します。 XpandノードをインストールするにはJSONオブジェクトであるライセンスが必要であり、MariaDBSalesに連絡することによってのみ取得できます。インストールプロセスは、1つのコマンドまたはクリックほど速くはないため、Xpandノードのインストールガイドにアクセスすることをお勧めします。
MariaDBXpandハードウェアの互換性
ハードウェアの互換性に興味がある場合は、MariaDBプラットフォームをさまざまな環境で実行できます。現在使用している環境でMariaDBサーバーを実行またはホストできる限り、MariaDBサーバーと一緒にXpandノードをセットアップし、Xpandプラグインをインストールできる限り、これは間違いなく機能します。ドキュメントから、物理環境とクラウド環境のリストを以下に示します。
- オンプレミス(オンプレミス)
- 併置(コロ)
ハードウェアアーキテクチャについては、MariaDB Enterprise Server 10.4.10-4(2019-11-18)の時点で、MariaDBEnterpriseServerはx86_64ハードウェアアーキテクチャプラットフォームのみをサポートしていることに注意してください。
MariaDB Xpandは、非常に便利な方法で効率と拡張性を簡素化します。この製品の最も魅力的な点は、MariaDBの標準SQL関数も使用できることです。既存のMariaDB環境に組み込むことができ、その機能とスケーラビリティを活用できます。それは魅力的かもしれませんが、この製品を活用するには、特別なライセンスと多額の料金が必要です。エンタープライズアプリケーションの目的に役立つ場合は、このMariaDBXpandを試してみる価値があるかもしれません。