Based on my experience with Object Databases, I can't recommend a
persistent garbage collector implementation (PGC). Just like all parts
of your object model don't need to be expressed in your graph,
persistence doesn't need garbage collectors.

Based on what I've seen implemented by customers, GC's are meant for
dynamic memory allocation only.  One consequence, we found, is that
the PGC often delays the application. To avoid this, you end up
avoiding or delaying the PGC for a long time, which means there is no
automatic GC, so ultimately the application is making a manual process
of a supposedly automatic operation.

The delay also ends up bloating the database, ie the impact of not
deleting the nodes is that you end up using more storage space, when
you create new nodes you end up allocating more because the old ones
are still around.

Not sure about Neo4j, but this also ended up fragmenting the database
files. So for us,  we found that we were setting ourselves up for
bloat and fragmentation, and poor performance because you are going to
have access more data. It was also kind of fragile, because if you
make a mistake and not root something, you may end up having the PGC
accidentally delete something that you wanted. We had a tragically sad
experience were a customer was complaining about the PGC taking a long
time, the PGC was deleting more objects then they intended, good data
was lost (the performance was fine).

Please take this as a data point on the decision, it's possible that
PGCs could be implemented in a way that don't experience these
problems, and end-users could be guided to avoid pitfalls, or PGCs
might work for a certain class of applications and not others.

-Todd







On Fri, Nov 6, 2009 at 12:47 PM, Johan Svensson <jo...@neotechnology.com> wrote:
> I'll jump in on this one then.
>
> Node or relationship IDs will only be reused if they are deleted.
> There is no possibility that any IDs change without deleting.
>
> Regards,
> -Johan
>
> On Fri, Nov 6, 2009 at 3:11 PM, Andrea Puddu <kiedi...@gmail.com> wrote:
>> Hi Peter,
>>
>> I'm sorry if I jump in the discussion. I have a question about
>> "garbage collection".
>> Are node IDs reused only if some node is deleted? I mean, is there any
>> possibility that some IDs change without deleting any nodes? And what
>> about relationship IDs?
>>
>> Thank you in advance.
>> Andrea
>>
> _______________________________________________
> Neo mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to