【问题标题】:Disconnected from Neo4j. Please check if the cord is unplugged与 Neo4j 断开连接。请检查电源线是否已拔下
【发布时间】:2015-03-05 09:02:26
【问题描述】:

我在 neo4j 2.1.7 上运行简单查询 我正在尝试执行该查询:

MATCH (a:Caller)-[:MADE_CALL]-(c:Call)-[:RECEIVED_CALL]-(b:Receiver) CREATE(a)-[:CALLED]->(b) RETURN a,b

在执行查询时,我收到以下错误

与 Neo4j 断开连接。请检查电源线是否已拔下。

然后另一个错误:

超出 GC 开销限制

我正在使用 16G RAM 的 Windows Server 2012,这是我的 nodes.properties 文件:

**
`neostore.nodestore.db.mapped_memory=1800M 
neostore.relationshipstore.db.mapped_memory=1G
#neostore.relationshipgroupstore.db.mapped_memory=10M
neostore.propertystore.db.mapped_memory=500M
neostore.propertystore.db.strings.mapped_memory=250M
neostore.propertystore.db.arrays.mapped_memory=10M

cache_type=weak
keep_logical_logs=100M size**`

还有我的 neo4j-community.vmoption 文件:

 **
-Xmx8192 
-Xms4098 
-Xmn1G 
-include-options ${APPDATA}\Neo4j Community\neo4j-community.vmoptions**

我有 6 128 644 个节点、6 506 355 个关系和 10 488 435 个属性

有什么办法吗?

【问题讨论】:

    标签: neo4j nosql


    【解决方案1】:

    TL;DR:Neo4j 断开连接,因为您的查询效率太低。解决方案是改进查询。

    由于查询的计算密集度,您的 Neo4j 实例似乎已超时并进行了 GC 转储。当您使用 bash shell 初始化 Neo4j 数据库时,您可以选择配置某些 JVM 变量,其中包括 Neo4j 可用的内存量和堆大小。如果查询超出这些计算限制,Neo4j 会自动终止查询,进行 GC 转储并断开连接。

    查看您在数据库中提供的信息,有 6M 节点具有 6M 关系。考虑到您的查询本质上是在 6M 节点上查找从调用者到接收者的所有路径,然后尝试执行批量写入操作,Neo4j 崩溃/断开连接也就不足为奇了。我建议找到一种方法来限制查询(即使使用简单的 LIMIT 关键字)并运行多个较小的查询来完成工作。

    【讨论】:

    • 您好,感谢您的回答。抱歉,但我是 neo4j 的新手,我应该通过键入以下内容来编辑查询: MATCH (a:Caller)-[:MADE_CALL]-(c:Call)-[:RECEIVED_CALL]-(b:Receiver) CREATE(a)-[ :CALLED]->(b) 返回 a,b 限制 25 ?
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多