ACM Home Page
Please provide us with feedback. Feedback
Stabilizers: a modular checkpointing abstraction for concurrent functional programs
Full text PdfPdf (474 KB)
Source International Conference on Functional Programming archive
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming table of contents
Portland, Oregon, USA
SESSION: Session 6 table of contents
Pages: 136 - 147  
Year of Publication: 2006
ISBN:1-59593-309-3
Also published in ...
Authors
Lukasz Ziarek  Purdue University
Philip Schatz  Purdue University
Suresh Jagannathan  Purdue University
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 50,   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/1159803.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