[ZODB-Dev] ZEO and replication of BTree based objects

Jeremy Hylton jeremy at zope.com
Wed Jun 4 17:36:09 EDT 2003


On Wed, 4 Jun 2003 22:16:01 +0200
 Roché Compaan <roche at upfrontsystems.co.za> wrote:
> Hi there
> 
> What exactly happens to a ZEO ClientCache when another
> ZEO client makes
> modifications to BTree based objects? Let's say I have an
> object that
> has an OOBTree data attribute. Will the whole object be
> retrieved from
> the server each time new keys are set or will only the
> transactions the
> object were involved in be replicated to the client?

ZEO uses invalidation-based cache consistency.  When one
client modifies an object, the other clients receive
invalidation messages.  The other clients don't load the
object unless they attempt to read it.

A BTree is composed of many persistent objects -- typically
a parent btree node and a bunch of buckets hangning.  Each
persistent object is invalidated independently.  If you add
one key to a BTree, that will modify and, thus, invalidate
just one bucket.  (Unless the bucket splits, in which case
the parent is also modified.)

Jeremy



More information about the ZODB-Dev mailing list