论文标题
分布式参与者系统的可扩展终止检测
Scalable Termination Detection for Distributed Actor Systems
论文作者
论文摘要
自动垃圾收集(GC)可防止某些类型的错误并减少开销的编程。顺序程序的GC技术基于可及性分析。但是,从根集的测试可达到性不足以确定演员是否是垃圾,因为无法到达的演员可以向可及的演员发送信息。取而代之的是,检查终止(有时也称为静止)是足够的:如果Actor当前不处理消息并且将来无法接收消息,则将终止。此外,许多Actor框架为所有参与者提供了对文件I/O或外部存储的访问;在不检查演员的内部代码的情况下,有必要检查演员是否已终止,以确保可以在这些框架中收集垃圾。以前的检测参与者垃圾的算法需要协调机制,例如因果信息传递或对参与者进行突变的非局部监测。这种协调机制会对并发产生不利影响,因此在分布式系统中价格昂贵。我们提出了一种低空的参考清单技术(称为DRL),用于在Actor系统中终止检测。 DRL基于异步的局部快照和演员之间的消息。这使得分散的实现和瞬态网络分区公差。本文提供了对DRL的正式描述,表明所有被确定为垃圾的参与者确实已经终止(安全),并且所有终止的参与者(在某些合理的假设下)最终将被确定(LIVISE)。
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 because 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).