Concurrent Garbage Collection in the Actor Model
Methods of automatically detecting unused and unreachable actors, while essential to a robust and scalable system, are not yet efficient enough to be included in most modern frameworks. A recent success in this direction is the multicore Pony language, which exhibits performance comparable to unburdened actor systems even with garbage collection enabled. However, its reliance on causal message ordering makes it prohibitively expensive to use in a distributed setting.
In this work we show how the causal requirement can be lifted using a low-overhead distributed reference tracking scheme based on object capabilities. By temporarily storing in local memory the references an actor creates, it becomes possible to detect closed and quiescent sets of actors through the aggregation of local snapshots. These snapshots can be collected in any order, concurrently with execution, with no races. This liberates the GC from centralized passive cycle detection and could become a building-block for a new family of non-blocking distributed tracing garbage collectors.
Mon 5 Nov
|13:30 - 14:00|
Janwillem SwalensVrije Universiteit Brussel, Joeri De KosterVrije Universiteit Brussel, Belgium, Wolfgang De MeuterVrije Universiteit BrusselPre-print
|14:00 - 14:30|
|14:30 - 15:00|