skip to main content
10.1145/3524053.3542749acmconferencesArticle/Chapter ViewAbstractPublication PagespodcConference Proceedingsconference-collections
research-article

A Closer Look at Detectable Objects for Persistent Memory

Published: 25 July 2022 Publication History

Abstract

Research on multi-core algorithms is adapting rapidly to the new opportunities and challenges posed by persistent memory. One of these challenges is the fundamental problem of formalizing the behaviour of concurrent objects in the presence of crash failures, and giving precise meaning to the semantics of recovery from such failures. Li and Golab (DISC'21) recently proposed a sequential specification for such recoverable objects, called the detectable sequential specification or DSS. Building on their work, we explore examples of how DSS-based objects can be used by a sample application, and examine more closely the division of labour between the application's environment, the application code, and the recoverable object used by the application. We also propose an alternative formal definition of correctness, called the unified detectable sequential specification (UDSS), that simplifies both the object's interface and the application code. Using a black box transformation, we show how a UDSS-based object can be implemented from one that conforms to Li and Golab's specification. Finally, we present experiments conducted using Intel Optane persistent memory to quantify the performance overhead of our transformation.

References

[1]
Marcos K. Aguilera and S. Frølund. 2003. Strict linearizability and the power of aborting. Technical Report HPL-2003--241. Hewlett-Packard Labs.
[2]
Hagit Attiya, Ohad Ben-Baruch, Panagiota Fatourou, Danny Hendler, and Eleftherios Kosmas. 2020. Tracking in Order to Recover - Detectable Recovery of Lock-Free Data Structures. In Proc. of the 32nd ACM Symposium on Parallel Algorithms and Architectures (SPAA). 503--505.
[3]
Hagit Attiya, Ohad Ben-Baruch, and Danny Hendler. 2018. Nesting-Safe Recoverable Linearizability: Modular Constructions for Non-Volatile Memory. In Proc. of the 37th ACM Symposium on Principles of Distributed Computing (PODC). 7--16.
[4]
Ohad Ben-Baruch, Danny Hendler, and Matan Rusanovsky. 2020. Upper and Lower Bounds on the Space Complexity of Detectable Objects. In Proc. of the 39th ACM Symposium on Principles of Distributed Computing (PODC). 11--20.
[5]
Naama Ben-David, Guy E. Blelloch, Michal Friedman, and Yuanhao Wei. 2019. Delay-Free Concurrency on Faulty Persistent Memory. In Proc. of the 31st ACM Symposium on Parallelism in Algorithms and Architectures (SPAA). 253--264.
[6]
Ryan Berryhill, Wojciech Golab, and Mahesh Tripunitara. 2016. Robust Shared Objects for Non-Volatile Main Memory. In Proc. of the 19th International Conference on Principles of Distributed Systems (OPODIS). 20:1--20:17.
[7]
Trevor Brown and Hillel Avni. 2016. PHyTM: Persistent Hybrid Transactional Memory. Proc. VLDB Endow., Vol. 10, 4 (2016), 409--420.
[8]
Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories. In Proc. of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 105--118.
[9]
Nachshon Cohen, Rachid Guerraoui, and Igor Zablotchi. 2018. The Inherent Cost of Remembering Consistently. In Proc. of the 30th on Symposium on Parallelism in Algorithms and Architectures (SPAA). 259--269.
[10]
Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin C. Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O through byte-addressable, persistent memory. In Proc. of the 22nd ACM Symposium on Operating Systems Principles (SOSP). 133--146.
[11]
Andreia Correia, Pascal Felber, and Pedro Ramalhete. 2018. Romulus: Efficient Algorithms for Persistent Transactional Memory. In Proc. of the 30th on Symposium on Parallelism in Algorithms and Architectures (SPAA). 271--282.
[12]
Andreia Correia, Pascal Felber, and Pedro Ramalhete. 2020. Persistent memory and the rise of universal constructions. In Proc. of the 15th EuroSys Conference. 5:1--5:15.
[13]
Carole Delporte-Gallet, Panagiota Fatourou, Hugues Fauconnier, and Eric Ruppert. 2022. When is Recoverable Consensus Harder Than Consensus?. In Proc. of the 41st ACM Symposium on Principles of Distributed Computing (PODC) .
[14]
Keir Fraser. 2004. Practical Lock-Freedom. Ph.D. Dissertation. University of Cambridge. Computer Laboratory.
[15]
Michal Friedman, Maurice Herlihy, Virendra J. Marathe, and Erez Petrank. 2017. Brief Announcement: A Persistent Lock-Free Queue for Non-Volatile Memory. In Proc. of the 31st International Symposium on Distributed Computing (DISC), Vol. 91. 50:1--50:4.
[16]
Michal Friedman, Maurice Herlihy, Virendra J. Marathe, and Erez Petrank. 2018. A persistent lock-free queue for non-volatile memory. In Proc. of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP). 28--40.
[17]
Wojciech Golab. 2020. The Recoverable Consensus Hierarchy. In Proc. of the 32nd ACM Symposium on Parallelism in Algorithms and Architectures (SPAA). 281--291.
[18]
Wojciech Golab and Aditya Ramaraju. 2016. Recoverable mutual exclusion. In Proc. of the 35th ACM Symposium on Principles of Distributed Computing (PODC). 65--74.
[19]
Maurice Herlihy and Jeannette M. Wing. 1990. Linearizability: A Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems, Vol. 12, 3 (1990), 463--492.
[20]
Joseph Izraelevitz, Terence Kelly, and Aasheesh Kolli. 2016a. Failure-Atomic Persistent Memory Updates via JUSTDO Logging. In Proc. of the 21s International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 427--442.
[21]
Joseph Izraelevitz, Hammurabi Mendes, and Michael L. Scott. 2016b. Linearizability of Persistent Memory Objects Under a Full-System-Crash Failure Model. In Proc. of the 30th International Symposium on Distributed Computing (DISC). 313--327.
[22]
Wook-Hee Kim, Jinwoong Kim, Woongki Baek, Beomseok Nam, and Youjip Won. 2016. NVWAL: Exploiting NVRAM in write-ahead logging. ACM SIGPLAN Notices, Vol. 51, 4 (2016), 385--398.
[23]
Nan Li. 2021. GitHub fork of Persistent Multi-Word Compare-and-Swap (PMwCAS) for NVRAM. https://github.com/lnnn1982/pmwcas
[24]
Nan Li and Wojciech Golab. 2021 a. Detectable Sequential Specifications for Recoverable Shared Objects. In Proc. of the 35th International Symposium on Distributed Computing (DISC, Vol. 209). 29:1--29:19.
[25]
Nan Li and Wojciech Golab. 2021 b. Detectable Sequential Specifications for Recoverable Shared Objects. (2021). https://www.youtube.com/watch?v=fFVwNZZphMI Presentation at the 35th International Symposium on Distributed Computing (DISC'21).
[26]
Mengxing Liu, Mingxing Zhang, Kang Chen, Xuehai Qian, Yongwei Wu, Weimin Zheng, and Jinglei Ren. 2017. DudeTM: Building durable transactions with decoupling for persistent memory. ACM SIGPLAN Notices, Vol. 52, 4 (2017), 329--343.
[27]
Mohammad Moridi, Erica Wang, Amelia Cui, and Wojciech Golab. 2022. DSSQueue. https://git.uwaterloo.ca/wgolab/DSSQueue.git
[28]
Faisal Nawab, Dhruva R. Chakrabarti, Terence Kelly, and Charles B. Morrey III. 2015. Procrastination Beats Prevention: Timely Sufficient Persistence for Efficient Crash Resilience. In Proc. of the 18th International Conference on Extending Database Technology (EDBT). 689--694.
[29]
Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2015. Memory Persistency: Semantics for Byte-Addressable Nonvolatile Memory Technologies. IEEE Micro, Vol. 35, 3 (2015), 125--131.
[30]
Andy Rudoff. 2017. Persistent Memory Programming. login Usenix Mag., Vol. 42, 2 (2017).
[31]
Andy Rudoff and the Intel PMDK Team. 2020. Persistent Memory Development Kit. https://pmem.io/pmdk/ [last accessed 2/11/2021].
[32]
Gal Sela and Erez Petrank. 2021. Durable Queues: The Second Amendment. In Proc. of the 33rd ACM Symposium on Parallel Algorithms and Architectures (SPAA). 385--397.
[33]
Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H Campbell. 2011. Consistent and Durable Data Structures for Non-Volatile Byte-Addressable Memory. In FAST, Vol. 11. 61--75.
[34]
Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: lightweight persistent memory. In Proc. of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 91--104.
[35]
Tianzheng Wang, Justin J. Levandoski, and Per-Åke Larson. 2018. Easy Lock-Free Indexing in Non-Volatile Memory. In Proc. of the 34th IEEE International Conference on Data Engineering (ICDE). 461--472.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ApPLIED '22: Proceedings of the 2022 Workshop on Advanced tools, programming languages, and PLatforms for Implementing and Evaluating algorithms for Distributed systems
July 2022
75 pages
ISBN:9781450392808
DOI:10.1145/3524053
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 July 2022

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. correctness
  3. data structures
  4. fault tolerance
  5. persistent memory

Qualifiers

  • Research-article

Funding Sources

Conference

PODC '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 3 of 4 submissions, 75%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 116
    Total Downloads
  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media