In agreement problems, each process has an input value and must choose a decision (output) value. Given $n\geq 2$ processes and $m \geq 2$ possible different input values, we want to design an agreement algorithm that enables as many processes as possible to decide on the (same) input value of one of the processes, in the presence of $t$ crash failures. Without communication, when each process simply decides on its input value, at least $\lceil (n-t)/m \rceil$ of the processes are guaranteed to always decide on the same value. Can we do better with communication? For some cases, for example when $m=2$, even in the presence of a single crash failure, the answer is negative in a deterministic asynchronous system where communication is either by using atomic read/write registers or by sending and receiving messages. The answer is positive in other cases.
翻译:在协议问题中,每个进程都有输入值,并且必须选择一个决定(输出)值。考虑到$n\geq 2$和$m\geq 2$可能不同的输入值,我们想设计一个协议算法,使尽可能多的进程能够在出现美元崩溃失败的情况下决定其中一个进程(相同)的输入值。没有通信,当每个进程简单地决定其输入值时,至少保证该过程的$\lcel(n-t)/m\rceil$始终能决定相同的值。我们能否更好地处理通信?例如,在某些情况下,当$m=2$时,即使出现一次崩溃故障时,在一个确定性的自动同步系统中,答案是否定的,因为通信要么是使用原子读/写登记册,要么是发送和接收信息。在其他情况下,答案是肯定的。