MySQLファブリックとMySQL Clusterの違いは何ですか


9

私はMySQLの世界に不慣れで、この2つに戸惑いました。どちらも高可用性とシャーディングを提供していませんか?

また、WebScaleSQLはどのように比較されますか?

回答:


20

これらの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。


DRBD名の後に「[sic]」を付けるのはなぜですか?私はそれらを見てきましたが、それらは技術的な観点からはかなり印象的なようです。
Vérace

DRBDはブロックレベルのテクノロジーです。つまり、DBまたはそのバッファーについて何も認識していません。OLTPシステムの優れたパフォーマンスを期待しないでください。MySQLがクラッシュした場合は、ローカルでクラッシュしたため回復する必要があり、データベースの破損から保護することはできません。これは、論理レベルでの純粋な「シェアードナッシング」テクノロジーではありません。これは、分散型のRAIDであるため、MySQLに100%適合するわけではありません。書き込み負荷が少ない場合や、複数のプロトコルを同時に配布する必要がある場合に適しています。それ以外の場合は、行ベースの準同期レプリケーションが優れています。
jynus

@Vérace...要約すると、ユースケースに対する異論(MySQLクラスタリング)であり、他のケースではテクノロジーに何も影響がなく、より高いレベルのプロトコルが利用できない可能性があります。
jynus

私は完全に理解しました-バッファリングのポイントはよくできています-あなたが言うように、DRBDはMySQLの内部について何も知りません-つまり、コミットされたがまだディスクに書き込まれていないものは、クラッシュの際に失われます。
Vérace

2

MySQLファブリックは、MySQLファブリックノード/プロセス(管理機能を実行)およびファブリック対応コネクタとして実装され、クエリとトランザクションを最も適切なMySQLサーバーに直接ルーティングできます。MySQLファブリックノードは、状態およびルーティング情報をその状態ストア(MySQLデータベース)に格納します。

MySQL Clusterは、シェアードナッシングシステムでのメモリ内データベースのクラスタリングを可能にするテクノロジーです。シェアードナッシングアーキテクチャにより、システムは非常に安価なハードウェアで動作し、ハードウェアまたはソフトウェアの特定の要件を最小限に抑えることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.