SPMS: Strand based Persistent Memory System
Shuo Li1, Peng Wang2, Nong Xiao3, Guangyu Sun2 and Fang Liu1
1State Key Laboratory of High Performance Computing, College of Computer, National University of Defense Technology, China.
alishuo12@nudt.edu.cn
bliufang@nudt.edu.cn
2Center for Energy-efficient Computing and Applications, Peking University, China.
cwang_peng@pku.edu.cn
dgsun@pku.edu.cn
3School of Data and Computer Science, Sun Yat-sen University, China.
xiaon6@sysu.edu.cn
ABSTRACT
Emerging non-volatile memories enable persistent memory, which offers the opportunity to directly access persistent data structures residing in main memory. In order to keep persistent data consistent in case of system failures, most prior work relies on persist ordering constraints which incurs significant overheads. Strand persistency minimizes persist ordering constraints. However, there is still no proposed persistent memory design based on strand persistency due to its implementation complexity. In this work, we propose a novel persistent memory system based on strand persistency, called SPMS. SPMS consists of cacheline-based strand group tracking components, a volatile strand buffer and ultra-capacitors incorporated in persistent memory modules. SPMS can track each strand and guarantee its atomicity. In case of system failures, committed strands buffered in the strand buffer can be flushed back to persistent memory within the residual energy window provided by the ultra-capacitors. Our evaluations show that SPMS outperforms the state-of-the-art persistent memory system by 6.6% and has slightly better performance than the baseline without any consistency guarantee. What’s more, SPMS reduces the persistent memory write traffic by 30%, with the help of the strand buffer.