[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