skip to main content
article

Transactors: a programming model for maintaining globally consistent distributed state in unreliable environments

Published: 12 January 2005 Publication History

Abstract

We introduce transactors, a fault-tolerant programming model for composing loosely-coupled distributed components running in an unreliable environment such as the internet into systems that reliably maintain globally consistent distributed state. The transactor model incorporates certain elements of traditional transaction processing, but allows these elements to be composed in different ways without the need for central coordination, thus facilitating the study of distributed fault-tolerance from a semantic point of view. We formalize our approach via the τ-calculus, an extended lambda-calculus based on the actor model, and illustrate its usage through a number of examples. The τ-calculus incorporates constructs which distributed processes can use to create globally-consistent checkpoints. We provide an operational semantics for the τ-calculus, and formalize the following safety and liveness properties: first, we show that globally-consistent checkpoints have equivalent execution traces without any node failures or application-level failures, and second, we show that it is possible to reach globally-consistent checkpoints provided that there is some bounded failure-free interval during which checkpointing can occur.

References

[1]
G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.
[2]
G. Agha, N. Jamali, and C. Varela. Agent naming and coordination: Actor based models and infrastructures. In A. Omicini, F. Zambonelli, M. Klusch, and R. Tolksdorf, editors, Coordination of Internet Agents: Models, Technologies, and Applications, chapter 9, pages 225--246. Springer-Verlag, Mar. 2001.
[3]
G. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. A foundation for actor computation. Journal of Functional Programming, 7:1--72, 1997.
[4]
M. Berger and K. Honda. The two-phase commitment protocol in an extended pi-calculus. In Prelim. Proc. EXPRESS '00, NS-00-2, pages 105--130. BRICS Notes, 2000.
[5]
P. A. Bernstein. Middleware: A model for distributed system services. Communications of the ACM, 39(2):86--98, 1996.
[6]
K. P. Birman and R. V. Renesse. Reliable Distributed Computing with the ISIS Toolkit. Wiley-IEEE Computer Society Press, 1994.
[7]
L. Cardelli and A. Gordon. Mobile ambients. In Foundations of System Specification and Computational Structures, LNCS 1378, pages 140--155. Springer Verlag, 1998.
[8]
T. Chothia and D. Duggan. Abstractions for fault-tolerant global computing. Electronic Notes in Theoretical Computer Science (ENTCS). Foundations of Wide-Area Network Computing (FWAN), 66(3), 2002. Elsevier.
[9]
J. Field and C. Varela. Towards a programming model for building reliable systems with distributed state. Electronic Notes in Theoretical Computer Science (ENTCS). First International Workshop on Foundations of Coordination Languages and Software Architectures (FOCLASA), 68(3), 2003. Elsevier.
[10]
J. Field and C. Varela. Transactors: A programming model for maintaining globally consistent distributed state in unreliable environments. Technical Report 04-15, Department of Computer Science. Rensselaer Polytechnic Institute, Troy, NY, November 2004.
[11]
C. Fournet and G. Gonthier. The reflexive CHAM and the join-calculus. In Proc. ACM Symp. on Principles of Programming Languages, pages 372--385, 1996.
[12]
S. Frølund. Coordinating Distributed Objects: An Actor-Based Approach to Synchronization. MIT Press, 1996.
[13]
J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufman, 1993.
[14]
N. Haines, D. Kindred, J. G. Morrisett, S. M. Nettles, and J. M. Wing. Composing first-class transactions. ACM Trans. Program. Lang. Syst., 16(6):1719--1736, 1994.
[15]
C. Hewitt. Viewing control structures as patterns of passing messages. Journal of Artificial Intelligence, 8-3:323--364, June 1977.
[16]
W. Kim and G. Agha. Efficient Support of Location Transparency in Concurrent Object-Oriented Programming Languages. In Proceedings of Supercomputing'95, 1995.
[17]
B. Liskov. Distributed programming in Argus. Communications of the Association of Computing Machinery, 31(3):300--312, 1988.
[18]
R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes, parts I-II. Information and Computation, 100(1):1--77, 1992.
[19]
A. Spector, R. Pausch, and G. Bruell. Camelot: A flexible, distributed transaction processing system. In Proc. IEEE Computer Society International Conf., pages 432--437, San Francisco, March 1988. IEEE Computer Society Press.
[20]
C. L. Talcott. Composable semantic models for actor theories. Higher-Order and Symbolic Computation, 11(3), 1998.
[21]
R. van Renesse, K. P. Birman, and S. Maffeis. Horus: A flexible group communication system. Communications of the ACM, 39(4):76--83, 1996.
[22]
World Wide Web Consortium. Web services activity statement. http://www.w3.org/2002/ws/, 2002.
[23]
X/Open Company Limited. Distributed transaction processing: The XA specification. X/Open Company Limited, 1991. X/Open CAE Specification XO/CAE/91/300.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 40, Issue 1
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2005
391 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1047659
Issue’s Table of Contents
  • cover image ACM Conferences
    POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 2005
    402 pages
    ISBN:158113830X
    DOI:10.1145/1040305
    • General Chair:
    • Jens Palsberg,
    • Program Chair:
    • Martín Abadi
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 January 2005
Published in SIGPLAN Volume 40, Issue 1

Check for updates

Author Tags

  1. actor
  2. distributed state
  3. tau-calculus
  4. transactor

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2017)Flexible Transactional Coordination in the Peer ModelFundamentals of Software Engineering10.1007/978-3-319-68972-2_8(116-131)Online publication date: 11-Oct-2017
  • (2017)A Reversible Semantics for ErlangLogic-Based Program Synthesis and Transformation10.1007/978-3-319-63139-4_15(259-274)Online publication date: 25-Jul-2017
  • (2016)Programming Scalable Cloud Services with AEONProceedings of the 17th International Middleware Conference10.1145/2988336.2988352(1-14)Online publication date: 28-Nov-2016
  • (2014)Fault Tolerant Distributed Computing Using Asynchronous Local CheckpointingProceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized Control10.1145/2687357.2687364(81-93)Online publication date: 20-Oct-2014
  • (2014)Bisimulations for Communicating TransactionsFoundations of Software Science and Computation Structures10.1007/978-3-642-54830-7_21(320-334)Online publication date: 2014
  • (2013)Recovery within long-running transactionsACM Computing Surveys10.1145/2480741.248074545:3(1-35)Online publication date: 3-Jul-2013
  • (2013)Fault tolerance via idempotenceACM SIGPLAN Notices10.1145/2480359.242910048:1(249-262)Online publication date: 23-Jan-2013
  • (2012)Flexible Failure Management with ScriptingOpen Systems Dependability10.1201/b13154-8(96-104)Online publication date: 17-Oct-2012
  • (2024)An Asynchronous Scheme for Rollback Recovery in Message-Passing Concurrent Programming LanguagesProceedings of the 39th ACM/SIGAPP Symposium on Applied Computing10.1145/3605098.3636051(1132-1139)Online publication date: 8-Apr-2024
  • (2024)From Reversible Computation to Checkpoint-Based Rollback Recovery for Message-Passing Concurrent ProgramsFormal Aspects of Component Software10.1007/978-3-031-52183-6_6(103-123)Online publication date: 13-Jan-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media