skip to main content
article

Distributed garbage collection for general graphs

Published:18 June 2018Publication History
Skip Abstract Section

Abstract

We propose a scalable, cycle-collecting, decentralized, reference counting garbage collector with partial tracing. The algorithm is based on the Brownbridge system but uses four different types of references to label edges. Memory usage is O (log n) bits per node, where n is the number of nodes in the graph. The algorithm assumes an asynchronous network model with a reliable reordering channel. It collects garbage in O (E a ) time, where E a is the number of edges in the in- duced subgraph. The algorithm uses termination detection to manage the distributed computation, a unique identifier to break the symmetry among multiple collectors, and a transaction-based approach when multiple collectors conflict. Unlike existing algorithms, ours is not centralized, does not require barriers, does not require migration of nodes, does not require back-pointers on every edge, and is stable against concurrent mutation.

References

  1. Saleh E. Abdullahi and Graem A. Ringwood. Garbage collecting the internet: A survey of distributed garbage collection. ACM Comput. Surv., 30(3):330–373, September 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Stephen M. Blackburn, Richard L. Hudson, Ron Morrison, J. Eliot B. Moss, David S. Munro, and John Zigman. Starting with termination: A methodology for building distributed garbage collection algorithms. Aust. Comput. Sci. Commun., 23(1):20–28, January 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Steven R. Brandt, Hari Krishnan, Gokarna Sharma, and Costas Busch. Concurrent, parallel garbage collection in linear time. In Proceedings of the 13th International Symposium on Memory Management . ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D.R. Brownbridge. Cyclic reference counting for combinator machines. In Jean-Pierre Jouannaud, editor, Functional Programming Languages and Computer Architecture, volume 201 of Lecture Notes in Computer Science, pages 273–288. 1985. Procedure action(sender): if cd = NULLthen return toggle() if old weight < weightthen PhantomizeAll(sender) else if is initiator()then action initiator(sender) else if cd.recv = HEALTHYthen if cd.phantom count = 0 and cd.rcc = 0 and cd.wait count = 0then return to sender(sender) cd = NULL else if cd.recv = PHANTOMthen if not phantom flag() and (old weight < weight or strong count = 0)then PhantomizeAll(sender) else if cd.incrRCC and phantom flag()then ClaimAll() else return to parent() else if cd.recv = RECOVERthen if cd.state, RECOVERthen if strong count > 0then BuildAll(sender) else if phantom flag()then RecoverAll() else PhantomizeAll(sender) else if strong count > 0then BuildAll(sender) else if weak count > 0then PhantomizeAll(sender) else return to parent() else if cd.recv = BUILDthen if phantom flag()then BuildAll(sender) else return to parent() if cd.phantom count = 0then return to sender(sender) cd = NULL else if cd.recv = INFECTEDthen if cd.state, INFECTEDthen if phantom flag()then InfectAll() if ready() and strong count = 0 and weak count = 0 and cd.phantom count = 0then cd.state = DEAD Procedure Phantom Flag(): if cd = NULLthen return FALSE else return cd.state = PHANTOM or RECOVER or INFECTED Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Rodrigo Bruno and Paulo Ferreira. A study on garbage collection algorithms for big data environments. ACM Comput. Surv., 51(1):20:1– 20:35, January 2018. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Sylvan Clebsch and Sophia Drossopoulou. Fully concurrent garbage collection of actors on many-core machines. SIGPLAN Not., 48(10):553– 570, October 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Sukumar Ghosh. Distributed systems: an algorithmic approach. CRC press, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Ionel Gog, Jana Giceva, Malte Schwarzkopf, Kapil Vaswani, Dimitrios Vytiniotis, Ganesan Ramalingam, Manuel Costa, Derek G Murray, Steven Hand, and Michael Isard. Broom: Sweeping out garbage collection from big data systems. In 15th Workshop on Hot Topics in Operating Systems (HotOS XV), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Paul Hudak and Robert M. Keller. Garbage collection and task deletion in distributed applicative processing systems. In Proceedings of the 1982 ACM Symposium on LISP and Functional Programming, LFP ’82, pages 168–178, New York, NY, USA, 1982. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Richard Jones, Antony Hosking, and Eliot Moss. The garbage collection handbook: the art of automatic memory management . Chapman and Hall/CRC, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Hartmut Kaiser, Maciek Brodowicz, and Thomas Sterling. Parallex an advanced parallel execution model for scaling-impaired applications. In Parallel Processing Workshops, 2009. ICPPW’09. International Conference on, pages 394–401. IEEE, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Laxmikant V Kale and Sanjeev Krishnan. Charm++: Parallel programming with message-driven objects. Parallel programming using C+, pages 175–213, 1996.Google ScholarGoogle Scholar
  13. R. Ladin and B. Liskov. Garbage collection of a distributed heap. In Distributed Computing Systems, 1992., Proceedings of the 12th International Conference on, pages 708–715, Jun 1992.Google ScholarGoogle ScholarCross RefCross Ref
  14. Fabrice Le Fessant, Ian Piumarta, and Marc Shapiro. An implementation of complete, asynchronous, distributed garbage collection. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, PLDI ’98, pages 152–161, New York, NY, USA, 1998. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Martin Maas, Tim Harris, Krste Asanović, and John Kubiatowicz. Trash day: Coordinating garbage collection in distributed systems. In 15th Workshop on Hot Topics in Operating Systems (HotOS XV), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Umesh Maheshwari and Barbara Liskov. Collecting cyclic distributed garbage by controlled migration. Distributed Computing, 10(2):79–86, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  17. Umesh Maheshwari and Barbara Liskov. Collecting distributed garbage cycles by back tracing. In Proceedings of the Sixteenth Annual ACM Symposium on Principles of Distributed Computing, PODC ’97, pages 239–248, New York, NY, USA, 1997. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. John McCorquodale, JD de St Germain, S Parker, and CR Johnson. The uintah parallelism infrastructure: A performance evaluation on the sgi origin 2000. High Performance Computing 2001, 2001.Google ScholarGoogle Scholar
  19. David Peleg. Distributed Computing: A Locality-sensitive Approach. Society for Industrial and Applied Mathematics, Philadelphia, PA, USA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. E.J.H. Pepels, M.J. Plasmeijer, C.J.D. van Eekelen, and M.C.J.D. Eekelen. A Cyclic Reference Counting Algorithm and Its Proof . Internal report 88-10. Department of Informatics, Faculty of Science, University of Nijmegen, 1988.Google ScholarGoogle Scholar
  21. David Plainfossé and Marc Shapiro. A survey of distributed garbage collection techniques. In Proceedings of the International Workshop on Memory Management, IWMM ’95, pages 211–249, London, UK, UK, 1995. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. Richer and M. Shapiro. The memory behavior of www, or the www considered as a persistent store. In POS, pages 161–176, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J.D. Salkild. Implementation and analysis of two reference counting algorithms. Master thesis, University College, London, 1987.Google ScholarGoogle Scholar
  24. Gerard Tel and Friedemann Mattern. The derivation of distributed termination detection algorithms from garbage collection schemes. ACM Trans. Program. Lang. Syst., 15(1):1–35, January 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. L. Veiga and P. Ferreira. Asynchronous complete distributed garbage collection. In Parallel and Distributed Processing Symposium, 2005. Proceedings. 19th IEEE International, pages 24a–24a, April 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Distributed garbage collection for general graphs

    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

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!