[ZODB-Dev] undo and zodb

Toby Dickenson tdickenson@geminidataloggers.com
Tue, 3 Sep 2002 15:46:47 +0100


On Tuesday 03 Sep 2002 3:19 pm, Jim Fulton wrote:
> Toby Dickenson wrote:
> > On Tuesday 03 Sep 2002 11:57 am, Mario Bianchi wrote:
> >>>bsddbStorage.Packless does what you want, although it is vulnerable =
to
> >>>losing
> >>>data in unusual boundary conditions.
> >>
> >>...uh? What conditions? Please explain further, thanks.
> >
> > For one example, see the branch of the thread around this post
> > http://lists.zope.org/pipermail/zodb-dev/2002-May/002689.html
>
> This *is* an extremely unusual condition.
>
> BTW, we are working on an autopacking storage that should be less
> susceptible to this. (Even FileStorage is susceptible under extremely
> pathological conditions).

FileStorage (and probably many similar storages) can only be affected if =
the=20
pack-age parameter is shorter than the duration of the longest possible=20
'pathological condition'.

The default pack age in Zopes management interface is zero - which couldn=
t=20
have been better chosen to provoke this rare condition. Is this sufficien=
t=20
reason to change the default?

> It would be helpful, in this case, for the
> storage to check that it has data for all referenced objects.=20

An earlier phase of the store process has already determined which oids a=
re=20
referenced by every stored object. It is a shame that this information ca=
nt=20
easily be passed down to the storage.

> There could
> even be a special error type that would allow the database to recover t=
he
> lost object.

That recovery couldnt be 100% reliable because the lost object may have b=
een=20
turned into a ghost by the cache.

> If anyone is interested in working on this, let me know.

could be....