Designing High-Performance and Correct Storage Systems for Non-Volatile Memory
Wookhee Kim is a postdoctoral associate in the Department of Electrical and Computer Engineering at Virginia Tech.
He received his Ph.D. and B.S. degree from Ulsan National Institute of Science and Technology (UNIST) in 2019 and 2013, respectively.His research focuses on designing core components of storage systems for emerging hardware such as index structures, crash consistency, and memory management.
His works have been published in top-tier conferences such as SOSP, FAST, ASPLOS, ATC, and ICDE.
He is a recipient of the NRF postdoctoral fellowship (2021) and NAVER Ph.D. fellowship (2016).
The non-volatile memory (NVM) has been spotlighted because of its unique characteristics, such as byte-addressability and durability.
Previous studies for NVM-based system software relied on DRAM-based emulation before it became publicly available.
However, in our analysis, NVM is not a slow DRAM and is more complicated than we expected.
Moreover, the presence of a volatile CPU cache makes designing high-performance and correct NVM storage systems hard.
In this talk, I will introduce two recent works, PACTree and Witcher. PACTree is a high-performance persistent range index.
In PACTree, we revisit and analyze existing persistent range indexes and find out that there is a lot of room for improving the performance if we consider the full stack of NVM software.
Based on our analysis, we propose PAC (Packed Asynchronous Concurrency) guidelines and design PACTree based on PAC guidelines.
In the second part of the talk, I will introduce Witcher, a framework for systemically detecting crash consistency and performance bugs in the NVM key-value stores.
Witcher infers likely correctness conditions by analyzing the data and control dependencies between NVM accesses.
And then, it validates the output using output-equivalence between execution with and without crashes.