Hello,
Hi. I'm having problems deleting nodes and relationships from a server-side
plugin.
I have a following code that is supposed to accomplish this:
1. public class Purger {
2. private static final int BATCH_SIZE = 1000;
3.
4. ...
5.
6. public static void purgeDictionary(GraphDatabaseService graphDb,
int dictionary) {
7. Transaction tx = graphDb.beginTx();
8. int count = 0;
9. try {
10. for (String label : new String[]{"station", "arrival",
"departure", "change", "dictionary", "estimate-station"}) {
11. ResourceIterable<Node> nodes = graphDb.
findNodesByLabelAndProperty(DynamicLabel.label(label), "dictionary-id",
dictionary);
12.
13. for (Node node : nodes) {
14. for (Relationship rel : node.getRelationships()) {
15. rel.delete();
16. }
17.
18. node.delete();
19.
20. if (++count % BATCH_SIZE == 0) {
21. tx.success();
22. tx.close();
23. tx = graphDb.beginTx();
24. }
25. }
26.
27. }
28. tx.success();
29. } finally {
30. tx.close();
31. }
32. }
33.
34. ...
35. }
The problem is, the operation quickly fills up the heap, no matter if it's
2GB or 8GB. The graph has about 1.7M nodes. What am I doing wrong here?
I'm currently running neo4j 2.1.7 under JDK8 under 64bit Linux Debian
derivative.
Regards,
Adrian
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.