TY - GEN
T1 - Concurrent garbage collection in the actor model
AU - Plyukhin, Dan
AU - Agha, Gul
N1 - Funding Information:
This material is based on work supported in part by the National Science Foundation under grant NSF CCF 16-17401. We are indebted to the anonymous referees for providing excellent feedback on the original version of this paper.
Publisher Copyright:
© 2018 Copyright held by the owner/author(s).
PY - 2018/11/5
Y1 - 2018/11/5
N2 - In programming languages where memory may be allocated dynamically, automatic garbage collection (GC) can improve the efficiency of program execution while preventing program errors caused by incorrectly removed memory locations. In actor systems, GC poses some challenges that make it much costlier than in the sequential setting: Besides references from reachable actors, we have to consider inverse references from potentially active actors to reachable actors. One proposal, adopted in the runtime for the actor programming language Pony, uses causal message delivery and a centralized detection algorithm. While this is efficient in a multicore setting, the solution is too expensive for a distributed actor runtime. In this work, we show how the causal order message delivery requirement may be removed. Specifically, we describe a tracing collector of distributed actor garbage with centralized and decentralized variants. Both are guaranteed not to collect any non-garbage actors (safety) and to eventually collect all garbage actors (liveness).
AB - In programming languages where memory may be allocated dynamically, automatic garbage collection (GC) can improve the efficiency of program execution while preventing program errors caused by incorrectly removed memory locations. In actor systems, GC poses some challenges that make it much costlier than in the sequential setting: Besides references from reachable actors, we have to consider inverse references from potentially active actors to reachable actors. One proposal, adopted in the runtime for the actor programming language Pony, uses causal message delivery and a centralized detection algorithm. While this is efficient in a multicore setting, the solution is too expensive for a distributed actor runtime. In this work, we show how the causal order message delivery requirement may be removed. Specifically, we describe a tracing collector of distributed actor garbage with centralized and decentralized variants. Both are guaranteed not to collect any non-garbage actors (safety) and to eventually collect all garbage actors (liveness).
KW - Distributed systems
KW - Garbage collection
UR - http://www.scopus.com/inward/record.url?scp=85059042645&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85059042645&partnerID=8YFLogxK
U2 - 10.1145/3281366.3281368
DO - 10.1145/3281366.3281368
M3 - Conference contribution
AN - SCOPUS:85059042645
T3 - AGERE 2018 - Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control, co-located with SPLASH 2018
SP - 44
EP - 53
BT - AGERE 2018 - Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control, co-located with SPLASH 2018
A2 - Bergenti, Federico
A2 - De Koster, Joeri
A2 - Franco, Juliana
PB - Association for Computing Machinery, Inc
T2 - 8th International Workshop on Programming based on Actors, Agents, and Decentralized Control, AGERE! 2018, co-located with SPLASH 2018
Y2 - 5 November 2018 through 5 November 2018
ER -