• No results found

Causal Order, Logical Clocks, State Machine Replication

1978; Lamport

XAVIERDÉFAGO

School of Information Science, Japan Advanced Institute of Science and Technology (JAIST),

Ishikawa, Japan

Keywords and Synonyms

State-machine replication: active replication Problem Definition

This entry covers several problems, related with each other. The first problem is concerned with maintaining the causal relationship between events in a distributed system. The motivation is to allow distributed systems to reason about time with no explicit access to a physical clock. Lam- port [5] defines a notion of logical clocks that can be used to generate timestamps that are consistent with causal re- lationships (in a conservative sense). He illustrates logical clocks (also called Lamport clocks) with a distributed mu- tual exclusion algorithm. The algorithm turns out to be an illustration of state-machine replication. Basically, the algorithm generates a total ordering of the events that is consistent across processes. With all processes starting in the same state, they evolve consistently with no need for further synchronization.

System Model

The system consists of a collection of processes. Each pro- cess consists of a sequence of events. Processes have no shared memory and communicate only by exchanging messages. The exact definition of an event depends on the system actually considered and the abstraction level at which it is considered. One distinguishes between three kinds of events: internal (affects only the process executing it), send, and receive events.

Causal Order

Causal order is concerned with the problem that the oc- currence of some events may affect other events in the future, while other events may not influence each other. With processes that do not measure time, the notion of simultaneity must be redefined in such a way that simul- taneous events are those that cannot possibly affect each other. For this reason, it is necessary to define what it means for an event to happen before another event.

The following “happened before” relation is defined as an irreflexive partial ordering on the set of all events in the system [5].

Definition 1 The relation “!” on the set of events of a system is the smallest relation satisfying the following three conditions:

1. Ifaandbare events in the same process, andacomes beforeb, thena!b.

130

C

Causal Order, Logical Clocks, State Machine Replication 2. Ifais the sending of a message by one process andb

is the receipt of the same message by another process, thena!b.

3. Ifa!bandb!cthena!c.

Definition 2 Two distinct eventsaandbare said to be

concurrentifa6!bandb6!a. Logical Clocks

Lamport also defines clocks in a generic way, as follows. Definition 3 A clockCi for a process pi is a function

which assigns a number Cihai to any eventa on that

process. The entire system of clocks is represented by the functionCwhich assigns to any eventbthe numberChbi, whereChbi=Cjhbiifbis an event in processpj. The sys-

tem of clocks must meet the followingclock condition.

For any eventsaandb, ifa!bthenChai<Chbi. Assuming that there is some arbitrary total ordering

of the processes (e. g., unique names ordered lexicograph- ically), Lamport extends the “happened before” relation and defines a relation “)” as a total ordering on the set of all events in the system.

Definition 4 The total order relation)is defined as fol- lows. Ifais an event in processpiandbis an event in pro-

cesspj, thena)bif and only if either one of the follow-

ing conditions is satisfied. 1. Cihai<Cjhbi

2. Cihai=Cjhbiandpi pj.

In fact, Lamport [5] also discusses an adaptation of these conditions to physical clocks, and provides a simple clock synchronization algorithm. This is however not discussed further here.

State Machine Replication

The problem of state-machine replication was originally presented by Lamport [4,5]. In a later review of the prob- lem, Schneider [8] defines the problem as follows (formu- lation adapted to the context of the entry).

Problem 1 (State-machine replication) INPUT: A set of concurrent requests.

OUTPUT: A sequence of the requests processed at each pro- cess, such that:

1. Replica coordination: all replicas receive and process the same sequence of requests.

2. Agreement: every non-faulty state-machine replica re- ceives every request.

3. Order: every non-faulty state-machine replica processes the requests it receives in the same relative order.

In his paper on logical time [5] and discussed in this entry, Lamport does not consider failures. He does however con- sider them in another paper on state-machine replication for fault-tolerance [4], which he published the same year. Key Results

Lamport [5] proposed many key results related to the problems described above.

Logical Clocks

Lamport [5] defines an elegant system of logical clocks that meets the clock condition presented in Definition 3. The clock of a processpiis represented by a registerCi, such

thatCihaiis the value held byCiwhenaoccurs. Each mes-

sagemcarries a timestampTm, which equals the time at

whichmwas sent. The clock system can be described in terms of the following rules.

1. Each processpiincrementsCibetween any two succes-

sive events.

2. If eventais the sending of a messagemby processpi,

then the messagemcontains a timestampTm =Cihai.

3. Upon receiving a message m, process pj sets Cj to

max(Cj;Tm+ 1) (before actually executing the receive

event).

State Machine Replication

As an illustration for the use of logical clocks, Lamport [5] describes a mutual exclusion algorithm. He also mentions that the approach is more general and discusses the con- cept of state-machine replication that he refines in a differ- ent paper [4].

The mutual exclusion algorithm is based on the idea that every process maintains a copy of a request queue, and the algorithm ensures that the copies remain consis- tent across the processes. This is done by generating a total ordering of the request messages, according to timestamps obtained from the logical clocks of the sending processes.

The algorithm described works under the following simplifying assumptions:

Every message that is sent is eventually received.

For any processespiandpj, messages frompitopjare

received in the same order as they are sent.

A process can send messages directly to every other processes.

The algorithm requires that each process maintains its own request queue, and ensures that the request queues of different processes always remain consistent. Initially, request queues contain a single message (T0;p0;request),

Certificate Complexity and Exact Learning

C

131 timestamp T0 is smaller than the initial value of every

clock. Then, the algorithm works as follows.

1. When a processpirequests the resource, it sends a re-

quest message (Tm;pi;request) to all other processes

and puts the message in its request queue.

2. When a processpjreceives a message (Tm;pi;request),

it puts that message in its request queue and sends an acknowledgment (Tm0;pj;ack) topi.

3. When a processpireleases the resource, it removes all

instances of messages (;pi;request) from its queue,

and sends a message (Tm0;pi;release) to all other pro-

cesses.

4. When a process pj receives a release message from

process pi, it removes all instances of messages

(;pi;request) from its queue, and sends a times-

tamped acknowledgment topi.

5. Messages in the queue are sorted according to the to- tal order relation)of Definition 4. A processpican

use the resource when (a) a message (Tm;pi;request)

appears first in the queue, and (b)pihas received from

all other processes a message with a timestamp greater thanTm(or equal from any processpjwherepi pj).

Applications

A brief overview of some applications of the concepts pre- sented in this entry has been provided.

First of all, the notion of causality in distributed sys- tems (or lack thereof) leads to a famous problem in which a user may potentially see an answer before she can see the relevant question. The time-independent characterization of causality of Lamport lead to the development of effi- cient solutions to enforce causal order in communication. In his later work, Lamport [3] gives a more general defi- nition to the “happened before” relation, so that a system can be characterized at various abstraction levels.

About a decade after Lamport’s work on logical clock, Fidge [2] and Mattern [6] have developed the notion of vector clocks, with the advantage of a complete charac- terization of causal order. Indeed, the clock condition en- forced by Lamport’s logical clocks is only a one-way im- plication (see Definition 3). In contrast, vector clocks ex- tend Lamport clocks by ensuring that, for any eventsaand

b, ifChai<Chbi, thena!b. This is for instance useful for choosing a set of checkpoints after recovery of a dis- tributed system, for distributed debugging, or for deadlock detection. Other extensions of logical time have been pro- posed, that have been surveyed by Raynal and Singhal [7]. The state-machine replication also has many applica- tions. In particular, it is often used for replicating a dis- tributed service over several processors, so that the service

can continue to operate even in spite of the failure of some of the processors. State-machine replication ensures that the different replicas remain consistent.

The mutual exclusion algorithm proposed by Lam- port [5] and described in this entry is actually one of the first known solution to theatomic broadcastproblem (see relevant entry). Briefly, in a system with several pro- cesses that broadcast messages concurrently, the problem requires that all processes deliver (and process) all mes- sage in the same order. Nowadays, there exist several ap- proaches to solving the problem. Surveying many algo- rithms, Défago et al. [1] have classified Lamport’s algo- rithm ascommunication historyalgorithms, because of the way the ordering is generated.

Cross References Atomic Broadcast

Clock Synchronization

Concurrent Programming, Mutual Exclusion

Linearizability

Quorums

Recommended Reading

1. Défago, X., Schiper, A., Urbán, P.: Total order broadcast and mul- ticast algorithms: Taxonomy and survey. ACM Comput. Surv.36, 372–421 (2004)

2. Fidge, C. J.: Logical time in distributed computing systems. IEEE Comput.24, 28–33 (1991)

3. Lamport, L.: On interprocess communication. Part I: Basic for- malism. Distrib. Comput.1, 77–85 (1986)

4. Lamport, L.: The implementation of reliable distributed multi- process systems. Comput. Netw.2, 95–114 (1978)

5. Lamport, L.: Time, clocks, and the ordering of events in a dis- tributed system. Commun. ACM21, 558–565 (1978)

6. Mattern, F.: Virtual time and global states of distributed systems. In: Cosnard, M., Quinton, P. (eds.) Parallel and Distributed Algo- rithms, pp.215–226. North-Holland, Amsterdam (1989) 7. Raynal, M., Singhal, M.: Capturing causality in distributed sys-

tems. IEEE Comput.29, 49–56 (1996)

8. Schneider, F.B.: Implementing fault-tolerant services using the state machine approach: a tutorial. ACM Comput. Surv.22, 299– 319 (1990)

Certificate Complexity

Outline

Related documents