No Symmetric Broadcast Abstraction Characterizes -Set-Agreement in Message-Passing Systems
Abstract
This paper explores the relationship between broadcast abstractions and the -set agreement (-SA) problem in crash-prone asynchronous distributed systems. It specifically investigates whether any broadcast abstraction is computationally equivalent to -SA in message-passing systems.
A key contribution of the paper is the delineation of the realm of “meaningful” broadcast abstractions, through the introduction of two new symmetry properties: compositionality and content-neutrality, inspired by the principle of network neutrality. Such preciseness in definition is essential for this paper’s scope, as our aim is not to characterize the computing power of a specific broadcast abstraction, but rather to explore the domain of broadcast abstractions as a whole, in search of a broadcast abstraction with certain characteristics. The paper’s main contribution is the proof that no broadcast abstraction, which is both content-neutral and compositional, is computationally equivalent to -set agreement when , in the crash-prone asynchronous message-passing model. To the best of our knowledge, this result represents the first instance of showing that a coordination problem cannot be expressed by an equivalent broadcast abstraction. It does not establish the absence of an implementation, but rather the absence of a specification that possesses certain properties.
Keywords and phrases:
Agreement problem, Asynchronous system, Broadcast abstraction, Communication abstraction, Compositionality, Message-passing system, Network neutrality, Process crash, k-Set agreement, Wait-free model, Total order broadcastCopyright and License:
2012 ACM Subject Classification:
Theory of computation Distributed computing models ; Computer systems organization Dependable and fault-tolerant systems and networks ; Networks Network propertiesFunding:
This work was partially supported by the French ANR project ByBloS (ANR-20-CE25-0002-01) and the CominLabs Labex project PriCLeSS (ANR-10-LABX-07-81).Editors:
Silvia Bonomi, Letterio Galletta, Etienne Rivière, and Valerio SchiavoniSeries and Publisher:
Leibniz International Proceedings in Informatics, Schloss Dagstuhl – Leibniz-Zentrum für Informatik
1 Introduction
1.1 From Send/Receive to Communication Abstractions
This paper considers distributed systems consisting of a set of asynchronous processes prone to crash failures. These processes communicate by sending and receiving messages across an asynchronous network and must cooperate to achieve a common goal. What makes distributed computing challenging is that the dynamics of the underlying network on which the distributed application operates are beyond the programmer’s direct control. This necessitates treating the environment as a “hidden input” forcing processes to manage uncertainty at runtime [20]. To facilitate the design of advanced algorithms in this unpredictable setting, it is usual to define appropriate communication abstractions, that allow modularity and help mitigate uncertainty by restricting communication patterns that may occur at a higher abstraction level.
In crash-prone asynchronous distributed systems, a significant source of uncertainty stems from the divergent perceptions of the event set (i.e., send and receive events) among different processes. Broadcast abstractions, which enable processes to transmit a message to all participants within the same operation, alleviate this issue by ensuring consistent and reliable communication across different nodes, thereby simplifying the complexity of managing individual send/receive operations and enhance fault tolerance by reducing the impact of node failures. Hence, message broadcasts (at least by correct processes) constitute a set of global events for which all correct processes eventually agree they took place, thereby establishing a system-wide communication foundation that enables cooperation and synchronization.
Another source of uncertainty arises from the disparate order in which different participants may receive messages, leading to varied perceptions of the global state of the system. Several communication abstractions have been defined by enforcing properties on the message delivery order. FIFO and Causal Ordering are examples of such properties at the heart of FIFO-broadcast and Causal-broadcast [3, 21]. These abstractions facilitate the construction of distributed objects, like causal memory in asynchronous message-passing systems [2].
A remark on vocabulary.
Throughout this paper, to avoid confusion, we distinguish between the terms “send” and “receive”, which denote low-level point-to-point communication primitives applied to individual messages, and “broadcast” and “deliver”, which describe the higher-level operations of one-to-all broadcast abstractions. Consequently, the terms “receive” and “deliver” are not used interchangeably in the context of this paper.
1.2 Characterizing Coordination Problems with Broadcast Abstractions
This paper follows the quest of identifying broadcast abstractions that characterize the major fundamental problems in distributed computing. Specifically, we aim to determine broadcast abstractions that are computationally equivalent to particular synchronization problems in a crash-prone asynchronous message-passing system. This equivalence means that a deterministic algorithm based on the broadcast abstraction can resolve the synchronization problem regardless the number of crash failures, and vice versa.
A well-known such characterization is the equivalence between Total Order Broadcast and the consensus problem [6]. Consensus is a fundamental problem of distributed computing, that provides processes with a single operation, denoted . This operation allows each process to propose a value and decide on a value. The defining properties of this problem are as follows: if a process invokes and does not crash, it will decide on a value (termination); no two processes will decide on different values (agreement); and the decided value must have been proposed by a process (validity). One of the primary practical applications of consensus is to maintain consistency across replicated machines in a message-passing system. However, State Machine Replication (SMR) [23] typically builds on an intermediate communication abstraction, the well-known and powerful Total Order Broadcast abstraction [18]. This abstraction ensures that the order of message delivery is consistent across all processes.
The consensus problem is famously unsolvable in an asynchronous distributed system, even under the assumption that at most one process may crash [10]. The same holds for Total Order Broadcast. Indeed, both abstractions are computationally equivalent: on the one hand, Total Order Broadcast allows an easy implementation of a consensus object; on the other hand, it can be implemented using consensus objects. In a sense, Total Order Broadcast precisely “characterizes” the essence of the consensus problem. In a similar vein, Mutual Broadcast was recently proposed as a broadcast abstraction equivalent to read/write atomic registers [8]. Moreover, Pair Broadcast characterizes the computational power of both test-and-set and consensus between two processes [9]. Such characterizing broadcast abstractions are instrumental for understanding the fundamentals of distributed computing problems by reducing their complexity into a logical property about the order in which different processes perceive the global events (a.k.a. broadcast invocations) occurring in the system.
1.3 On the -Set Agreement Side
Specifically, this paper delves into characterizing the -set agreement problem (-SA), a generalization of consensus introduced by S. Chaudhuri in [7]. In -SA, the agreement property is weakened as follows: processes are allowed to collectively decide up to different values. Here, represents the maximum disagreement in the number of different values that can be decided. The smallest value corresponds to consensus. As increases, the problem becomes less constrained and may become easier to solve. However, it still embodies numerous complexities and challenges of distributed systems. It remains insoluble in a crash-prone asynchronous system when , where is the maximum number of processes in the system that may crash [4, 12, 22].
The exploration of a broadcast abstraction that characterizes -SA was initiated in a work dedicated to the shared-memory model, which proposed -Bounded Order Broadcast (-BO Broadcast in short) [13]. The -BO Broadcast abstraction limits the disagreement on the message delivery order among processes. Specifically, its ordering property asserts that every set of messages contains two messages delivered in the same order by all processes. In the special case where , it boils down to Total Order Broadcast.
In crash-prone asynchronous systems where processes additionally have access to a shared memory composed of atomic read/write registers, -BO Broadcast is computationally equivalent to -set agreement. However, this equivalence in shared memory does not inherently translate to message-passing systems. Indeed, although -BO broadcast can be used to solve -set agreement on its own, it remains unproven whether it can be implemented using solely -set agreement objects and send/receive operations. While consensus is strong enough to emulate atomic registers in a message-passing system, -set agreement, for , is unable to emulate shared memory. Indeed, it has been proved that on one hand, -SA and a problem called the -simultaneous-agreement are equivalent in shared memory systems [1], and on the other hand, the -simultaneous-agreement problem is harder than -SA in message-passing systems where a shared memory emulation is not possible [5]. A corollary of this paper is that the implementation of -BO broadcast on top of -SA is not feasible in message-passing systems.
Problem Statement.
Consequently, the existence of a broadcast abstraction that precisely characterizes -set agreement in message-passing systems remains uncertain. This paper investigates the following question: Does there exist a broadcast abstraction computationally equivalent to -set agreement in crash-prone asynchronous message-passing systems?
1.4 Contributions
Introducing symmetry properties.
A simplistic approach to the discussed question might propose the following ordering property: “At most distinct messages can be delivered as the first messages by the processes.” Indeed, on the one hand, a -SA object can select the set of messages eligible for initial delivery; and on the other hand, -SA can be trivially solved by broadcasting all proposed values and deciding on the first delivered ones, hence establishing equivalence.
However, such a solution is deemed “unsatisfactory”, as an instance of this broadcast abstraction would effectively solve -SA once, before the ordering property becomes meaningless. Hence, an iterative resolution of -SA would necessitate a distinct broadcast instance for each -SA object implemented. This requirement deviates from the traditional model of interaction with message-passing systems, where a communication abstraction serves as a system-wide service shared among multiple algorithms for solving higher-level tasks. In contrast, the proposed solution discriminates among messages, specifically restricting the specified ordering property to only the initial messages. This restriction violates the principle of “network neutrality,” which advocate for equal treatment of all messages [24]. By doing so, this limitation undermines the ability to construct modular higher-level systems composed of independent and composable components.
Hence, before delving into our main problem statement, it is necessary to properly define the research space by clarifying another important question: What constitutes a broadcast abstraction? A major contribution of this article is the introduction of two symmetry properties drawing inspiration from the principle of network neutrality: compositionality and content-neutrality. Compositionality ensures that a broadcast abstraction does not discriminate based on system-wide knowledge that would be inaccessible to individual components built upon it. This property effectively prevents the scenario described in our previous example and allows for the construction of composable applications. Content-neutrality ensures that the behavior of a broadcast abstraction does not depend on the content of the messages.
It is important to note that the principle of network neutrality prohibits discrimination based on other aspects, such as the identity of message emitters or recipients. We will not explore these aspects in this paper because they are not pertinent to our argument concerning -set agreement. We leave as future work the investigation of whether such properties impact the characterization of other synchronization problems within the framework of broadcast abstractions.
A Non-existence Result.
Having defined what constitutes an appropriate broadcast abstraction, we are now equipped to address our problem statement, to which we provide a negative answer: we demonstrate that no broadcast abstraction, which is both content-neutral and compositional, is computationally equivalent to -SA for in a crash-prone asynchronous message-passing system. To the best of our knowledge, this research presents the first instance where a coordination problem has been proven to lack an equivalent broadcast abstraction.
Paper Organization.
The remainder of this paper is organized as follows. Section 2 delineates the crash-prone asynchronous message-passing distributed computing model pertinent to our results. Subsequently, Section 3 defines permissible broadcast abstractions, introducing the novel symmetry properties. Section 4 then establishes that no content-neutral and compositional broadcast abstraction is computationally equivalent to -set agreement for . Finally, Section 5 concludes the paper.
2 The Asynchronous Crash-Prone Message-Passing Model
The computing model is the classical asynchronous crash-prone message-passing model.
Process Model.
The computing model consists of a set of sequential processes denoted . Each process operates asynchronously, meaning it progresses at its own speed, which is arbitrary, unknown to other processes, and may vary through time. A process may halt prematurely (crash failure) but executes its local algorithm correctly until it possibly crashes. We do not assume any bound on the number of processes that may crash, hence . A process that crashes in a run is said to be faulty. Conversely, a process is called correct or non-faulty if it does not crash.
Communication Model.
Communication between each pair of processes occurs through two uni-directional channels, one for each direction. Consequently, the network is complete: any process can directly send a message to any process (including itself). Each channel is reliable (free from loss, corruption, or message creation), not necessarily FIFO (First-In/First-Out), and asynchronous (messages have finite but unbounded transit times). It is important to note that, due to asynchrony in processes and message delivery, no process can ascertain whether another process has crashed or is merely slow. A process invokes the operation “” to send a message whose content is to . The event “” occurs at upon receiving a message whose content is from . Although messages may share content, each sent message is unique. By a slight abuse of language, when the distinction between a message and its content is immaterial, we say that “a process sends (resp. receives) a message ” when sends or receive a message whose content is . The communication channels are governed by the following properties:
- SR-Validity.
-
If the event “” occurs at , then has indeed invoked the operation “”.
- SR-No-Duplication.
-
No process receives the same message more than once.
- SR-Termination.
-
If a process sends a message to a correct process , then will eventually receive from .
Notation.
The acronym denotes the described Crash-prone Asynchronous Message-Passing model without additional computational power. represents enhanced with the additional computational power denoted by . For instance, denotes the model in which processes have access to as many instances of the -set agreement object as needed. Similarly, if represents a broadcast abstraction, then refers to the model in which processes can broadcast and deliver messages via the abstraction .
Execution.
An execution is a sequence of steps, each represented as a pair , where represents a process, and is an action occurring at . These actions can be local computations, the invocation of primitives (such as send), the triggering of local events (including message receptions), as well as invocations and responses of high-level operations as specified in the enriching hypothesis . Examples of such high-level operations include proposing or deciding on a value in a -SA object.
We define an execution as being admitted by the model if it satisfies several criteria: it must adhere to the three properties of the communication channels, namely SR-Validity, SR-No-Duplication, and SR-Termination; it must conform to all properties specified by and the high-level abstractions it provides (for example, if -set agreement objects are available, they should verify the -SA-Validity, -SA-Agreement and -SA-Termination properties defined in Section 4.1); and it must be well-formed with respect to the algorithm it executes, as delineated by the following definition.
Definition 1 (Well-Formed Executions).
Consider , a deterministic algorithm that implements a high-level abstraction within the model. An execution is deemed Well-Formed with respect to if it fulfills the following conditions:
-
Only processes labeled from to take actions in ;
-
A process never invokes an operation of before returning from its previous invocations;
-
The actions undertaken by any process between the invocation of an operation on and its corresponding response (if one exists) must align with the actions specified by .
Given a high-level abstraction (for example a broadcast abstraction), we say that an execution is admitted by if it is admitted by the model .
3 Defining Admissible Broadcast Abstractions
3.1 Interface of broadcast abstractions
A broadcast abstraction denoted as , enables correct processes to broadcast messages that are guaranteed to be delivered at least to all correct processes. Consequently, all broadcast abstractions share the same interface, comprising a single operation named broadcast and an event called deliver.
A process invokes the operation “” to utilize for broadcasting a message whose content is . This is referred to as -broadcasting a message whose content is . Subsequently, the event “” might be triggered at some processes , leading us to say that -delivers a message from , whose content is . Analogous to the send/receive interface, it is assumed that each broadcast message is unique, regardless of having identical content. However, for the seek of readability, we amalgamate a message and its content whenever the distinction is immaterial. The set of all messages that can be broadcast during an execution is denoted by . The following properties must be verified by all broadcast abstractions.
- BC-Validity.
-
If a process -delivers from , then it is guaranteed that has previously -broadcast .
- BC-No-Duplication.
-
A process will not -deliver the same message more than once.
- BC-Local-Termination.
-
If a correct process invokes , it will eventually return from this invocation.
- BC-Global-CS-Termination.
-
If a correct process -broadcasts , then all correct processes will eventually -deliver .
The first two properties mentioned are classical safety properties and share the same definitions as their send/receive counterparts. The third property is a classical liveness property. It is important to note that the BC-Global-CS-Termination property only applies to correct processes. (The abbreviation “CS”, standing for correct sender, emphasizes that this property is contingent on the sender’s correctness.) Consequently, if a process crashes during its execution of , it is permissible for some processes to deliver while others do not, unless otherwise specified. This specification choice is intentionally made to allow for flexible definitions of liveness properties in broadcast abstractions.
In particular, the most basic broadcast abstraction that can be defined, only verifies the four properties defined above. In the model, its implementation involves simply sending messages to all participants. For this reason, it is commonly referred to as Send-To-All Broadcast.
Remark on Expressiveness.
Set-Constrained-Delivery Broadcast (SCD Broadcast) [14] and its extension -SCD Broadcast [13] are two examples of broadcast abstractions whose specification slightly deviate from the propose interface. Indeed, these abstractions deliver messages not individually, but within unordered sets of messages, hence the name “SCD”. While it is easy to generalize the definitions and the proofs to accommodate this particularity, we have chosen not to pursue this generalization for the sake of clarity and simplicity.
A local ordering property.
When considered together, the BC-Validity and BC-Global-CS-Termination properties ensure that a step executed by a correct process is always followed by a step . In a similar vein, the BC-Local-Termination property guarantees that the -broadcasting step is consistently succeeded by . However, there is no inherent order between the delivery of its own message by , and returning from its invocation. Once again, this specification choice is deliberately made to accommodate flexible definitions of broadcast abstractions. For instance, certain abstractions may require that returns immediately, or they may wait until the broadcast message has been delivered, while others may delegate the decision to the implementation. Nevertheless, it is occasionally beneficial to reason based on a fixed total order among the three events. Adopting the terminology suggested in [8], we augment all broadcast abstractions with a mix-in , defined as: . For every message -broadcast by each correct process , the following three steps occur sequentially: , followed by , and then .
3.2 Symmetry Properties of Broadcast Abstractions
Broadcast abstractions can be characterized by additional predicates on the set of executions they admit. Typically, these predicates fall into two categories. On one hand, liveness predicates ensure message delivery in scenarios not covered by Send-To-All Broadcast. Examples of this include the definitions of Reliable Broadcast and Uniform Reliable Broadcast [11]. On the other hand, safety predicates concern the relative order in which processes deliver messages. Examples in this category are FIFO Broadcast, Causal Broadcast [3, 21], Mutual Broadcast [8], Pair Broadcast [9], -Bounded Order Broadcast [13], and Total Order Broadcast [18].
As highlighted in the Introduction, not all predicates are equally appropriate for the design of a broadcast abstraction. In this section, we introduce two novel symmetry properties inspired by the broader principle of “network neutrality”. Network neutrality advocates, among other tenets, that network services should not discriminate based on the content, sender, or usage of the messages they transmit. While concerns regarding network neutrality often arise in discussions about non-functional aspects of message routing, they hold significant relevance for the functional design of broadcast abstractions. Within this framework, we interpret network neutrality to include two essential symmetry properties: Compositionality and Content Neutrality. These properties assert that the broadcast abstraction should impartially treat all messages, irrespective of their usage or content.
Compositionality.
Building upon the broadcast described in the Introduction, one might propose characterizing iterated -SA using an abstraction -Stepped Broadcast, characterized by the following ordering property: “for each , define as the set containing the message broadcast by each process; then there are at most messages such that some process delivers before any other message in ”. Now, the ordering of messages within each set could determine the set of values decided on a sequence of -SA objects, and conversely, thereby establishing equivalence.
However, since the ordering property only governs specific sets of messages, it imposes an overly precise communication pattern (lock-step pattern), restricting its utility for constructing modular higher-level systems. Consider, for instance, a system composed of two modules built upon the same service that provides this broadcast abstraction: the iterated -SA algorithm described above and a messaging service utilizing only the Send-To-All capabilities of -Stepped Broadcast. Each application employs only a distinct subset of the system’s messages, so the messages used by the messaging service interfere with the communication pattern followed by the iterated -SA algorithm. Unless a global counter, shared between the two applications, is used to track the number of broadcast messages, the modules cannot fully benefit from the offered ordering property. This limitation hinders their independent design and composition.
Compositionality is the property required for the implementation of composable algorithms or applications on top of a broadcast abstraction. Each higher-level construction uses only a subset of the messages broadcast at the lower level. Compositionality ensures that each of these message sets maintains the same ordering properties as those of the entire message set. This is achieved by requiring that the restriction of an admissible execution to any subset of its messages remains an admissible execution.
Definition 2 (Compositionality).
A broadcast abstraction is compositional if, for all executions admissible by , and for any set of messages , the restriction of onto the messages of is also admissible by .
To exemplify the compositionality property, let us demonstrate that -BO Broadcast is compositional. Indeed, its ordering property is defined by a predicate that must be satisfied by any set of messages. Specifically, stipulates that if contains at least messages, then at least two of these messages must be delivered in the same order by all processes. Consider an execution admissible by -BO Broadcast, with its set of sent messages denoted as . For any subset of these messages, every subset of is also a subset of , ensuring is satisfied, which is the condition imposed by compositionality. This logical framework can be applied to all broadcast abstractions defined by a predicate on the relative order of broadcast and deliver events, independent of the context of the complete execution. Notably, this encompasses all broadcast abstractions mentioned in the Introduction and, to the best of our knowledge, all broadcast abstractions currently described in the literature.
Conversely, the limitations of compositionality can be highlighted by revisiting our initial counter-example involving -Stepped Broadcast. Consider an execution where two processes, and , engage in the -Stepped-broadcasting of two messages each: and . In , delivers the messages in this order. Simultaneously, delivers the sequence . Although both processes deliver before and before , conforming to the -stepped predicate applied to the sets and , the execution’s restriction to the subset fails to maintain this order. This issue arises because the definition quantifies over the sequence number of the broadcast messages, which is only contextually relevant within the full scope of the execution and varies when subsets of messages are considered.
Content Neutrality.
The second property asserts that the defining predicates of a broadcast abstraction should be applicable based solely on the occurrence of broadcast and delivery events during an execution, independent of the message’s content. Hence, if some messages get substituted by other within an execution, it should not hinder the admissibility of the execution. Content neutrality then stipulates that an admissible execution must remain admissible even when some of its messages are replaced.
Definition 3 (Content-Neutrality).
A broadcast abstraction is content-neutral if, for all executions admissible by , and all injective endofunctions on the set of messages, the execution obtained by replacing all messages by in , is also admissible by .
It is important to note that while all broadcast abstractions mentioned in the Introduction adhere to the content-neutrality property, this is not necessarily true for all broadcast abstractions found in the literature. For instance, Generic Broadcast [17] supposes that the messages it transmits encapsulate a command, i.e., an operation invocation on a replicated state machine implemented using the broadcast. In the vein of Generalized Paxos [16], processes only need to agree on a common delivery order for pairs of non-commuting commands, as executing commuting commands in different orders does not compromise the consistency of the implemented data structure. However, specifying such a broadcast necessitates differentiating between messages, which violates content neutrality.
Returning to the present paper, it would be straightforward to propose a broadcast abstraction equivalent to -set agreement that is not content-neutral. For example, one could enforce an ordering property that only applies to messages of a special type , where uniquely identifies a -SA object and is a value proposed to . This would require that, for each , at most distinct messages of the form are delivered first by any process. In the following section, we focus exclusively on content-neutral broadcast abstractions.
4 On Characterizing -Set Agreement
Having defined what constitutes a symmetric broadcast abstraction, we are now equipped to address our problem statement, to which we provide a negative answer: we demonstrate that no broadcast abstraction, which is both content-neutral and compositional, is computationally equivalent to -set agreement for in an asynchronous message-passing system where any number of processes may crash. It is clear that for , -SA boils down to consensus, which is characterized by Total Order Broadcast. Conversely, for , -set agreement can be trivially solved without any communication, rendering it equivalent to Send-To-All Broadcast in a message-passing system. As previously mentioned in the Introduction, shared memory can be emulated when , in which case -SA is equivalent to -BO Broadcast. Furthermore, -SA can be solved for certain values of and (e.g. when ), rendering it equivalent to Send-To-All Broadcast. This paper does not presuppose a maximum number of crash failures, implying that any process may crash (i.e ).
We begin by recalling the definition of -set agreement in Section 4.1. The ensuing proof is structured as a reductio ad absurdum. We hypothesize the existence of a broadcast abstraction satisfying the aforementioned conditions. Two deterministic reduction algorithms are then considered: , which implements -set agreement in the model , and , which implements in the model . For any , Section 4.2 constructs an execution (as defined in Definition 4 and illustrated on Figure 1) of , wherein each process -delivers of its own messages before any messages from other processes. Subsequently, in Section 4.3, we demonstrate that sufficiently large values of inhibit from effectively resolving -set agreement, thereby leading to a contradiction. Due to space constraints, the proofs of the lemmas are provided in the appendix.
4.1 Definition of -Set Agreement
-Set agreement, first introduced by S. Chaudhuri in [7] (refer to [19] for a comprehensive survey of -set agreement in various contexts), was conceptualized to analyze the relationship between the maximum number of allowable process failures () and the feasible degree of agreement () among processes. Here, a lower value of signifies a higher degree of agreement, with the ultimate agreement being , which corresponds to consensus.
The -Set agreement problem is a one-shot agreement problem that equips processes with a singular operation, denoted . When a process invokes on a -SA object , it is said to “propose the value to ”. This operation yields a return value , at which point the invoking process is described as “deciding on ”, and “ becomes a decided value”. In other words, the steps and are interpreted as synonymous. It is a standard assumption that each process is limited to a single invocation of on any given -SA object, ensuring the problem’s one-shot nature. -Set agreement is defined by the following properties.
- -SA-Validity.
-
If a process decides a value , then was proposed by some process.
- -SA-Agreement.
-
No more than distinct values are decided upon by the processes.
- -SA-Termination.
-
Every non-faulty process that invokes eventually decides.
4.2 Definition of the adversarial scheduler
For brevity in this subsection, we pose and . Additionally, we postulate the existence of a deterministic algorithm that implements a certain broadcast abstraction within the model . The argument is then generalized to the case where in the proof of the main theorem. This is achieved by observing that processes , for , may fail at the beginning of the execution.
The adversarial execution is constructed by an adversarial scheduler that follows the procedure outlined in Algorithm 1. The scheduler decides when processes get executed, when messages are received, and which values get decided upon by -SA objects. It produces an execution admitted by the model as validated by lemmas 5 to 12, though it does not necessarily exploit all possibilities offered by the specification of the model.
The scheduler begins with a sequential execution of all processes, ranging from to . During this phase, each process repetitively calls , where synch represents a message with void content used for synchronization purpose, until it has -delivered of its own messages. This part of the execution remains indistinguishable to from an execution , where other processes would have crashed before the local delivery of their own messages. To achieve this, processes decide on their own value on -SA objects whenever possible, and the transmission of their messages to other processes is deferred by the scheduler until the end of this phase. However, a complication arises when all processes propose a value on the same -SA object . In such scenarios, is compelled to decide on the value proposed by to maintain the -SA-Agreement property. This decision renders ’s execution distinguishable from a scenario where had initially crashed, allowing to await ’s message. As a result, all messages sent by to are received by (lines 1 to 1), and the messages that -broadcast before this juncture are excluded from its count of messages.
Subsequently, in a later phase of the algorithm, all processes receive all messages that were sent to them in the initial stage but have yet to be received, as delineated in Line 1. Algorithm 1 concludes by returning the execution halted at this juncture. Notably, at this point of termination, not all messages that have been -broadcast are necessarily -delivered by every process. However, this does not pose a problem for our analysis: the counterexample required for the proof in the following section involves a safety property that is already violated in the execution prefix returned by the algorithm. The scheduler maintains the following main variables:
-
, which is initially an empty sequence , is the execution currently being constructed.
-
, which stores the identifier of the process currently under execution.
-
, initially set to , is a set of triplets. A triplet is included in when a message has been sent by process to process , but has not yet been received by .
-
is a two-dimensional associative array. The keys correspond to -SA objects used in , and represents process identifiers. The values are either potential values that can be proposed to -SA objects in , or a special value that cannot be proposed. For each and , is initially set to . It is later updated to value when the process decides on for .
-
tracks the number of messages that process -delivers from itself, while avoiding communication with other processes. Under normal conditions, cycles through values from to for each process . However, if communication between processes and is inevitable during the execution of a operation by , is assigned a value of . This assignment signifies that will be reset to once completes its -broadcast operation. Consequently, this setup enables to -deliver of its own messages (excluding ) without engaging in communication.
-
identifies the subsequent step to be executed by Process , represented either by the pair or by the special value if the step is yet to be determined. In this context, there are two primary scenarios to consider. Firstly, if has initiated the operation but has not yet completed this invocation, then the deterministic algorithm is responsible for defining the subsequent step that must execute (Line 1). This step is crucial to fulfilling the BC-Local-Termination property of within the configuration , which delineates its local state after the execution . In the second scenario, if the aforementioned condition does not hold, proceeds to -broadcast a new message, specifically synch.
Definition 4 now outlines the adversarial executions , , and . Our subsequent objective is to demonstrate that qualifies as an admissible execution of the model. It is required to verify that is well-formed (as per Lemma 10), upholds the three defining properties of the -set agreement: -SA-Validity (Lemma 5), -SA-Agreement (Lemma 6), and -SA-Termination (Lemma 7). and ensures compliance with the three properties of send/receive communication: SR-Validity (Lemma 8), SR-No-Duplication (Lemma 9), and SR-Termination (Lemma 12).
Definition 4 (Adversarial execution).
The following executions are defined:
-
is the execution produced by the procedure , as delineated in Algorithm 1.
-
constitutes a subsequence of , encompassing only those steps that involve events associated with . This includes the invocations of, or the responses from, the operation, as well as any -delivery event.
-
For each , is derived from by limiting it to, on the one hand, the steps of process occurring strictly before Line 1; and on the other hand, the steps performed by that are succeeded by a reset of on Line 1.
In these executions, all processes are assumed to have crashed initially. Furthermore, is treated as having crashed before executing its first step in that is absent in , should such a step be present.
Lemma 5 (-SA-Validity).
In the executions and , if a process decides on a value on a -SA object , then the value was proposed by some process on .
Lemma 6 (-SA-Agreement).
In both and executions, no more than distinct values are decided on any given -SA object.
Lemma 7 (-SA-Termination).
In the executions and , if a process proposes a value on a -SA object , then this process will also decide a value on .
Lemma 8 (SR-Validity).
In the executions and , if a process receives a message from process , then process has indeed sent to .
Lemma 9 (SR-No-Duplication).
In both and executions, each message is received at most once.
Lemma 10 (Well-Formed Executions).
and are well-formed executions of with respect to .
Lemma 11 (Termination of Algorithm 1).
The execution is finite.
Lemma 12 (SR-Termination).
In 111Unlike previous lemmas, this property may not hold for in the general case., if a process sends a message to a correct process , then will eventually receive from .
4.3 -Solo Executions and the Contradiction
Definition 13 (-solo executions).
Let be an execution of the model , and let . We say that is -solo if there exists a set of messages -broadcast in that meets the following conditions:
-
contains exactly messages -broadcast by each process , hereafter referred to as .
-
Each process -delivers all its own messages in before any other message in .
Lemma 14.
For all and , if there exists an algorithm that implements some broadcast abstraction in the model , then admits an -solo execution.
Proof.
Assume and , and suppose an algorithm implements a broadcast abstraction in . According to Lemmas 5 to 12, constitutes an admissible execution, thus by ’s correctness, is admitted by . We aim to demonstrate that is -solo. For each , the loop starting on Line 1 halts by Lemma 11, but only after has been incremented at least times on Line 1, without having been reset on Line 1. Each of these increments corresponds to the -delivery, by , of its own message . We now prove that these messages satisfy the criteria in Definition 13.
Consider two distinct processes and , assuming without loss of generality that . Due to the sequential nature of the loop on Line 1, -delivers all its own messages before even begins its -broadcasts. Consequently, by the BC-Validity property of , completes delivering its messages before any of ’s. Lemmas 5 to 10 confirm that upholds all safety properties of send/receive and -SA objects, and is well-formed, indicating is the prefix of an execution of . In , does not -broadcast its messages . This is because, for , does not take any step in by the definition of , and if and , all messages are broadcast after a reset of in to satisfy the condition of Line 1. Hence their broadcast events are excluded from , so does not -deliver these messages, as ensured by ’s correctness and BC-Validity of . Since and share identical steps before Line 1, in , -delivers all its own messages before Line 1, without -delivering any of the messages of . Consequently, , which includes only -related steps from , is an -solo execution admitted by .
Lemma 15.
For all , and for every content-neutral and compositional broadcast abstraction , if there exists an algorithm that solves -SA in the model , then there exists an integer such that does not allow any -solo execution.
Proof.
Assume is a broadcast abstraction and is an algorithm solving -SA in the model . It’s noteworthy that can be transformed into an alternative algorithm, , which also solves -SA in the same model but without relying on the point-to-point primitives send and receive. This transformation is feasible because the send and receive primitives can be trivially emulated using . Moreover, the correctness of results from the compositionality of . Specifically, the executions of , when projected onto the set of messages shared with (excluding those utilized solely for simulating in ), are admitted by , thereby yielding identical results in and .
Consider an execution where a process proposes to a -SA object using , while all other processes crash before taking any step. Due to the -SA-Termination property of the -SA object, eventually decides on a value. The -SA-Validity property ensures this value is . Denote by , …, the sequence of messages -delivers in prior to its decision.
Let , and suppose admits an -solo execution . Construct as the sub-execution of restricted to the message contained in the set given by Definition 13. Due to the compositionality of , is an execution admitted by , where each process -delivers its messages before any message from other processes. Now, define from by replacing each process ’s messages with the messages , …, from . The content-neutrality of ensures that is admitted by . For each process , is indistinguishable from , as both executions involve identical -broadcast and -delivery steps for . Hence, when is executed on , each decides on its own value , leading to distinct decisions. This contradicts the -SA-Agreement property of -SA. Therefore, such cannot exist, implying does not allow any -solo execution.
Theorem 16.
For all such that , there is no content-neutral and compositional broadcast abstraction equivalent to -SA in a crash-prone asynchronous message-passing system where any number of processes may crah.
Corollary 17.
For all such that , it is impossible to implement -BO Broadcast in the model , without restrictions on the number of failures.
5 Conclusion
This paper investigates the computational equivalence of any broadcast abstraction to -set agreement (-SA) in message-passing systems. Following the introduction of two new symmetry properties defining admissible broadcast abstractions – compositionality and content-neutrality – we demonstrate that no broadcast abstraction, which is both content-neutral and compositional, is computationally equivalent to -set agreement when . This paper highlights a crucial distinction in the application of -set agreement in shared memory versus message-passing systems: for , -SA is equivalent to a broadcast abstraction in shared memory (specifically, -BO broadcast), but no such equivalence exists in message-passing systems.
As Lamport famously observed in [15], “The concept of time (…) is derived from the more fundamental concept of the order in which events occur.” Therefore, at the abstraction level of message broadcasting in the system, each broadcast abstraction inherently provides a definition of time. On one end of the spectrum, broadcast abstractions that can be implemented solely through send and receive operations, such as Causal broadcast, offer processes a relativistic notion of time, defined by the “happened before” relation – a partial order. Conversely, at the other extreme where processes can utilize consensus, the set of broadcast events in Total Order broadcast forms an absolute timeline, known to all processes. Under this interpretation, -SA represents a symmetric predicate on time – hence an elegant synchronization problem – when utilized within a shared-memory model, but not in message-passing systems.
This non-existence result questions the usefulness of -SA in message-passing systems. Indeed, the absence of a compositional (and content-neutral) broadcast abstraction arises from algorithmic challenges in the orchestration of a composition of -SA objects within a single algorithm. To illustrate these challenges, consider a full-information algorithm operating within the model, where processes alternate between sending messages and proposing their full local knowledge to a sequence of -SA objects. After deciding on the first -SA object, the system is left with at most competing perspectives. Consequently, at most distinct values are proposed to the following -SA object, allowing each process to decide on its own proposed value. This outcome renders all subsequent -SA objects redundant, as they do not force any further synchronization. Hence, the introduction of several instances of the task does not reduce system uncertainty more effectively than a single instance.
This situation contrasts with the dynamics in shared memory systems, where alternating agreement phases through -SA instances and coordination phases through shared registers helps create a sequence of asynchronous rounds. This effectively allows “weaving” the -SA objects within the temporal framework provided by the memory, lending purpose to their iterative composition. Nonetheless, the existence of -BO Broadcast, which is not stronger than an atomic register, suggests that shared memory is not necessary for such weaving. This observation opens the perspective for identifying the weakest temporal properties that effectively allow the characterization of -set-agreement by a symmetric broadcast abstraction.
References
- [1] Yehuda Afek, Eli Gafni, Sergio Rajsbaum, Michel Raynal, and Corentin Travers. The k-simultaneous consensus problem. Distributed Comput., 22(3):185–195, 2010. doi:10.1007/S00446-009-0090-8.
- [2] Mustaque Ahamad, Gil Neiger, James E Burns, Prince Kohli, and Phillip W Hutto. Causal memory: Definitions, implementation, and programming. Distributed Computing, 9:37–49, 1995. doi:10.1007/BF01784241.
- [3] Kenneth P Birman and Thomas A Joseph. Reliable communication in the presence of failures. ACM Transactions on Computer Systems (TOCS), 5(1):47–76, 1987. doi:10.1145/7351.7478.
- [4] Elizabeth Borowsky and Eli Gafni. Generalized FLP impossibility result for t-resilient asynchronous computations. In Proceedings of the Twenty-Fifth Annual ACM Symposium on Theory of Computing, May 16-18, 1993, San Diego, CA, USA, pages 91–100. ACM, 1993. doi:10.1145/167088.167119.
- [5] Zohir Bouzid and Corentin Travers. Parallel consensus is harder than set agreement in message passing. In IEEE 33rd International Conference on Distributed Computing Systems, ICDCS 2013, 8-11 July, 2013, Philadelphia, Pennsylvania, USA, pages 611–620, 2013. doi:10.1109/ICDCS.2013.72.
- [6] Tushar Deepak Chandra and Sam Toueg. Unreliable failure detectors for reliable distributed systems. J. ACM, 43(2):225–267, 1996. doi:10.1145/226643.226647.
- [7] Soma Chaudhuri. More choices allow more faults: Set consensus problems in totally asynchronous systems. Information and Computation, 105(1):132–158, 1993. doi:10.1006/INCO.1993.1043.
- [8] Mathilde Déprés, Achour Mostéfaoui, Matthieu Perrin, and Michel Raynal. Brief announcement: The mbroadcast abstraction. In Rotem Oshman, Alexandre Nolin, Magnús M. Halldórsson, and Alkida Balliu, editors, Proceedings of the 2023 ACM Symposium on Principles of Distributed Computing, PODC 2023, Orlando, FL, USA, June 19-23, 2023, pages 282–285. ACM, 2023. doi:10.1145/3583668.3594569.
- [9] Mathilde Déprés, Achour Mostéfaoui, Matthieu Perrin, and Michel Raynal. Send/receive patterns versus read/write patterns in crash-prone asynchronous distributed systems. In Rotem Oshman, editor, 37th International Symposium on Distributed Computing, DISC 2023, October 10-12, 2023, L’Aquila, Italy, volume 281 of LIPIcs, pages 16:1–16:24. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2023. doi:10.4230/LIPICS.DISC.2023.16.
- [10] Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson. Impossibility of distributed consensus with one faulty process. Journal of the ACM, 32(2), 1985. doi:10.1145/3149.214121.
- [11] Vassos Hadzilacos and Sam Toueg. A modular approach to fault-tolerant broadcasts and related problems. Technical Report Tech Report 94-1425, Cornell University, 1994. Extended version of ”Fault-Tolerant Broadcasts and Related Problems” in Distributed systems, 2nd Edition, Addison-Wesley/ACM, pp. 97-145 (1993.
- [12] Maurice Herlihy and Nir Shavit. The asynchronous computability theorem for t-resilient tasks. In Proceedings of the Twenty-Fifth Annual ACM Symposium on Theory of Computing, May 16-18, 1993, San Diego, CA, USA, pages 111–120. ACM, 1993. doi:10.1145/167088.167125.
- [13] Damien Imbs, Achour Mostéfaoui, Matthieu Perrin, and Michel Raynal. Which broadcast abstraction captures k-set agreement? In 31st International Symposium on Distributed Computing, DISC 2017, October 16-20, 2017, Vienna, Austria, volume 91 of LIPIcs, pages 27:1–27:16, 2017. doi:10.4230/LIPICS.DISC.2017.27.
- [14] Damien Imbs, Achour Mostéfaoui, Matthieu Perrin, and Michel Raynal. Set-constrained delivery broadcast: A communication abstraction for read/write implementable distributed objects. Theoretical Computer Science, 886:49–68, 2021. doi:10.1016/J.TCS.2021.06.044.
- [15] Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. Communications, 1978.
- [16] Leslie Lamport. Generalized consensus and paxos, 2005.
- [17] Fernando Pedone and André Schiper. Generic broadcast. In Distributed Computing: 13th International Symposium, DISC’99 Bratislava, Slovak Republic September 27–29, 1999 Proceedings 13, pages 94–106. Springer, 1999.
- [18] David Powell. Group communication (introduction to the special section). Commun. ACM, 39(4):50–53, 1996. doi:10.1145/227210.227225.
- [19] Michel Raynal. Set agreement. In Encyclopedia of Algorithms, pages 1956–1959. Springer, 2016. doi:10.1007/978-1-4939-2864-4_367.
- [20] Michel Raynal. Fault-tolerant message-passing distributed systems: an algorithmic approach. Springer, 2018. doi:10.1007/978-3-319-94141-7.
- [21] Michel Raynal, André Schiper, and Sam Toueg. The causal ordering abstraction and a simple way to implement it. Information processing letters, 39(6):343–350, 1991. doi:10.1016/0020-0190(91)90008-6.
- [22] Michael E. Saks and Fotios Zaharoglou. Wait-free k-set agreement is impossible: the topology of public knowledge. In Proceedings of the Twenty-Fifth Annual ACM Symposium on Theory of Computing, May 16-18, 1993, San Diego, CA, USA, pages 101–110. ACM, 1993. doi:10.1145/167088.167122.
- [23] Fred B. Schneider. The state machine approach: A tutorial. In Proc. of Asilomar Workshop on Fault-Tolerant Distributed Computing, volume 448 of LNCS, pages 18–41. Springer, 1986. doi:10.1007/BFB0042323.
- [24] Tim Wu. Network neutrality, broadband discrimination. J. on Telecomm. & High Tech. L., 2:141, 2003.
Appendix A Proofs of Lemmas
Lemma 5 (-SA-Validity).
In the executions and , if a process decides on a value on a -SA object , then the value was proposed by some process on .
Proof.
Assume that includes a step . This step originates from Line 1, following ’s invocation of . Consequently, , that was set either on Line 1 or Line 1.
This sequence of events establishes the property for . Consider now the case of containing a step , following the same case disjunction as before. In the case of Line 1, the property holds because and both encompass identical propose and decide steps executed by . In the second case, the fulfillment of the condition at Line 1 for leads to the subsequent reset of on Line 1. Therefore, in both cases, the step is also included in .
Lemma 6 (-SA-Agreement).
In both and executions, no more than distinct values are decided on any given -SA object.
Proof.
By the definition of , at most two processes, specifically and , are capable of deciding a value in , satisfying the condition as .
Assume that in , distinct values are decided. Given that processes execute sequentially, processes through would have already recorded their value in before proposing its value. Consequently, the condition at Line 1 would be met, leading to deciding the same value as , thus resulting in a contradiction.
Lemma 7 (-SA-Termination).
In the executions and , if a process proposes a value on a -SA object , then this process will also decide a value on .
Proof.
Suppose that includes a step . This step was introduced on Line 1. Subsequently, the condition at Line 1 is satisfied, leading to the inclusion of a step in at Line 1. This confirms the lemma for .
Now, assume contains a step . Here, can only be either or .
-
If , then includes the same step as found in .
In both scenarios, the lemma’s condition is satisfied in , thus completing the proof.
Lemma 8 (SR-Validity).
In the executions and , if a process receives a message from process , then process has indeed sent to .
Proof.
Assume that includes a step . This step is either introduced on Line 1 following a step where , or on Line 1 or Line 1 when . The triplet is added to only on Line 1, implying that was previously included in on Line 1. This confirms the lemma for .
Now, consider a receive step in . Given the previous argument, must contain a corresponding send step. Since receive steps from Line 1 are not part of , there are two possible scenarios:
-
If the receive step is added to on Line 1, then the preceding send step is also included in .
Both cases confirm the lemma’s condition on , thus completing the proof.
Lemma 9 (SR-No-Duplication).
In both and executions, each message is received at most once.
Proof.
The property for is substantiated by the message reception mechanics: a message can only be received on Line 1, in which case it is not added to so it is not received again later, on Line 1 followed by its removal from , or singularly on Line 1 due to ’s set semantics. Since comprises only a subset of ’s reception events, the lemma is valid for as well.
Lemma 10 (Well-Formed Executions).
and are well-formed executions of with respect to .
Proof.
To validate the property for , we observe that the participation of only processes to stems for (1) loop bounds defined on Line 1, and (2) the SR-Validity property and the correctness of for the receiving processes on Line 1. A process initiates the operation either at the start of its execution on Line 1, or immediately after returning from its previous invocation, as indicated on Lines 1 and 1. This ensures adherence to the required pattern of alternating invocations and responses. Furthermore, the sequence of steps a process follows between its invocations and responses is consistent with , as defined on Line 1.
As for , the property comes from the fact that for all processes , the sequence of steps taken by in is a prefix of the sequence of steps taken by in .
Proof.
Assume for contradiction that contains an infinite number of steps. Given that Algorithm 1 includes no recursion and only one while loop, there exists some engaged in an infinite loop starting at Line 1 with remaining true indefinitely.
By Lemmas 5 to 9, satisfies all the conditions required for an admissible execution, except SR-Termination. Let us establish that also verifies SR-Termination:
-
For , contains only messages sent by , as the iteration does not terminate. Process receives its own messages on Line 1, and others are not required to receive them as they have crashed.
-
For , similar to the previous case, includes only messages by by definition of . Message reception follows the same logic as above.
-
For , note that is considered faulty in due to (1) taking a finite number of steps in since is executed after ’s last step, and (2) the condition only becoming false post Line 1 which is preceded by a step that belongs to but not . Therefore, it suffices to show that receives all messages directed to it. Only and send messages in . Process receives its own messages on Line 1, and all messages sent by to in are sent prior to the reset of , hence they are received by on Line 1.
Therefore, is an execution admitted by the model , in which takes an infinite number of steps. By correctness of and the BC-Global-CS-Termination property of , all -broadcast messages by in must eventually be -delivered by in . Moreover, since and contain the same steps of , all messages -broadcast by in are eventually -delivered by in . Since immediately -broadcasts a new message after returning from its previous invocation (Lines 1 to 1), -delivers an infinite number of messages from itself, and repeatedly increments on Line 1. As is bounded by , it must be reset on Line 1 infinitely, following proposals to -SA objects.
Let be the set of -SA objects such that executes Line 1 after proposing a value to them. Given the one-time proposal limit per -SA object, is infinite. Therefore, based on Line 1, , and there is an infinite number of such that . However, is set during the first iteration for an infinite number of distinct -SA objects. This indicates that the first iteration does not terminate. This is a contradiction because (1) so and (2) the iteration of the loop started because takes (an infinite number of) steps in . This contradiction implies that must be finite, completing the proof.
Lemma 12 (SR-Termination).
In 222Unlike previous lemmas, this property is not proven for in the general case., if a process sends a message to a correct process , then will eventually receive from .
Proof.
Consider a message sent by to in . A step is recorded in at Line 1. If , then a step is subsequently appended to at Line 1. In contrast, if , is added to at Line 1. As established in Lemma 11, is finite. If remains in at the conclusion of the execution, then a step is appended to at Line 1. Conversely, if is not present in , it implies that it was removed at Line 1 subsequent to appending a step to at Line 1. Therefore, in every case, receives from .
Theorem 16.
For all such that , there is no content-neutral and compositional broadcast abstraction equivalent to -SA in a crash-prone asynchronous message-passing system where any number of processes may crah.
Proof.
Assume the existence of a content-neutral and compositional broadcast abstraction that is equivalent to -SA in the specified model. Let be an algorithm implementing -SA in , and be an algorithm implementing in . Remark that the model is functionally identical to the model when processes crash at the start of execution. Hence, the two algorithms would still be correct in the model . By Lemma 15, there exists an integer such that does not admit any -solo execution. Conversely, by Lemma 14, admits an -solo execution. This contradiction implies the non-existence of such a broadcast abstraction .
Corollary 17.
For all such that , it is impossible to implement -BO Broadcast in the model .
Proof.
As established in Section 3, -BO Broadcast is content-neutral and compositional. It has also been demonstrated in [13] that -SA can be solved in the model . Consequently, an algorithm that implements -BO Broadcast in the model would render the two abstractions equivalent, thereby contradicting Theorem 16.
