Neo4j batch update with UNWIND gets slower or even stuck
Following the popular article https://dzone.com/articles/tips-for-fast-batch-updates-of-graph-structures-wi. I’m doing my batch update. I’m using java API to update it and my query looks like:
UNWIND $props as row MERGE (n:Entity{eid:row.eid}) ON MATCH set n += row.properties
I have a 1 million records data set and I’m using a batch size as 10K, each time I send 10K records as a list of maps to my parameters. This approach worked fine at the beginning, but it got really slower or even stuck after 2 or 3 batch.
I have Index on Entity and eid, I used browser to test my query, and it looks like: Explain UNWIND $props as row….
For the newly added node, when I tried to match them with label Entity and property eid, the index is also used. So I believe my problem is not due to index.
I tried to use smaller batch size as 1K, but the same problem occurred, after around 50 batch, the update got really slow.
I’m using Neo4j 3.2.3 enterprise edition.
What can I do to solve this problem? Any idea will be well appreciated.