skip to main content
10.1145/3092255.3092274acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article

Type-assisted automatic garbage collection for lock-free data structures

Published:18 June 2017Publication History

ABSTRACT

We introduce Isolde, an automatic garbage collection scheme designed specifically for managing memory in lock-free data structures, such as stacks, lists, maps and queues. Isolde exists as a plug-in memory manager, designed to sit on-top of another memory manager, and use it's allocator and reclaimer (if exists). Isolde treats a lock-free data structure as a logical heap, isolated from the rest of the program. This allows garbage collection outside of Isolde to take place without affecting the lock-free data structure. Isolde further manages objects allocated on a Isolde heap in a fully concurrent manner, allowing garbage collection to incrementally remove garbage without stopping other threads doing work.

References

  1. D. F. Bacon and V. T. Rajan. Concurrent Cycle Collection in Reference Counted Systems. In ECOOP 2001 — Object-Oriented Programming, pages 207–235. Springer, Berlin, Heidelberg, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Boyland. Alias burying: Unique variables without destructive reads. Software—Practice and Experience, 31(6):533–553, May 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Brandauer, E. Castegren, D. Clarke, K. Fernandez-Reyes, E. B. Johnsen, K. I. Pun, S. L. T. Tarifa, T. Wrigstad, and A. M. Yang. Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore. In Formal Methods for Multicore Programming, pages 1–56. Springer, Cham, June 2015.Google ScholarGoogle Scholar
  4. E. Castegren and T. Wrigstad. Types for CAS: Relaxed Linearity with Ownership Transfer. In Nordic Workshop on Programming Theory, 2016.Google ScholarGoogle Scholar
  5. E. Castegren and T. Wrigstad. Relaxed linear references for lockfree data structures. In European Conference on Object-Oriented Programming, 2017. To appear.Google ScholarGoogle Scholar
  6. S. Clebsch, S. Blessing, J. Franco, and S. Drossopoulou. Ownership and reference counting based garbage collection in the actor world, 2015.Google ScholarGoogle Scholar
  7. N. Cohen and E. Petrank. Automatic Memory Reclamation for Lockfree Data Structures. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2015, pages 260–279, New York, NY, USA, 2015. ACM. ISBN 978-1-4503-3689-5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. L. Detlefs, P. A. Martin, M. Moir, and G. L. Steele, Jr. Lock-free reference counting. In Proceedings of the Twentieth Annual ACM Symposium on Principles of Distributed Computing, PODC ’01, pages 190–199, New York, NY, USA, 2001. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. ISBN 1-58113-383- 9.Google ScholarGoogle Scholar
  10. L. P. Deutsch and D. G. Bobrow. An Efficient, Incremental, Automatic Garbage Collector. Commun. ACM, 19(9):522–526, Sept. 1976. ISSN 0001-0782. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Dice, M. Herlihy, and A. Kogan. Fast Non-intrusive Memory Reclamation for Highly-concurrent Data Structures. In Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management, ISMM 2016, pages 36–45, New York, NY, USA, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. ACM. ISBN 978-1-4503-4317-6.Google ScholarGoogle Scholar
  13. K. Fraser. Practical lock-freedom. Technical Report UCAM-CL-TR- 579, University of Cambridge, Computer Laboratory, 2004.Google ScholarGoogle Scholar
  14. T. E. Hart, P. E. McKenney, A. D. Brown, and J. Walpole. Performance of memory reclamation for lockless synchronization. ResearchGate, 67(12):1270–1285, Dec. 2007. ISSN 0743-7315. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. Huang, W. Dietl, A. Milanova, and M. D. Ernst. Inference and checking of object ownership. In Proceedings of the 26th European Conference on Object-Oriented Programming, ECOOP’12, pages 181– 206, Berlin, Heidelberg, 2012. Springer-Verlag. ISBN 978-3-642- 31056-0. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. I. May. Ibm system/370 principles of operation. Publication Number GA22-7000-9, File, (S370-01), 1983.Google ScholarGoogle Scholar
  17. M. M. Michael. Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects. IEEE Trans. Parallel Distrib. Syst., 15(6):491– 504, June 2004. ISSN 1045-9219. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. M. Michael and M. L. Scott. Correction of a Memory Management Method for Lock-Free Data Structures. ResearchGate, Mar. 1996.Google ScholarGoogle Scholar
  19. M. M. Michael and M. L. Scott. Simple, Fast, and Practical Nonblocking and Blocking Concurrent Queue Algorithms. In Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing, PODC ’96, pages 267–275, New York, NY, USA, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. ACM. ISBN 978-0-89791-800-8.Google ScholarGoogle Scholar
  21. S. Oaks. Java Performance: The Definitive Guide. O’Reilly Media, Inc., 1st edition, 2014. ISBN 1449358454, 9781449358457. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. F. Pizlo, A. L. Hosking, and J. Vitek. Hierarchical real-time garbage collection. ACM SIGPLAN Notices, 42(7):123–133, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Timnat and E. Petrank. A Practical Wait-free Simulation for Lock-free Data Structures. In Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’14, pages 357–368, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2656-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Timothy L. Harris. A Pragmatic Implementation of Non-blocking Linked-Lists. In Proceedings of the 15th International Conference on Distributed Computing, DISC ’01, pages 300–314, London, UK, UK, 2001. Springer-Verlag. ISBN 978-3-540-42605-9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. R. K. Treiber. Systems Programming: Coping with Parallelism. Technical Report RJ 5118, IBM Almaden Research Center, Apr. 1986.Google ScholarGoogle Scholar
  26. J. D. Valois. Lock-free Linked Lists Using Compare-and-swap. In Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing, PODC ’95, pages 214–222, New York, NY, USA, 1995. ACM. ISBN 978-0-89791-710-0. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Type-assisted automatic garbage collection for lock-free data structures

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ISMM 2017: Proceedings of the 2017 ACM SIGPLAN International Symposium on Memory Management
        June 2017
        127 pages
        ISBN:9781450350440
        DOI:10.1145/3092255

        Copyright © 2017 ACM

        Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 18 June 2017

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate72of156submissions,46%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader