2017-11-05 5 views
1

グラフ構造(以下を参照)に対してスケーラビリティテストを実行しています。グラフを作成して照会するためにneo4jブラウザインタフェースを使用しています。次のコマンドを実行すると、CPU使用率を最大化するだけでなく、ローカルサーバーへの接続も失われます(時間がかかりすぎてタイムアウトすると仮定しています)。Neo4j 150Mノードと100MエッジのためのCREATE接続が失われる

FOREACH (r IN range(1,50000000) | CREATE (:entity {id:r})-[:IN_ASSOCIATION]->(iassoc:association{id:r})<-[:IN_ASSOCIATION]-(:entity{id:r+50000000}), (iassoc)-[:IN_DOC]->(:doc{id:r})) 

多数のノードでneo4jを生成して設定する方が良いでしょうか?

enter image description here

答えて

2

APOC proceduresをインストールし、手順apoc.periodic.iterateを使用してみてください:

CALL apoc.periodic.iterate(
    "WITH range(1, 50000000) AS rs UNWIND rs AS r RETURN r", 
    "CREATE (:entity {id:r})-[:IN_ASSOCIATION]->(iassoc:association{id:r})<-[:IN_ASSOCIATION]-(:entity{id:r+50000000}), (iassoc)-[:IN_DOC]->(:doc{id:r})", 
{batchSize:10000, parallel:true}) 

この手順についてのドキュメント言う:

apoc.periodic.iterateを使用すると、2文、第一の外側 ステートメントを提供処理される値のストリームを提供しています。 2番目の 内部ステートメントは、一度に1つの要素(...)を処理します。

したがって、最初の文は、パラメータとしてrを受信し、必要に応じてノードとの関係を作成している1 50000000.第2文からrを返しています。

注意:使用しているNeo4jのバージョンに合わせてAPOC手順をインストールしてください。 version compatibility matrix.

注(2)で見てみましょう:pluginsフォルダをデータベースフォルダではなく、(設定ファイルを手動でインストールフォルダに直接するように変更されない限り)インストールフォルダにあることが必要です。

+0

ありがとうございます!簡単なメモを追加するだけでなく、プラグインフォルダは、インストールフォルダではなくデータベースフォルダにある必要があります(ただし、設定ファイルを手動でインストールフォルダに移動しない限り)。また、誰かが同様のものを構築している場合、挿入には非常に時間がかかります。 – dter

+1

@dterようこそ!確かに、私はメモを追加します! –

関連する問題