回答:
これらの3つの事柄は、相互に関係するものではありません。私はあなたに紹介をします、そしてあなたは個別に検索するか、より詳細を求めることができます:
MySQL Clusterは、私たちの多くが呼んでいるマーケティング名です。現在苦しんでいるような混乱を避けるために、「NDB Cluster」または「MySQL NDB Cluster」です。これは同期型のほとんどメモリのみのキー値ストアであり、MySQLのシェアードナッシングアーキテクチャを可能にします(NDBエンジンへのバックエンドを提供します)。それは提供して自動シャーディング(そう、よりよいスループットを読み取りおよび書き込み)と高可用性を。高スループットのKey-Valueの小データシステムではうまく機能しますが、セットアップが比較的複雑であり(正しく構成されていない場合、または意図しない方法で使用されている場合に問題が発生します)、レイテンシは最適ではありません。賢い(生の速度)。これは簡略化されたバージョンです(メモリのみとKey-Value以外にも使用できますが、それを中心に設計されています)。私の意見では、非常に優れたエンジニアリングですが、個別のダウンロードを備えた通常のMySQLサーバーとは異なる製品であり、特定のエンジンを使用する必要があるため、使用例は限られています。
MySQLファブリックは、Pythonで記述されたツール/ミドルウェアのセットであり、レプリケートされたGTID環境で通常のMySQLサーバーのセットを管理できます。それ自体はクラスターではありません、しかしそれは1つの管理を容易にします。これは(現時点では)JavaおよびPythonコネクタへのリンクがあるため、サーバーのシャーディングと高可用性を自動的に処理できますが、通常のMySQLサーバーと通常のレプリケーション(InnoDBのような通常のストレージエンジンを使用できます)の上にあるレイヤーです。 。これまでのレプリケーションは非同期(または準同期)であるため、それ自体では最高の一貫性とセキュリティを提供できない可能性があります。これは、将来の5.7バージョンで変更される可能性があります。ただし、このアプローチはレイテンシのオーバーヘッドが少なく、MySQL DBAのより使い慣れたレプリケーションテクノロジーを使用しています。MySQLファブリックはこの地域では比較的新しい子供なので、まだそれほど拡張されていませんが、競合他社のGaleraベースのクラスターに対するOracleの反応(発表された同期レプリケーションと合わせて)のようです。
シャーディングとHAが必要な場合は、前の2つの製品のいずれかを使用できますが、おそらくまったく異なるシナリオに使用できます。
WebScaleSQLは、以前のようなHAソリューションではなく、いくつかの企業がMySQLのフォーク/バージョンに付けた名前であり、必要な特定のパッチを共有し、おそらくOracleは適用していません。私が知る限り、それはFacebook、Twitter、LinkedIn、Googleによって作成されており、彼らはその共通のベースの上に独自のMySQLバージョンをリベースしています。サポートやバイナリリリースは提供していません。エンドユーザーであれば、おそらくそれを使用する必要はありませんが、プロジェクトから何が進化するか、または他のベンダーからの応答を確認する必要があります。
MySQL HA /スケーリングで学習/開始しようとしている場合は、基本的なMySQLレプリケーションから開始します(これは最善ではないかもしれませんが、開始するのが最も簡単です)、そこから他のソリューションに進むことができます:DRBD [ sic]、GTIDレプリケーション、NDB、Galera、Tungsten。
MySQLファブリックは、MySQLファブリックノード/プロセス(管理機能を実行)およびファブリック対応コネクタとして実装され、クエリとトランザクションを最も適切なMySQLサーバーに直接ルーティングできます。MySQLファブリックノードは、状態およびルーティング情報をその状態ストア(MySQLデータベース)に格納します。
MySQL Clusterは、シェアードナッシングシステムでのメモリ内データベースのクラスタリングを可能にするテクノロジーです。シェアードナッシングアーキテクチャにより、システムは非常に安価なハードウェアで動作し、ハードウェアまたはソフトウェアの特定の要件を最小限に抑えることができます。