[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