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 <[email protected]> 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 [email protected].
>> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.