Affiliation:
1. University of Wisconsin - Madison, Madison, WI, USA
2. Skype Limited, Tallinn, Estonia
Abstract
New storage-class memory (SCM) technologies, such as phase-change memory, STT-RAM, and memristors, promise user-level access to non-volatile storage through regular memory instructions. These memory devices enable fast user-mode access to persistence, allowing regular in-memory data structures to survive system crashes.
In this paper, we present Mnemosyne, a simple interface for programming with persistent memory. Mnemosyne addresses two challenges: how to create and manage such memory, and how to ensure consistency in the presence of failures. Without additional mechanisms, a system failure may leave data structures in SCM in an invalid state, crashing the program the next time it starts.
In Mnemosyne, programmers declare global persistent data with the keyword "pstatic" or allocate it dynamically. Mnemosyne provides primitives for directly modifying persistent variables and supports consistent updates through a lightweight transaction mechanism. Compared to past work on disk-based persistent memory, Mnemosyne reduces latency to storage by writing data directly to memory at the granularity of an update rather than writing memory pages back to disk through the file system. In tests emulating the performance characteristics of forthcoming SCMs, we show that Mnemosyne can persist data as fast as 3 microseconds. Furthermore, it provides a 35 percent performance increase when applied in the OpenLDAP directory server. In microbenchmark studies we find that Mnemosyne can be up to 1400% faster than alternative persistence strategies, such as Berkeley DB or Boost serialization, that are designed for disks.
Publisher
Association for Computing Machinery (ACM)
Reference67 articles.
1. Sparse - a semantic parser for C. sparse.wiki.kernel.org. Sparse - a semantic parser for C. sparse.wiki.kernel.org.
2. AMD Inc. Software optimization guide for AMD64 processors. http://support.amd.com/us/Embedded_TechDocs/25112.PDF 2005. AMD Inc. Software optimization guide for AMD64 processors. http://support.amd.com/us/Embedded_TechDocs/25112.PDF 2005.
3. An Approach to Persistent Programming
4. An orthogonally persistent Java
5. An 8Mb demonstrator for high-density 1.8V Phase-Change Memories
Cited by
77 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献