Abstract:Many distributed protocols and applications rely on causal broadcast to ensure consistency criteria. However, none of causality tracking state-of-the-art approaches scale in large and dynamic systems. This paper presents a new nonblocking causal broadcast protocol suited for dynamic systems. The proposed protocol outperforms state-of-the-art in size of messages, execution time complexity, and local space complexity. Most importantly, messages piggyback control information the size of which is constant. We prov… Show more
“…The new algorithm detailed in [19] also targets large dynamic systems. In this algorithm it is assumed that the processes communicate via an overlay network, whose links are FIFO.…”
Section: Related Workmentioning
confidence: 99%
“…Since this algorithm does not assume that the underlying system ensures reliable broadcast, the focus is on preventing multiple deliveries of the same message. Like in [19], though, it is assumed that the processes communicate via the FIFO links of an overlay network.…”
Causal broadcast is a fundamental communication abstraction for many distributed applications. Several implementations of this abstraction have been proposed over the last decades for traditional networks, that is, networks that assume the existence of a continuous bi-directional end-to-end path between any pair of nodes. Opportunistic networks constitute a kind of networks in which this assumption cannot be made, though, so the implementation of causal broadcast in such networks must be addressed differently. This paper presents two algorithms based on causal barriers that can ensure the causally-ordered delivery of broadcast messages in an opportunistic network, considering both cases where the messages propagate in the network without or with a bounded lifetime. The latter case is especially interesting in networks that must run for a long time, or with a population of nodes that changes continuously.
“…The new algorithm detailed in [19] also targets large dynamic systems. In this algorithm it is assumed that the processes communicate via an overlay network, whose links are FIFO.…”
Section: Related Workmentioning
confidence: 99%
“…Since this algorithm does not assume that the underlying system ensures reliable broadcast, the focus is on preventing multiple deliveries of the same message. Like in [19], though, it is assumed that the processes communicate via the FIFO links of an overlay network.…”
Causal broadcast is a fundamental communication abstraction for many distributed applications. Several implementations of this abstraction have been proposed over the last decades for traditional networks, that is, networks that assume the existence of a continuous bi-directional end-to-end path between any pair of nodes. Opportunistic networks constitute a kind of networks in which this assumption cannot be made, though, so the implementation of causal broadcast in such networks must be addressed differently. This paper presents two algorithms based on causal barriers that can ensure the causally-ordered delivery of broadcast messages in an opportunistic network, considering both cases where the messages propagate in the network without or with a bounded lifetime. The latter case is especially interesting in networks that must run for a long time, or with a population of nodes that changes continuously.
“…This algorithm and resulting property is applicable to all CRDTs that are defined by a merge and Merkle Search Trees extend this naturally to maps of CRDTs. This is done without any conditions on the network topology as is required by causal broadcast [6], [26]: it results from the fact of doing a full state merge at every gossip event.…”
Section: Causal Consistencymentioning
confidence: 99%
“…Causal broadcast is a fundamental primitive of distributed algorithms that is usually directly implemented using send/receive network primitives and vector clocks [5] which are the main alternative to our method and which we show do not scale efficiently. For completeness, let us note that alternative approaches to Causal Broadcast exist for static overlays [26], which have been recently extended to a dynamic setting [6], but the practicality of this latest development has not yet been demonstrated.…”
Section: Application: a Causally-consistent Distributed Event Storementioning
confidence: 99%
“…Recent CRDT techniques have focused primarily on leveraging causal broadcast primitives and vector clocks in order to ensure reliable causal delivery of operation deltas [4], [5], meaning that they never need to compare two full states directly. However these approaches show their limit in open networks where many nodes may join and leave, as causal broadcast primitives and vector clocks are both unsuited in this context: causal broadcast has only recently been extended in a scalable fashion to networks with dynamic structures [6] and the practicality of this approach has not yet been demonstrated, whereas vector clocks require metadata that grows linearly with the number of nodes, past and present, that have participated in the network, which is an important scalability barrier even in the case of extensive optimisations [7].…”
Most recent CRDT techniques rely on a causal broadcast primitive to provide guarantees on the delivery of operation deltas. Such a primitive is unfortunately hard to implement efficiently in large open networks, whose membership is often difficult to track. As an alternative, we argue in this paper that pure state-based CRDTs can be efficiently implemented by encoding states as specialized Merkle trees, and that this approach is well suited to open networks where many nodes may join and leave. At the core of our contribution lies a new kind of Merkle tree, called Merkle Search Tree (MST), that implements a balanced search tree while maintaining key ordering. This latter property makes it particularly efficient in the case of updates on sets of sequential keys, a common occurrence in many applications. We use this new data structure to implement a distributed event store, and show its efficiency in very large systems with low rates of updates. In particular, we show that in some scenarios our approach is able to achieve both a 66% reduction of bandwidth cost over a vector-clock approach, as well as a 34% improvement in consistency level. We finally suggest other uses of our construction for distributed databases in open networks.
In unreliable asynchronous distributed systems with failures, achieving a causal view of the system across all processes is a challenging task. The Causal Reliable Broadcast (CRB) abstraction is used to solve this task. When CRB is implemented with algorithms that use logical vector clocks to timestamp broadcast events, the causal relationships between broadcast events can be detected with maximal accuracy. However, this timestamping mechanism used by CRB might not be useful for systems that need to reason about the causal relationships among both broadcast and delivery events. To address this challenge, the paper proposes a Causal Timestamp System (CTS) based on vector clocks that timestamps broadcast and delivery events capturing with maximal accuracy the causal relationships among those events. CTS simplifies the formal verification and testing of implementations of CRB algorithms based on CTS. Additionally, a new Global State Monitoring (GSM) algorithm is proposed, tailored to a distributed system that uses CRB with CTS. GSM enables finer-grained assessment of global states and application-dependent predicates of that system. We clarify these concepts with an IoT example.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.