Blizzard: Adding True Persistence to Main Memory Data Structures

Persistent memory (PMEM) devices present an opportunity to retain the flexibility of main memory data structures and algorithms, but augment them with reliability and persistence. The challenge in doing this is to combine replication (for reliability) and failure atomicity (for persistence) with con...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Fernando, Pradeep, Zahka, Daniel, Gavrilovska, Ada, Roy, Amitabha, Dulloor, Subramanya R
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title
container_volume
creator Fernando, Pradeep
Zahka, Daniel
Gavrilovska, Ada
Roy, Amitabha
Dulloor, Subramanya R
description Persistent memory (PMEM) devices present an opportunity to retain the flexibility of main memory data structures and algorithms, but augment them with reliability and persistence. The challenge in doing this is to combine replication (for reliability) and failure atomicity (for persistence) with concurrency (for fully utilizing persistent memory bandwidth). These requirements are at odds due to the sequential nature of replicating a log of updates versus concurrent updates that are necessary for fully leveraging the path from CPU to memory. We present Blizzard -- a fault-tolerant, PMEM-optimized persistent programming runtime. Blizzard addresses the fundamental tradeoff by combining (1) a coupled operations log that permits tight integration of a PMEM-specialized user-level replication stack with a PMEM-based persistence stack, and (2) explicit control over the commutativity among concurrent operations. We demonstrate the generality and potential of Blizzard with three illustrative applications with very different data structure requirements for their persistent state. These use cases demonstrate that with Blizzard, PMEM native data structures can deliver up to 3.6x performance benefit over the alternative purpose-build persistent application runtimes, while being simpler and safer (by providing failure atomicity and replication).
doi_str_mv 10.48550/arxiv.2305.09034
format Article
fullrecord <record><control><sourceid>arxiv_GOX</sourceid><recordid>TN_cdi_arxiv_primary_2305_09034</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2305_09034</sourcerecordid><originalsourceid>FETCH-LOGICAL-a674-a11c7e5aaa9daf454544e20a5de6bf668f63f8fb61cd44a7cc9f33992f5b43f03</originalsourceid><addsrcrecordid>eNotz8tOwzAQhWFvukCFB2BVv0CCE18Ss2opt0qtQGr20cQeV5baFE0cRPv0QEFn8e-O9DF2W4hc1VqLO6Cv-JmXUuhcWCHVFZs_7OP5DOTv-cL72O94QyPyd6QhDgl7hzwd-QZizzd4ONKJP0ICvk00ujQSDtdsEmA_4M1_p6x5fmqWr9n67WW1XKwzMJXKoChchRoArIeg9M8UlgK0R9MFY-pgZKhDZwrnlYLKORuktLYMulMyCDlls7_bC6H9oHgAOrW_lPZCkd_630QM</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Blizzard: Adding True Persistence to Main Memory Data Structures</title><source>arXiv.org</source><creator>Fernando, Pradeep ; Zahka, Daniel ; Gavrilovska, Ada ; Roy, Amitabha ; Dulloor, Subramanya R</creator><creatorcontrib>Fernando, Pradeep ; Zahka, Daniel ; Gavrilovska, Ada ; Roy, Amitabha ; Dulloor, Subramanya R</creatorcontrib><description>Persistent memory (PMEM) devices present an opportunity to retain the flexibility of main memory data structures and algorithms, but augment them with reliability and persistence. The challenge in doing this is to combine replication (for reliability) and failure atomicity (for persistence) with concurrency (for fully utilizing persistent memory bandwidth). These requirements are at odds due to the sequential nature of replicating a log of updates versus concurrent updates that are necessary for fully leveraging the path from CPU to memory. We present Blizzard -- a fault-tolerant, PMEM-optimized persistent programming runtime. Blizzard addresses the fundamental tradeoff by combining (1) a coupled operations log that permits tight integration of a PMEM-specialized user-level replication stack with a PMEM-based persistence stack, and (2) explicit control over the commutativity among concurrent operations. We demonstrate the generality and potential of Blizzard with three illustrative applications with very different data structure requirements for their persistent state. These use cases demonstrate that with Blizzard, PMEM native data structures can deliver up to 3.6x performance benefit over the alternative purpose-build persistent application runtimes, while being simpler and safer (by providing failure atomicity and replication).</description><identifier>DOI: 10.48550/arxiv.2305.09034</identifier><language>eng</language><subject>Computer Science - Distributed, Parallel, and Cluster Computing</subject><creationdate>2023-05</creationdate><rights>http://creativecommons.org/licenses/by/4.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,780,885</link.rule.ids><linktorsrc>$$Uhttps://arxiv.org/abs/2305.09034$$EView_record_in_Cornell_University$$FView_record_in_$$GCornell_University$$Hfree_for_read</linktorsrc><backlink>$$Uhttps://doi.org/10.48550/arXiv.2305.09034$$DView paper in arXiv$$Hfree_for_read</backlink></links><search><creatorcontrib>Fernando, Pradeep</creatorcontrib><creatorcontrib>Zahka, Daniel</creatorcontrib><creatorcontrib>Gavrilovska, Ada</creatorcontrib><creatorcontrib>Roy, Amitabha</creatorcontrib><creatorcontrib>Dulloor, Subramanya R</creatorcontrib><title>Blizzard: Adding True Persistence to Main Memory Data Structures</title><description>Persistent memory (PMEM) devices present an opportunity to retain the flexibility of main memory data structures and algorithms, but augment them with reliability and persistence. The challenge in doing this is to combine replication (for reliability) and failure atomicity (for persistence) with concurrency (for fully utilizing persistent memory bandwidth). These requirements are at odds due to the sequential nature of replicating a log of updates versus concurrent updates that are necessary for fully leveraging the path from CPU to memory. We present Blizzard -- a fault-tolerant, PMEM-optimized persistent programming runtime. Blizzard addresses the fundamental tradeoff by combining (1) a coupled operations log that permits tight integration of a PMEM-specialized user-level replication stack with a PMEM-based persistence stack, and (2) explicit control over the commutativity among concurrent operations. We demonstrate the generality and potential of Blizzard with three illustrative applications with very different data structure requirements for their persistent state. These use cases demonstrate that with Blizzard, PMEM native data structures can deliver up to 3.6x performance benefit over the alternative purpose-build persistent application runtimes, while being simpler and safer (by providing failure atomicity and replication).</description><subject>Computer Science - Distributed, Parallel, and Cluster Computing</subject><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2023</creationdate><recordtype>article</recordtype><sourceid>GOX</sourceid><recordid>eNotz8tOwzAQhWFvukCFB2BVv0CCE18Ss2opt0qtQGr20cQeV5baFE0cRPv0QEFn8e-O9DF2W4hc1VqLO6Cv-JmXUuhcWCHVFZs_7OP5DOTv-cL72O94QyPyd6QhDgl7hzwd-QZizzd4ONKJP0ICvk00ujQSDtdsEmA_4M1_p6x5fmqWr9n67WW1XKwzMJXKoChchRoArIeg9M8UlgK0R9MFY-pgZKhDZwrnlYLKORuktLYMulMyCDlls7_bC6H9oHgAOrW_lPZCkd_630QM</recordid><startdate>20230515</startdate><enddate>20230515</enddate><creator>Fernando, Pradeep</creator><creator>Zahka, Daniel</creator><creator>Gavrilovska, Ada</creator><creator>Roy, Amitabha</creator><creator>Dulloor, Subramanya R</creator><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20230515</creationdate><title>Blizzard: Adding True Persistence to Main Memory Data Structures</title><author>Fernando, Pradeep ; Zahka, Daniel ; Gavrilovska, Ada ; Roy, Amitabha ; Dulloor, Subramanya R</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a674-a11c7e5aaa9daf454544e20a5de6bf668f63f8fb61cd44a7cc9f33992f5b43f03</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2023</creationdate><topic>Computer Science - Distributed, Parallel, and Cluster Computing</topic><toplevel>online_resources</toplevel><creatorcontrib>Fernando, Pradeep</creatorcontrib><creatorcontrib>Zahka, Daniel</creatorcontrib><creatorcontrib>Gavrilovska, Ada</creatorcontrib><creatorcontrib>Roy, Amitabha</creatorcontrib><creatorcontrib>Dulloor, Subramanya R</creatorcontrib><collection>arXiv Computer Science</collection><collection>arXiv.org</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Fernando, Pradeep</au><au>Zahka, Daniel</au><au>Gavrilovska, Ada</au><au>Roy, Amitabha</au><au>Dulloor, Subramanya R</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Blizzard: Adding True Persistence to Main Memory Data Structures</atitle><date>2023-05-15</date><risdate>2023</risdate><abstract>Persistent memory (PMEM) devices present an opportunity to retain the flexibility of main memory data structures and algorithms, but augment them with reliability and persistence. The challenge in doing this is to combine replication (for reliability) and failure atomicity (for persistence) with concurrency (for fully utilizing persistent memory bandwidth). These requirements are at odds due to the sequential nature of replicating a log of updates versus concurrent updates that are necessary for fully leveraging the path from CPU to memory. We present Blizzard -- a fault-tolerant, PMEM-optimized persistent programming runtime. Blizzard addresses the fundamental tradeoff by combining (1) a coupled operations log that permits tight integration of a PMEM-specialized user-level replication stack with a PMEM-based persistence stack, and (2) explicit control over the commutativity among concurrent operations. We demonstrate the generality and potential of Blizzard with three illustrative applications with very different data structure requirements for their persistent state. These use cases demonstrate that with Blizzard, PMEM native data structures can deliver up to 3.6x performance benefit over the alternative purpose-build persistent application runtimes, while being simpler and safer (by providing failure atomicity and replication).</abstract><doi>10.48550/arxiv.2305.09034</doi><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier DOI: 10.48550/arxiv.2305.09034
ispartof
issn
language eng
recordid cdi_arxiv_primary_2305_09034
source arXiv.org
subjects Computer Science - Distributed, Parallel, and Cluster Computing
title Blizzard: Adding True Persistence to Main Memory Data Structures
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-11T23%3A14%3A05IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-arxiv_GOX&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Blizzard:%20Adding%20True%20Persistence%20to%20Main%20Memory%20Data%20Structures&rft.au=Fernando,%20Pradeep&rft.date=2023-05-15&rft_id=info:doi/10.48550/arxiv.2305.09034&rft_dat=%3Carxiv_GOX%3E2305_09034%3C/arxiv_GOX%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