Brief announcement: Proust: a design space for highly-concurrent transactional data structures

Thomas Dickerson, Paul Gazzillo, Maurice Herlihy, Eric Koskinen

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

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 brief announcement introduces Proust, a framework for the design and implementation of transactional data structures. Proust is designed to maximize reuse of existing well-engineered libraries by providing transactional "wrappers" to make existing thread-safe concurrent data structures transactional. Proustian objects are also integrated with an underlying 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.

Original languageEnglish
Title of host publicationPODC 2017 - Proceedings of the ACM Symposium on Principles of Distributed Computing
Pages251-253
Number of pages3
ISBN (Electronic)9781450349925
DOIs
StatePublished - 26 Jul 2017
Event36th ACM Symposium on Principles of Distributed Computing, PODC 2017 - Washington, United States
Duration: 25 Jul 201727 Jul 2017

Publication series

NameProceedings of the Annual ACM Symposium on Principles of Distributed Computing
VolumePart F129314

Conference

Conference36th ACM Symposium on Principles of Distributed Computing, PODC 2017
Country/TerritoryUnited States
CityWashington
Period25/07/1727/07/17

Fingerprint

Dive into the research topics of 'Brief announcement: Proust: a design space for highly-concurrent transactional data structures'. Together they form a unique fingerprint.

Cite this