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.

Reply via email to