Persistent Objects

Chris Bitmead uid(x22068)
Tue, 06 May 1997 10:14:33 +1000

>Persistent object stores which are in some sense leading edge deal
>explicitly with versioning, i.e., they create and manipulate (or otherwise
>allow for) version history graphs of persistent objects. In dealing with
>this important issue up front they also realize additional benefits, such
>as simply avoiding certain tedious locking problems.
>Two products which come to mind are the Matisse OODBMS and the Kala
>Persistent Store.

Having used some of these "leading edge" versioning systems I can say
that most people are finding them to be useless and ignoring them.

Take an example. You've got obj A pointing to obj B. Now you make a
new version of object B. What happens to object A? Does it point to
the new version? The old version? Should A automatically be forced
into a new version to point to the new B leaving the old A pointing to
the old B?

In real life situations, the semantics are very complicated, and any
"built in" solution is unlikely to be the "right thing" for what
you're trying to do. You tend to end up implementing the versioning
you want yourself.

Don't let me discourage you from the versioning thing entirely
though. I just want to warn that there are many different paradigms
for the versioning problem, and it's difficult to come up with
something generic enough for many real situations.