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