Concurrent Applications using Elastic Transactions

Master project

In an attempt to make the programming abstraction as general as possible, Software Transactional Memory (STM) often hampers performance. In contrast with STMs, synchronization techniques at the core of a concurrent program that targets a single specific application can be genuinely tuned to enhance concurrency and to limit contention.

Elastic transactions is a variant of the transactional model. Upon conflict detection, an elastic transaction might drop what it did so far within a separate transaction that immediately commits, and initiate a new transaction which might itself be elastic. Elastic transactions are a complementary alternative to traditional transactions, particularly appealing when implementing search structures. Both forms of transactions can safely be combined within the same application.

The goal of the project is to implement a real concurrent application using E-STM, an STM implementing elastic and regular transactions, to enhance concurrency. The task is

  • to propose some applications,
  • to implement some of them using the transaction API,
  • to extend E-STM with nesting of elastic transactions inside normal ones, and
  • to experiment them on a multicore machine.

Language: C

Responsible: Vincent Gramoli

Project intended for 1 student