Transactional Tasks: Parallelism in Software Transactions

Onderzoeksoutput: Poster


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
StatusPublished - 19 jul 2016
Evenement30th European Conference on Object-Oriented Programming (ECOOP 2016) - Rome, Italy
Duur: 17 jul 201622 jul 2016


Conference30th European Conference on Object-Oriented Programming (ECOOP 2016)
Verkorte titelECOOP 2016
Internet adres

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

Citeer dit