Distributed Garbage Collection Algorithms
stefan brunthaler
Overview• Brief Introduction• Reference Counting
• Weighted Reference Counting• Indirect Reference Counting
• Mark & Sweep• Marktree• Tracing with timestamps
• Stop & Copy
Introduction – Definitions, 1What is a distributed system?
“A system in which hardware or software components located at networked computers communicate and coordinate their actions only by message passing.”
--Colouris, 2001
Introduction – Definitions, 2What is a distributed system?
“A distributed system is a collection of independent computers that appear to the users of the system as a single computer.”
--Tanenbaum, 1994
A distributed system:
Introduction – Nomenclature
A B C
local objects:
Introduction – Nomenclature
A B C
global objects:
Introduction – Nomenclature
A B C
export record:
Introduction – Nomenclature
A B C
import record:
Introduction – Nomenclature
A B C
intrasite references:
Introduction – Nomenclature
A B C
intersite references:
Introduction – Nomenclature
A B C
problems: latency
Introduction – Networking
A
B
C
problems: non-causality
Introduction – Networking
A
B
C
Reference Counting• Reference Counting
• Weighted Reference Counting• Indirect Reference Counting
Weighted Reference Counting• proposed independently by [Watson
and Watson, 1987], and [Bevan, 1987]
Weighted Reference CountingWhere are we?
A B C
Weighted Reference CountingMemory cell layout
count weight ref
Weighted Reference CountingAlgorithm
128
1286464 3232
96
Weighted Reference CountingAlgorithm
1
1128 1
1286464
Weighted Reference CountingDomino effect [Rudalics, 1990]
A B C
1
Weighted Reference Countingpros:• no race conditions (latency)
cons:• susceptible to unreliable messaging
• duplicated messages, • message failures.
Indirect Reference Counting• proposed by [Ichisugi and
Yonezawa, 1990], [Rudalics, 1990], and [Piquer, 1991]
Indirect Reference CountingWhere are we?
A B C
Indirect Reference CountingMemory cell layout
copies parent ref
Indirect Reference CountingAlgorithm
A B C
Indirect Reference Countinginverted diffusion tree
2
2 1
0 0 0
1 0
1
Mark & Sweep• Mark & Sweep
• Marktree• Tracing with timestamps
Marktree• after [Hudak and Keller, 1982],• based on on-the-fly garbage
collector as proposed by [Dijkstra et al., 1978],
• instead of recursion uses mark tasks,
• back propagation using uptree tasks,
• tricolor scheme.
Tracing with timestamps• based on Hughes, 1985
Tracing with timestampsAlgorithm
A B Cm&s m&s m&s
Stop & Copy• based on Rudalics, 1986
rootspace fromspace tospace
Danke für Eure Aufmerksamkeit
Fragen?