[ZODB-Dev] undo and zodb

Jim Fulton jim@zope.com
Tue, 03 Sep 2002 10:19:15 -0400


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).

There are some steps we should take to detect this sort of problem.
Note that it isn't a problem for an application to keep a reference
to an object that has been removed from the database. It is not data loss.
The data is removed from the database only if there are no more references
to it, in which casem it *is* no longer in the database. This is not data
loss.  A problem could occur when the object is added back to a container
that is in the database. The object will not seem to need to be saved,
since it wasn't modified. It would be helpful, in this case, for the storage
to check that it has data for all referenced objects. There could even be a
special error type that would allow the database to recover the lost object.
If anyone is interested in working on this, let me know.

Jim


-- 
Jim Fulton           mailto:jim@zope.com       Python Powered!
CTO                  (888) 344-4332            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org