[ZODB-Dev] memory exhaustion problem

Chris McDonough chrism at plope.com
Fri Jan 18 10:18:11 EST 2008


Assuming "u" is a persistent object, try:

for k, u in user_root['userdb'].items():
     # write the data to sqlite
     u._p_deactivate()

- C

On Jan 17, 2008, at 10:07 AM, 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?
>


More information about the ZODB-Dev mailing list