Multiparty session types are designed to abstractly capture the structure of communication protocols and verify behavioural properties. One important such property is progress, i.e., the absence of deadlock. Distributed algorithms often resemble multiparty communication protocols. But proving their properties, in particular termination that is closely related to progress, can be elaborate. Since distributed algorithms are often designed to cope with faults, a first step towards using session types to verify distributed algorithms is to integrate fault-tolerance. We extend multiparty session types to cope with system failures such as unreliable communication and process crashes. Moreover, we augment the semantics of processes by failure patterns that can be used to represent system requirements (as, e.g., failure detectors). To illustrate our approach we analyse a variant of the well-known rotating coordinator algorithm by Chandra and Toueg. This technical report presents the proofs and some additional material to extend [30].
翻译:多党会议类型旨在抽象地捕捉通信协议的结构并核实行为特性,其中一个重要的属性就是进步,即没有僵局。分布式算法通常类似于多党通信协议。但是,可以详细证明其特性,特别是与进步密切相关的终止,因为分布式算法通常旨在处理错误,因此,使用会议类型来核实分配式算法的第一步是整合过错容忍。我们将多党会议类型用于应对系统故障,例如不可靠的通信和流程崩溃。此外,我们通过故障模式来补充程序语义,这些模式可以用来代表系统要求(例如故障探测器)。为了说明我们的方法,我们分析了钱德拉和图埃格众所周知的轮换协调员算法的变式。本技术报告提供了证据和一些补充材料以扩展[30]。