A seminal result by Lamport shows that at least $\max\{2e+f+1,2f+1\}$ processes are required to implement partially synchronous consensus that tolerates $f$ process failures and can furthermore decide in two message delays under $e$ failures. This lower bound is matched by the classical Fast Paxos protocol. However, more recent practical protocols, such as Egalitarian Paxos, provide two-step decisions with fewer processes, seemingly contradicting the lower bound. We show that this discrepancy arises because the classical bound requires two-step decisions under a wide range of scenarios, not all of which are relevant in practice. We propose a more pragmatic condition for which we establish tight bounds on the number of processes required. Interestingly, these bounds depend on whether consensus is implemented as an atomic object or a decision task. For consensus as an object, $\max\{2e+f-1,2f+1\}$ processes are necessary and sufficient for two-step decisions, while for a task the tight bound is $\max\{2e+f, 2f+1\}$.
翻译:Lamport的一项开创性结果表明,实现容忍$f$个进程故障、且能在$e$个故障下以两个消息延迟达成决策的部分同步共识,至少需要$\max\{2e+f+1,2f+1\}$个进程。该下界与经典的Fast Paxos协议相匹配。然而,近年来的实用协议(如Egalitarian Paxos)以更少的进程数实现了两步决策,这似乎与下界相矛盾。我们证明,这种差异源于经典下界要求协议在广泛场景下实现两步决策,而其中部分场景在实际中并不相关。我们提出了一种更具实用性的条件,并在此基础上建立了所需进程数的紧致界。有趣的是,这些下界取决于共识是以原子对象还是决策任务的形式实现。对于作为对象的共识,实现两步决策需要$\max\{2e+f-1,2f+1\}$个进程(该条件为充要条件);而对于作为任务的共识,紧致界为$\max\{2e+f, 2f+1\}$。