-----BEGIN PGP SIGNED MESSAGE-----
Flavio Coelho wrote:
> I wrote a simple script to move data from a ZODB database to sqlite.
> My data is in a OOBTree, I chose this because supposedly you can bring the
> buckets to memory one at a time....
> So what I am doing is basically this: I iterate over my objects and write
> them one-by-one to the other db.
> for k,u in user_root['userdb'].items(): # I have tried iteritems() here too
> but the results are the same....
> # write the data to sqlite
> My problem is that my database is big and as the memory consumption
> increases as the loop progresses until all my memory is exhauted and the OS
> goes into swap. It seems that the objects from previous iterations are not
> been cleared from memory.
> Am I doing something wrong, or is it impossible to iterate over a ZODB
> database which is bigger than you memory?
The connection normally only tries to enforce its cache size limit at
transaction boundaries: if you are iterating manually in a script, you
need to free things up manually, e.g. by calling '_p_deactivate' on the
object when you are done with it.
Tres Seaver +1 540-429-0999 [EMAIL PROTECTED]
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org