A distributed computing system, having a sufficient number of devices and
requiring a sufficiently large number of devices to select any proposal,
can maintain synchronization between its constituent devices and respond
to client requests with as few as two message delays. A leader can
synchronize the devices of the system and establish a safe proposal
number for all current and future steps of the system. Devices can then
receive client requests directly, treating the request as a proposal
having the proposal number determined previously by the leader, and
voting for the proposal. If the client receives an indication from a
least a quorum of devices, where a quorum can be the minimum number of
devices that can be operational at a given time, the client can know that
the request was selected. If two or more clients attempt to request
different functions at approximately the same time, the system may not
select either request, in which case a leader can be requested to
determine if any requests may have been selected, and to reestablish a
safe proposal number. Systems with fewer devices can also implement the
message-delay-reducing algorithm if they can also revert to the standard
Paxos algorithm if an insufficient number of devices are operational.
Such algorithms can be used to provide an efficient method for
determining whether to commit or abort a client transaction.