41
Logical Time Etienne Renault 18 d´ ecembre 2017 https://www.lrde.epita.fr/ ~ renault/teaching/algorep/ Etienne Renault algorep 18 d´ ecembre 2017 1 / 27

Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Logical Time

Etienne Renault

18 decembre 2017

https://www.lrde.epita.fr/~renault/teaching/algorep/

Etienne Renault algorep 18 decembre 2017 1 / 27

Page 2: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Problem Statement 1/3

ProblemHow to capture chronological and causal relationships

in a distributed system ?

In other words. . .Given two events e1 and e2 : does e1 happens before e2 ?

Etienne Renault algorep 18 decembre 2017 2 / 27

Page 3: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Problem Statement 1/3

ProblemHow to capture chronological and causal relationships

in a distributed system ?

In other words. . .Given two events e1 and e2 : does e1 happens before e2 ?

Etienne Renault algorep 18 decembre 2017 2 / 27

Page 4: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Problem Statement 2/3

Consider 3 processes E , F , and G

With some local events : e1, f1, f3, g2, g3

With some send events : g1, f2 and e2

With some receive events : e3, f4 and g4

E

F

G

e1 e2 e3

f1 f2 f3 f4

g1 g2 g3 g4

1. Thanks to A. Duret-Lutz the canvas used for the figures in this presentation.Etienne Renault algorep 18 decembre 2017 3 / 27

Page 5: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Indistinguishability

For the system the two following executions are indistinguishable.

First execution

E

F

G

e1 e2 e3

f1 f2 f3 f4

g1 g2 g3 g4

Second execution

E

F

G

e1 e2 e3

f1 f2 f3

g1 g2 g3 g4

Etienne Renault algorep 18 decembre 2017 4 / 27

Page 6: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Processes Ordering

Why it is so important to detect the order between eventsof different processes ?

Synchronisation between processes

Global vision of a system state

Commits

Mutual Exclusion

Tacking of dependent events

Progress of a computation

Concurrency Measure

. . .

Etienne Renault algorep 18 decembre 2017 5 / 27

Page 7: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Definitions

Consider a time domain T and a logical clock C

Elements of T form a partially ordered set over a relation <

Relation < is called the happened before or causal precedence

The logical clock C is a function that maps an event e to anelement in T , denoted as C (e) and called the timestamp of e.

For ei , ej two events, ei → ej =⇒ C (ei) < C (ej)

Etienne Renault algorep 18 decembre 2017 6 / 27

Page 8: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Implementing Logical Clocks

Rule R1How does a process update the local logical clock when

it executes an event ?

Rule R2How does a process update its global logical clock to update

its view of the global time and global progress ?

Systems of logical clocks differ in their representation of logical timeand also in the protocol to update the logical clocks.

Etienne Renault algorep 18 decembre 2017 7 / 27

Page 9: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Implementing Logical Clocks

Rule R1How does a process update the local logical clock when

it executes an event ?

Rule R2How does a process update its global logical clock to update

its view of the global time and global progress ?

Systems of logical clocks differ in their representation of logical timeand also in the protocol to update the logical clocks.

Etienne Renault algorep 18 decembre 2017 7 / 27

Page 10: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Implementing Logical Clocks

Rule R1How does a process update the local logical clock when

it executes an event ?

Rule R2How does a process update its global logical clock to update

its view of the global time and global progress ?

Systems of logical clocks differ in their representation of logical timeand also in the protocol to update the logical clocks.

Etienne Renault algorep 18 decembre 2017 7 / 27

Page 11: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

1 Scalar Time : Lamport Clocks

2 Vector Time : Mattern Clocks

3 Matrix Time

4 Conclusion

Etienne Renault algorep 18 decembre 2017 8 / 27

Page 12: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Lamport Clocks : Informal

Proposed by Lamport in 1978

Attempt to totally order events in a distributed system

Time domain is the set of non-negative integers

The logical local clock of a process pi and its local view of theglobal time are squashed into one integer variable Ci

Etienne Renault algorep 18 decembre 2017 9 / 27

Page 13: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Lamport Clocks : Definition

Rule R1Before executing an event (send, receive, or internal), process piexecutes the following

Ci := Ci + d with d > 0, typically 1

Rule R2Each message piggybacks the clock value of its sender at sendingtime.

When a process pi receives a message with timestamp Cmsg , itexecutes the following actions :

Ci := max(Ci ,Cmsg )

Execute R1 and deliver message

Etienne Renault algorep 18 decembre 2017 10 / 27

Page 14: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Lamport Clocks : Definition

Rule R1Before executing an event (send, receive, or internal), process piexecutes the following

Ci := Ci + d with d > 0, typically 1

Rule R2Each message piggybacks the clock value of its sender at sendingtime.

When a process pi receives a message with timestamp Cmsg , itexecutes the following actions :

Ci := max(Ci ,Cmsg )

Execute R1 and deliver message

Etienne Renault algorep 18 decembre 2017 10 / 27

Page 15: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Example

E

F

G

1 2 4 8 9

1 2 3 4 5 6 7 10

1 2 3 4 5

Etienne Renault algorep 18 decembre 2017 11 / 27

Page 16: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Remarks

Scalar clocks can be used to totally order events in a distributedsystem

If the increment value d is always 1, there is an interestingproperty : if event e has a timestamp h, then h-1 represents theminimum logical duration, counted in units of events, requiredbefore producing the event e

No Strong Consistency : For ei , ej two events,C (ei) < C (ej) 6 =⇒ ei → ejThe reason that scalar clocks are not strongly consistent is thatthe logical local clock and logical global clock of a process aresquashed into one

Etienne Renault algorep 18 decembre 2017 12 / 27

Page 17: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Problem

The main problem in totally ordering events is that two or moreevents at different processes may have identical timestamp !

Etienne Renault algorep 18 decembre 2017 13 / 27

Page 18: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

1 Scalar Time : Lamport Clocks

2 Vector Time : Mattern Clocks

3 Matrix Time

4 Conclusion

Etienne Renault algorep 18 decembre 2017 14 / 27

Page 19: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Mattern Clocks : Informal

Vector clocks were developed independently by Fidge, Matternand Schmuck in 1988

The time domain is represented by a set of n-dimensionalnon-negative integer vectors

Each process pi maintains a vector vti [1..n], where vti [i ] is thelocal logical clock of pi and describes the logical time progress atprocess pi .

The entire vector vti constitutes pi ’s view of the global logicaltime and is used to timestamp events

Etienne Renault algorep 18 decembre 2017 15 / 27

Page 20: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Mattern Clocks : Definition

Rule R1Before executing an event (send, receive, or internal), process piexecutes the following

vti [i ] := vti [i ] + d with d > 0, typically 1

Rule R2Each message m is piggybacked with the vector clock vt of thesender process at sending time. On the receipt of such a message(m, vt), process pi executes the following sequence of actions :

∀k ∈ [1, n], vti [k] := max(vti [i ], vt[i ])

Execute R1 and deliver message

Etienne Renault algorep 18 decembre 2017 16 / 27

Page 21: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Mattern Clocks : Definition

Rule R1Before executing an event (send, receive, or internal), process piexecutes the following

vti [i ] := vti [i ] + d with d > 0, typically 1

Rule R2Each message m is piggybacked with the vector clock vt of thesender process at sending time. On the receipt of such a message(m, vt), process pi executes the following sequence of actions :

∀k ∈ [1, n], vti [k] := max(vti [i ], vt[i ])

Execute R1 and deliver message

Etienne Renault algorep 18 decembre 2017 16 / 27

Page 22: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Example

E

F

G

100

200

330

475

575

010

020

030

040

051

265

275

585

001

002

003

204

205

Etienne Renault algorep 18 decembre 2017 17 / 27

Page 23: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Remarks

The following relations are defined to compare two vectortimestamps, vh and vk :

vh = vt ⇔ ∀x , vh[x ] = vt[x ]

vh ≤ vt ⇔ ∀x , vh[x ] ≤ vt[x ]

vh < vt ⇔ vh[x ] ≤ vt[x ] ∧ ∃x , vh[x ] < vt[x ]

vh || vt ⇔ ¬(vh[x ] < vt[x ]) ∧ ¬(vt[x ] < vh[x ])

Strong consistency by examining the vector timestamp of twoevents, we can determine if the events are causally related.

If the number of processes in a distributed computation is large,then vector clocks will require piggybacking of huge amount ofinformation in messages.

Etienne Renault algorep 18 decembre 2017 18 / 27

Page 24: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Remarks

The following relations are defined to compare two vectortimestamps, vh and vk :

vh = vt ⇔ ∀x , vh[x ] = vt[x ]

vh ≤ vt ⇔ ∀x , vh[x ] ≤ vt[x ]

vh < vt ⇔ vh[x ] ≤ vt[x ] ∧ ∃x , vh[x ] < vt[x ]

vh || vt ⇔ ¬(vh[x ] < vt[x ]) ∧ ¬(vt[x ] < vh[x ])

Strong consistency by examining the vector timestamp of twoevents, we can determine if the events are causally related.

If the number of processes in a distributed computation is large,then vector clocks will require piggybacking of huge amount ofinformation in messages.

Etienne Renault algorep 18 decembre 2017 18 / 27

Page 25: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Remarks

The following relations are defined to compare two vectortimestamps, vh and vk :

vh = vt ⇔ ∀x , vh[x ] = vt[x ]

vh ≤ vt ⇔ ∀x , vh[x ] ≤ vt[x ]

vh < vt ⇔ vh[x ] ≤ vt[x ] ∧ ∃x , vh[x ] < vt[x ]

vh || vt ⇔ ¬(vh[x ] < vt[x ]) ∧ ¬(vt[x ] < vh[x ])

Strong consistency by examining the vector timestamp of twoevents, we can determine if the events are causally related.

If the number of processes in a distributed computation is large,then vector clocks will require piggybacking of huge amount ofinformation in messages.

Etienne Renault algorep 18 decembre 2017 18 / 27

Page 26: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Efficient Implementation of Vector Clocks

Singhal-Kshemkalyani’s Differential Technique 1996

Based on the observation that between successive message sendsto the same process, only a few entries of the vector clock at thesender process are likely to change.

When a process pi sends a message to a process pj , itpiggybacks only those entries of its vector clock that differ sincethe last message sent to pj .

Implementation of this technique requires each process toremember the vector timestamp in the message last sent toevery other process.

Etienne Renault algorep 18 decembre 2017 19 / 27

Page 27: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Problem

How to capture chronological and causal relationshipsin a distributed system ?

In other wordsWhat if channels are reordering channels ?

Etienne Renault algorep 18 decembre 2017 20 / 27

Page 28: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

1 Scalar Time : Lamport Clocks

2 Vector Time : Mattern Clocks

3 Matrix Time

4 Conclusion

Etienne Renault algorep 18 decembre 2017 21 / 27

Page 29: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Matrix Clocks : Informal

Time is represented by a set of n n matrices of non-negativeintegers

A process pi maintains a matrix mti [1..n][1..n]

I mti [i ][i ] denotes the local logical clock of pi and tracks theprogress of the computation at process pi

I mti [i ][j ] denotes the latest knowledge that process pi has aboutthe local logical clock, mtj [j , j ], of process pj

I mti [j ][k] represents the knowledge that process pi has about thelatest knowledge that pj has about the local logical clock,mtk [k][k], of pk

The entire matrix mti denotes pi ’s local view of the globallogical time

Etienne Renault algorep 18 decembre 2017 22 / 27

Page 30: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Matrix Clocks : Informal

Time is represented by a set of n n matrices of non-negativeintegers

A process pi maintains a matrix mti [1..n][1..n]

I mti [i ][i ] denotes the local logical clock of pi and tracks theprogress of the computation at process pi

I mti [i ][j ] denotes the latest knowledge that process pi has aboutthe local logical clock, mtj [j , j ], of process pj

I mti [j ][k] represents the knowledge that process pi has about thelatest knowledge that pj has about the local logical clock,mtk [k][k], of pk

The entire matrix mti denotes pi ’s local view of the globallogical time

Etienne Renault algorep 18 decembre 2017 22 / 27

Page 31: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Matrix Clocks : Informal

Time is represented by a set of n n matrices of non-negativeintegers

A process pi maintains a matrix mti [1..n][1..n]I mti [i ][i ] denotes the local logical clock of pi and tracks the

progress of the computation at process pi

I mti [i ][j ] denotes the latest knowledge that process pi has aboutthe local logical clock, mtj [j , j ], of process pj

I mti [j ][k] represents the knowledge that process pi has about thelatest knowledge that pj has about the local logical clock,mtk [k][k], of pk

The entire matrix mti denotes pi ’s local view of the globallogical time

Etienne Renault algorep 18 decembre 2017 22 / 27

Page 32: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Matrix Clocks : Informal

Time is represented by a set of n n matrices of non-negativeintegers

A process pi maintains a matrix mti [1..n][1..n]I mti [i ][i ] denotes the local logical clock of pi and tracks the

progress of the computation at process piI mti [i ][j ] denotes the latest knowledge that process pi has about

the local logical clock, mtj [j , j ], of process pj

I mti [j ][k] represents the knowledge that process pi has about thelatest knowledge that pj has about the local logical clock,mtk [k][k], of pk

The entire matrix mti denotes pi ’s local view of the globallogical time

Etienne Renault algorep 18 decembre 2017 22 / 27

Page 33: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Matrix Clocks : Informal

Time is represented by a set of n n matrices of non-negativeintegers

A process pi maintains a matrix mti [1..n][1..n]I mti [i ][i ] denotes the local logical clock of pi and tracks the

progress of the computation at process piI mti [i ][j ] denotes the latest knowledge that process pi has about

the local logical clock, mtj [j , j ], of process pjI mti [j ][k] represents the knowledge that process pi has about the

latest knowledge that pj has about the local logical clock,mtk [k][k], of pk

The entire matrix mti denotes pi ’s local view of the globallogical time

Etienne Renault algorep 18 decembre 2017 22 / 27

Page 34: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Matrix Clocks : Informal

Time is represented by a set of n n matrices of non-negativeintegers

A process pi maintains a matrix mti [1..n][1..n]I mti [i ][i ] denotes the local logical clock of pi and tracks the

progress of the computation at process piI mti [i ][j ] denotes the latest knowledge that process pi has about

the local logical clock, mtj [j , j ], of process pjI mti [j ][k] represents the knowledge that process pi has about the

latest knowledge that pj has about the local logical clock,mtk [k][k], of pk

The entire matrix mti denotes pi ’s local view of the globallogical time

Etienne Renault algorep 18 decembre 2017 22 / 27

Page 35: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Matrix Clocks : Definition

Rule R1Before executing an event (send, receive, or internal), process piexecutes the following

mti [i ][i ] := mti [i ][i ] + d with d > 0, typically 1

Rule R2Each message m is piggybacked with the matrix clock mt. When pireceive a message (m,mt) from a process pj , pi executes thefollowing sequence of actions :

∀k ∈ [1, n],mti [i ][k] := max(mti [i ][k],mt[j ][k])

∀k , ` ∈ [1, n]2,mti [k][`] := max(mti [k][`],mt[k][`])

Execute R1 and deliver message

Etienne Renault algorep 18 decembre 2017 23 / 27

Page 36: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Matrix Clocks : Definition

Rule R1Before executing an event (send, receive, or internal), process piexecutes the following

mti [i ][i ] := mti [i ][i ] + d with d > 0, typically 1

Rule R2Each message m is piggybacked with the matrix clock mt. When pireceive a message (m,mt) from a process pj , pi executes thefollowing sequence of actions :

∀k ∈ [1, n],mti [i ][k] := max(mti [i ][k],mt[j ][k])

∀k , ` ∈ [1, n]2,mti [k][`] := max(mti [k][`],mt[k][`])

Execute R1 and deliver message

Etienne Renault algorep 18 decembre 2017 23 / 27

Page 37: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Example

E

F

G

1 0 00 0 00 0 0

2 0 00 0 00 0 0

0 0 00 1 00 0 0

2 0 02 2 00 0 0

2 0 02 3 00 0 0

0 0 00 0 00 0 1

0 0 00 0 00 0 2

2 0 02 3 02 3 3

2 0 02 3 02 3 4

3 3 42 3 02 3 4

4 3 42 3 02 3 4

Etienne Renault algorep 18 decembre 2017 24 / 27

Page 38: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Example

E

F

G

1 0 00 0 00 0 0

2 0 00 0 00 0 0

0 0 00 1 00 0 0

2 0 02 2 00 0 0

2 0 02 3 00 0 0

0 0 00 0 00 0 1

0 0 00 0 00 0 2

2 0 02 3 02 3 3

2 0 02 3 02 3 4

3 3 42 3 02 3 4

4 3 42 3 02 3 4

Etienne Renault algorep 18 decembre 2017 24 / 27

Page 39: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Remarks

Important properties

mink(mti [k][`]) ≥ t =⇒ process pi knows that every other processpk knows that p`’s local time has progressed till t.

Etienne Renault algorep 18 decembre 2017 25 / 27

Page 40: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

1 Scalar Time : Lamport Clocks

2 Vector Time : Mattern Clocks

3 Matrix Time

4 Conclusion

Etienne Renault algorep 18 decembre 2017 26 / 27

Page 41: Etienne Renaultrenault/teaching/algorep/7-logical-time.pdf · Etienne Renault algorep 18 d ecembre 2017 7 / 27. Implementing Logical Clocks Rule R1 How does a process update the local

Conclusion

Different kind of logical timeI Scalar : Global Order, not causalI Vector : Strong Consistency, Causal DependencyI Matrix : Causality and Chronology

Virtual time system (Jefferson) is a paradigm for organizing andsynchronizing distributed systems

I If a conflict is discovered, the offending processes are rolledback to the time just before the conflict and executed forwardalong the revised path.

Etienne Renault algorep 18 decembre 2017 27 / 27