[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