Processes in a concurrent system need to coordinate using a shared memory or a message-passing subsystem in order to solve agreement tasks such as, for example, consensus or set agreement. However, often coordination is needed to "break the symmetry" of processes that are initially in the same state, for example, to get exclusive access to a shared resource, to get distinct names or to elect a leader.This paper introduces and studies the family of generalized symmetry breaking (GSB) tasks, that includes election, renaming and many other symmetry breaking tasks. Differently from agreement tasks, a GSB task is "inputless", in the sense that processes do not propose values; the task specifies only the symmetry breaking requirement, independently of the system's initial state (where processes differ only on their identifiers). Among many various characterizing the family of GSB tasks, it is shown that (non adaptive) perfect renaming is universal for all GSB tasks.Key-words: Agreement, Coordination, Decision task, Election, Disagreement, Distributed computability, Renaming, k-Set agreement, Symmetry Breaking, Universal construction, Wait-freedom.
L'univers des tâches "Symmetry Breaking"Résumé : Dans un système réparti, les processus ont besoin de coordination en utilisant un sous-système de mémoire partagée ou de passage de message pour pouvoir résoudre des problèmes tels que le consensus ou l'accord ensembliste. Dans certains cas, la coordination est nécéssaire pour "casser la symétrie" entre des processus qui ont le mêmeétat initial.Ce rapport introduit la famille des tâches "generalized symmetry breaking" (GSB) qui inclut l'élection, le renommage et de nombreuses autres tâches qui cassent la symétrie.
IntroductionProcesses of a distributed system need to coordinate through a communication medium (shared memory or message-passing subsystem) in order to solve various forms of agreement problems. If no coordination is ever needed in the computation, then we have a set of centralized, independent programs rather than a global distributed computation. Agreement coordination is one of the main issues of distributed computing. As an example, consensus is a very strong form of agreement where processes have to agree on the input of some process. It is a fundamental problem in distributed computing, and the cornerstone when one has to implement a replicated state machine, e.g. [20,37,40].Considering a shared memory asynchronous system where processes may fail by crashing, we are interested here in tasks [39], defined by an input/output relation ∆, and where processes start with private input values forming an input vector I and, after communication, individually decide on output values forming an output vector O, satisfying the specification of the considered task, i.e., O ∈ ∆(I). Several specific agreement tasks have been studied in detail, such as consensus [25] and set agreement [21]. Indeed, the importance of agreement is such that it has been studied deeply, from a more general perspective, defining familie...