As shown by Reliable Broadcast and Consensus, cooperation among a set of independent computing entities (sequential processes) is a central issue in distributed computing. Considering $n$-process asynchronous message-passing systems where some processes can be Byzantine, this paper introduces a new cooperation abstraction denoted Context-Adaptive Cooperation (CAC). While Reliable Broadcast is a one-to-$n$ cooperation abstraction and Consensus is an $n$-to-$n$ cooperation abstraction, CAC is a $d$-to-$n$ cooperation abstraction where the parameter $d$ ($1\leq d\leq n$) depends on the run and remains unknown to the processes. Moreover, the correct processes accept the same set of $\ell$ pairs $\langle v,i\rangle$ ($v$ is the value proposed by $p_i$) from the $d$ proposer processes, where $1 \leq \ell \leq d$ and, as $d$, $\ell$ remains unknown to the processes (except in specific cases). Those $\ell$ values are accepted one at a time in different orders at each process. Furthermore, CAC provides the processes with an imperfect oracle that gives information about the values that they may accept in the future. In a very interesting way, the CAC abstraction is particularly efficient in favorable circumstances. To illustrate its practical use, the paper describes in detail two applications that benefit from the abstraction: a fast consensus implementation under low contention (named Cascading Consensus), and a novel naming problem.
翻译:如可靠广播与共识所表明的,一组独立计算实体(顺序进程)间的协作是分布式计算的核心问题。本文针对可能包含拜占庭进程的$n$进程异步消息传递系统,提出了一种称为上下文自适应协作(CAC)的新型协作抽象。可靠广播属于一对$n$的协作抽象,共识属于$n$对$n$的协作抽象,而CAC是一种$d$对$n$的协作抽象——其中参数$d$($1\leq d\leq n$)取决于实际运行且对进程保持未知。此外,正确进程会从$d$个提议进程中接受相同的$\ell$个值对$\langle v,i\rangle$($v$为进程$p_i$所提议的值),这里$1 \leq \ell \leq d$且$\ell$与$d$同样对进程保持未知(特定情况除外)。这些$\ell$个值在不同进程中以相异顺序逐个被接受。值得注意的是,CAC为进程提供了一个不完美的预言机,可揭示未来可能接受的值的信息。特别有趣的是,该抽象在有利环境下能展现出卓越的效率。为说明其实际应用,本文详细描述了两个受益于该抽象的案例:低竞争场景下的快速共识实现(称为级联共识),以及一个新颖的命名问题。