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

Tim Peters tim at zope.com
Wed Jun 11 11:25:02 EDT 2003


[Jeremy Hylton]
>> 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.

[Christian Reis]
> Am I correct in assuming the invalidation messages are only used to
> raise ReadConflictError when one of the other clients already has a
> version of the object in its cache?

Invalidation msgs are the (only) means by which a cache can learn its data
is stale.  ReadConflictError is a possible consequence of that, but not the
primary purpose:  the purpose is to ensure that caches don't deliver
inconsistent data.  If, for example, you call the .sync() method on a
connection object, that handles pending invalidations (purges invalidated
objects) without raising ReadConflictError.  I think <wink>.




More information about the ZODB-Dev mailing list