Backing up one more step...
Jonathan Shapiro
shap@viper.cis.upenn.edu
Tue, 6 Dec 94 00:32:12 -0500
Bryan:
What you refer to as persistence districts is also known as virtual
time, and there has been a lot of work on this. The difficulty is as
follows:
Processor A declares a persistence district.
Processor B subsequently faults in a page from Processor A, and begins
to mutate it.
Processor A now fails.
Processor B is unable to roll back to it's state as of the time that
processor A declared a persistence district.
An correcting enhancement is to use a poisoning strategy. If you
fault in an object from someone who has checkpointed more recently
than you ahve, you must checkpoint before mutating the object. This
will work correctly, but when you think it throught the consequence is
that checkpoints are essentially globally synhronized. That doesn't scale.
Jonathan