[ZODB-Dev] AssertionError on multithread ZEO app

Dieter Maurer dieter at handshake.de
Thu May 25 12:24:36 EDT 2006


Pedro Werneck wrote at 2006-5-23 20:24 -0300:
> ...
>The problem is... I can't see the committed changes from the main
>thread, unless I do a commit there too, which seems strange.

You see modifications only after crossing a transaction boundary.
In the same transaction, you see only the modification made by
this transaction (not by others, even committed).

>Not only
>that, but sometimes I get an assertion error on ZEO/cache.py.

Something similar has been reported several times -- probably a bug.
When I remember right, the condition ">" is wrong and should be
replaced by ">=".

>...
>Another problem not related to this is the size and how fast the DB
>grows.

Almost surely, you are using bad data structures for your
problem. A "PersistentList", e.g. get rewritten completely
when you change it only a bit (e.g. append an element of modify
a single one).

>I'm think this is related to undo features, so I would like to
>know if it's possible to disable it or something else.

It is not possible.

You would need a different storage (not "FileStorage")
but the only persistent storage without undo was dropped
recently (BDBStorage).

-- 
Dieter


More information about the ZODB-Dev mailing list