Skip to main navigation Skip to search Skip to main content

Stabilizers: A modular checkpointing abstraction for concurrent functional programs

  • Purdue University

Research output: Chapter in Book/Report/Conference proceeding › Conference contribution › peer-review

13 Scopus citations

Abstract

Transient faults that arise in large-scale software systems can often be repaired by re-executing the code in which they occur. Ascribing a meaningful semantics for safe re-execution in multi-threaded code is not obvious, however. For a thread to correctly re-execute a region of code, it must ensure that all other threads which have witnessed its unwanted effects within that region are also reverted to a meaningful earlier state. If not done properly, data inconsistencies and other undesirable behavior may result. However, automatically determining what constitutes a consistent global checkpoint is not straightforward since thread interactions are a dynamic property of the program. In this paper, we present a safe and efficient checkpointing mechanism for Concurrent ML (CML) that can be used to recover from transient faults. We introduce a new linguistic abstraction called stabilizers that permits the specification of per-thread monitors and the restoration of globally consistent checkpoints. Safe global states are computed through lightweight monitoring of communication events among threads (e.g. message-passing operations or updates to shared variables). Our experimental results on several realistic, multithreaded, server-style CML applications, including a web server and a windowing toolkit, show that the overheads to use stabilizers are small, and lead us to conclude that they are a viable mechanism for defining safe checkpoints in concurrent functional programs.

Original languageEnglish
Title of host publicationICFP'06 - Proceedings of the Eleventh ACM SIGPLAN International Conference on Functional Programming
PublisherAssociation for Computing Machinery
Pages136-147
Number of pages12
ISBN (Print)1595933093, 9781595933096
DOIs
StatePublished - Sep 17 2006
Event11th ACM SIGPLAN International Conference on Functional Programming, ICFP 2006 - Portland, OR, United States
Duration: Sep 16 2006 → Sep 21 2006

Publication series

NameProceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP
Volume2006

Conference

Conference11th ACM SIGPLAN International Conference on Functional Programming, ICFP 2006
Country/TerritoryUnited States
CityPortland, OR
Period09/16/06 → 09/21/06

Keywords

  • Checkpointing
  • Concurrent ML
  • Concurrent programming
  • Error recovery
  • Exception handling
  • Transactions

Fingerprint

Dive into the research topics of 'Stabilizers: A modular checkpointing abstraction for concurrent functional programs'. Together they form a unique fingerprint.

Cite this