A Scalable Algorithm for Decentralized Actor Termination Detection

04/11/2021
by   Dan Plyukhin, et al.
0

Automatic garbage collection (GC) prevents certain kinds of bugs and reduces programming overhead. GC techniques for sequential programs are based on reachability analysis. However, testing reachability from a root set is inadequate for determining whether an actor is garbage: Observe that an unreachable actor may send a message to a reachable actor. Instead, it is sufficient to check termination (sometimes also called quiescence): an actor is terminated if it is not currently processing a message and cannot receive a message in the future. Moreover, many actor frameworks provide all actors with access to file I/O or external storage; without inspecting an actor's internal code, it is necessary to check that the actor has terminated to ensure that it may be garbage collected in these frameworks. Previous algorithms to detect actor garbage require coordination mechanisms such as causal message delivery or nonlocal monitoring of actors for mutation. Such coordination mechanisms adversely affect concurrency and are therefore expensive in distributed systems. We present a low-overhead reference listing technique (called DRL) for termination detection in actor systems. DRL is based on asynchronous local snapshots and message-passing between actors. This enables a decentralized implementation and transient network partition tolerance. The paper provides a formal description of DRL, shows that all actors identified as garbage have indeed terminated (safety), and that all terminated actors–under certain reasonable assumptions–will eventually be identified (liveness).

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/21/2020

Scalable Termination Detection for Distributed Actor Systems

Automatic garbage collection (GC) prevents certain kinds of bugs and red...
research
10/13/2021

Efficient Linearizability Checking for Actor-based Systems

Recent demand for distributed software had led to a surge in popularity ...
research
04/13/2023

Communicating Actor Automata – Modelling Erlang Processes as Communicating Machines

Brand and Zafiropulo's notion of Communicating Finite-State Machines (CF...
research
09/30/2018

A Configurable Transport Layer for CAF

The message-driven nature of actors lays a foundation for developing sca...
research
10/28/2020

On Linearizability and the Termination of Randomized Algorithms

We study the question of whether the "termination with probability 1" pr...
research
10/05/2018

Realisability of Pomsets via Communicating Automata

Pomsets are a model of concurrent computations introduced by Pratt. They...
research
07/12/2021

A Scalable Actor-based Programming System for PGAS Runtimes

PGAS runtimes are well suited to irregular applications due to their sup...

Please sign up or login with your details

Forgot password? Click here to reset