经过大量插入后,neo4j变慢了

时间:2017-03-12 21:08:46

标签: spring neo4j spring-data-neo4j

我是Blockchain2graph project的所有者,它从比特币核心休息API中读取数据,并在Neo4j中将块,地址和交易作为图形对象插入。

经过一些导入后,流程正在放慢,直到the memory is full。我不想使用CSV导入。我的问题不是性能,我的目标是在没有应用程序停止的情况下插入内存(即使需要很长时间)

我正在使用spring-boot-starter-data-neo4j。

在我的代码中,我尝试不时地制作session.clear,但似乎没有影响。重新启动tomcat8后,情况再次变快。

1 个答案:

答案 0 :(得分:2)

由于您的项目是关于大量插入的,我不会使用像Spring Data Neo4j这样的OGM来编写数据。

您不希望会话将数据保存在客户端上。

相反,使用Cypher直接发送您从BlockChain API直接发送的更新作为批量请求,请参阅my blog post for some examples(其中一些我们也在SDN / Neo4j-OGM中使用)。

您仍然可以将SDN用于个人实体处理(CRUD),这些OGM在我的书中有助于减少样板。

但是对于具有聚合,过滤,投影和路径匹配的更复杂的读取操作,我仍然在带注释的存储库方法上使用Cypher,返回可以映射到DTO列表的行。