Mnemosyne: lightweight persistent memory

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 su...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:SIGPLAN notices 2011-03, Vol.46 (3), p.91-104
Hauptverfasser: Volos, Haris, Tack, Andres Jaan, Swift, Michael M.
Format: Artikel
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 104
container_issue 3
container_start_page 91
container_title SIGPLAN notices
container_volume 46
creator Volos, Haris
Tack, Andres Jaan
Swift, Michael M.
description 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.
doi_str_mv 10.1145/1961296.1950379
format Article
fullrecord <record><control><sourceid>crossref</sourceid><recordid>TN_cdi_crossref_primary_10_1145_1961296_1950379</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>10_1145_1961296_1950379</sourcerecordid><originalsourceid>FETCH-LOGICAL-c125t-51cf092294bbb0f50667f8fb1a1664a13126cef5f83f04d35996de08890d415d3</originalsourceid><addsrcrecordid>eNotz8tKQzEQgOEgFnpsXfcp0s5kMtPMUoo3qLjRdTiXDCi2lRM3fXspPat_98Pn3AphjRh5gyoYVNaoDLTVG9cgc_KIAreuAZLgkSLM3V2t3wBAEFLjmrdjOZzq-ViWbmbtTy33Uxfu8-nxY_fi9-_Pr7uHve8x8J9n7A00BI1d14ExiGwtWYctisQWCYP0xdgSGcSBWFWGAikpDBF5oIXbXL_9eKp1LJZ_x69DO54zQr5I8iTJk4T-AS0mOFo</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Mnemosyne: lightweight persistent memory</title><source>ACM Digital Library Complete</source><creator>Volos, Haris ; Tack, Andres Jaan ; Swift, Michael M.</creator><creatorcontrib>Volos, Haris ; Tack, Andres Jaan ; Swift, Michael M.</creatorcontrib><description>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.</description><identifier>ISSN: 0362-1340</identifier><identifier>EISSN: 1558-1160</identifier><identifier>DOI: 10.1145/1961296.1950379</identifier><language>eng</language><ispartof>SIGPLAN notices, 2011-03, Vol.46 (3), p.91-104</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c125t-51cf092294bbb0f50667f8fb1a1664a13126cef5f83f04d35996de08890d415d3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,776,780,27901,27902</link.rule.ids></links><search><creatorcontrib>Volos, Haris</creatorcontrib><creatorcontrib>Tack, Andres Jaan</creatorcontrib><creatorcontrib>Swift, Michael M.</creatorcontrib><title>Mnemosyne: lightweight persistent memory</title><title>SIGPLAN notices</title><description>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.</description><issn>0362-1340</issn><issn>1558-1160</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2011</creationdate><recordtype>article</recordtype><recordid>eNotz8tKQzEQgOEgFnpsXfcp0s5kMtPMUoo3qLjRdTiXDCi2lRM3fXspPat_98Pn3AphjRh5gyoYVNaoDLTVG9cgc_KIAreuAZLgkSLM3V2t3wBAEFLjmrdjOZzq-ViWbmbtTy33Uxfu8-nxY_fi9-_Pr7uHve8x8J9n7A00BI1d14ExiGwtWYctisQWCYP0xdgSGcSBWFWGAikpDBF5oIXbXL_9eKp1LJZ_x69DO54zQr5I8iTJk4T-AS0mOFo</recordid><startdate>20110317</startdate><enddate>20110317</enddate><creator>Volos, Haris</creator><creator>Tack, Andres Jaan</creator><creator>Swift, Michael M.</creator><scope>AAYXX</scope><scope>CITATION</scope></search><sort><creationdate>20110317</creationdate><title>Mnemosyne</title><author>Volos, Haris ; Tack, Andres Jaan ; Swift, Michael M.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c125t-51cf092294bbb0f50667f8fb1a1664a13126cef5f83f04d35996de08890d415d3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2011</creationdate><toplevel>online_resources</toplevel><creatorcontrib>Volos, Haris</creatorcontrib><creatorcontrib>Tack, Andres Jaan</creatorcontrib><creatorcontrib>Swift, Michael M.</creatorcontrib><collection>CrossRef</collection><jtitle>SIGPLAN notices</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Volos, Haris</au><au>Tack, Andres Jaan</au><au>Swift, Michael M.</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Mnemosyne: lightweight persistent memory</atitle><jtitle>SIGPLAN notices</jtitle><date>2011-03-17</date><risdate>2011</risdate><volume>46</volume><issue>3</issue><spage>91</spage><epage>104</epage><pages>91-104</pages><issn>0362-1340</issn><eissn>1558-1160</eissn><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.</abstract><doi>10.1145/1961296.1950379</doi><tpages>14</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0362-1340
ispartof SIGPLAN notices, 2011-03, Vol.46 (3), p.91-104
issn 0362-1340
1558-1160
language eng
recordid cdi_crossref_primary_10_1145_1961296_1950379
source ACM Digital Library Complete
title Mnemosyne: lightweight persistent memory
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-11T02%3A38%3A11IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Mnemosyne:%20lightweight%20persistent%20memory&rft.jtitle=SIGPLAN%20notices&rft.au=Volos,%20Haris&rft.date=2011-03-17&rft.volume=46&rft.issue=3&rft.spage=91&rft.epage=104&rft.pages=91-104&rft.issn=0362-1340&rft.eissn=1558-1160&rft_id=info:doi/10.1145/1961296.1950379&rft_dat=%3Ccrossref%3E10_1145_1961296_1950379%3C/crossref%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true