[Zope] [OT] OO/RDB

Dieter Maurer dieter@handshake.de
Thu, 3 Jul 2003 23:26:26 +0200


Aur=E9lien Camp=E9as wrote at 2003-6-29 19:33 +0200:
 > ...
 > Ok, I know peanuts about the ZOBD - but the fact that it relies on the
 > python pickler to stream in/out objects.=20
 > The only problem I am aware of with python objects is when you build
 > circular/cyclic structure with them : they won't be reclaimed by the G=
C
 > whenever a cycle ceases to be referenced by some outer/parent object. =
So
 > you have to implement explicit destruction (inner dereferencing) of su=
ch
 > a structure.

Python now has a garbage collector which supplements reference counting
(and is able to release most cycles).

 > Thus the need for a rooted tree, at least an acyclic structure for wha=
t
 > lies in the ZOBD (as I understood it).

The ZODB has not problems with circular references.

  Circular references (in memory) are broken when an object is deactivate=
d
  (which is controlled by an incremental garbage collector
  independent of Python's reference counting).

 > BTW, what do you mean when you say "BTrees are not hierarchical at all=
"
 > ? The fact that they're seen as a flat ordered collection at the user
 > level ? Or something else ?

To make the typical BTree operations more efficient, there are additional
non-hierarchical links in the BTree structure (you can immediately
go from a subtree to the left-most leaf and all leaf buckets are linked
together).

 > >  > That's not to say ZOBD isn't neat and usefull, but please. I just=
 hate
 > >  > when some knowledgeable person spreads FUD on those topics.
 > >=20
 > > They see the world differently from you...
 >=20
 > I've been a bit crude, sorry.

No problem.


Dieter