Ainur: Evaluation of crash-consistency guarantees in multi-threaded PM applications

Persistent memory (PM) is a recent technology that promises to deliver performance in-between HDD/SSDs and DRAM, combined with data persistence guarantees across program and machine restarts. PM is not intended to replace either DRAM or SSD/HDD technology but rather to act as a middle tier between them, opening the opportunity for high-performance program programmers to explore novel designs. In the absence of crashes, PM offers performance and durability - the best of both worlds. However, current PM hardware has limited support for atomic-failure writes. This means that upon crashes, and unlike DRAM, whose state is completely reset after an program or machine crash, in PM the state is kept but dirty (partial) reads might still be observed upon recovery as there are no guarantees on the order in which writes are persisted. The goal of the Ainur project is therefore to develop tools and techniques for evaluating the crash-consistency guarantees of multithreaded PM programs in a black-box and fully automated fashion. This will be achieved through the use of automated black-box instrumentation techniques, the development of application models that generically capture the PM semantics for a wide range of programs, and a guided reproducible thread scheduler that can expose bugs arising from the interleaving between multiple threads and PM operations. During this project, we will also plan to answer the more fundamental question of whether the interplay between PM and concurrency gives rise to a new class of bugs or if those bugs can be reduced to existing concurrency bug classes in non-PM programs. We will rely on a set of real-world programs and libraries to evaluate our tools and techniques and with the acquired insights propose novel constructs or abstractions whenever relevant.

News

  • October 2022. Henrique Fernandes sucesfully defended his thesis on Automatic Automatic Testing of Persistent Memory Applications
  • June 2022. João Gonçalves presented his preliminary work at Encontro Nacional de Sistemas Distribuídos.
  • June 2022. João Martinho presented his preliminary work at Encontro Nacional de Sistemas Distribuídos.
  • January 2022. Two schorlarships are now open here and here
  • January 2022. Project website is online.
  • January 2022. The project officially started on January 17.

Team

Funding

This work is funded by National Funds through the FCT - Fundação para a Ciência e a Tecnologia (Portuguese Foundation for Science and Technology) within project PTDC/CCI-COM/4485/2021. Projet Funding: 205k€

FCT logo