[ZODB-Dev] Re: [ZCM] [ZC] 875/ 6 Comment "FileStorage packing bug: backpointer not resolved"

Dieter Maurer dieter at handshake.de
Sun May 11 22:24:11 EDT 2003


Jeremy Hylton wrote at 2003-5-7 09:23 -0400:
 > On Wed, 7 May 2003 14:12:54 +0100
 >  Toby Dickenson <tdickenson at geminidataloggers.com> wrote:
 > > On Tuesday 06 May 2003 8:12 pm, Collector: Zope Bugs,
 > > Features, and Patches 
 > > ... wrote:
 > > 
 > > > A question about the patch.  It looks like the change
 > > means that back
 > > > pointers are always resolved during pack.  Is that
 > > right?  If so, it means
 > > > that when we're done there are no backpointers in the
 > > storage; every
 > > > backpointer has been replaced by a copy of the actual
 > > data.

That's right.

My motivation was:

  There is no reason why the packing and the copying phase
  should be treated differently.

  All backpointers were resolved during the packing phase.
  Therefore, I thought, they should also be resolved during
  the copying phase.

  Any problem during copying should also be there during packing.

 > > > We need backpointers to get undo semantics right.

I do not understand that.

  Having back pointers may facilitate the undo implementation
  but they should not be necessary.

If you are right, why can backpointers be resolved during the
packing phase without causing problems?

 > They
 > > also save space.

They do, but the only difference it for backpointers encountered
in the copying phase. There, backpointers were adjusted wrongly causing
data loss.
It is better to waste (some) space than to loose objects.


I would not mind when you came up with a backpointer base solution
that were nevertheless correct.


Dieter



More information about the ZODB-Dev mailing list