Separating lock-freedom from wait-freedom at every level of the consensus hierarchy - Attiya, Hagit; Castañeda, Armando; Hendler, Danny; Perrin, Matthieu (Journal of parallel and distributed computing, 2022)
•Wait-freedom and lock-freedom are two standard progress conditions in concurrent implementations.•For the first time, these progress conditions are shown to be distinct, for any number of processes.•The separation holds for any level of the consensus hierarchy. A long-standing open question has been whether lock-freedom and wait-freedom are fundamentally different progress conditions, namely, can the former be provided in situations where the latter cannot? This paper answers the question in the affirmative, by proving that there are objects with lock-free implementations, but without wait-free implementations—using the same set of objects of any finite coordination power. We precisely define an object called n-process long-lived approximate agreement (n-LLAA), in which two sets of processes associated with two sides, 0 or 1, need to decide on a sequence of increasingly closer outputs. We prove that 2-LLAA has a lock-free linearizable implementation using read/write objects only, and that n-LLAA has a lock-free linearizable implementation using read/write objects and (n−1)-process consensus objects. In contrast, we prove that there is no wait-free linearizable implementation of n-LLAA using read/write objects and specific (n−1)-process consensus objects, called (n−1)-window registers.