[ZODB-Dev] zeopack requirements?

Jim Fulton jim at zope.com
Mon Dec 17 09:23:45 EST 2007


On Dec 17, 2007, at 7:36 AM, Chris Bainbridge wrote:

> I have a ~9GB live ZEO database. Last night I tried to pack it, but
> got this error:
>
> 2007-12-17T01:27:08 (4179) Error raised in delayed method
> Traceback (most recent call last):
>  File "/home/user/lib/python/ZODB3-3.7.2-py2.4-linux-i686.egg/ZEO/ 
> StorageServer.py",
> line 1016, in run
>    result = self._method(*self._args)
>  File "/home/user/lib/python/ZODB3-3.7.2-py2.4-linux-i686.egg/ZEO/ 
> StorageServer.py",
> line 351, in _pack_impl
>    self.storage.pack(time, referencesf)
>  File "/home/user/lib/python/ZODB3-3.7.2-py2.4-linux-i686.egg/ZODB/ 
> FileStorage/FileStorage.py",
> line 1352, in pack
>    opos = p.pack()
>  File "/home/user/lib/python/ZODB3-3.7.2-py2.4-linux-i686.egg/ZODB/ 
> FileStorage/fspack.py",
> line 482, in pack
>    self.gc.findReachable()
>  File "/home/user/lib/python/ZODB3-3.7.2-py2.4-linux-i686.egg/ZODB/ 
> FileStorage/fspack.py",
> line 228, in findReachable
>    self.findReachableAtPacktime([z64])
>  File "/home/user/lib/python/ZODB3-3.7.2-py2.4-linux-i686.egg/ZODB/ 
> FileStorage/fspack.py",
> line 315, in findReachableAtPacktime
>    self.reachable[oid] = pos
>  File "/home/user/lib/python/ZODB3-3.7.2-py2.4-linux-i686.egg/ZODB/ 
> fsIndex.py",
> line 84, in __setitem__
>    tree[key[6:]] = value
> MemoryError
> 2007-12-17T01:27:16 (7412) opening storage '1' using FileStorage
> 2007-12-17T01:34:25 datastore.fs truncated, possibly due to damaged
> records at 8580513351
> 2007-12-17T01:34:25 Writing truncated data from datastore.fs to  
> datastore.fs.tr0
>
> Are there any limits on the pack operation?

No, but it *does* use a fair bit of memory.

> I assume that it doesn't
> have to hold the entire DB in memory at once?

No, but it does need to hold some large data structures in memory.

> Would bringing the
> database offline and then packing it work (ie. we run out of memory
> because we have many active clients), or is there some fundamental
> constraint in the underlying code?


I doubt that taking the database offline would make much difference.   
How much memory do you have on the machine?

How much memory did the server process use before packing?

Jim

--
Jim Fulton
Zope Corporation




More information about the ZODB-Dev mailing list