[ZODB-Dev] ZEO client cache weirdities: Bug or Caution?
Dieter Maurer
dieter at handshake.de
Wed Aug 4 17:08:31 EDT 2004
Chris Withers wrote at 2004-8-3 22:57 +0100:
> ...
>And as for your statement about obvious, how so?
>Where's the documentation I should have read?
There is no need to document obvious facts:
A cache mirrors part of a "real" world.
When you make modifications to the "real" world
by means of the associated protocol (ZODB operations
in our concrete case), you can expect that
the mirror is updated accordingly.
However, you cannot replace the real world by a different one
*OUTSIDE* of the associated protocol
and expect your mirror to correctly reflect the new
world.
It is likely that you do not agree with my statement
("no need to document obvious facts") above.
In this case, write the documentation, you are missing.
>I expected the invalidation stuff to go "hang on, my storage server has
>changed" and dump the whole lot. Not doing so seems pretty dangerous
>here :-S
It is not so easy to identify a storage...
The ZEO client cache works as follows:
When the cache is reconnected to the server, it sends to the server
tuples (oid, tid) describing its content.
The server sends an invalidation message when the object
identified by "oid" was changed after "tid".
When the cache contacts a different server (or the same server
but with a different storage), then an "oid" no longer identifies
anything...
--
Dieter
More information about the ZODB-Dev
mailing list