What characteristics of an object determine its consensus number? Here we analyze how the consensus power of various objects
changes without changing their functionality, but by placing certain restrictions on the object usage. For example it is shown
that the consensus number of either a bounded-use
queue or
stack is 3 while the consensus number of the long-lived bounded-size and unbounded-size versions of either is 2. Similarly we show
that the consensus number of restricted versions of
Fetch & Add,
Swap and
Set are infinite (
n) while for the unrestricted counterparts it is 2. This paper thus underlines the fact that the consensus number of an object
reflects the amount of coordination required in the object implementation and not by its capacity. That is, the more corners,
broken edges, and other hard limitations placed on an object, the higher its consensus number tends to be.
Keywords: Consensus hierarchy, Common2, Wait-free, Queues, Stacks, Bounded-use, Bounded-size, Long-lived, Fetch&Add, Swap, Set.