Transactional Memory in Rust
Abstract
Transactional memory is a concurrency primitive that is easier to reason about and therefore less error prone than locking, but traditional softwareimplementations have been unacceptably slow. STO, a transactional memory library by Herman et al, improves performance by logging abstract data structure operations rather than individual reads and writes, but requires data structure authors to explicitly support the STO protocol, making it possible to accidentally make non-transactional modifications to data structures from within
a transaction block.
In this thesis I describe sto-rs, a port of STO from C++ to Rust (26), a new systems programming language that can provide strong guarantees about memory safety in the presence of parallelism. In doing so I show that Rust's type system allows many programming mistakes possible using the original STO to be prevented at compile
time. This work also supports Rust's claim that its type system is agnostic to concurrency schemes and that the language can express arbitrary new concurrency primitives.
Terms of Use
This article is made available under the terms and conditions applicable to Other Posted Material, as set forth at http://nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of-use#LAACitable link to this page
http://nrs.harvard.edu/urn-3:HUL.InstRepos:38811564
Collections
- FAS Theses and Dissertations [5815]
Contact administrator regarding this item (to report mistakes or request changes)