我在Neo4j上完成了两个不同文件的批量上传,比如文件“A”(包含10000条记录)和文件“B”(包含9000条记录)。 现在我有第三个文件说文件“C”(有1000万条记录(行))
文件“C”描述文件“A”和文件“B”之间的关系。
当文件“C”的处理开始时,它会抛出Java堆大小异常,我有4 GB的ram,堆大小增加到3 GB。如果我将文件“C”的大小减少到200万条记录,那么它可以正常工作
我使用的是Neo4j 1.9版本。
请说明为什么会这样?以及如何摆脱它。
提前致谢: - )
答案 0 :(得分:3)
您是使用Neo4j的普通API还是使用批量插入器进行此操作?我假设正常的API,我假设你在一次交易中做了所有事情?要么使用批量插入器,要么拆分事务,因为事务保留在内存中,直到提交时刷新到磁盘,这很可能导致堆错误。