2012-03-08 5 views
0

Windows의 Neo4j를 평가하고 있습니다. NET 응용 프로그램에서 Neo4j에 액세스해야하므로 .NET 클라이언트 라이브러리 (http://hg.readify.net/neo4jclient/)를 통해 Neo4j Cypher REST API를 사용하고 있습니다.Neo4j - 메모리 부족 - Cypher REST API

합리적인 크기의 그래프 (약 100,000 노드)를 탐색 할 때 Neo4j Java 서버에서 "메모리 부족"문제가 발생합니다. 아래는 REST 응답에서보고 된 예외입니다. 또한 아래에 언급 된 Cypher 쿼리가 실행되었습니다. Neo4j 서버에 대해 -Xmx1024m 옵션을 사용하여 JVM 힙 공간을 늘리려고 시도했지만 도움이되지 않았습니다. 다른 제안을 주시면 감사하겠습니다.

처리되지 않은 예외 : System.ApplicationException : 요청을 실행할 때 예상치 못한 HTTP st atus를 받았습니다.

쿼리했다 :
START X = 노드 (1,213,997)
MATCH X - [: BOM * 1..5] -> RelationshipType, n.Number AS N RETURN 'BOM'? AS 번호, 알았어? ID로

응답 상태였다 : 당신이 결과와 함께 할 계획입니까 깊이 5 순회 가능성이 그래프의 대부분을 만질 수

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) 
+0

이 쿼리를 통해 귀하의 목표를 조금 더 설명하십시오. 많은 목적없이 많은 양의 데이터를 나열하는 것 같습니다. –

+0

요구 사항은 루트 노드에서 시작하여 전체 제품 또는 문서 구조를 가져 오는 것입니다. 그래서, 대부분의 경우 데이터 크기가 그렇게 크지는 않지만, 그러한 쿼리에 대한 경계 조건을 찾으려고합니다. –

+0

도움이되는지 확인하기 위해 페이지 매김을 시도 했습니까? –

답변

0

500 Java 힙 공간 ...? 전체 결과를 반환해야합니까? 일부만 사용하는 경우 Cypher 쿼리에서 직접 결과를 제한하도록 지정할 수 있습니다.

+0

루트 노드에서 시작하여 전체 그래프를 가져 오는 것이 필요합니다. '5'는 필자의 테스트 그래프 깊이 였고, 전체 그래프를 가져올 수있는 사이퍼 API를 찾지 못했습니다 (임베디드 Java API에서 수행 할 수있는 것처럼). 결과는 반환 된 노드를 처리하는 데 사용됩니다.보고 등을 위해 테이블에 표시합니다.이 유형의 쿼리에서 지원되는 최대 노드를 확인하려고합니다. 실제 시나리오는 더 적은 노드입니다 –