【发布时间】:2014-08-13 20:48:44
【问题描述】:
我编写了一个快速的 ruby 例程来加载一些非常大的 csv 数据。我对尝试使用 load_csv 的各种内存不足问题感到沮丧,因此恢复为 ruby。我对 neo4j 比较陌生,所以尝试使用 Neography 来调用我创建为字符串的密码查询。
密码代码正在使用合并来添加 2 个现有节点之间的关系:
cmdstr=match (a:Provider {npi: xxx}),(b:Provider {npi:yyy}) merge (a)-[:REFERS_TO {qty: 1}]->(b);
@neo.execute_query(cmdstr)
我只是在运行这些文件的文件中循环遍历这些行。它在大约 30000 行后失败,并出现套接字错误“无法分配请求的地址”。我相信 GC 在某种程度上引起了问题。然而,日志并没有告诉我任何事情。我尝试过以不同方式调整 GC,并尝试不同数量的堆。每次都在同一个地方失败。任何帮助表示赞赏。
[编辑] 更多信息 - 运行 netstat --inet 显示数千个到 localhost:7474 的连接。 execute_query 是否没有按设计重用连接,还是这是一个问题?
我现在已经尝试过参数并且行为是相同的。您将如何使用批处理对此类查询进行编码并确保使用 npi 上的索引?
【问题讨论】: