[ZODB-Dev] what appears inside zodb storage?

hazmat hazmat@objectrealms.net
Wed, 18 Dec 2002 19:10:18 -0800


On Wednesday 18 December 2002 06:28 pm, Guido van Rossum wrote:

<big snip>
> > When zope btrees are used and these are stored persistently (are they
> > always stored persistently?) where are the btrees stored?
>
> Each "node" in a BTree is a separate persistent object.  If a BTree
> consists of 10 nodes and only 3 of those are modified by a particular
> transaction, only the pickles for those 3 nodes are written as part of
> the transaction record.

i've wondered about the details of this before. my understanding is that the 
'nodes'/buckets in a btree are stored as separate persistent objects such 
that if you have an btree variant, you can stuff it with non persistent 
objects, and only pay the write penalty for the bucket which contains them as 
opposed to the whole btree. and likewise if you stuffed it with persistent 
objects, you only pay the write penalty for the individual persisent objects 
and the bucket (which has a correspondingly smaller pickle state vs. storing 
non-persistent objects of the same size).

is the above correct?

-haz