TY - GEN
T1 - Concurrent, parallel garbage collection in linear time
AU - Brandt, Steven R.
AU - Krishnan, Hari
AU - Sharma, Gokarna
AU - Busch, Costas
PY - 2014/6/12
Y1 - 2014/6/12
N2 - This paper presents a new concurrent garbage collection algorithm based on two types of reference, strong and weak, to link the graph of objects. Strong references connect the roots to all the nodes in the graph but do not contain cycles.Weak references may, however, contain cycles. Advantages of this system include: (1) reduced processing, nontrivial garbage collection work is only required when the last strong reference is lost; (2) fewer memory traces to delete objects, a garbage cycle only needs to be traversed twice to be deleted; (3) fewer memory traces to retain objects, since the collector can often prove objects are reachable without fully tracing support cycles to which the objects belong; (4) concurrency, it can run in parallel with a live system without "stopping the world;" (5) parallel, because collection operations in different parts of the memory can proceed at the same time. Previous variants of this technique required exponential cleanup time [27, 31], but our algorithm is linear in total time, i.e. any changes in the graph take only O(N) time steps, where N is the number of edges in the affected subgraph (e.g. the subgraph whose strong support is affected by the operations).
AB - This paper presents a new concurrent garbage collection algorithm based on two types of reference, strong and weak, to link the graph of objects. Strong references connect the roots to all the nodes in the graph but do not contain cycles.Weak references may, however, contain cycles. Advantages of this system include: (1) reduced processing, nontrivial garbage collection work is only required when the last strong reference is lost; (2) fewer memory traces to delete objects, a garbage cycle only needs to be traversed twice to be deleted; (3) fewer memory traces to retain objects, since the collector can often prove objects are reachable without fully tracing support cycles to which the objects belong; (4) concurrency, it can run in parallel with a live system without "stopping the world;" (5) parallel, because collection operations in different parts of the memory can proceed at the same time. Previous variants of this technique required exponential cleanup time [27, 31], but our algorithm is linear in total time, i.e. any changes in the graph take only O(N) time steps, where N is the number of edges in the affected subgraph (e.g. the subgraph whose strong support is affected by the operations).
KW - Compilers and runtime systems
KW - Concurrent data structures
KW - Garbage Collection
KW - Parallel algorithms
KW - Parallel programming theory and models
KW - Software for productivity parallel programming
UR - http://www.scopus.com/inward/record.url?scp=84984698605&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84984698605&partnerID=8YFLogxK
U2 - 10.1145/2602988.2602990
DO - 10.1145/2602988.2602990
M3 - Conference contribution
AN - SCOPUS:84984698605
T3 - International Symposium on Memory Management, ISMM
SP - 47
EP - 58
BT - ISMM 2014 - Proceedings of the 2014 ACM SIGPLAN International Symposium on Memory Management
PB - Association for Computing Machinery
T2 - 2014 ACM SIGPLAN International Symposium on Memory Management, ISMM 2014
Y2 - 12 June 2014
ER -