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, 1
What 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, 2
What 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 Counting
Where are we?
A B C
Weighted Reference Counting
Memory cell layout
count weight ref
Weighted Reference Counting
Algorithm
128
1286464 3232 96
Weighted Reference Counting
Algorithm
1
1 128 1
1286464
Weighted Reference Counting
Domino effect [Rudalics, 1990]
A B C
1
Weighted Reference Counting
pros:
• 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 Counting
Where are we?
A B C
Indirect Reference Counting
Memory cell layout
copies parent ref
Indirect Reference Counting
Algorithm
A B C
Indirect Reference Counting
inverted 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.
Marktree
Tracing with timestamps
• based on Hughes, 1985
Tracing with timestamps
Algorithm
A m&s B m&s C m&s
Stop & Copy
• based on Rudalics, 1986
rootspace fromspace tospace