[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