Clark - this works. It is still slow. I guess multithreading may help some....
Transaction tx = db.beginTx(); //try ( Transaction tx = db.beginTx() ) { for (int i=0; i<deletedLinks.size(); i++) { Relationship rel = db.getRelationshipById(deletedLinks.get(i)); rel.delete(); txc++; if (txc>50000) { txc=0; tx.success(); tx.close(); tx = db.beginTx(); } } tx.success(); tx.close(); //} //catch (Exception e) { // System.out.println("Exception link deletion: " + e.getMessage()); //} On Saturday, June 18, 2016 at 2:03:33 PM UTC-7, John Fry wrote: > > Thanks Clark - is there any good/recommended way to nest the commits? > > Thx JF > > On Saturday, June 18, 2016 at 1:43:19 PM UTC-7, Clark Richey wrote: >> >> You need to periodically commit. Holding that many transactions in >> memory isn't efficient. >> >> Sent from my iPhone >> >> On Jun 18, 2016, at 16:41, John Fry <frydo...@gmail.com> wrote: >> >> Hello All, >> >> I have a graph of about 200M relationships and often I need to delete a >> larges amount of them. >> For the proxy code below I am seeing huge memory usage and memory >> thrashing when deleting about 15M relationships. >> >> When it hits tx.close() I see all CPU cores start working at close to >> 100% util and thrash for > 30mins. >> I need this to work in <5mins ideally. >> >> (note when I execute large amounts of changes to properties or create >> large amounts of new properties I don't have such issues) >> >> Any advice? Why is this happening? >> >> Regards, John. >> >> >> >> int txc = 0; >> >> // serially delete the links >> >> try ( Transaction tx = db.beginTx() ) { >> >> for (int i=0; i<deletedLinks.size(); i++) { >> >> Relationship rel = db.getRelationshipById(deletedLinks.get(i)); >> >> rel.delete(); >> >> txc++; >> >> if (txc>50000) { >> >> txc=0; >> >> tx.success(); >> >> } >> >> } >> >> tx.success(); >> >> tx.close(); >> >> } >> >> catch (Exception e) { >> >> System.out.println("Exception link deletion: " + e >> .getMessage()); >> >> } >> >> -- >> 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 neo4j+un...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> -- 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 neo4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.