An optimal protocol for causally consistent distributed shared memory systems (original) (raw)

Optimal propagation-based protocols implementing causal memories

2006

Abstract Ensuring causal consistency in a Distributed Shared Memory (DSM) means all operations executed at each process will be compliant to a causality order relation. This paper first introduces an optimality criterion for a protocol P, based on a complete replication of variables at each process and propagation of write updates, that enforces causal consistency. This criterion measures the capability of a protocol to update the local copy as soon as possible while respecting causal consistency.

Characterization and delivery of directly coupled causal messages in distributed systems

Future Generation Computer Systems, 2003

Causal Order (CO) is an important but basic property of message-passing based distributed systems. Violations of causal order delivery normally lead to significant inconsistencies, particularly in distributed virtual environments. However, CO is only a partial order, which captures messages that have "cause-effect" relations. It does not order concurrent messages which occur independently at different processes. This paper proposes a new relation, i.e., direct-follow relation, to characterize directly coupled causal messages and a corresponding message delivery scheme, i.e., direct-follow order (DFO) delivery. The DFO delivery effectively enforces the delivery order of certain concurrent messages and thus can be used to further eliminate inconsistencies caused by these messages. It is a stronger ordering mechanism than CO. However, as shown in the paper, messages with the direct-follow relation cannot be always delivered according to the DFO, since the ordering of concurrent messages required by the DFO may result in conflicts in message dependency. This paper explains the motivation of defining the DFO, explores its properties and gives the conditions under which direct-follow messages can be delivered according to the DFO.

Causal Consistency: Beyond Memory

HAL Portal Artxiker (Hindustan Aeronautics Limited (India)), 2016

In distributed systems where strong consistency is costly when not impossible, causal consistency provides a valuable abstraction to represent program executions as partial orders. In addition to the sequential program order of each computing entity, causal order also contains the semantic links between the events that affect the shared objectsmessages emission and reception in a communication channel, reads and writes on a shared register. Usual approaches based on semantic links are very difficult to adapt to other data types such as queues or counters because they require a specific analysis of causal dependencies for each data type. This paper presents a new approach to define causal consistency for any abstract data type based on sequential specifications. It explores, formalizes and studies the differences between three variations of causal consistency and highlights them in the light of PRAM, eventual consistency and sequential consistency: weak causal consistency, that captures the notion of causality preservation when focusing on convergence; causal convergence that mixes weak causal consistency and convergence; and causal consistency, that coincides with causal memory when applied to shared memory.

Causal broadcasting and consistency of distributed shared data

1994

The paper develops a generalized model to capture the interactions between the ordering of messages exchanged across various entities of a distributed ajqdication and the consistency requirements on a shared data across these entities. The model is based on causal broadcasting of data access messages that allows messages to be ordered at all entities as per the constraints specified by the application. This allows each entity to change its local data copy based on the messages processed and still be in agreement with other entities at selected points of message exchanges that are meaningful to the application, which we refer to as stable points in the underlying execution. Since the causal relationships among messages depict an invariant property of the application and stable points are reproducible across different execution instances, application-specific consistency of the data can be enforced in many cases without explicit protocols to reach agreement. The model of integrating causality with data consistency allows more flexibility in the implementation of data access protocols for distributed services and offers potential for increased performance of the protocols.

How to avoid the cost of causal communication in large-scale systems

1994

Abstract In a distributed system, consisting of a collection of processes that communicate by exchanging messages, the order in which messages are delivered to processes is of major relevance to the application design. With the aim of simplifying the design of distributed applications [14, 4, 11], several algorithms and protocols have been proposed to provide causal order delivery [4, 6, 9, 7, 10].

On the interconnection of causal memory systems

2004

In this paper, we look at the interconnection of propagation-based causal Distributed shared memory (DSM) systems. We present extremely simple protocols to interconnect two such systems (possibly implemented with different algorithms), that only require the existence of a bidirectional reliable FIFO channel connecting one process from each system. We show that the resulting DSM system is also causal.

Maintaining causal order in large scale distributed systems using a logical hierarchy

APPLIED INFORMATICS-PROCEEDINGS-, 1995

The paper presents a simple and e cient protocol that supports exchange of messages among a set of nodes while preserving the causal ordering of message exchange. It is designed for a large scale replicated system where a message is sent to every replica in the network. The desirable characteristics of the protocol are that it imposes little space overhead appended to each message. This is achieved by using a propagation algorithm that is based on nodes organized in a logical hierarchy, where each node sends and receives messages from a few nodes only. Therefore, a node needs to keep track of messages received from those nodes and stamp messages with this information only in order to verify the causal ordering. This low cost of timestamp size results in reduced communication overhead and increased performance and scalability of the system. The protocol is fully asynchronous and the burden of propagation is evenly distributed among the nodes, which improves system performance. It can be implemented on an unreliable network and survives processor failures and partitions.

An efficient implementation of sequentially consistent distributed shared memories

1993

Recently, distributed shared memory systems have received much attention because such an abstraction simpli es programming. In this paper, we present a data consistency protocol for a distributed system which implements sequentially consistent memories. The protocol is aimed at an environment where no special support for atomic broadcast exists. As compared to previously proposed protocols, our protocol eliminates the need of atomic broadcast and signi cantly reduces the amount of information ow among the processors. This is realized by maintaining state information and capturing causal relations among read and write operations.

Causality-Preserving Timestamps in Distributed Programs

1993

A tachyon is an improperly ordered event in a distributed program. Tachyons are most often manifested as messages which are received before they are sent, violating the principle of causality. Although tachyons are not possible in \real life", they may appear to occur in distributed parallel program traces due to coarse clock granularity or poor clock synchronization. In this paper, we establish that tachyons do in fact occur commonly in distributed programs on our Ethernet at Carnegie Mellon University, and we discuss some ways of eliminating them from program traces while preserving at least some knowledge of the length of time intervals in our programs. Our methods are based on Lamport-style clock corrections; when a process receives a message stamped with a later sending time, it sets its own clock ahead to a time at least as great as the sending timestamp. We have implemented this both in real time and in a more comprehensive post-processor for Xab.