skip to main content
10.1145/1040305.1040322acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
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
  • (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
  • (2023)When Concurrency Matters: Behaviour-Oriented ConcurrencyProceedings of the ACM on Programming Languages10.1145/36228527:OOPSLA2(1531-1560)Online publication date: 16-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

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
  • 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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 January 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

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

Qualifiers

  • Article

Conference

POPL05

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (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
  • (2023)When Concurrency Matters: Behaviour-Oriented ConcurrencyProceedings of the ACM on Programming Languages10.1145/36228527:OOPSLA2(1531-1560)Online publication date: 16-Oct-2023
  • (2023)Reliable Actors with Retry OrchestrationProceedings of the ACM on Programming Languages10.1145/35912737:PLDI(1293-1316)Online publication date: 6-Jun-2023
  • (2022)Eventual consensus in Synod: verification using a failure-aware actor modelInnovations in Systems and Software Engineering10.1007/s11334-022-00463-519:4(395-410)Online publication date: 25-Jul-2022
  • (2021)Intelligent Health Information Services Requirements Revisited from an Actor's Perspective2021 IEEE International Conference on Digital Health (ICDH)10.1109/ICDH52753.2021.00047(244-253)Online publication date: Sep-2021
  • (2020)Towards Choreographic-Based MonitoringReversible Computation: Extending Horizons of Computing10.1007/978-3-030-47361-7_6(128-150)Online publication date: 12-May-2020
  • (2018)Checkpoint/Rollback vs Causally-Consistent ReversibilityReversible Computation10.1007/978-3-319-99498-7_20(286-303)Online publication date: 22-Aug-2018
  • (2018)Reversible Choreographies via Monitoring in ErlangDistributed Applications and Interoperable Systems10.1007/978-3-319-93767-0_6(75-92)Online publication date: 1-Jun-2018
  • (2017)Transactional actors: communication in transactionsProceedings of the 4th ACM SIGPLAN International Workshop on Software Engineering for Parallel Systems10.1145/3141865.3141866(31-41)Online publication date: 23-Oct-2017
  • 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