1

グラフに次のものがあるとします。

100 Million nodes, More than 1 Billion connections/relationships

Node properties: around 10 properties, mix of int, doubles, strings, HashMaps etc.

Relationship properties: around 10 double values and 2-3 string (with avg 50 chars) values

ここで、各ノードのネイバーを 1 回クエリすることによって、すべてのノードとリレーションシップ プロパティの値を更新するとします。つまり、次のように言います。

step1: search a node, say X, with given Id,
step2: get it's neighbours,
step3: update node properties of X and all relationship properties between X and it's neighbors.

これらの 3 つの手順をすべてのノードに対して 1 回繰り返します。次のシステム構成が与えられた場合、すべてのノードの 1 回の更新にかかる時間 (おおよその時間は問題ありません。秒 / 分 / 時間である可能性があります)。

Two dual core processors, 3.0 GHz each, 4*4 GB memory, 250 GB Hard disk space.

上記のデータには、およそどれくらいのストレージ容量が必要ですか?

おおよそのサンプル パフォーマンス (時間とストレージ) 分析を提供してください。サンプルのパフォーマンス分析は、要件を視覚化するのに役立ちます。ありがとう。

4

1 に答える 1

4

サイズの検討は、ノード/関係にとって非常に簡単です。各ノードは9バイトで、各関係は33バイトです。

9B x 100M = 900 Million Bytes =~ 858.3 Megabytes for nodes
33B x 1B = 33 Billion bytes =~ 30.7 Gigabytes for relationships

計算に関しては、それを測定するのは難しいです。Neo4jキャッシュは、ディスク上にあるものと1対1ではないため、ストレージは最大31Gbになる可能性がありますが、キャッシュに保存するにはそれ以上のものが必要になります。ただし、neo4jがディスクに情報を格納する方法は、ノードのすべての関係とプロパティをリンクリストに格納するため、このタイプのトラバーサルには効率的です。したがって、イテレータを介してそれらにアクセスする方が、1つのタイプの関係を検索するよりも効率的です。

見積もりを出すのは難しいですが、重複した関係、RAMとディスクのどちらに収まるかなどを経験しているので、システムとサイズを考えると数時間(<6時間)になると思います。要件。

于 2013-02-26T03:07:41.517 に答える