@inproceedings{b75d0ac59d824ae999e1a30f6877defe,
title = "Witcher: Systematic Crash Consistency Testing for Non-Volatile Memory Key-Value Stores",
abstract = "The advent of non-volatile main memory (NVM) enables the development of crash-consistent software without paying storage stack overhead. However, building a correct crash-consistent program remains very challenging in the presence of a volatile cache. This paper presents Witcher, a systematic crash consistency testing framework, which detects both correctness and performance bugs in NVM-based persistent key-value stores and underlying NVM libraries, without test space explosion and without manual annotations or crash consistency checkers. To detect correctness bugs, Witcher automatically infers likely correctness conditions by analyzing data and control dependencies between NVM accesses. Then Witcher validates if any violation of them is a true crash consistency bug by checking output equivalence between executions with and without a crash. Moreover, Witcher detects performance bugs by analyzing the execution traces. Evaluation with 20 NVM key-value stores based on Intel's PMDK library shows that Witcher discovers 47 (36 new) correctness consistency bugs and 158 (113 new) performance bugs in both applications and PMDK.",
keywords = "Crash Consistency, Debugging, Non-volatile Memory, Testing",
author = "Xinwei Fu and Kim, \{Wook Hee\} and Shreepathi, \{Ajay Paddayuru\} and Mohannad Ismail and Sunny Wadkar and Dongyoon Lee and Changwoo Min",
note = "Publisher Copyright: {\textcopyright} 2021 ACM.; 28th ACM Symposium on Operating Systems Principles, SOSP 2021 ; Conference date: 26-10-2021 Through 29-10-2021",
year = "2021",
month = oct,
day = "26",
doi = "10.1145/3477132.3483556",
language = "English",
series = "SOSP 2021 - Proceedings of the 28th ACM Symposium on Operating Systems Principles",
publisher = "Association for Computing Machinery, Inc",
pages = "100--115",
booktitle = "SOSP 2021 - Proceedings of the 28th ACM Symposium on Operating Systems Principles",
}