[Zope3-Users] MemoryError Evolving a ZODB

Alexandre Garel alex.garel at tarentis.com
Thu Dec 13 14:53:19 UTC 2012


Le 12/12/2012 09:39, Jeroen Michiel a écrit :
> Thanks for the reply!
>
> I already tried
> transaction.savepoint()
> every minute, but that didn't help: I only saw the memory usage dropping the
> first time, but never after.
>
> I changed the code to what you suggested, but it still doesn't seem to help.
> Something must be wrong somewhere along the line, but I don't have a clue
> where to begin looking.
> Would using something like guppy (or heapy, or what it's called) reveal
> something?
>
> Could it be something about objects with circular references not being able
> to be garbage-collected?
> The objects in my DB are quite complex, so something like that might
> actually be happening.

Hello

my suggestions might be silly, but in case… :

1- is that that you modify a lot of objects (and big objects) in which 
case savepoints may not save you (as my wild guess is that savepoints 
will only drop objects participating in computation but not modified). 
If it's just re-indexing it's strange as the only thing changing would 
normally be the index.

2- if it's a kind of migration for your database, do you really need to 
have it done in one transaction. Could you save your database, run your 
migration in multiple commit (transaction.commit() instead of 
transaction.savepoint()) then if it goes wrong, restore old file and if 
it's ok, well it's ok :-)

Hope it helps,

Alex

-- 
Alexandre Garel
06 78 33 15 37



More information about the Zope3-users mailing list