[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3465084.3467943acmconferencesArticle/Chapter ViewAbstractPublication PagespodcConference Proceedingsconference-collections
extended-abstract

Brief Announcement: Detectable Sequential Specifications for Recoverable Shared Objects

Published: 23 July 2021 Publication History

Abstract

The recent commercial release of persistent main memory by Intel has sparked intense interest in recoverable concurrent objects. Specifying and implementing such objects is technically challenging on current generation hardware precisely because the top layers of the memory hierarchy (CPU registers and cache) remain volatile, which causes application threads to lose critical execution state during a failure. Friedman, Herlihy, Marathe, and Petrank (DISC'17) recently proposed that this difficulty can be alleviated by making the recoverable objects detectable, meaning that during recovery, they can resolve the status of an operation that was interrupted by a failure. In this paper, we formalize this important concept using a detectable sequential specification (DSS), which augments an object's interface with auxiliary methods that threads use to first declare their need for detectability, and then perform detection if needed after a failure. Compared to prior work on this topic, our DSS-based approach is less reliant on assumptions regarding the system, and more flexible in the sense that it allows applications to request detectability on demand. As a proof of concept, we present a detectable recoverable lock-free queue algorithm and evaluate its performance on a multiprocessor equipped with Intel Optane persistent memory. Our queue outperforms the detectable log queue of Friedman, Herlihy, Marthe, and Petrank (PPoPP'18) by up to 1.7x.

Supplementary Material

MP4 File (PODC21-podc063ba.mp4)
PODC 2021 presentation video

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. 2019. Tracking in Order to Recover: Recoverable Lock-Free Data Structures. CoRR, Vol. abs/1905.13600 (2019). arxiv: 1905.13600 http://arxiv.org/abs/1905.13600
[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 on 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]
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.
[8]
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.
[9]
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.
[10]
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.
[11]
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.
[12]
Wojciech Golab and Aditya Ramaraju. 2016. Recoverable mutual exclusion. In Proc. of the 35th ACM Symposium on Principles of Distributed Computing (PODC). 65--74.
[13]
Rachid Guerraoui and Ron R. Levy. 2004. Robust Emulations of Shared Memory in a Crash-Recovery Model. In Proc. of the 24th International Conference on Distributed Computing Systems (ICDCS). 400--407.
[14]
John V. Guttag, James J. Horning, and Jeannette M. Wing. 1985. The Larch Family of Specification Languages. IEEE Software, Vol. 2, 5 (1985), 24--36.
[15]
M. Herlihy and J. M. Wing. 1990. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, Vol. 12, 3 (July 1990), 463--492.
[16]
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.
[17]
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.
[18]
Maged M. Michael and Michael L. Scott. 1996. Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. In Proc. of the 15th ACM Symposium on Principles of Distributed Computing (PODC). 267--275.
[19]
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.
[20]
Andy Rudoff and the Intel PMDK Team. 2020. Persistent Memory Development Kit. https://pmem.io/pmdk/ [last accessed 2/11/2021].
[21]
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.

Cited By

View all
  • (2023)Memento: A Framework for Detectable Recoverability in Persistent MemoryProceedings of the ACM on Programming Languages10.1145/35912327:PLDI(292-317)Online publication date: 6-Jun-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PODC'21: Proceedings of the 2021 ACM Symposium on Principles of Distributed Computing
July 2021
590 pages
ISBN:9781450385480
DOI:10.1145/3465084
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 July 2021

Check for updates

Author Tags

  1. concurrency
  2. detectability
  3. fault tolerance
  4. persistent memory
  5. shared memory

Qualifiers

  • Extended-abstract

Funding Sources

Conference

PODC '21
Sponsor:

Acceptance Rates

Overall Acceptance Rate 740 of 2,477 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)14
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Memento: A Framework for Detectable Recoverability in Persistent MemoryProceedings of the ACM on Programming Languages10.1145/35912327:PLDI(292-317)Online publication date: 6-Jun-2023

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media