[ZODB-Dev] Pack problem
Jim Fulton
jim at zope.com
Mon Jun 30 15:42:39 CEST 2014
On Mon, Jun 30, 2014 at 8:24 AM, Alessandro Pisa
<alessandro.pisa at gmail.com> wrote:
> On 30 June 2014 12:43, Jim Fulton <jim at zope.com> wrote:
>> On Mon, Jun 30, 2014 at 3:30 AM, Alessandro Pisa
>> <alessandro.pisa at gmail.com> wrote:
>>> Hello everybody :)
>>
>> As the comment suggests, if you continued packing, the new file
>> would be as large as the old one, because no records would be
>> removed. This is likely either because a) you've already packed to
>> that pack time before.
>> b) None of the objects written up to the pack time
>> have been written after the pack time and this there are no old records
>> to be removed.
>
> Strange, I am making a 0 day pack.
Perhaps you had a clock problem and the recent records have
timestamps in the future.
> How can I convince zeopack of that?
You pass a pack time of now. :)
> Is it possible to remove this "previous pack memory" and act as it
> would be the first pack?
Theoretically.
> Would this be effective?
At causing dangling references, possibly.
> Any suggestion for reducing the Data.fs size?
I suggest using the file-store iterator to look at the transaction
timestamps.
Something like:
from ZODB.FileStorage import FileIterator
it = FileIterator('s.fs')
last = None
for t in it:
if last is not None:
if t.tid <= last:
print 'wtf', repr(t.tid)
last = t.tid
If you've said to pack to the present and you
aren't writing to the database, then I would expect it to stop at
the end of the file, unless you have a problem with your
transaction ids.
Jim
--
Jim Fulton
http://www.linkedin.com/in/jimfulton
More information about the ZODB-Dev
mailing list