Abstract / Description of output
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 language | English |
---|---|
Pages (from-to) | 497-508 |
Number of pages | 12 |
Journal | Proceedings of the VLDB Endowment (PVLDB) |
Volume | 8 |
Issue number | 5 |
DOIs | |
Publication status | Published - 1 Jan 2015 |