Nested transactions: an approach to reliable distributed computing
Nested transactions: an approach to reliable distributed computing
Camelot and Avalon: a distributed transaction facility
Camelot and Avalon: a distributed transaction facility
Analysis of inheritance anomaly in object-oriented concurrent programming languages
Research directions in concurrent object-oriented programming
Synthesis of extended transaction models using ACTA
ACM Transactions on Database Systems (TODS)
Composing first-class transactions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementation of automated fine-granularity locking in a persistent programming language
Software—Practice & Experience - Persistent object systems
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The notions of consistency and predicate locks in a database system
Communications of the ACM
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Reduction: a new method of proving properties of systems of processes
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
High-Performance, Space-Efficient, Automated Object Locking
Proceedings of the 17th International Conference on Data Engineering
Modern Concurrency Abstractions for C#
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Orchestrating Transactions in Join Calculus
CONCUR '02 Proceedings of the 13th International Conference on Concurrency Theory
Summarizing procedures in concurrent programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Review of the Rationale and Architectures of PJama: a Durable, Flexible, Evolvable and Scalable Orthogonally Persistent Programming Platform
Lightweight flexible isolation for language-based extensible systems
VLDB '02 Proceedings of the 28th international conference on Very Large Data Bases
Modular Checkpointing for Atomicity
Electronic Notes in Theoretical Computer Science (ENTCS)
High-level small-step operational semantics for transactions
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics of transactional memory and automatic mutual exclusion
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
The semantics of progress in lock-based transactional memory
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transactional Memory: Glimmer of a Theory
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Perspectives on Transactional Memory
CONCUR 2009 Proceedings of the 20th International Conference on Concurrency Theory
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Effects for cooperable and serializable threads
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Semantics of transactional memory and automatic mutual exclusion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Safe commits for transactional featherweight Java
IFM'10 Proceedings of the 8th international conference on Integrated formal methods
Proving isolation properties for software transactional memory
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Safe locking for multi-threaded java
FSEN'11 Proceedings of the 4th IPM international conference on Fundamentals of Software Engineering
On the liveness of transactional memory
PODC '12 Proceedings of the 2012 ACM symposium on Principles of distributed computing
A type system for finding upper resource bounds of multi-threaded programs with nested transactions
Proceedings of the Third Symposium on Information and Communication Technology
Transactional correctness for secure nested transactions
TGC'11 Proceedings of the 6th international conference on Trustworthy Global Computing
Hi-index | 0.00 |
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, an object calculus derived from Featherweight Java, supports nested and multi-threaded transactions. We give a semantics to TFJ that is parametrized by the definition of the transactional mechanism that permits the study of different transaction models. We give two instantiations: one that defines transactions in terms of a versioning-based optimistic concurrency model, and the other which specifies transactions in terms of a pessimistic two-phase locking protocol, and present soundness and serializability properties for our semantics.