Recoverable and Detectable Self-Implementations of Swap

Authors Tomer Lev Lehman, Hagit Attiya , Danny Hendler



PDF
Thumbnail PDF

File

LIPIcs.OPODIS.2023.24.pdf
  • Filesize: 0.86 MB
  • 22 pages

Document Identifiers

Author Details

Tomer Lev Lehman
  • Department of Computer Science, Ben Gurion University, Beer Sheva, Israel
Hagit Attiya
  • Department of Computer Science, Technion, Haifa, Israel
Danny Hendler
  • Department of Computer Science, Ben Gurion University, Beer Sheva, Israel

Cite AsGet BibTex

Tomer Lev Lehman, Hagit Attiya, and Danny Hendler. Recoverable and Detectable Self-Implementations of Swap. In 27th International Conference on Principles of Distributed Systems (OPODIS 2023). Leibniz International Proceedings in Informatics (LIPIcs), Volume 286, pp. 24:1-24:22, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2024)
https://doi.org/10.4230/LIPIcs.OPODIS.2023.24

Abstract

Recoverable algorithms tolerate failures and recoveries of processes by using non-volatile memory. Of particular interest are self-implementations of key operations, in which a recoverable operation is implemented from its non-recoverable counterpart (in addition to reads and writes). This paper presents two self-implementations of the swap operation. One works in the system-wide failures model, where all processes fail and recover together, and the other in the independent failures model, where each process crashes and recovers independently of the other processes. Both algorithms are wait-free in crash-free executions, but their recovery code is blocking. We prove that this is inherent for the independent failures model. The impossibility result is proved for implementations of distinguishable operations using interfering functions, and in particular, it applies to a recoverable self-implementation of swap.

Subject Classification

ACM Subject Classification
  • Theory of computation → Shared memory algorithms
Keywords
  • Multi-core algorithms
  • persistent memory
  • non-volatile memory
  • recoverable objects
  • detectablitly

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Marcos K Aguilera and Svend Frølund. Strict linearizability and the power of aborting. Technical Report HPL-2003-241, 2003. Google Scholar
  2. Hagit Attiya, Ohad Ben-Baruch, and Danny Hendler. Nesting-safe recoverable linearizability: Modular constructions for non-volatile memory. In Proceedings of the 2018 ACM Symposium on Principles of Distributed Computing, pages 7-16, 2018. URL: https://doi.org/10.1145/3212734.3212753.
  3. Ohad Ben-Baruch, Danny Hendler, and Matan Rusanovsky. Upper and lower bounds on the space complexity of detectable objects. In Proceedings of the 39th Symposium on Principles of Distributed Computing, pages 11-20, 2020. URL: https://doi.org/10.1145/3382734.3405725.
  4. Naama Ben-David, Guy E Blelloch, Michal Friedman, and Yuanhao Wei. Delay-free concurrency on faulty persistent memory. In The 31st ACM Symposium on Parallelism in Algorithms and Architectures, pages 253-264, 2019. URL: https://doi.org/10.1145/3323165.3323187.
  5. Naama Ben-David, Michal Friedman, and Yuanhao Wei. Survey of persistent memory correctness conditions. arXiv preprint, 2022. URL: https://arxiv.org/abs/2208.11114.
  6. Ryan Berryhill, Wojciech Golab, and Mahesh Tripunitara. Robust shared objects for non-volatile main memory. In 19th International Conference on Principles of Distributed Systems (OPODIS 2015). Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 2016. URL: https://doi.org/10.4230/LIPICS.OPODIS.2015.20.
  7. Dhruva R Chakrabarti, Hans-J Boehm, and Kumud Bhandari. Atlas: Leveraging locks for non-volatile memory consistency. ACM SIGPLAN Notices, 49(10):433-452, 2014. URL: https://doi.org/10.1145/2660193.2660224.
  8. David Yu Cheng Chan and Philipp Woelfel. Recoverable mutual exclusion with constant amortized RMR complexity from standard primitives. In Proceedings of the 39th Symposium on Principles of Distributed Computing, pages 181-190, 2020. URL: https://doi.org/10.1145/3382734.3405736.
  9. Kyeongmin Cho, Seungmin Jeon, and Jeehoon Kang. Practical detectability for persistent lock-free data structures. arXiv preprint, 2022. URL: https://arxiv.org/abs/2203.07621.
  10. Nachshon Cohen, Rachid Guerraoui, and Igor Zablotchi. The inherent cost of remembering consistently. In Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, pages 259-269, 2018. URL: https://doi.org/10.1145/3210377.3210400.
  11. Andreia Correia, Pascal Felber, and Pedro Ramalhete. Romulus: Efficient algorithms for persistent transactional memory. In Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, pages 271-282, 2018. URL: https://doi.org/10.1145/3210377.3210392.
  12. Andreia Correia, Pascal Felber, and Pedro Ramalhete. Persistent memory and the rise of universal constructions. In Proceedings of the Fifteenth European Conference on Computer Systems, pages 1-15, 2020. URL: https://doi.org/10.1145/3342195.3387515.
  13. Tudor David, Aleksandar Dragojevic, Rachid Guerraoui, and Igor Zablotchi. Log-free concurrent data structures. In 2018 USENIX Annual Technical Conference, pages 373-386, 2018. URL: https://www.usenix.org/conference/atc18/presentation/david.
  14. Panagiota Fatourou, Nikolaos D Kallimanis, and Eleftherios Kosmas. The performance power of software combining in persistence. In Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 337-352, 2022. URL: https://doi.org/10.1145/3503221.3508426.
  15. Michael J Fischer, Nancy A Lynch, and Michael S Paterson. Impossibility of distributed consensus with one faulty process. Journal of the ACM (JACM), 32(2):374-382, 1985. URL: https://doi.org/10.1145/3149.214121.
  16. Michal Friedman, Naama Ben-David, Yuanhao Wei, Guy E Blelloch, and Erez Petrank. Nvtraverse: In nvram data structures, the destination is more important than the journey. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 377-392, 2020. URL: https://doi.org/10.1145/3385412.3386031.
  17. Michal Friedman, Maurice Herlihy, Virendra Marathe, and Erez Petrank. A persistent lock-free queue for non-volatile memory. ACM SIGPLAN Notices, 53(1):28-40, 2018. URL: https://doi.org/10.1145/3178487.3178490.
  18. Wojciech Golab. The recoverable consensus hierarchy. In Proceedings of the 32nd ACM Symposium on Parallelism in Algorithms and Architectures, pages 281-291, 2020. URL: https://doi.org/10.1145/3350755.3400212.
  19. Wojciech Golab and Danny Hendler. Recoverable mutual exclusion in sub-logarithmic time. In Proceedings of the ACM Symposium on Principles of Distributed Computing, pages 211-220, 2017. URL: https://doi.org/10.1145/3087801.3087819.
  20. Wojciech Golab and Aditya Ramaraju. Recoverable mutual exclusion. In Proceedings of the 2016 ACM Symposium on Principles of Distributed Computing, pages 65-74, 2016. URL: https://doi.org/10.1145/2933057.2933087.
  21. Rachid Guerraoui and Ron R Levy. Robust emulations of shared memory in a crash-recovery model. In 24th International Conference on Distributed Computing Systems, 2004. Proceedings., pages 400-407. IEEE, 2004. URL: https://doi.org/10.1109/ICDCS.2004.1281605.
  22. Maurice Herlihy. Wait-free synchronization. ACM Transactions on Programming Languages and Systems (TOPLAS), 13(1):124-149, 1991. URL: https://doi.org/10.1145/114005.102808.
  23. Maurice P Herlihy and Jeannette M Wing. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems (TOPLAS), 12(3):463-492, 1990. URL: https://doi.org/10.1145/78969.78972.
  24. Morteza Hoseinzadeh and Steven Swanson. Corundum: Statically-enforced persistent memory safety. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, pages 429-442, 2021. URL: https://doi.org/10.1145/3445814.3446710.
  25. Joseph Izraelevitz, Terence Kelly, and Aasheesh Kolli. Failure-atomic persistent memory updates via justdo logging. ACM SIGARCH Computer Architecture News, 44(2):427-442, 2016. URL: https://doi.org/10.1145/2872362.2872410.
  26. Joseph Izraelevitz, Hammurabi Mendes, and Michael L Scott. Linearizability of persistent memory objects under a full-system-crash failure model. In Distributed Computing: 30th International Symposium, DISC 2016, Paris, France, September 27-29, 2016. Proceedings 30, pages 313-327. Springer, 2016. URL: https://doi.org/10.1007/978-3-662-53426-7_23.
  27. Prasad Jayanti, Siddhartha Jayanti, and Sucharita Jayanti. Durable algorithms for writable ll/sc and cas with dynamic joining. arXiv preprint, 2023. URL: https://arxiv.org/abs/2302.00135.
  28. Prasad Jayanti, Siddhartha Jayanti, and Anup Joshi. Optimal recoverable mutual exclusion using only fasas. In Networked Systems: 6th International Conference, NETYS 2018, Essaouira, Morocco, May 9-11, 2018, Revised Selected Papers, pages 191-206. Springer, 2019. URL: https://doi.org/10.1007/978-3-030-05529-5_13.
  29. Prasad Jayanti, Siddhartha Jayanti, and Anup Joshi. A recoverable mutex algorithm with sub-logarithmic RMR on both CC and DSM. In Proceedings of the 2019 ACM Symposium on Principles of Distributed Computing, pages 177-186, 2019. URL: https://doi.org/10.1145/3293611.3331634.
  30. Prasad Jayanti, Siddhartha Jayanti, and Anup Joshi. Constant RMR recoverable mutex under system-wide crashes. arXiv preprint, 2023. URL: https://arxiv.org/abs/2302.00748.
  31. Prasad Jayanti and Anup Joshi. Recoverable FCFS mutual exclusion with wait-free recovery. In 31st International Symposium on Distributed Computing (DISC 2017). Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 2017. URL: https://doi.org/10.4230/LIPICS.DISC.2017.30.
  32. Prasad Jayanti and Anup Joshi. Recoverable mutual exclusion with abortability. Computing, 104(10):2225-2252, 2022. URL: https://doi.org/10.1007/S00607-022-01105-1.
  33. Daniel Katzan and Adam Morrison. Recoverable, abortable, and adaptive mutual exclusion with sublogarithmic RMR complexity. In 24th International Conference on Principles of Distributed Systems, 2021. URL: https://doi.org/10.4230/LIPICS.OPODIS.2020.15.
  34. Nan Li and Wojciech Golab. Detectable sequential specifications for recoverable shared objects. In 35th International Symposium on Distributed Computing (DISC 2021). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2021. URL: https://doi.org/10.4230/LIPICS.DISC.2021.29.
  35. Virendra Marathe, Achin Mishra, Amee Trivedi, Yihe Huang, Faisal Zaghloul, Sanidhya Kashyap, Margo Seltzer, Tim Harris, Steve Byan, Bill Bridge, et al. Persistent memory transactions. arXiv preprint, 2018. URL: https://arxiv.org/abs/1804.00701.
  36. John M Mellor-Crummey and Michael L Scott. Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Transactions on Computer Systems (TOCS), 9(1):21-65, 1991. URL: https://doi.org/10.1145/103727.103729.
  37. Liad Nahum, Hagit Attiya, Ohad Ben-Baruch, and Danny Hendler. Recoverable and detectable fetch&add. In 25th International Conference on Principles of Distributed Systems (OPODIS 2021). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2022. URL: https://doi.org/10.4230/LIPICS.OPODIS.2021.29.
  38. Faisal Nawab, Joseph Izraelevitz, Terence Kelly, Charles B Morrey III, Dhruva R Chakrabarti, and Michael L Scott. Dalí: A periodically persistent hash map. In 31st International Symposium on Distributed Computing (DISC 2017). Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 2017. URL: https://doi.org/10.4230/LIPICS.DISC.2017.37.
  39. Pedro Ramalhete, Andreia Correia, Pascal Felber, and Nachshon Cohen. Onefile: A wait-free persistent transactional memory. In 2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), pages 151-163. IEEE, 2019. URL: https://doi.org/10.1109/DSN.2019.00028.
  40. Matan Rusanovsky, Hagit Attiya, Ohad Ben-Baruch, Tom Gerby, Danny Hendler, and Pedro Ramalhete. Flat-combining-based persistent data structures for non-volatile memory. In Stabilization, Safety, and Security of Distributed Systems: 23rd International Symposium, SSS 2021, Virtual Event, November 17-20, 2021, Proceedings 23, pages 505-509. Springer, 2021. URL: https://doi.org/10.1007/978-3-030-91081-5_38.
  41. David Schwalb, Markus Dreseler, Matthias Uflacker, and Hasso Plattner. NVC-hashmap: A persistent and concurrent hashmap for non-volatile memories. In Proceedings of the 3rd VLDB Workshop on In-Memory Data Mangement and Analytics, pages 1-8, 2015. URL: https://doi.org/10.1145/2803140.2803144.
  42. Yoav Zuriel, Michal Friedman, Gali Sheffi, Nachshon Cohen, and Erez Petrank. Efficient lock-free durable sets. Proceedings of the ACM on Programming Languages, 3(OOPSLA):1-26, 2019. URL: https://doi.org/10.1145/3360554.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail