Transactional Tasks: Parallelism in Software Transactions

Research output: Chapter in Book/Report/Conference proceedingConference paper

2 Citations (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.
Original languageEnglish
Title of host publicationProceedings of the 30th European Conference on Object-Oriented Programming (ECOOP 2016)
EditorsShriram Krishnamurthi, Benjamin S. Lerner
PublisherSchloss Dagstuhl - Leibniz-Zentrum für Informatik
Number of pages28
ISBN (Electronic)978-3-95977-014-9
Publication statusPublished - Jul 2016
EventEuropean Conference on Object-Oriented Programming - Roma Eventi - Fontana di Trevi, Rome, Italy
Duration: 17 Jul 201627 Feb 2017
Conference number: 30


ConferenceEuropean Conference on Object-Oriented Programming
Abbreviated titleECOOP
Internet address


  • Concurrency
  • Parallelism
  • Futures
  • Threads
  • Fork/Join
  • Software Transactional Memory


Dive into the research topics of 'Transactional Tasks: Parallelism in Software Transactions'. Together they form a unique fingerprint.

Cite this