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

Thomas D. Dickerson,Paul Gazzillo,Maurice Herlihy,Eric Koskinen
DOI: https://doi.org/10.48550/arXiv.1702.04866
2017-06-26
Abstract: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.
Distributed, Parallel, and Cluster Computing,Data Structures and Algorithms
What problem does this paper attempt to address?