0

私のユースケースでは、新しいグラフを取り込むために、できるだけ早くグラフをクリアする必要があります。Rexster を通じて実装された Neo4j グラフには、何百万もの頂点とエッジがあります。g.E.remove()Rexsterインターフェースから使用して、280万のエッジを持つグラフを削除しようとしました-

localhost:8182/graphs/neo4jsample/tp/gremlin?script=g.E.remove();

これを行うのに 200 秒近くかかります (エッジを削除するだけです)。ソリューションが稼働中の場合、最大 10 秒以内にグラフを空にする必要があります。
neo4j グラフ (.db) ファイルが保存されているフォルダー (デフォルトでは /tmp/neo4j-graph) を削除しようとしました。これを行った後でも、Rexster は結果を gremlin クエリに返します (neo4j-graph が削除される前のように)。これは、Rexster サーバーの起動時にグラフがキャッシュされているためだと思います。上記のステップからの進行として、最初にグラフをシャットダウンしました

localhost:8182/graphs/neo4jsample/tp/gremlin?script=g.shutdown();

..そして「neo4j-graph」フォルダを削除します。次に、新しいグラフフォルダーを作成しようとします

localhost:8182/graphs/neo4jsample/tp/gremlin?script=g = new Neo4jGraph('/tmp/neo4j-graph')

これは「rexster.xml」で構成されているため、この場所に固執します。すべての Neo4j '.db' ファイルが作成された新しい 'neo4j-graph' フォルダーが作成されました。g (gVmap(), g.addVertex([name:"John Doe",age:50])) を使用したグレムリン クエリでエラーがスローされるようになりました。

 org.neo4j.graphdb.TransactionFailureException: Database is currently not available. No blocking components

このような場合に (Rexster を再起動せずに) 'g' を再び正常に動作させる方法はありますか?
私が言及したものよりもグラフ全体を削除するより速い方法はありますか?

4

1 に答える 1

1

shutdown()データディレクトリの削除を使用して、正しい方法で行っています。Neo4j サーバーでさえそのように動作することに注意してください (シャットダウンが必要です)。残念ながら、Neo4j グラフを最新のものとして再生成するには、Rexster を再起動する必要があります。

于 2015-08-10T12:06:24.413 に答える