[ZODB-Dev] ZEO invalidation message transaction-inbound or outbound
Jim Fulton
jim at zope.com
Fri Nov 30 12:53:48 UTC 2012
On Fri, Nov 30, 2012 at 1:37 AM, Andreas Jung <lists at zopyx.com> wrote:
> a customer made the observation that that ZEO clients
> became inconsistent after some time (large CMF-based application
> running on Zope 2.12 afaik). Customer made some investigation and
> noticed that the ZEO invalidations have been queued (in some cases for
> hours).
I can't imagine invalidations being queued for many seconds, much less
hours without some serious network pathology.
How did they come to this conclusion?
>..so the overall state of the ZEO clients became inconsistent.
> Aren't ZEO invalidation messages supposed to be transmitted within
> the current transaction (and outbound as it seems to happen here).
No. Invalidations (and all other data) are queued for transmission
over the network.
> Isn't a ZEO cluster to be completely consistent at any time?
Each client has a consistent view of the database, but not necessarily
an up-to-date one.
Differene clients may have views of the database as it was at (usually
slightly) different points time, depending on which data they've
recieved.
It's not practical for all clients to have precisely the same
view of the database as each other, although they should differ by
seconds, or less.
The only way I can see clients having views of the database far out of
sync with the server is if the clients are disconncted. A ZEO client
can continue functioning normally from a server while disconnected as
long as it doesn't write anything and has all the data it needs in
its cache. It has a consistent view of the database, but not an
up-to-date one.
Jim
--
Jim Fulton
http://www.linkedin.com/in/jimfulton
Jerky is better than bacon! http://zo.pe/Kqm
More information about the ZODB-Dev
mailing list