[Zope-CMF] Historical revisions in CMF (was Re: CMF newbie questions)
Dieter Maurer
dieter@handshake.de
Sat, 29 Mar 2003 01:29:53 +0100
Florent Guillaume wrote at 2003-3-27 15:00 +0100:
> ....
> I'm wary of using ZODB-level versionning to provide user-level or
> application-level versionning. In practice we have found it doesn't
> work. It prevents one from packing the database as you want to minimize
> space,
This can be tackled (--> Directory Storage; HCFileStorage).
> and it doesn't give you any flexibility in how versions are
> handled.
What do you need beyond controlling their lifetime?
I will implement "edition"s for HCFileStorage.
The base concept it an object "HistoryReference" that
references an object (identified by an "oid") at a given
time (identified by "serial"). Packing will not release
records when they are directly or indirectly referenced
by a "HistoryReference".
This will make packing more expensive. I expect a 50 % increase
in time and memory.
An edition is a collection of "HistoryReferences", effectively
freezing the state of objects referenced from the edition
at a given time. The "HistoryReference" mechanism protects
this state against packing.
Dieter