License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2016.23
URN: urn:nbn:de:0030-drops-61173
Go to the corresponding LIPIcs Volume Portal

Swalens, Janwillem ; De Koster, Joeri ; De Meuter, Wolfgang

Transactional Tasks: Parallelism in Software Transactions

LIPIcs-ECOOP-2016-23.pdf (0.9 MB)


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 undesired 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.

BibTeX - Entry

  author =	{Janwillem Swalens and Joeri De Koster and Wolfgang De Meuter},
  title =	{{Transactional Tasks: Parallelism in Software Transactions}},
  booktitle =	{30th European Conference on Object-Oriented Programming (ECOOP 2016)},
  pages =	{23:1--23:28},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-014-9},
  ISSN =	{1868-8969},
  year =	{2016},
  volume =	{56},
  editor =	{Shriram Krishnamurthi and Benjamin S. Lerner},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{},
  URN =		{urn:nbn:de:0030-drops-61173},
  doi =		{10.4230/LIPIcs.ECOOP.2016.23},
  annote =	{Keywords: Concurrency, Parallelism, Futures, Threads, Fork/Join, Software Transactional Memory}

Keywords: Concurrency, Parallelism, Futures, Threads, Fork/Join, Software Transactional Memory
Collection: 30th European Conference on Object-Oriented Programming (ECOOP 2016)
Issue Date: 2016
Date of publication: 18.07.2016

DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI