Software Transactional Memory with Interactions

Software Transactional memory (STM) is an emerging abstraction for concurrent programming alternative to lock-based synchronizations. Most STM models admit only isolated transactions, which are not adequate in multithreaded programming where transactions need to interact via shared data before committing. To overcome this limitation, in this paper we present Open Transactional Memory (OTM), a programming abstraction supporting safe, data-driven interactions between composable memory transactions. This is achieved by relaxing isolation between transactions, still ensuring atomicity. This model allows for loosely-coupled interactions since transaction merging is driven only by accesses to shared data, with no need to specify participants beforehand.

[1]  Krysia Broda,et al.  Speculative Abductive Reasoning for Hierarchical Agent Systems , 2010, CLIMA.

[2]  Marino Miculan,et al.  Open Transactions on Shared Memory , 2015, COORDINATION.

[3]  Ivan Lanese,et al.  No more, no less - A formal model for serverless computing , 2019, COORDINATION.

[4]  Alessio Mansutti,et al.  Distributed execution of bigraphical reactive systems , 2015, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[5]  Bratin Saha,et al.  Open nesting in software transactional memory , 2007, PPOPP.

[6]  Stacy Patterson,et al.  Formalizing Event-Driven Behavior of Serverless Applications , 2020, ESOCC.

[7]  Uday S. Reddy,et al.  Imperative functional programming , 1996, CSUR.

[8]  Matthew Hennessy,et al.  Bisimulations for Communicating Transactions - (Extended Abstract) , 2014, FoSSaCS.

[9]  A. Postnikov,et al.  NO MORE , 2005 .

[10]  Jens Palsberg,et al.  Communicating memory transactions , 2011, PPoPP '11.

[11]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[12]  Alessio Mansutti,et al.  Multi-agent Systems Design and Prototyping with Bigraphical Reactive Systems , 2014, DAIS.

[13]  Nobuko Yoshida,et al.  Towards a Formal Account for Software Transactional Memory , 2020, RC.

[14]  Simon L. Peyton Jones,et al.  Concurrent Haskell , 1996, POPL '96.

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

[16]  Victor Luchangco,et al.  Transaction communicators: enabling cooperation among concurrent transactions , 2011, PPoPP '11.

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

[18]  Yuriy Brun,et al.  Formal foundations of serverless computing , 2019, Proc. ACM Program. Lang..

[19]  Yannis Smaragdakis,et al.  Transactions with isolation and cooperation , 2007, OOPSLA.

[20]  Matthew Fluet,et al.  Transactional events , 2006, ICFP '06.

[21]  Simon Peyton Jones,et al.  Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell , 2005 .

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