6

データベースは一般に、マスター/スレーブ レプリケーションを使用して水平方向にスケーリングできることを知っています。これは、同時読み取りの数が増加している場合に優れた戦略です。

ただし、同時書き込みの数またはデータ量が増加し始めると、マスター/スレーブ レプリケーションでは何も得られないため、代わりにデータを分割する必要があります。

これは、キーと値のシナリオに最適です。私にとって典型的な例は TinyURL/bit.ly です。短い URL foo のデータの読み取り/書き込みは、短い URL bar のデータの読み取り/書き込みとは完全に独立しています。

しかし、グラフ シナリオの場合はどうすればよいでしょうか。より具体的には、Neo4jのようなグラフ データベースを分割することはまったく可能ですか? もしそうなら、どのように?

グラフ データベースを使用する目的 (効率的なトラバーサル) を損なうことなく、グラフを分割する方法について頭を悩ませることはできません。

4

1 に答える 1

5

グラフ構造全体をトラバースすることはめったにありません。

さらに、グラフ構造がすべてのノード間で強く接続されることはめったにありません。

少し注意すれば、他のクラスターへの少数の接続によって分離された、適切に接続されたノードのクラスターを見つけることができます。

http://en.wikipedia.org/wiki/Cluster_analysis

クラスタリングに基づいて分割すると、クラスタ内のトラバーサルは速くなる可能性がありますが、別のクラスタへのトラバーサルは遅くなります。

パーティショニングの全体的な利点は、クラスター間トラバーサルと比較したクラスター内トラバーサルの比率に依存します。

于 2011-03-17T18:30:40.923 に答える