This article unifies and generalizes fundamental results related to $n$-process asynchronous crash-prone distributed computing. More precisely, it proves that for every $0\leq k \leq n$, assuming that process failures occur only before the number of participating processes bypasses a predefined threshold that equals $n-k$ (a participating process is a process that has executed at least one statement of its code), an asynchronous algorithm exists that solves consensus for $n$ processes in the presence of $f$ crash failures if and only if $f \leq k$. In a very simple and interesting way, the "extreme" case $k=0$ boils down to the celebrated FLP impossibility result (1985, 1987). Moreover, the second extreme case, namely $k=n$, captures the celebrated mutual exclusion result by E.W. Dijkstra (1965) that states that mutual exclusion can be solved for $n$ processes in an asynchronous read/write shared memory system where any number of processes may crash (but only) before starting to participate in the algorithm (that is, participation is not required, but once a process starts participating it may not fail). More generally, the possibility/impossibility stated above demonstrates that more failures can be tolerated when they occur earlier in the computation (hence the title).
翻译:本文统一并推广了与$n$进程异步崩溃型分布式计算相关的基本结果。更确切地说,它证明了:对于每个$0\leq k \leq n$,假设进程故障仅发生在参与进程数量超过预设阈值(该阈值等于$n-k$,其中参与进程指至少执行了一条代码语句的进程)之前,则存在一种异步算法,能够在至多$f$个进程崩溃故障的情况下为$n$个进程解决共识问题,当且仅当$f \leq k$。以一种极为简单且有趣的方式,"极端"情形$k=0$归结为著名的FLP不可能性结果(1985, 1987)。此外,第二个极端情形,即$k=n$,涵盖了E.W. Dijkstra(1965)的著名互斥结论,该结论指出:在异步读/写共享内存系统中,即便任意数量的进程可能在开始参与算法之前(即参与非强制要求,但一旦进程开始参与便不可故障)崩溃,互斥问题仍可为$n$个进程所解决。更一般地,上述可能性/不可能性表明,若故障发生在计算早期,则可容忍更多故障(故以此为标题)。