Distribution semantics: database consistency -- transactions
Wed, 9 Nov 94 14:52:53 MET
We know that a fine-grained OO OS distributed *IS* the same as an OO database.
Hence, in a distributed such system, can appear the *long transaction*
syndrome: the system may get held because it waits for some ACK/NAK to
continue, whereas the server is too busy to answer in time (or worse --
So we need recovery mechanisms.
One way to go is to use local copies, and wait for the server to say
"yes indeed, your copy was valid -- not changed since your time-stamp";
that's the way Amoeba does it, me thinks. But, I'd add this:
you can then continue computations, but with a failure recovery routine
in case the copy was not valid; thus computations are not just stopped
when the network is (momentarily) broken.
Now, what should the recovery routine be ?
That's especially important if the network is slow to very slow
(e.g. two hosts linked two-three times weekly through floppies),
and/or if there is no unicity of an authoritative source for the
object (i.e. several groups maintain several divergent versions),
or if many changes were made on the local copy of data that may
or may not (or may, but not trivially) be compatible with the
Worse even is the case where the remote system has had changes such
that the pointed object's identity is not obvious.
e.g. imagine a data-base of persons; if one person is deleted from the
database, what to do to accesses to this person ? What if the database
was globally replaced by a new version; what if the database entry was
split in multiple sub-cases ?
The recovery routine can be quite complicated; and it depends on the
kind of object. It may even involve human help. So how to do it ?
In any case, that means our object semantics *must* include failures
as standardly supported states.
How does SELF do it ?
-- , , _ v ~ ^ --
-- Fare -- firstname.lastname@example.org -- Francois-Rene Rideau -- +)ang-Vu Ban --
-- ' / . --
MOOSE project member. OSL developper. | | /
Dreams about The Universal (Distributed) Database. --- --- //
Snail mail: 6, rue Augustin Thierry 75019 PARIS FRANCE /|\ /|\ //
Phone: 033 1 42026735 /|\ /|\ /