Article ID: 15.20180919
The rapid pace of innovation in non-volatile memory technologies such as 3D Xpoint [1], NVDIMM [2], and zSSD [3] is set to transform how we build, deploy, and manage data service platforms. In particular, the emergence of a byte-addressable and persistent type of memory changes the landscape of the current storage architecture, consolidating different functionalities of memory and storage into a single layer [4]. To take full advantage of this advanced technology, this letter presents a crash-resilient skip list (CRAST) which serves as an in-memory data management module in a key-value store to support crash-consistency from a system failure when running on non-volatile memory. By maintaining the persistent in-memory data in a consistent manner, the proposed skip list provides strong reliability and high performance simultaneously in modern data service platforms. We demonstrate the efficacy of CRAST by implementing its prototype in LevelDB. We experimentally show that CRAST provides excellent performance across various workloads, compared to the original key-value store without any compromise on reliability.