ACM Home Page
Please provide us with feedback. Feedback
Stabilizers: a modular checkpointing abstraction for concurrent functional programs
Full text PdfPdf (474 KB)
Source ACM SIGPLAN Notices archive
Volume 41 ,  Issue 9  (September 2006) table of contents
Proceedings of the 2006 ICFP conference
SESSION: Session 6 table of contents
Pages: 136 - 147  
Year of Publication: 2006
ISSN:0362-1340
Also published in ...
Authors
Lukasz Ziarek  Purdue University
Philip Schatz  Purdue University
Suresh Jagannathan  Purdue University
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 38,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1160074.1159822
What is a DOI?

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 rexecute 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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
 
3
4
5
6
 
7
G. Candea, S. Kawamoto, Y. Fujiki, G. Friedman, and A. Fox. Microreboot - A Technique for Cheap Recovery. In 6th Symposium on Operating Systems Design and Implementation, San Francisco, California, 2004.
8
9
 
10
 
11
12
13
14
15
 
16
Jim Gray and Andreas Reuter. Transaction Processing. Morgan-Kaufmann, 1993.
17
18
19
 
20
 
21
 
22
23
24
 
25
26
27
28
29
30
31
 
32
Adam Welc, Suresh Jagannathan, and Antony L. Hosking. Transactional Monitors for Concurrent Objects. In European Conference on Object-Oriented Programming, pages 519--542, 2004.


Collaborative Colleagues:
Lukasz Ziarek: colleagues
Philip Schatz: colleagues
Suresh Jagannathan: colleagues