Reaching Agreement Among k out of n Processes
In agreement problems, each process has an input value and must choose the input of some process (possibly itself) as a decision value. Given n≥ 2 processes and m ≥ 2 possible different input values, we want to design an agreement algorithm that enables as many processes as possible to decide on the same value in the presence of t crash failures. Without communication, when each process simply decides on its input value, at least ⌈ (n-t)/m ⌉ 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.
READ FULL TEXT