REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures

Andreas Chatzistergiou, Marcelo Cintra, Stratis D. Viglas

Research output: Contribution to journalArticlepeer-review


Recent non-volatile memory (NVM) technologies, such as PCM, STT-MRAM and ReRAM, can act as both main memory and storage. This has led to research into NVM pro- gramming models, where persistent data structures remain in memory and are accessed directly through CPU loads and stores. Existing mechanisms for transactional updates are not appropriate in such a setting as they are optimized for block-based storage. We present REWIND, a user-mode library approach to managing transactional updates directly from user code written in an imperative general-purpose language. REWIND relies on a custom persistent in-memory data structure for the log that supports recoverable operations on itself. The scheme also employs a combination of non-temporal updates, persistent memory fences, and lightweight logging. Experimental results on synthetic transactional workloads and TPC-C show the overhead of REWIND compared to its non-recoverable equivalent to be within a factor of only 1:5 and 1:39 respectively. Moreover, REWIND outperforms state-of-the-art approaches for data structure recoverability as well as general purpose and NVM-aware DBMS-based recovery schemes by up to two orders of magnitude.
Original languageEnglish
Pages (from-to)497-508
Number of pages12
JournalProceedings of the VLDB Endowment (PVLDB)
Issue number5
Publication statusPublished - 1 Jan 2015


Dive into the research topics of 'REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures'. Together they form a unique fingerprint.

Cite this