1. Relaxed Persist Ordering Using Strand Persistency
- Author
-
Satish Narayanasamy, William S.-Y. Wang, Stephan Diestelhorst, Thomas F. Wenisch, Peter M. Chen, and Vaibhav Gogte
- Subjects
010302 applied physics ,Computer science ,Distributed computing ,Concurrency ,0103 physical sciences ,0202 electrical engineering, electronic engineering, information engineering ,02 engineering and technology ,Thread (computing) ,Data structure ,01 natural sciences ,Dram ,020202 computer hardware & architecture - Abstract
Emerging persistent memory (PM) technologies promise the performance of DRAM with the durability of Flash. Several language-level persistency models have emerged recently to aid programming recoverable data structures in PM. Unfortunately, these persistency models are built upon hardware primitives that impose stricter ordering constraints on PM operations than the persistency models require. Alternative solutions use fixed and inflexible hardware logging techniques to relax ordering constraints on PM operations, but do not readily apply to general synchronization primitives employed by language-level persistency models. Instead, we propose StrandWeaver, a hardware strand persistency model, to minimally constrain ordering on PM operations. StrandWeaver manages PM order within a strand, a logically independent sequence of operations within a thread. PM operations that lie on separate strands are unordered and may drain concurrently to PM. StrandWeaver implements primitives under strand persistency to allow programmers to improve concurrency and relax ordering constraints on updates as they drain to PM. Furthermore, we design mechanisms that map persistency semantics in high-level language persistency models to the primitives implemented by StrandWeaver. We demonstrate that StrandWeaver can enable greater concurrency of PM operations than existing ISA-level ordering mechanisms, improving performance by up to $1.97 \times (1.45 \times avg.)$.
- Published
- 2020
- Full Text
- View/download PDF