Proust: A Design Space for Highly-Concurrent Transactional Data Structures

26 Jun 2017  ·  Dickerson Thomas D., Gazzillo Paul, Herlihy Maurice, Koskinen Eric ·

Most STM systems are poorly equipped to support libraries of concurrent data structures. One reason is that they typically detect conflicts by tracking transactions' read sets and write sets, an approach that often leads to false conflicts. A second is that existing data structures and libraries often need to be rewritten from scratch to support transactional conflict detection and rollback. This paper introduces Proust, a framework for the design and implementation of transactional data structures. Proust is designed to maximize re-use of existing well-engineered by providing transactional "wrappers" to make existing thread-safe concurrent data structures transactional. Proustian objects are also integrated with an underling STM system, allowing them to take advantage of well-engineered STM conflict detection mechanisms. Proust generalizes and unifies prior approaches such as boosting and predication.

PDF Abstract
No code implementations yet. Submit your code now


Distributed, Parallel, and Cluster Computing Data Structures and Algorithms


  Add Datasets introduced or used in this paper