Transactions are back---but are they the same?

Transactions are back in the spotlight! They are emerging in concurrent programming languages under the name of transactional memory (TM). Their new role? Concurrency control on new multi-core processors. From afar they look the same as good ol' database transactions. But are they really? In this position paper, we reflect about the distinguishing features of these memory transactions with respect to their database cousins. Disclaimer: By its very nature, this position paper does not try to avoid subjectivity.

[1]  David B. Lomet,et al.  Process structuring, synchronization, and recovery using atomic actions , 1977, Language Design for Reliable Software.

[2]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

[3]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[4]  Vassos Hadzilacos,et al.  A theory of reliability in database systems , 1988, JACM.

[5]  Hector Garcia-Molina,et al.  Main Memory Database Systems: An Overview , 1992, IEEE Trans. Knowl. Data Eng..

[6]  Rachid Guerraoui,et al.  Nesting Actions through Asynchronous Message Passing: the ACS Protocol , 1992, ECOOP.

[7]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[8]  Alan Burns,et al.  Implementing Atomic Actions in Ada 95 , 1997, IEEE Trans. Software Eng..

[9]  Jörg Kienzle,et al.  AOP: Does It Make Sense? The Case of Concurrency and Failures , 2002, ECOOP.

[10]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

[11]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[12]  Christof Fetzer,et al.  Automatic detection and masking of non-atomic exception handling , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

[13]  Christof Fetzer,et al.  Automatic detection and masking of nonatomic exception handling , 2003, IEEE Transactions on Software Engineering.

[14]  Virendra J. Marathe,et al.  Adaptive Software Transactional Memory , 2005, DISC.

[15]  Maurice Herlihy The transactional manifesto: software engineering and non-blocking synchronization , 2005, PLDI '05.

[16]  Maurice Herlihy,et al.  Snapshots and software transactional memory , 2005, Sci. Comput. Program..

[17]  Maurice Herlihy,et al.  Robust Contention Management in Software Transactional Memory , 2005, OOPSLA 2005.

[18]  Milo M. K. Martin,et al.  Deconstructing Transactional Semantics: The Subtleties of Atomicity , 2005 .

[19]  William N. Scherer,et al.  Advanced contention management for dynamic software transactional memory , 2005, PODC '05.

[20]  Rachid Guerraoui,et al.  Toward a theory of transactional contention managers , 2005, PODC '05.

[21]  David Gay,et al.  Autolocker: synchronization inference for atomic sections , 2006, POPL '06.

[22]  Torvald Riegel,et al.  Snapshot Isolation for Software Transactional Memory , 2006 .

[23]  Torvald Riegel,et al.  A Lazy Snapshot Algorithm with Eager Validation , 2006, DISC.

[24]  Brian T. Lewis,et al.  Compiler and runtime support for efficient software transactional memory , 2006, PLDI '06.

[25]  Kunle Olukotun,et al.  The Atomos transactional programming language , 2006, PLDI '06.

[26]  Mark Plesko,et al.  Optimizing memory transactions , 2006, PLDI '06.

[27]  Michael F. Spear,et al.  Privatization techniques for software transactional memory , 2007, PODC '07.

[28]  Dan Grossman,et al.  Enforcing isolation and ordering in STM , 2007, PLDI '07.

[29]  Jan Vitek,et al.  STMBench7: a benchmark for software transactional memory , 2007, EuroSys '07.

[30]  Torvald Riegel,et al.  Time-based transactional memory with scalable time bases , 2007, SPAA '07.

[31]  Torvald Riegel,et al.  Transactifying Applications Using an Open Compiler Framework , 2007 .

[32]  Rachid Guerraoui,et al.  On the correctness of transactional memory , 2008, PPoPP.

[33]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2005, CACM.

[34]  Semantics of transactional memory and automatic mutual exclusion , 2008, POPL.