Publication:

Transactional Memory in Rust

Loading...
Thumbnail Image

Date

2018-06-29

Published Version

Published Version

Journal Title

Journal ISSN

Volume Title

Publisher

The Harvard community has made this article openly available. Please share how this access benefits you.

Research Projects

Organizational Units

Journal Issue

Citation

Abstract

Transactional memory is a concurrency primitive that is easier to reason about and therefore less error prone than locking, but traditional software implementations 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.

Description

Other Available Sources

Research Data

Keywords

Computer Science

Terms of Use

This article is made available under the terms and conditions applicable to Other Posted Material (LAA), as set forth at Terms of Service

Endorsement

Review

Supplemented By

Related Stories