This component advertises the
PersistenceService and
manages all persistence activities except for the actual storage
of persistence deltas, which is done by
PersistencePlugin s.
As the distributor is about to about to distribute the objects in a
set of envelopes, those envelopes are passed to an instance of this
class. The contents of those envelopes are serialized into a
storage medium. These objects may refer to other plan objects that
have not changed. These objects are not in any of the envelopes,
but they must have been stored in earlier deltas. Instead of
rewriting those objects to the new delta, references to the earlier
objects are stored instead.
Restoring the state from this series is a bit problematic in that a
given object may have been written to several deltas; only the
latest copy is valid and all references from other objects must be
made to this latest copy and all others should be ignored. This is
handled by overwriting the value of the earlier objects with newer
values from later versions of the objects.
|