A Semantic Framework for Designer Transactions

  • Jan Vitek
  • Suresh Jagannathan
  • Adam Welc
  • Antony L. Hosking
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2986)


A transaction defines a locus of computation that satisfies important concurrency and failure properties; these so-called ACID properties provide strong serialization guarantees that allow us to reason about concurrent and distributed programs in terms of higher-level units of computation (e.g., transactions) rather than lower-level data structures (e.g., mutual-exclusion locks). This paper presents a framework for specifying the semantics of a transactional facility integrated within a host programming language. The TFJ calculus supports nested and multi-threaded transactions. We give a semantics to TFJ that is parameterized by the definition of the transactional mechanism that permits the study of different transaction models.


Action Label Semantic Framework Method Invocation Computational Core Current Transaction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Black, A., Cremet, V., Guerraoui, R., Odersky, M.: An Equational Theory for Transactions. Technical Report CSE 03-007, Department of Computer Science, OGI School of Science and Engineering (2003)Google Scholar
  2. 2.
    Bruni, R., Laneve, C., Montanari, U.: Orchestrating Transactions in Join Calculus. In: Brim, L., Jančar, P., Křetínský, M., Kucera, A. (eds.) CONCUR 2002. LNCS, vol. 2421, p. 321. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  3. 3.
    Busi, N., Gorrieri, R., Zavattaro, G.: On the Serializability of Transactions in JavaSpaces. In: ConCoord 2001, International Workshop on Concurrency and Coordination (2001)Google Scholar
  4. 4.
    Chothia, T., Duggan, D.: Abstractions for Fault-Tolerant Computing. Technical Report 2003-3, Department of Computer Science, Stevens Institute of Technology (2003)Google Scholar
  5. 5.
    Chrysanthis, P., Ramamritham, K.: Synthesis of Extended Transaction Models Using ACTA. ACM Transactions on Database Systems 19(3), 450–491 (1994)CrossRefGoogle Scholar
  6. 6.
    Daynès, L.: Implementation of automated fine-granularity locking in a persistent programming language. Software—Practice and Experience 30(4), 325–361 (2000)zbMATHCrossRefGoogle Scholar
  7. 7.
    Daynès, L., Czajkowski, G.: High-performance, space-efficient, automated object locking. In: Proceedings of the International Conference on Data Engineering, pp. 163–172. IEEE Computer Society, Los Alamitos (2001)Google Scholar
  8. 8.
    Daynès, L., Czajkowski, G.: Lightweight flexible isolation for language-based extensible systems. In: Proceedings of the International Conference on Very Large Data Bases (2002)Google Scholar
  9. 9.
    Detlefs, D.D., Herlihy, M.P., Wing, J.M.: Inheritance of synchronization and recovery in Avalon/C++. IEEE Computer 21(12), 57–69 (1988)Google Scholar
  10. 10.
    Eppinger, J.L., Mummert, L.B., Spector, A.Z. (eds.): Camelot and Avalon: A Distributed Transaction Facility. Morgan Kaufmann, San Francisco (1991)Google Scholar
  11. 11.
    Garthwaite, A., Nettles, S.: Transactions for Java. In: Atkinson, M.P., Jordan, M.J. (eds.) Proceedings of the First International Workshop on Persistence and Java, pp. 6–14. Sun Microsystems Laboratories Technical Report 96-58 (November 1996)Google Scholar
  12. 12.
    Gray, J., Reuter, A.: Transaction Processing. Morgan-Kaufmann, San Francisco (1993)Google Scholar
  13. 13.
    Haines, N., Kindred, D., Gregory Morrisett, J., Nettles, S.M., Wing, J.M.: Composing first-class transactions. ACM Transactions on Programming Languages and Systems 16(6), 1719–1736 (1994)CrossRefGoogle Scholar
  14. 14.
    Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Transactions on Programming Languages and Systems 23(3), 396–450 (2001)CrossRefGoogle Scholar
  15. 15.
    Liskov, B., Scheifler, R.: Guardians and actions: Linguistic support for robust distributed programs. ACM Transactions on Programming Languages and Systems 5(3), 381–404 (1983)zbMATHCrossRefGoogle Scholar
  16. 16.
    Lynch, N., Merritt, M., Weihl, W., Fekete, A.: Atomic Transactions. Morgan-Kaufmann, San Francisco (1994)Google Scholar
  17. 17.
    Eliot, J., Moss, B.: Nested transactions: An approach to reliable distributed computing. In: Proceedings of the Second Symposium on Reliability in Distributed Software and Database Systems, pp. 33–39. IEEE Computer Society, Los Alamitos (1982)Google Scholar
  18. 18.
    Eliot, J., Moss, B.: Nested Transactions: An Approach to Reliable Distributed Computing. MIT Press, Cambridge (1985)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Jan Vitek
    • 1
  • Suresh Jagannathan
    • 1
  • Adam Welc
    • 1
  • Antony L. Hosking
    • 1
  1. 1.Purdue University 

Personalised recommendations