Neo4j - 内存不足 - Cypher REST API

时间:2012-03-08 15:37:17

标签: neo4j

我正在评估Windows中的Neo4j。因为,我需要从.NET应用程序访问Neo4j,我通过.NET客户端库(http://hg.readify.net/neo4jclient/)使用Neo4j Cypher REST API。

当遍历一个合理大小的图形(大约100,000个节点)时,我在Neo4j java服务器中面临“Out of memory”问题。以下是REST响应中报告的异常。另外,下面提到的是运行的密码查询。 我试图用Neo4j服务器的-Xmx1024m选项增加JVM堆空间,但这没有帮助。非常感谢任何其他建议。

未处理的异常:System.ApplicationException:收到意外的HTTP st 执行请求时的atus。

查询是:
    START x = node(1213997)
    MATCH x - [:BOM * 1..5] - > n     返回'BOM'作为RelationshipType,n .Number? AS号码,是吗? AS Id

响应状态为:500 Java堆空间

The raw response body was: <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 Java heap space</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /db/data/cypher. Reason:
<pre>    Java heap space</pre></p><h3>Caused by:</h3><pre>java.lang.OutOfMemoryE
rror: Java heap space
        at java.lang.AbstractStringBuilder.&lt;init&gt;(Unknown Source)
        at java.lang.StringBuilder.&lt;init&gt;(Unknown Source)
        at org.neo4j.server.rest.repr.RepresentationType.&lt;init&gt;(Representa
tionType.java:108)
        at org.neo4j.server.rest.repr.Representation.&lt;init&gt;(Representation
.java:73)
        at org.neo4j.server.rest.repr.ListRepresentation.&lt;init&gt;(ListRepres
entation.java:36)
        at org.neo4j.server.rest.repr.CypherResultRepresentation.data(CypherResu
ltRepresentation.java:64)

2 个答案:

答案 0 :(得分:0)

深度5遍历可能会触及图表的大部分内容......您打算如何处理结果?是否有必要返回整个结果?如果你只是使用它的某些部分,也许你可以在Cypher查询中直接指定限制结果。

答案 1 :(得分:0)

在较新的版本中,您可以

start n = node(*) ...

请参阅http://docs.neo4j.org/chunked/snapshot/query-start.html#start-all-nodes,从所有节点开始,这是您想要的?但是,你会多次返回整个图表?