Transactional Tasks: Parallelism in Software Transactions

Onderzoeksoutput: Conference paper

1 Citaat (Scopus)


Many programming languages, such as Clojure, Scala, and Haskell, support different concurrency models. In practice these models are often combined, however the semantics of the combinations are not always well-defined. In this paper, we study the combination of futures and Software Transactional Memory. Currently, futures created within a transaction cannot access the transactional state safely, violating the serializability of the transactions and leading to unexpected behavior.

We define transactional tasks: a construct that allows futures to be created in transactions. Transactional tasks allow the parallelism in a transaction to be exploited, while providing safe access to the state of their encapsulating transaction. We show that transactional tasks have several useful properties: they are coordinated, they maintain serializability, and they do not introduce non-determinism. As such, transactional tasks combine futures and Software Transactional Memory, allowing the potential parallelism of a program to be fully exploited, while preserving the properties of the separate models where possible.
Originele taal-2English
TitelProceedings of the 30th European Conference on Object-Oriented Programming (ECOOP 2016)
RedacteurenShriram Krishnamurthi, Benjamin S. Lerner
UitgeverijSchloss Dagstuhl - Leibniz-Zentrum für Informatik
Aantal pagina's28
ISBN van elektronische versie978-3-95977-014-9
StatusPublished - jul 2016
EvenementEuropean Conference on Object-Oriented Programming - Roma Eventi - Fontana di Trevi, Rome, Italy
Duur: 17 jul 201627 feb 2017
Congresnummer: 30


ConferenceEuropean Conference on Object-Oriented Programming
Verkorte titelECOOP
Internet adres

Vingerafdruk Duik in de onderzoeksthema's van 'Transactional Tasks: Parallelism in Software Transactions'. Samen vormen ze een unieke vingerafdruk.

Citeer dit