Fault Tolerance Using Whole-Process Migration and Speculative Execution
Author: Smith, Justin David
Year: 2003
Degree: Master's thesis
Advisor: Hickey, Jason J.
Committee Member: Unknown, Unknown
Option: Computer Science
DOI: 10.7907/AYFV-AS63
Abstract
This thesis examines programming language concepts that facilitate fault-tolerant distributed programming. New language primitives are introduced for whole-process migration, which allows an active process to be transferred from one machine to another, and speculative execution, which enables optimistic computing based on an unverified assumption. These primitives are developed in the context of the Mojave Compiler Collection, a multi-language multi-architecture compiler with ties to the MetaPRL theorem prover.
The new primitives are first discussed from a theoretical perspective. The primitives are implemented as part of a functional intermediate language in the Mojave compiler, which has a formal operational semantics and complete typing rules. The operational semantics and typing rules are extended to accommodate whole-process migration and speculative execution, and the implications these primitives have for program safety are discussed.
The primitives are implemented as part of the Mojave compiler. The runtime safety checks that are required to ensure these primitives are safe are presented, along with runtime invariants used to justify the safety of the system. The primitives are also integrated with a novel compacting, generational garbage collector whose algorithm is presented.
Files
- submit-msthesis.pdf (application/pdf)