[ZODB-Dev] Re: memory exhaustion problem
Tres Seaver
tseaver at palladion.com
Thu Jan 17 10:52:42 EST 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Flavio Coelho wrote:
> Hi,
>
> 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.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
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
iD8DBQFHj3nK+gerLs4ltQ4RAtyIAKDYrXI9Zs8uJhagbudeJG36LdQvaACfe3VU
AHgNdjbyIUkRgUkjZsizJMw=
=d42v
-----END PGP SIGNATURE-----
More information about the ZODB-Dev
mailing list