Document Open Access Logo

VBR: Version Based Reclamation

Authors Gali Sheffi, Maurice Herlihy, Erez Petrank



PDF
Thumbnail PDF

File

LIPIcs.DISC.2021.35.pdf
  • Filesize: 2.87 MB
  • 18 pages

Document Identifiers

Author Details

Gali Sheffi
  • Department of Computer Science, Technion, Haifa, Israel
Maurice Herlihy
  • Department of Computer Science, Brown University, Providence, RI, USA
Erez Petrank
  • Department of Computer Science, Technion, Haifa, Israel

Cite AsGet BibTex

Gali Sheffi, Maurice Herlihy, and Erez Petrank. VBR: Version Based Reclamation. In 35th International Symposium on Distributed Computing (DISC 2021). Leibniz International Proceedings in Informatics (LIPIcs), Volume 209, pp. 35:1-35:18, Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2021)
https://doi.org/10.4230/LIPIcs.DISC.2021.35

Abstract

Safe lock-free memory reclamation is a difficult problem. Existing solutions follow three basic methods (or their combinations): epoch based reclamation, hazard pointers, and optimistic reclamation. Epoch-based methods are fast, but do not guarantee lock-freedom. Hazard pointer solutions are lock-free but typically do not provide high performance. Optimistic methods are lock-free and fast, but previous optimistic methods did not go all the way. While reads were executed optimistically, writes were protected by hazard pointers. In this work we present a new reclamation scheme called version based reclamation (VBR), which provides a full optimistic solution to lock-free memory reclamation, obtaining lock-freedom and high efficiency. Speculative execution is known as a fundamental tool for improving performance in various areas of computer science, and indeed evaluation with a lock-free linked-list, hash-table and skip-list shows that VBR outperforms state-of-the-art existing solutions.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Concurrent programming languages
  • Software and its engineering → Concurrent programming structures
  • Theory of computation → Parallel computing models
  • Theory of computation → Concurrent algorithms
  • Software and its engineering → Garbage collection
  • Software and its engineering → Multithreading
Keywords
  • Safe memory reclamation
  • concurrency
  • linearizability
  • lock-freedom

Metrics

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

References

  1. Dan Alistarh, Patrick Eugster, Maurice Herlihy, Alexander Matveev, and Nir Shavit. Stacktrack: An automated transactional approach to concurrent memory reclamation. In Proceedings of the Ninth European Conference on Computer Systems, pages 1-14, 2014. Google Scholar
  2. Dan Alistarh, William Leiserson, Alexander Matveev, and Nir Shavit. Threadscan: Automatic and scalable memory reclamation. ACM Transactions on Parallel Computing (TOPC), 4(4):1-18, 2018. Google Scholar
  3. Maya Arbel-Raviv and Trevor Brown. Harnessing epoch-based reclamation for efficient range queries. ACM SIGPLAN Notices, 53(1):14-27, 2018. Google Scholar
  4. Oana Balmau, Rachid Guerraoui, Maurice Herlihy, and Igor Zablotchi. Fast and robust memory reclamation for concurrent data structures. In Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, pages 349-359, 2016. Google Scholar
  5. 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. Google Scholar
  6. Guy E Blelloch, Phillip B Gibbons, Yan Gu, Charles McGuffey, and Julian Shun. The parallel persistent memory model. In Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, pages 247-258, 2018. Google Scholar
  7. Guy E Blelloch and Yuanhao Wei. Concurrent reference counting and resource management in wait-free constant time. arXiv preprint, 2020. URL: http://arxiv.org/abs/2002.07053.
  8. Anastasia Braginsky, Alex Kogan, and Erez Petrank. Drop the anchor: lightweight memory management for non-blocking data structures. In Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures, pages 33-42, 2013. Google Scholar
  9. Trevor Alexander Brown. Reclaiming memory for lock-free data structures: There has to be a better way. In Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing, pages 261-270, 2015. Google Scholar
  10. Austin T Clements, M Frans Kaashoek, and Nickolai Zeldovich. Scalable address spaces using rcu balanced trees. ACM SIGPLAN Notices, 47(4):199-210, 2012. Google Scholar
  11. Nachshon Cohen. Every data structure deserves lock-free memory reclamation. Proc. ACM Program. Lang., 2(OOPSLA):143:1-143:24, 2018. URL: https://doi.org/10.1145/3276513.
  12. Nachshon Cohen and Erez Petrank. Automatic memory reclamation for lock-free data structures. ACM SIGPLAN Notices, 50(10):260-279, 2015. Google Scholar
  13. Nachshon Cohen and Erez Petrank. Efficient memory management for lock-free data structures with optimistic access. In Proceedings of the 27th ACM symposium on Parallelism in Algorithms and Architectures, pages 254-263, 2015. Google Scholar
  14. Andreia Correia, Pedro Ramalhete, and Pascal Felber. Orcgc: automatic lock-free memory reclamation. In Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 205-218, 2021. Google Scholar
  15. std::memory_order. https://en.cppreference.com/w/cpp/atomic/memory_order. Accessed: 2021-04-19.
  16. David L Detlefs, Paul A Martin, Mark Moir, and Guy L Steele Jr. Lock-free reference counting. Distributed Computing, 15(4):255-271, 2002. Google Scholar
  17. Dave Dice, Maurice Herlihy, and Alex Kogan. Fast non-intrusive memory reclamation for highly-concurrent data structures. In Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management, pages 36-45, 2016. Google Scholar
  18. Aleksandar Dragojević, Maurice Herlihy, Yossi Lev, and Mark Moir. On the power of hardware transactional memory to simplify memory management. In Proceedings of the 30th annual ACM SIGACT-SIGOPS symposium on Principles of distributed computing, pages 99-108, 2011. Google Scholar
  19. Faith Ellen, Panagiota Fatourou, Eric Ruppert, and Franck van Breugel. Non-blocking binary search trees. In Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing, pages 131-140, 2010. Google Scholar
  20. Keir Fraser. Practical lock-freedom. Technical report, University of Cambridge, Computer Laboratory, 2004. Google Scholar
  21. Anders Gidenstam, Marina Papatriantafilou, Håkan Sundell, and Philippas Tsigas. Efficient and reliable lock-free memory reclamation based on reference counting. IEEE Transactions on Parallel and Distributed Systems, 20(8):1173-1187, 2008. Google Scholar
  22. Timothy L Harris. A pragmatic implementation of non-blocking linked-lists. In International Symposium on Distributed Computing, pages 300-314. Springer, 2001. Google Scholar
  23. Thomas E Hart, Paul E McKenney, Angela Demke Brown, and Jonathan Walpole. Performance of memory reclamation for lockless synchronization. Journal of Parallel and Distributed Computing, 67(12):1270-1285, 2007. Google Scholar
  24. Maurice Herlihy. Wait-free synchronization. ACM Transactions on Programming Languages and Systems (TOPLAS), 13(1):124-149, 1991. Google Scholar
  25. Maurice Herlihy. A methodology for implementing highly concurrent data objects. ACM Transactions on Programming Languages and Systems (TOPLAS), 15(5):745-770, 1993. Google Scholar
  26. Maurice Herlihy, Victor Luchangco, Paul Martin, and Mark Moir. Nonblocking memory management support for dynamic-sized data structures. ACM Transactions on Computer Systems (TOCS), 23(2):146-196, 2005. Google Scholar
  27. Maurice Herlihy, Nir Shavit, Victor Luchangco, and Michael Spear. The art of multiprocessor programming. Newnes, 2020. Google Scholar
  28. Maurice P Herlihy and J Eliot B Moss. Lock-free garbage collection for multiprocessors. In Proceedings of the third annual ACM symposium on Parallel algorithms and architectures, pages 229-236, 1991. Google Scholar
  29. 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. Google Scholar
  30. Richard L Hudson and J Eliot B Moss. Sapphire: Copying gc without stopping the world. In Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande, pages 48-57, 2001. Google Scholar
  31. Jeehoon Kang and Jaehwang Jung. A marriage of pointer-and epoch-based reclamation. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 314-328, 2020. Google Scholar
  32. Jonatan Lindén and Bengt Jonsson. A skiplist-based concurrent priority queue with minimal memory contention. In International Conference On Principles Of Distributed Systems, pages 206-220. Springer, 2013. Google Scholar
  33. Paul E McKenney and John D Slingwine. Read-copy update: Using execution history to solve concurrency problems. In Parallel and Distributed Computing and Systems, volume 509518, 1998. Google Scholar
  34. Maged M Michael. High performance dynamic lock-free hash tables and list-based sets. In Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures, pages 73-82, 2002. Google Scholar
  35. Maged M Michael. Safe memory reclamation for dynamic lock-free objects using atomic reads and writes. In Proceedings of the twenty-first annual symposium on Principles of distributed computing, pages 21-30, 2002. Google Scholar
  36. Maged M Michael. Aba prevention using single-word instructions. IBM Research Division, RC23089 (W0401-136), Tech. Rep, 2004. Google Scholar
  37. Maged M Michael. Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Transactions on Parallel and Distributed Systems, 15(6):491-504, 2004. Google Scholar
  38. Maged M Michael and Michael L Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, pages 267-275, 1996. Google Scholar
  39. Adam Morrison and Yehuda Afek. Temporally bounding tso for fence-free asymmetric synchronization. ACM SIGARCH Computer Architecture News, 43(1):45-58, 2015. Google Scholar
  40. Aravind Natarajan and Neeraj Mittal. Fast concurrent lock-free binary search trees. In Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 317-328, 2014. Google Scholar
  41. Ruslan Nikolaev and Binoy Ravindran. Universal wait-free memory reclamation. In Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 130-143, 2020. Google Scholar
  42. Filip Pizlo, Daniel Frampton, Erez Petrank, and Bjarne Steensgaard. Stopless: a real-time garbage collector for multiprocessors. In Proceedings of the 6th international symposium on Memory management, pages 159-172, 2007. Google Scholar
  43. Filip Pizlo, Erez Petrank, and Bjarne Steensgaard. A study of concurrent real-time garbage collectors. ACM SIGPLAN Notices, 43(6):33-44, 2008. Google Scholar
  44. Filip Pizlo, Lukasz Ziarek, Petr Maj, Antony L Hosking, Ethan Blanton, and Jan Vitek. Schism: fragmentation-tolerant real-time garbage collection. ACM Sigplan Notices, 45(6):146-159, 2010. Google Scholar
  45. Pedro Ramalhete and Andreia Correia. Brief announcement: Hazard eras-non-blocking memory reclamation. In Proceedings of the 29th ACM Symposium on Parallelism in Algorithms and Architectures, pages 367-369, 2017. Google Scholar
  46. Ori Shalev and Nir Shavit. Split-ordered lists: Lock-free extensible hash tables. Journal of the ACM (JACM), 53(3):379-405, 2006. Google Scholar
  47. Gali Sheffi, Guy Golan-Gueta, and Erez Petrank. A scalable linearizable multi-index table. In 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS), pages 200-211. IEEE, 2018. Google Scholar
  48. Gali Sheffi, Maurice Herlihy, and Erez Petrank. Vbr: Version based reclamation, 2021. URL: http://arxiv.org/abs/2107.13843.
  49. Ajay Singh, Trevor Brown, and Ali Mashtizadeh. Nbr: neutralization based reclamation. In Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 175-190, 2021. Google Scholar
  50. Daniel Solomon and Adam Morrison. Efficiently reclaiming memory in concurrent search data structures while bounding wasted memory. In Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 191-204, 2021. Google Scholar
  51. Håkan Sundell. Wait-free reference counting and memory management. In 19th IEEE International Parallel and Distributed Processing Symposium, pages 10-pp. IEEE, 2005. Google Scholar
  52. Shahar Timnat, Anastasia Braginsky, Alex Kogan, and Erez Petrank. Wait-free linked-lists. In International Conference On Principles Of Distributed Systems, pages 330-344. Springer, 2012. Google Scholar
  53. Shahar Timnat and Erez Petrank. A practical wait-free simulation for lock-free data structures. ACM SIGPLAN Notices, 49(8):357-368, 2014. Google Scholar
  54. R Kent Treiber. Systems programming: Coping with parallelism. International Business Machines Incorporated, Thomas J. Watson Research Center, 1986. Google Scholar
  55. Yuanhao Wei, Naama Ben-David, Guy E Blelloch, Panagiota Fatourou, Eric Ruppert, and Yihan Sun. Constant-time snapshots with applications to concurrent data structures. In Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 31-46, 2021. Google Scholar
  56. Haosen Wen, Joseph Izraelevitz, Wentao Cai, H Alan Beadle, and Michael L Scott. Interval-based memory reclamation. ACM SIGPLAN Notices, 53(1):1-13, 2018. Google Scholar
  57. Pavel Yosifovich, David A Solomon, and Alex Ionescu. Windows Internals, Part 1: System architecture, processes, threads, memory management, and more. Microsoft Press, 2017. Google Scholar
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