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.
- Sparse - a semantic parser for C. sparse.wiki.kernel.org.Google Scholar
- AMD, Inc. Software optimization guide for AMD64 processors. http://support.amd.com/us/Embedded_TechDocs/25112.PDF, 2005.Google Scholar
- M. P. Atkinson, P. J. Bailey, K. J. Chisholm, P. W. Cockshott, and R. Morrison. An approach to persistent programming. Computer Journal, 26(4):360--365, Nov 1983.Google ScholarCross Ref
- M. P. Atkinson, L. Daynès, M. J. Jordan, T. Printezis, and S. Spence. An orthogonally persistent java. SIGMOD Rec., 25(4):68--75, 1996. Google ScholarDigital Library
- F. Bedeschi, C. Resta, O. Khouri, E. Buda, L. Costa, M. Ferraro, F. Pellizzer, F. Ottogalli, A. Pirovano, M. Tosi, R. Bez, R. Gastaldi, and G. Casagrande. An 8Mb demonstrator for high-density 1.8V phase-change memories. In VLSI Circuits, pages 442--445, June 2004.Google ScholarCross Ref
- E. D. Berger, K. S. McKinley, R. D. Blumofe, and P. R. Wilson. Hoard: a scalable memory allocator for multithreaded applications. In ASPLOS 9, Nov. 2000. Google ScholarDigital Library
- H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw., Pract. Exper., 18(9):807--820, 1988. Google ScholarDigital Library
- J. Bonwick, M. Ahrens, V. Henson, M. Maybee, and M. Shellenbaum. The zettabyte file system. Technical report, Sun Microsystems.Google Scholar
- Boost C++Libraries. Serialization overview. http://www.boost.org/doc/libs/1_42_0/libs/serialization/doc/index.htm%l, Nov. 2004.Google Scholar
- T. C. Bressoud, T. Clark, and T. Kan. The design and use of peristent memory on the DNCP hardware fault-tolerant platform. In DSN, 2001. Google ScholarDigital Library
- M. J. Carey, D. J. DeWitt, M. J. Franklin, N. E. Hall, M. L. McAuliffe, J. F. Naughton, D. T. Schuh, M. H. Solomon, C. K. Tan, O. G. Tsatalos, S. J. White, and M. J. Zwilling. Shoring up persistent applications. SIGMOD Rec., 23(2):383--394, 1994. Google ScholarDigital Library
- T. D. Chandra, R. Griesemer, and J. Redstone. Paxos made live: an engineering perspective. In PODC 26, Aug. 2007. Google ScholarDigital Library
- A. Chang and M. F. Mergen. 801 storage: Architecture and programming. ACM Transactions on Computer Systems, 6(1), Feb. 1988. Google ScholarDigital Library
- J. H. Choi, H. Franke, and K. Zeilenga. Enhancing the performance of OpenLDAP directory server with multiple caching. In International Symposium on Performance Evaluation of Computers and Telecommunications Systems (SPECTS), July 2003.Google Scholar
- Christopher Clark. C hash table. http://www.cl.cam.ac.uk/ cwc22/hashtable/hashtable.c.Google Scholar
- J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. In ASPLOS 16, Mar. 2011. Google ScholarDigital Library
- J. Condit, E. B. Nightingale, C. Frost, E. Ipek, B. Lee, D. Burger, and D. Coetzee. Better I/O through byte-addressable, persistent memory. In SOSP 22, pages 133--146, Oct. 2009. Google ScholarDigital Library
- G. Copeland, T. Keller, R. Krishnamurthy, and M. Smith. The case for safe RAM. In VLDB 15, Aug. 1989. Google ScholarDigital Library
- J. Corbet. Fsyncers and curveballs (the firefox 3 fsync() problem). http://lwn.net/Articles/283745/, May 2008.Google Scholar
- D. J. DeWitt, R. H. Katz, F. Olken, L. D. Shapiro, M. R. Stonebraker, and D. Wood. Implementation techniques for main memory database systems. SIGMOD Rec., 14(2):1--8, 1984. Google ScholarDigital Library
- E. Doller. Phase change memory and its impacts on memory hierarchy. http://www.pdl.cmu.edu/SDI/2009/slides/Numonyx.pdf, 2009.Google Scholar
- N. Edel, D. Tuteja, E. L. Miller, and S. A. Brandt. MRAMFS: A compressing file system for non-volatile RAM. In Proceedings of thje IEEE/ACM International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS), pages 596--603, Oct. 2004. Google ScholarDigital Library
- F. Eskesen, M. Hack, A. Iyengar, R. P. King, and N. Halim. Software exploitation of a fault-tolerant computer with a large memory. In FTCS, 1998. Google ScholarDigital Library
- P. Felber, C. Fetzer, and T. Riegel. Dynamic performance tuning of word-based software transactional memory. In PPoPP 13, Feb. 2008. Google ScholarDigital Library
- R. F. Freitas and W. W. Wilcke. Storage-class memory: the next storage system technology. IBM J. Res. Dev., 52(4):439--447, 2008. Google ScholarDigital Library
- H. Garcia-Molina and K. Salem. Main memory database systems: An overview. IEEE Trans. on Knowl. and Data Eng., 4(6):509--516, 1992. Google ScholarDigital Library
- J. Gray. The transaction concept: Virtues and limitations. In VLDB 7, Sept. 1981. Google ScholarDigital Library
- J. Gray, P. Mcjones, M. Blasgen, B. Lindsay, R. Lorie, and T. Price. The recovery manager of the System R database manager. ACM Computing Surveys, 13:223--242, 1981. Google ScholarDigital Library
- T. Harris, S. Marlow, S. P. Jones, and M. Herlihy. Composable memory transactions. In PPoPP 10, June 2005. Google ScholarDigital Library
- M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In ISCA 20, May 1993. Google ScholarDigital Library
- M. Hirabayashi. Tokyo cabinet: a modern implementation of DBM. http://1978th.net/tokyocabinet/, 2010.Google Scholar
- Y. Huai. Spin-transfer torque MRAM (STT-MRAM): Challenges and prospects. AAPPS Bulletin, 18(6):33--40, Dec. 2008.Google Scholar
- Intel Corp. Intel 64 and ia-32 architectures software developer's manual volume 1: Basic architecture. http://www.intel.com/assets/pdf/manual/253665.pdf, Mar. 2010.Google Scholar
- E. Ipek, J. Condit, E. B. Nightingale, D. Burger, and T. Moscibroda. Dynamically replicated memory: building reliable systems from nanoscale resistive memories. In ASPLOS 15, Mar. 2010. Google ScholarDigital Library
- J. Jung, Y. Won, E. ki Kim, H. Shin, and B. Jeon. Frash: Exploiting storage class memory in hybrid file system for hierarchical storage. ACM Transactions on Storage, 6(1), 2010. Google ScholarDigital Library
- C. Lamb, G. Landis, J. Orenstein, and D. Weinreb. The ObjectStore database system. Commun. ACM, 34(10):50--63, 1991. Google ScholarDigital Library
- L. Lamport. Proving the correctness of multiprocess programs. IEEE Transactions on Software Engineering, 3(2), Mar. 1977. Google ScholarDigital Library
- D. Lea. A memory allocator. http://gee.cs.oswego.edu/dl/html/malloc.html.Google Scholar
- B. C. Lee, E. Ipek, O. Mutlu, and D. Burger. Architecting phase change memory as a scalable DRAM alternative. In ISCA 36, June 2007. Google ScholarDigital Library
- B. Liskov, A. Adya, M. Castro, M. Day, S. Ghemawat, R. Gruber, U. Maheshwari, A. C. Myers, and L. Shrira. Safe and efficient sharing of persistent objects in Thor. In SIGMOD Conference, pages 318--329, 1996. Google ScholarDigital Library
- D. E. Lowell and P. M. Chen. Free transactions with Rio Vista. In SOSP 16, Oct. 1997. Google ScholarDigital Library
- M. K. McKusick and G. R. Ganger. Soft updates: A technique for eliminating most synchronous writes in the fast filesystem. In Proceedings of FREENIX, June 1999. Google ScholarDigital Library
- M. K. McKusick, W. N. Joy, S. J. Leffler, and R. S. Fabry. Fsck - the unix file system check program. Unix System Manager's Manual - 4.3 BSD Virtual VAX-11 Version, Apr. 1986.Google Scholar
- Microsoft Corp. SQL server 2008 books online: Memory management architecture: Buffer management. http://msdn.microsoft.com/en-us/library/aa337525.aspx.Google Scholar
- C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh, and P. Schwarz. ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans. Database Syst., 17(1):94--162, 1992. Google ScholarDigital Library
- K. E. Moore, J. Bobba, M. J. Moravan, M. D. Hill, and D. A. Wood. Logtm: Log-based transactional memory. In HPCA 12, pages 258--269, Feb. 2006.Google ScholarCross Ref
- MySQL Performance Blog. Tokyo tyrant -- the extras part i : Is it durable? http://www.mysqlperformanceblog.com/2009/11/10/tokyo-tyrant-the-extras-%part-i-is-it-durable/, Nov. 2009.Google Scholar
- Y. Ni, A. Welc, A.-R. Adl-Tabatabai, M. Bach, S. Berkowits, J. Cownie, R. Geva, S. Kozhukow, R. Narayanaswamy, J. Olivier, S. Preis, B. Saha, A. Tal, and X. Tian. Design and implementation of transactional constructs for C/C++. In OOPSLA 23, Oct. 2008. Google ScholarDigital Library
- Numonyx. Omneo P8P PCM 128-Mbit Parallel PCM. www.numonyx.com/Documents/Datasheets/316144_P8P_DS.pdf, Aug. 2010.Google Scholar
- X. Ouyang, D. Nellans, R. Wipfel, D. Flynn, and D. K. Panda. Beyond block I/O: Rethinking traditional storage primitives. In HPCA 17, Feb. 2011. Google ScholarDigital Library
- V. Prabhakaran, L. N. Bairavasundaram, N. Agrawal, H. S. Gunawi, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau. IRON File Systems. In SOSP 20, pages 206--220, Brighton, United Kingdom, Oct. 2005. Google ScholarDigital Library
- M. K. Qureshi, J. Karidis, M. Franceschini, V. Srinivasan, L. Lastras, and B. Abali. Enhancing lifetime and security of PCM-based main memory with start-gap wear leveling. In MICRO 42, Dec. 2009. Google ScholarDigital Library
- M. K. Qureshi, V. Srinivasan, and J. A. Rivers. Scalable high performance main memory system using phase-change memory technology. In ISCA 36, June 2007. Google ScholarDigital Library
- M. Rosenblum and J. K. Ousterhout. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst., 10(1):26--52, Feb. 1992. Google ScholarDigital Library
- Samsung. Samsung ships industry's first multi-chip package with a pram chip for handsets. http://www.samsung.com/us/business/semiconductor/newsView.do?news_id=1%149, Apr. 2010.Google Scholar
- M. Satyanarayanan, H. H. Mashburn, P. Kumar, D. C. Steere, and J. J. Kistler. Lightweight recoverable virtual memory. In SOSP 14, Dec. 1993. Google ScholarDigital Library
- R. Sears and E. Brewer. Stasis: flexible transactional storage. In OSDI 8, Dec. 2008. Google ScholarDigital Library
- V. Singhal, S. V. Kakkad, and P. R. Wilson. Texas: good, fast, cheap persistence for c++. SIGPLAN OOPS Mess., 4(2):145--147, 1993. Google ScholarDigital Library
- Sleepycat Software. Sleepycat software: Berkeley DB database. http://www.sleepycat.com.Google Scholar
- F. G. Soltis. Inside the AS/400. Duke Press, second edition, 1997.Google Scholar
- D. B. Strukov, G. S. Snider, D. R. Stewart, and R. S. Williams. The missing memristor found. Nature, 453:80--83, 2008.Google ScholarCross Ref
- S. C. Tweedie. Journaling the Linux ext2fs File System. In The Fourth Annual Linux Expo, Durham, North Carolina, May 1998.Google Scholar
- C. Villa, D. Mills, G. Barkley, H. Giduturi, S. Schippers, and D. Vimercati. A 45nm 1Gb 1.8V phase-change memory. In ISSCC 2010, pages 270--271, Feb. 2010.Google ScholarCross Ref
- S. J. White and D. J. DeWitt. Quickstore: A high performance mapped object store. VLDB Journal, 4(4):629--673, 1995. Google ScholarDigital Library
- M. Wu and W. Zwaenepoel. eNVy: a non-volatile, main memory storage system. In ASPLOS 6, Oct. 1994. Google ScholarDigital Library
- P. Wu, M. M. Michael, C. von Praun, T. Nakaike, R. Bordawekar, H. W. Cain, C. Cascaval, S. Chatterjee, S. Chiras, R. Hou, M. F. Mergen, X. Shen, M. F. Spear, H. Wang, and K. Wang. Compiler and runtime techniques for software transactional memory optimization. Concurrency and Computation: Practice and Experience, 21(1):7--23, 2009. Google ScholarDigital Library
- P. Zhou, B. Zhao, J. Yang, and Y. Zhang. A durable and energy efficient main memory using phase change memory technology. In ISCA 36, June 2007. Google ScholarDigital Library
Index Terms
- Mnemosyne: lightweight persistent memory
Recommendations
Mnemosyne: lightweight persistent memory
ASPLOS '11New 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, ...
Mnemosyne: lightweight persistent memory
ASPLOS '11New 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, ...
NVM duet: unified working memory and persistent store architecture
ASPLOS '14: Proceedings of the 19th international conference on Architectural support for programming languages and operating systemsEmerging non-volatile memory (NVM) technologies have gained a lot of attention recently. The byte-addressability and high density of NVM enable computer architects to build large-scale main memory systems. NVM has also been shown to be a promising ...
Comments