REWIND
Autor: | Marcelo Cintra, Stratis D. Viglas, Andreas Chatzistergiou |
---|---|
Rok vydání: | 2015 |
Předmět: |
Scheme (programming language)
Hardware_MEMORYSTRUCTURES Computer science General Engineering Parallel computing computer.software_genre Data structure Resistive random-access memory Factor (programming language) Programming paradigm Operating system Overhead (computing) Persistent data structure computer computer.programming_language Block (data storage) |
Zdroj: | Proceedings of the VLDB Endowment. 8:497-508 |
ISSN: | 2150-8097 |
DOI: | 10.14778/2735479.2735483 |
Popis: | 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 programming 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. |
Databáze: | OpenAIRE |
Externí odkaz: |