[ZODB-Dev] zeopack requirements?

Chris Bainbridge chris.bainbridge at gmail.com
Mon Dec 17 07:36:48 EST 2007


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? I assume that it doesn't
have to hold the entire DB in memory at once? 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?

Thanks for your help,
Chris


More information about the ZODB-Dev mailing list