I am running fsdump.py to see what is in my Data.fs file, because it seems to be growing a lot faster than it used to. The beginning of the file is a large number of object listings as expected. However, about half way through I start to see a lot of transaction information. These transactions are still in the file even though I have consistently packed the ZODB once a day. The dates on these transactions start a few moths ago, and relate to various functions in a product I have been working on. Is there something that I could have added to the code at that time (perhaps committing parts of transactions to avoid conflicts) that could be causing this transaction information to be left in the Data.fs file even after packing it?
[Sean Hastings]
I am running fsdump.py to see what is in my Data.fs file, because it seems to be growing a lot faster than it used to.
The beginning of the file is a large number of object listings as expected. However, about half way through I start to see a lot of transaction information. These transactions are still in the file even though I have consistently packed the ZODB once a day. The dates on these transactions start a few moths ago, and relate to various functions in a product I have been working on.
Is there something that I could have added to the code at that time (perhaps committing parts of transactions to avoid conflicts) that could be causing this transaction information to be left in the Data.fs file even after packing it?
There's really nothing unusual about seeing "old" transactions in a packed FileStorage. If a transaction created the most-current revision of a reachable object, then that transaction will remain in the FileStorage forever -- or until more recent revisions of all objects modified by that transaction exist, and the FileStorage is packed to a time after that transaction's time. For example, if the first transaction ever made created object A, and nobody ever changes object A again, and object A remains reachable from the root object, then the first transaction will remain in the FileStorage forever. And it must, because in that case it remains the source of the most-recent revision of A forever. Packing can only remove data records for *non*-current object revisions. Other background info you might find useful: http://zope.org/Wikis/ZODB/FileStorageBackup
participants (2)
-
Sean Hastings -
Tim Peters