[ZODB-Dev] What makes up a transactions size?

Jeremy Hylton jeremy@zope.com
Tue, 9 Jul 2002 06:29:10 -0400


>>>>> "CW" == Chris Withers <chrisw@nipltd.com> writes:

  CW> Hi there, I've got a ZODB that keeps ballooning up and hitting
  CW> the 2GB limit. When packed it drops back down to about 50Mb.

  CW> Any idea how I can find up what's taking up all the space? I
  CW> suspect it might be transactions that are being aborted (I seem
  CW> to remember a bug whereby aborted transactiosn were still
  CW> appended to the ZODB, which seems pretty apalling to me, but
  CW> no-one else seemed to be too bothered...)

  CW> In any case, can anyone help?

StandaloneZODB/Tools/fsdump.py will print a summary of each
transaction in a Data.fs.  It shows two lines for each transaction and
one line for each object in the transaction.  The object lines include
the class of the object.

Example:

Trans #00004 tid=034592b43386c655 time=2002-06-20 21:08:12.076515 offset=75488
        status=' ' user= description=Added temp_folder
  data #00000 oid=0000000000000002 class=OFS.Application.Application
  data #00001 oid=0000000000000057 class=Products.TemporaryFolder.TemporaryFolder.MountedTemporaryFolder

If the list of objects isn't enough, you could hack the code to print
out pickle sizes, too.

Jeremy