RESEARCH

Corundum: Statically-Enforced Persistent Memory Safety, ASPLOS '21

ABSTRACT
Fast, byte-addressable, persistent main memories (PM) make it possible to build complex data structures that can survive system  failures. Programming for PM is challenging, not least because it  combines well-known programming challenges like locking, mem-  ory management, and pointer safety with novel PM-specific bug  types. It also requires logging updates to PM to facilitate recovery  after a crash. A misstep in any of these areas can corrupt data, leak  resources, or prevent successful recovery after a crash. Existing PM  libraries in a variety of languages – C, C++, Java, Go – simplify  some of these problems, but they still require the programmer to  learn (and flawlessly apply) complex rules to ensure correctness. Opportunities for data-destroying bugs abound. This paper presents Corundum, a Rust-based library with an idiomatic PM programming interface and leverages Rust’s type  system to statically avoid most common PM programming bugs. Corundum lets programmers develop persistent data structures  using familiar Rust constructs and have confidence that they will be free of those bugs. We have implemented Corundum and found  its performance to be as good as or better than Intel’s widely-used PMDK library, HP’s Atlas, Mnemosyne, and go-pmem.

 

TODO!

'RESEARCH' 카테고리의 다른 글

The 4 laws of Durability (DurableTx)  (0) 2021.07.16
How to Summarize a Research Article  (0) 2021.07.01
Latex on Ubuntu  (0) 2021.05.14
The Evolution of a Research Paper  (0) 2021.05.10
Persistence and Synchronization: Friends or Foes?  (0) 2021.01.29