Проблемы с производительностью с neo4j
Я переношу свой rdb в neo4j 2.0.3, используя neography. Вначале каждый мой запрос на передачу раньше занимал очень мало времени, но теперь (размер файла graphml составляет около 1,3 ГБ), вставка занимает 3-5 раз и часто выдает эту ошибку для определенных запросов.
org.neo4j.server.rest.repr.RepresentationExceptionHandlingIterable.exceptionOnHasNext(RepresentationExceptionHandlingIterable.java:50)
org.neo4j.helpers.collection.ExceptionHandlingIterable$1.hasNext(ExceptionHandlingIterable.java:46)
org.neo4j.helpers.collection.IteratorWrapper.hasNext(IteratorWrapper.java:42)
org.neo4j.server.rest.repr.ListRepresentation.serialize(ListRepresentation.java:71)
org.neo4j.server.rest.repr.Serializer.serialize(Serializer.java:75)
org.neo4j.server.rest.repr.MappingSerializer.putList(MappingSerializer.java:61)
org.neo4j.server.rest.repr.CypherResultRepresentation.serialize(CypherResultRepresentation.java:83)
org.neo4j.server.rest.repr.MappingRepresentation.serialize(MappingRepresentation.java:41)
org.neo4j.server.rest.repr.OutputFormat$1.write(OutputFormat.java:160)
org.neo4j.server.guard.GuardingRequestFilter.doFilter(GuardingRequestFilter.java:68)
org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)
org.neo4j.server.guard.GuardingRequestFilter.doFilter(GuardingRequestFilter.java:68)
java.lang.Thread.run(Thread.java:745)
а также
org.neo4j.kernel.guard.Guard$Timeout.check(Guard.java:132) org.neo4j.kernel.guard.Guard.check(Guard.java:43) org.neo4j.kernel.InternalAbstractGraphDatabase$5.getNodeByIdOrNraphDBB (внутренняя база данных).java:745) org.neo4j.kernel.impl.core.NodeManager.getNodeById(NodeManager.java:301) org.neo4j.kernel.InternalAbstractGraphDatabase.getNodeById(InternalAbstractGraphDatabase.java:1spi.j.cyng) или.v2_0.TransactionBoundQueryContext$NodeOperations.getById(TransactionBoundQueryContext.scala:157) org.neo4j.cypher.internal.spi.v2_0..spi.v2_0.TransactionBoundQueryContext$$anonfun$getNodesByLabel$1.apply(TransactionBoundQueryContext.scala:131) org.neo4j.cypher.internal.helpers.JavaConversionSupport$$anon$. $$anon$11.next(Iterator.scala:328) scala.collection.Iterator$$anon$13.next(Iterator.scala:372) scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:389) scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371) scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:388) scala.collection.Iterator$class.foreach(Iterator.scala:727) scala.collection.AbstractIterator.foreach(Iterator.scala:1157) scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48) scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176) scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:45) scala.collection.TraversableOnce$class.to(TraversableOnce.scala:273) scala.collection.AbstractIterator.to(Iterator.scala:1157) scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257) scala.collection.AbstractIterator.toList(Iterator.scala:1157)
Я импортирую данные фильмов из rdb в neo4j, зацикливаясь на каждой строке rdb и создавая узел для фильма (если он не существует) и связанных с ним тегов (если он не существует), а затем создаю отношения между ними и аналогичные подобные действия.
Как я могу улучшить производительность и устранить эту ошибку?
Это мой neo4j-wrapper.conf
Во время поиска я попал на http://docs.neo4j.org/chunked/stable/configuration.html котором приведены подробные советы по производительности и настройке. Но это кажется сложным для начала. Есть ли что делать и не использовать neo4j с ruby для лучшей производительности.
Пожалуйста, помогите мне.
1 ответ
Это дает хороший фон для увеличения...