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.
- 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 ScholarDigital Library
- J. Boyland. Alias burying: Unique variables without destructive reads. Software—Practice and Experience, 31(6):533–553, May 2001. Google ScholarDigital Library
- 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 Scholar
- E. Castegren and T. Wrigstad. Types for CAS: Relaxed Linearity with Ownership Transfer. In Nordic Workshop on Programming Theory, 2016.Google Scholar
- E. Castegren and T. Wrigstad. Relaxed linear references for lockfree data structures. In European Conference on Object-Oriented Programming, 2017. To appear.Google Scholar
- S. Clebsch, S. Blessing, J. Franco, and S. Drossopoulou. Ownership and reference counting based garbage collection in the actor world, 2015.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- ISBN 1-58113-383- 9.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- ACM. ISBN 978-1-4503-4317-6.Google Scholar
- K. Fraser. Practical lock-freedom. Technical Report UCAM-CL-TR- 579, University of Cambridge, Computer Laboratory, 2004.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- I. May. Ibm system/370 principles of operation. Publication Number GA22-7000-9, File, (S370-01), 1983.Google Scholar
- 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 ScholarDigital Library
- M. M. Michael and M. L. Scott. Correction of a Memory Management Method for Lock-Free Data Structures. ResearchGate, Mar. 1996.Google Scholar
- 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 ScholarDigital Library
- ACM. ISBN 978-0-89791-800-8.Google Scholar
- S. Oaks. Java Performance: The Definitive Guide. O’Reilly Media, Inc., 1st edition, 2014. ISBN 1449358454, 9781449358457. Google ScholarDigital Library
- F. Pizlo, A. L. Hosking, and J. Vitek. Hierarchical real-time garbage collection. ACM SIGPLAN Notices, 42(7):123–133, 2007. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- R. K. Treiber. Systems Programming: Coping with Parallelism. Technical Report RJ 5118, IBM Almaden Research Center, Apr. 1986.Google Scholar
- 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 ScholarDigital Library
Index Terms
- Type-assisted automatic garbage collection for lock-free data structures
Recommendations
Type-assisted automatic garbage collection for lock-free data structures
ISMM '17We 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 ...
Automatic memory reclamation for lock-free data structures
OOPSLA '15Lock-free data-structures are widely employed in practice, yet designing lock-free memory reclamation for them is notoriously difficult. In particular, all known lock-free reclamation schemes are ``manual'' in the sense that the developer has to ...
Age-based garbage collection
Modern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...
Comments