Towards Fast, Safe and Persistent Concurrent Data Structures for Non-experts

dc.contributor.authorCoccimiglio, Gaetano
dc.date.accessioned2026-07-30T18:38:47Z
dc.date.issued2026-07-30
dc.date.submitted2026-06-25
dc.description.abstractThe process of designing and implementing correct concurrent data structures is non-trivial and often error-prone. The recent commercial availability of non-volatile memory has prompted many researchers to also consider designing concurrent data structures that allow recovery following a power failure. These so-called persistent concurrent data structures further complicate the process of achieving correct and efficient implementations. Due to this difficulty, designing, implementing and effectively utilizing persistent concurrent data structures is often only feasible for expert programmers who already possess extensive specialized knowledge. The goal of this thesis is to empower non-experts with the ability to achieve fast, safe and persistent concurrent data structures without requiring the specialized knowledge needed to understand the details of such algorithms. I focus on two general techniques that non-experts can utilize to implement persistent concurrent data structures, transactional memory and universal constructions. Each approach provides a different trade-off between programmer effort and performance of the resulting data structures. Achieving correct and efficient synchronization is one of the most difficult challenges when designing and implementing concurrent algorithms. This process can be simplified through the use of a mechanism known as transactional memory (TM). TMs allow users to execute sequences of memory accesses as atomic transactions. Within a transaction, the implementation can be written in a sequential manner with the added requirement of replacing accesses to shared objects with TM accesses. This approach is useful for non-experts since synchronization is handled by the TM. A different mechanism known as a universal construction (UC) trivializes the implementation of concurrent algorithms. Given a sequential object as input, a UC produces a concurrent object. Sequential data structures are relatively straightforward making this approach suitable for non-experts. Both TMs and UCs can be augmented to also guarantee persistence through the use of non-volatile memory. I present a novel persistent TM, a novel volatile multiversion TM, and a novel persistent UC. All three algorithms are fully implemented and experimentally evaluated. These evaluations demonstrate that in many cases my algorithms represent the current state of the art. The end result of this thesis is a toolbox for non-experts to achieve fast, safe and persistent concurrent data structures
dc.identifier.urihttps://hdl.handle.net/10012/23896
dc.language.isoen
dc.pendingfalse
dc.publisherUniversity of Waterlooen
dc.subjectconcurrency
dc.subjectconcurrent data structures
dc.subjectmulti-core
dc.subjecttransactional memory
dc.subjectuniversal constructions
dc.subjectshared memory
dc.subjectpersistent memory
dc.subjectnon-volatile memory
dc.subjectpersistent data structures
dc.subjectpersistent transactional memory
dc.subjectpersistent universal constructions
dc.subjectmultiversion concurrency control
dc.subjectmultiversion transactional memory
dc.titleTowards Fast, Safe and Persistent Concurrent Data Structures for Non-experts
dc.typeDoctoral Thesis
uws-etd.degreeDoctor of Philosophy
uws-etd.degree.departmentDavid R. Cheriton School of Computer Science
uws-etd.degree.disciplineComputer Science
uws-etd.degree.grantorUniversity of Waterlooen
uws-etd.embargo.terms0
uws.contributor.advisorBrown, Trevor
uws.contributor.advisorBuhr, Peter
uws.contributor.affiliation1Faculty of Mathematics
uws.peerReviewStatusUnrevieweden
uws.published.cityWaterlooen
uws.published.countryCanadaen
uws.published.provinceOntarioen
uws.scholarLevelGraduateen
uws.typeOfResourceTexten

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Coccimiglio_Gaetano.pdf
Size:
8.23 MB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
6.4 KB
Format:
Item-specific license agreed upon to submission
Description:

Collections