No, no need to restart the db, the code should look like this:

Transaction tx = db.beginTx();
int count=1;
for (Relationship r : relationships) {
   relIndex.remove(r);
   r.delete();
   if (count++ % 50000 == 0) {
     tx.success(); tx.finish();
     tx = db.beginTx();
   }
}
tx.success(); tx.finish();

It depends on your heap how many elements can be handled in a single tx. You 
can also lower that number to 25000

Cheers,

Michael

----
(michael)-[:SUPPORTS]->(YOU)-[:USE]->(Neo4j)
Learn Online, Offline or Read a Book (in Deutsch)
We're trading T-shirts for cool Graph Models







Am 11.03.2014 um 14:45 schrieb Rita <[email protected]>:

> Ok, so it will not increase the space with new insertion, I hope to see soon 
> this after resolving with the delete, because also if I start a new 
> Transaction every 50.000 elements I got the GC error. It seems that I need to 
> close and reopen also the graph to avoid this one. Does it keep all in memory 
> also after tx.finish? But in this way it is too slow. Any other way to 
> increase speed?
> Thanks
> 
> Rita
> 
> Il giorno martedì 11 marzo 2014 12:58:52 UTC+1, Michael Hunger ha scritto:
> Existing node and relationship records that are freed will of course be 
> reused (but only after a restart).
> 
> So if you have a sliding window and delete nodes, then restart your db before 
> inserting the new window and it will use the existing record blocks on disk.
> 
> Cheers,
> 
> Michael
> 
> ----
> (michael)-[:SUPPORTS]->(YOU)-[:USE]->(Neo4j)
> Learn Online, Offline or Read a Book (in Deutsch)
> We're trading T-shirts for cool Graph Models
> 
> 
> 
> 
> 
> 
> 
> Am 11.03.2014 um 12:10 schrieb Rita <[email protected]>:
> 
>> Thank you for the reply.
>> Really cannot exist a way to reduce the disk space? I need it. So how could 
>> I do?
>> I cannot reimport the data from the beginning because I have to populate the 
>> graph like a sliding window, I need to remove the older data l and then 
>> import newer ones.
>> Does exist some way to "optimize" the graph and index space after those 
>> deletes?
>> Yes I have an index on relationships, so I'm deleting them both from the 
>> index and the graph.
>> 
>> Thanks.
>> 
>> Rita
>> 
>> 
>> Il giorno martedì 11 marzo 2014 11:34:54 UTC+1, Michael Hunger ha scritto:
>> Neo4j is block based, it will only mark blocks as not in use but won't 
>> release them on disk. So your deletion of relationships won't make the 
>> database smaller on disk.
>> 
>> You're probably faster reimporting the data with the batch-inserter.
>> 
>> Did you actually index the relationships?
>> 
>> you have to batch your transactions around your delete operations and start 
>> a new Transaction every 50.000 elements.
>> 
>> Otherwise you will run into GC issues which explain the slowness and GC 
>> overhead.
>> 
>> 
>> Cheers,
>> 
>> Michael
>> 
>> ----
>> (michael)-[:SUPPORTS]->(YOU)-[:USE]->(Neo4j)
>> Learn Online, Offline or Read a Book (in Deutsch)
>> We're trading T-shirts for cool Graph Models
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Am 11.03.2014 um 11:23 schrieb Rita <[email protected]>:
>> 
>>> Hi everybody
>>> 
>>> I have populated my graph with nodes and relationships with the 
>>> BatchInserter. Now I need to delete a part of relationships, to reduce the 
>>> disk space of the graph. I have some problem. I am using the embedded 
>>> version of Neo4j with Java.
>>> 
>>> I am using the instruction indexRel.remove(rel) to delete relationships 
>>> from the index, and it is ok.
>>> 
>>> Instead I am using r.delete() inside transaction to delete them from the 
>>> graph. This is very slow, does exist another method  instead of the 
>>> transactional one? I need also to close and reopen the graph to do not have 
>>> the error: GC overhead limit exeeded. Someone have a suggestion, please?
>>> 
>>> Then, why after deleting relationships, the size of the graph on disk do 
>>> not decrease?
>>> 
>>> Thank you very much in advance.
>>> 
>>> Rita
>>> 
>>> 
>>> -- 
>>> 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.
> 
> 
> -- 
> 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.

Reply via email to