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.
Original language | English (US) |
---|---|
Pages (from-to) | 29-44 |
Number of pages | 16 |
Journal | ACM SIGPLAN Notices |
Volume | 53 |
Issue number | 5 |
DOIs | |
State | Published - Jun 18 2018 |
Externally published | Yes |
Event | 2018 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 → … |
Keywords
- Cycles
- Distributed Garbage Collection
- Distributed Ter-mination Detection
- Phantom Count
- Reference Count
- Reference Graph
- Strong
- Weak
ASJC Scopus subject areas
- Computer Science(all)