[Zodb-checkins] CVS: ZODB3/ZODB - fsdump.py:1.8

Jeremy Hylton jeremy at zope.com
Tue Oct 14 12:29:06 EDT 2003


Update of /cvs-repository/ZODB3/ZODB
In directory cvs.zope.org:/tmp/cvs-serv7262/ZODB

Modified Files:
	fsdump.py 
Log Message:
Print transaction and data record size.


=== ZODB3/ZODB/fsdump.py 1.7 => 1.8 ===
--- ZODB3/ZODB/fsdump.py:1.7	Fri May  2 10:50:39 2003
+++ ZODB3/ZODB/fsdump.py	Tue Oct 14 12:29:05 2003
@@ -41,14 +41,17 @@
     iter = FileIterator(path)
     for trans in iter:
         if with_offset:
-            print >> file, "Trans #%05d tid=%016x time=%s offset=%d" % \
-                  (i, u64(trans.tid), str(TimeStamp(trans.tid)), trans._pos)
+            print >> file, ("Trans #%05d tid=%016x time=%s offset=%d"
+                            % (i, u64(trans.tid), str(TimeStamp(trans.tid)),
+                               trans._pos))
         else:
             print >> file, "Trans #%05d tid=%016x time=%s" % \
                   (i, u64(trans.tid), str(TimeStamp(trans.tid)))
-        print >> file, "\tstatus=%s user=%s description=%s" % \
-              (`trans.status`, trans.user, trans.description)
+        print >> file, "\tsize=%d status=%s user=%s description=%s" % \
+              (trans._tend - trans._tpos, `trans.status`, trans.user,
+               trans.description)
         j = 0
+        tsize = 0
         for rec in trans:
             if rec.data is None:
                 fullclass = "undo or abort of object creation"
@@ -70,8 +73,17 @@
                 bp = "bp=%016x" % u64(rec.data_txn)
             else:
                 bp = ""
-            print >> file, "  data #%05d oid=%016x %sclass=%s %s" % \
-                  (j, u64(rec.oid), version, fullclass, bp)
+            if rec.data_txn:
+                size = 8 + len(rec.version)
+            else:
+                size = len(rec.data) + len(rec.version)
+            if rec.version:
+                size += DATA_VERSION_HDR_LEN
+            else:
+                size += DATA_HDR_LEN
+            tsize += size
+            print >> file, "  data #%05d oid=%016x %sclass=%s size=%d %s" % \
+                  (j, u64(rec.oid), version, fullclass, size, bp)
             j += 1
         print >> file
         i += 1
@@ -79,7 +91,7 @@
 
 import struct
 from ZODB.FileStorage import TRANS_HDR, TRANS_HDR_LEN
-from ZODB.FileStorage import DATA_HDR, DATA_HDR_LEN
+from ZODB.FileStorage import DATA_HDR, DATA_HDR_LEN, DATA_VERSION_HDR_LEN
 
 def fmt(p64):
     # Return a nicely formatted string for a packaged 64-bit value




More information about the Zodb-checkins mailing list