Distributed garbage collection for general graphs

Steven R. Brandt, Hari Krishnan, Costas Busch, Gokarna Sharma

Research output: Contribution to journalArticlepeer-review

1 Scopus citations


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.

Original languageEnglish (US)
Pages (from-to)29-44
Number of pages16
JournalACM SIGPLAN Notices
Issue number5
StatePublished - Jun 18 2018
Externally publishedYes
Event2018 ACM SIGPLAN International Symposium on Memory Management, ISMM 2018, co-located with the Programming Languages, Design, and Implementation, PLDI 2018 - Philadelphia, United States
Duration: Jun 18 2018 → …


  • Cycles
  • Distributed Garbage Collection
  • Distributed Ter-mination Detection
  • Phantom Count
  • Reference Count
  • Reference Graph
  • Strong
  • Weak

ASJC Scopus subject areas

  • Computer Science(all)


Dive into the research topics of 'Distributed garbage collection for general graphs'. Together they form a unique fingerprint.

Cite this