A distributed computing system can be operated in a fault tolerant manner
using a collection of auxiliary computing devices and more main computing
devices than the number of faults the system can tolerate. A quorum of
all of the main computing devices can be used. In the event of a failure,
an alternative quorum from a selected set of quorums, comprising at least
one main computing device and some or all of the auxiliary computing
devices, can be used to complete pending operations and to select a new
set of quorums. Alternatively, another state machine, comprising at least
one main computing device and some or all of the auxiliary computing
devices, can select a new quorum comprising the currently operating main
computing devices, and the new quorum can then complete pending
operations and can continue to select proposals using the proposal number
assigned by the other state machine.