In distributed computing, multiple processes interact to solve a problem together. The main model of interaction is the message-passing model, where processes communicate by exchanging messages. Nevertheless, there are several models varying along important dimensions: degree of synchrony, kinds of faults, number of faults... This variety is compounded by the lack of a general formalism in which to abstract these models. One way to bring order is to constrain these models to communicate in rounds. This is the setting of the Heard-Of model, which captures many models through predicates on the messages sent in a round and received on time. Yet, it is not easy to define the predicate that captures a given operational model. The question is even harder for the asynchronous case, as unbounded message delay means the implementation of rounds must depend on details of the model. This paper shows that characterising asynchronous models by heard-of predicates is indeed meaningful. This characterization relies on delivered predicates, an intermediate abstraction between the informal operational model and the heard-of predicates. Our approach splits the problem into two steps: first extract the delivered model capturing the informal model, and then characterize the heard-of predicates that are generated by this delivered model. For the first part, we provide examples of delivered predicates, and an approach to derive more. It uses the intuition that complex models are a composition of simpler models. We define operations like union, succession or repetition that make it easier to derive complex delivered predicates from simple ones while retaining expressivity. For the second part, we formalize and study strategies for when to change rounds. Intuitively, the characterizing predicate of a model is the one generated by a strategy that waits for as much messages as possible, without blocking forever.
翻译:在分布式计算中,多个进程相互作用,共同解决问题。主要的互动模式是信息传递模式,通过交换信息进行沟通。尽管如此,在重要层面存在若干不同模式:同步程度、差错种类、差错数目等。这种差异因缺乏一种概括这些模型的一般形式而更加复杂。带来秩序的方法之一是限制这些模型进行回合交流。这是Cread-of模型的设置,它通过一个回合发送的信息和及时收到的信息的预告来捕捉许多模型。然而,要定义能够捕捉到一个特定操作模式的上游模式并非易事。对于一个不连贯的周期来说,问题就更难了。因为无定义的信息延迟意味着执行回合必须取决于模型的细节。本文表明,通过听到的预言来限制这些模型的杂交性是有意义的。这种定性依赖于交付的预告模型,在非正式操作模型和预知的预告中,我们的方法将问题分为两个步骤:先选一个模型,然后是获取一个简单的周期性模型,然后是生成一个更精确的周期性模型,然后是生成一个更精确的版本。