Top Banner
Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology [email protected] dsg.tuwien.ac.at/staff/truong Distributed Systems, WS 2014 DS WS 2014 1
45

Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Apr 19, 2019

Download

Documents

vunga
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Time and Coordination in Distributed

Systems

Hong-Linh Truong

Distributed Systems Group,

Vienna University of Technology

[email protected]/staff/truong

Distributed Systems, WS 2014Distributed Systems, WS 2014

DS WS 2014 1

Page 2: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

What is this lecture about?

Understand the time synchronization problems

Understand some basic algorithms for

synchronizing times

Understand why we do need logical clocks

Understand basic methods for coordination

DS WS 2014 2

Page 3: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Learning Materials

Main reading:

Tanenbaum & Van Steen, Distributed Systems: Principles and

Paradigms, 2e, (c) 2007 Prentice-Hall

Chapter 6

Roberto Baldoni, Michel Raynal: Fundamentals of Distributed

Computing: A Practical Tour of Vector Clock Systems. IEEE

Distributed Systems Online 3(2) (2002)

http://www.dis.uniroma1.it/~baldoni/baldoni-112865.pdf

George Coulouris, Jean Dollimore, Tim Kindberg, Gordon

Blair„Distributed Systems – Concepts and Design“, 5nd Edition

Chapter 14 & 15

Sukumar Ghosh, Distributed Systems: An Algorithmic

Approach,Chapman and Hall/CRC, 2007, Chapters 6, 7, 11

DS WS 2014 3

Page 4: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Outline

Clock synchronization

Physical clock

Logical clock

Vector Clock

Distributed coordination

Mutual exclusion

Leader election

Summary

DS WS 2014 4

Page 5: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

PHYSICAL CLOCK

SYNCHRONIZATION

DS WS 2014 5

Page 6: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Fact

Most clocks have limited precision

Clock drift requires clock adjustment/correction

Atomic clocks

Very accurate, almost no drift

But very expensive

In a large-scale distributed system we cannot

have many atomic clocks

Clocks provide different times (clock skew

problem)!

DS WS 2014 6

Page 7: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Why do we need clock/time

synchronization?

DS WS 2014 7

https://www.greyware.com/software/domaintime/i

nstructions/quickstart/regulatory-nyse.asp

http://online.wsj.com/articles/regulators-traders-

are-out-of-sync-1405295799

Source https://ics-cert.us-

cert.gov/sites/default/files/docu

ments/Incident_Handling_Broc

hure_Nov2010a.pdf

Some reasons

Accountability of processes

Consistency in processing messages

Validity of important messages

Fairness in processing requests

Page 8: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Real clock synchronization

Establish/Decide reference physical clocks to provide

an accurate timing system

Coordinated Universal Time (UTC)

Based on atomic time produced by the most

accurate physical clocks using atomic oscillators

Operate/Utilize accuracy physical clocks providing UTC

time

Synchronize other physical clocks using time

synchronization algorithms

DS WS 2014 8

Challenging issue: it is impossible to guarantee timers/clocks

in different computers due to the clock drift problem

Challenging issue: it is impossible to guarantee timers/clocks

in different computers due to the clock drift problem

Page 9: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Time provided by real physical

clocks

Computer clocks/timers

Every computer has a clock/timer

Radio clocks receiving time codes via radio

wave

Radio transmitter connects to an accuracy time

source based on UTC time standard

GPS (Global Positioning System) - a system of

satellites, each broadcasts

its positions and the time stamps, based on its local

time

DS WS 2014 9

Page 10: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Cristian‘s Algorithm

DS WS 2014 10

msg

max((𝑡𝑒 𝐴 , (𝑡𝑒 𝐵 +𝑅𝑇𝑇

2))

𝑅𝑇𝑇 = (𝑡𝑒 𝐴 − 𝑡𝑠(𝐴)) − (𝑡𝑒(𝐵) − 𝑡𝑠(𝐵))A B: reference clock

𝑡𝑠(𝐴)

𝑡𝑒(𝐴)

𝑡𝑒(𝐵)

msg 𝑡𝑒(𝐵)

𝑡𝑠(𝐵)

The most simple case: Assume that times

spent in sending messages are the same

and that the processing time at B is 0 then

𝑅𝑇𝑇 = (𝑡𝑒 𝐴 − 𝑡𝑠(𝐴))

𝑡′𝑒 𝐴 = (𝑡𝑒 𝐵 + 𝑅𝑇𝑇/2)

Based on B‘s clock the message should

arrive at A at

Q1: Drawbacks of this algorithm?

Q2: RTT is varying, how can the accuracy of this method be improved?

Homework: Assume we know the minimum time required for sending a

message, Can you estimate the accuracy?

Q1: Drawbacks of this algorithm?

Q2: RTT is varying, how can the accuracy of this method be improved?

Homework: Assume we know the minimum time required for sending a

message, Can you estimate the accuracy?

A‘s clock:

Page 11: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Machine …

Machine j

Berkeley Algorithm

DS WS 2014 11

Reference time

server

Machine 1

𝑇𝑑𝑖𝑓𝑓(𝑖))

𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘

𝑇𝑎𝑑𝑗𝑢𝑠𝑡𝑚𝑒𝑛𝑡 𝑖 = 𝑘=1𝑛 𝑇𝑑𝑖𝑓𝑓(𝑖))

𝑛− 𝑇𝑑𝑖𝑓𝑓(𝑖)

𝑘=1𝑛 (𝑇𝑑𝑖𝑓𝑓(𝑖))

𝑛

𝑘=1𝑛 (𝑇𝑑𝑖𝑓𝑓(𝑖))

𝑛

𝑇𝑑𝑖𝑓𝑓 𝑖= 𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘 𝑖− 𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘

𝑇𝑑𝑖𝑓𝑓 𝑖= 𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘 𝑖− 𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘

𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘 𝑖= 𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘+ 𝑇𝑎𝑑𝑗𝑢𝑠𝑡𝑚𝑒𝑛𝑡(𝑖)

𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘 𝑖= 𝑇𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝑐𝑙𝑜𝑐𝑘+ 𝑇𝑎𝑑𝑗𝑢𝑠𝑡𝑚𝑒𝑛𝑡(𝑖)

Page 12: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Berkeley Algorithm

Q: Why is it not good to use this algorithm outside a LAN?Q: Why is it not good to use this algorithm outside a LAN?

DS WS 2014 12

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd

Edition, 2007, Prentice-Hall

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd

Edition, 2007, Prentice-Hall

Page 13: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Example: Network Time Protocol

(NTP)

www.ntp.org

DS WS 2014 13

Secondary

NTP Server

Secondary

NTP Server

Primary NTP

Server

Primary NTP

Server

Secondary

NTP Server

Secondary

NTP Server

Secondary

NTP Server

Secondary

NTP Server

Secondary

NTP Server

Secondary

NTP Server

ClientClient UTC (e.g.,

atomic clock,

GPS, ESA

Galileo)

Protocol variants using unreliable communication (UDP):

Multicast (servers send the time), client/server (similar to

Cristina’s algorithm), symmetric (between high and

lower level server)

Page 14: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

LOGICAL CLOCKS

DS WS 2014 14

Page 15: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Logical clocks

In many cases: we do not need an exact

physical timing, as long as we able to maintain

the physical causality

DS WS 2014 15

Logical clock: using physical causality model for ordering

events among distributed processes

Logical clock: using physical causality model for ordering

events among distributed processes

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems –

Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems –

Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall

a1

a2

b1

b2

Intention:

We just need

(a1,a2) being executed

before (b1,b2) or

another way around

You

withdraw

your money

Your bank increases

the interest for your

money

money money

Page 16: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

P1P1

Happen-before relation

DS WS 2014 16

Time

a b a b

P1P1

a

P2P2

b

sendTo (P2, msg)

receiveFrom (P1, msg)

a1

b1

IF THEN

IF THEN

a b

a1 ? b1

b1 ? a

concurrent

Happen-before () relation between a and b indicates that

event a occurs before b logically. It is possible that a affects b

Happen-before () relation between a and b indicates that

event a occurs before b logically. It is possible that a affects b

Page 17: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Example of concurrent events

DS WS 2014 17

a

b

11:00 am

a1

b1

11:30 am

11:05 am 11:15 am

a

b

11:00 am

a1

b1

11:30 am

11:35 am11:40 am

Page 18: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Lamport‘s logical clock

DS WS 2014 18

𝐶𝑖 ++

𝑃𝑖

𝑃𝑗

𝐶𝑗 ++

𝐶𝑖 ++

msg𝑃𝑖 𝑡𝑠 = 𝐶𝑖

Step 1

Step 2

Step 1 𝐶𝑗 = max 𝐶𝑗 , 𝑡𝑠

𝐶𝑗 ++Step 2

Step 3: process the message

Increase the clock before

executing an event

Used to synchronize a logical clock 𝐶𝑖 of

process 𝑃𝑖

Page 19: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Example of Lamport‘s logical clock

DS WS 2014 19

Without Lamport‘s logical clock With Lamport‘s logical clock

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall

Page 20: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Message interception and logical

clock adjustment implementation

DS WS 2014 20

Source: Andrew S. Tanenbaum and Maarten van

Steen, Distributed Systems – Principles and

Paradigms, 2nd Edition, 2007, Prentice-Hall

Source: Andrew S. Tanenbaum and Maarten van

Steen, Distributed Systems – Principles and

Paradigms, 2nd Edition, 2007, Prentice-Hall

Home work: work out on in detail how Lamport‘s logical

clock could be used for the update problem with replicated

database

Home work: work out on in detail how Lamport‘s logical

clock could be used for the update problem with replicated

database

Page 21: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Limitation of Lamport‘s logical clock

recv(m4) < send(m5):

Maybe m5 is

dependent on m4

(causality)

recv (m1) < send (m2):

We do not know their

relationship

DS WS 2014 21

C(a) < C(b) =! a b, We

miss causality information

C(a) < C(b) =! a b, We

miss causality information

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed

Systems – Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed

Systems – Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall

Page 22: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Limitation of Lamport‘s logical clock

The main problem

A process does not keep

track of (possibly causal)

events happening in other

processes

The solution

A process should also

maintain information about

causal events occurring in

other processes

DS WS 2014 22

Source: Andrew S. Tanenbaum and Maarten van

Steen, Distributed Systems – Principles and

Paradigms, 2nd Edition, 2007, Prentice-Hall

Source: Andrew S. Tanenbaum and Maarten van

Steen, Distributed Systems – Principles and

Paradigms, 2nd Edition, 2007, Prentice-Hall

𝑃𝑖

𝑃𝑗

𝐶𝑗 + +

𝐶𝑖 + +

msg𝑃𝑖 𝑡𝑠 = 𝐶𝑖

Step 2

Page 23: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Vector Clocks

A process 𝑃𝑖 maintains a vector clock 𝑉𝐶𝑖 where

𝑉𝐶𝑖 𝑖 is the number of events happened in 𝑃𝑖 𝑉𝐶𝑖 𝑗 = 𝑘 means that 𝑃𝑖 knows there were k

events occurred in 𝑃𝑗 that have causal relation

with 𝑃𝑖Implementation

Each message is associated with a 𝑉𝐶

For event a and b, it is possible that a affects b,

then a.VC <b.VC DS WS 2014 23

Goal: a vector clock (VC) allows us to interpret if VC(a) <

VC(b) then a causally precedes b

Goal: a vector clock (VC) allows us to interpret if VC(a) <

VC(b) then a causally precedes b

Page 24: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Vector Clocks

DS WS 2014 24

𝑉𝐶𝑖 𝑖 + +

𝑃𝑖

𝑃𝑗𝑉𝐶𝑗 𝑗 + +

𝑉𝐶𝑖 𝑖 + +, but do no change other 𝑉𝐶𝑖 𝑘

msg𝑃𝑖 𝑡𝑠 = 𝑉𝐶𝑖

Step 1

Step 2

Step 1 𝑉𝐶𝑗 𝑘 = max 𝑉𝐶𝑗 𝑘 , 𝑡𝑠 𝑘

𝑉𝐶𝑗 𝑗 + +Step 2

Step 3: process the message

Page 25: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Example of vector clocks

DS WS 2014 25

Source: Roberto Baldoni, Michel Raynal: Fundamentals of

Distributed Computing: A Practical Tour of Vector Clock

Systems. IEEE Distributed Systems Online 3(2) (2002)

Source: Roberto Baldoni, Michel Raynal: Fundamentals of

Distributed Computing: A Practical Tour of Vector Clock

Systems. IEEE Distributed Systems Online 3(2) (2002)

clock in

P1

clock in

P2

clock in

P2

Page 26: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Applications of logical/vector

clocks

Replication by using totally order multicast

atomic multicast in which all members accept

messages in the same order

Multimedia real-time applications,

teleconferencing using causal multicast

If multicast(m1) multicast(m2), then (m1) must be

delivered before m2 for all processes

DS WS 2014 26

Page 27: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Causal broacast example

DS WS 2014 27

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall

Assumption: Upon sending a message 𝑃𝑖 𝑜𝑛𝑙𝑦 𝑖𝑛𝑐𝑟𝑒𝑎𝑠𝑒𝑠𝑉𝐶𝑖 𝑖 𝑏𝑦 1When receiving a message only adjust 𝑉𝐶𝑗 𝑘 𝑡𝑜max( 𝑉𝐶𝑗 𝑘 , 𝑡𝑠[𝑘])

Page 28: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

MUTUAL EXCLUSION

DS WS 2014 28

Page 29: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Mutual exclusion in distributed

systems Multiple processes might access the same resource

Mutual exclusion: prevent them to use the resource at the

same time to avoid making resource inconsistent/corrupted

Multiple processes might access the same resource

Mutual exclusion: prevent them to use the resource at the

same time to avoid making resource inconsistent/corrupted

DS WS 2014 29

Bank Account

Salary

Payment

Housing

Payment

Overdue

Check

Approaches:

Token-based

Permission-based

Page 30: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Centralized Model

DS WS 2014 30

Permission-based approach: a dedicated server gives permission, emulating

the execution of critical section

Permission-based approach: a dedicated server gives permission, emulating

the execution of critical section

private static Lock lock =new ReentrantLock();

public void criticalSection(){

System.out.println("This is a critical section: access only with permission");

System.out.println("======== I am "+id+" Waiting for the lock===========");

lock.lock();

System.out.println("I am "+id+" I got the lock now");

System.out.println(id + " doing some work ");

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

}

System.out.println("======== I am "+id+" releasing the lock=============");

lock.unlock();

}

https://github.com/tuwiendsg/distributedsystemsexamples/tree/master/simplecentralizedmultualexclusion

Page 31: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Centralized Model

DS WS 2014 31

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd Edition, 2007, Prentice-Hall

Q1: What are the main problems with this centralized model?

Q2: How do you support access priority?

Homework: sketch a solution for time-based access priority

Q1: What are the main problems with this centralized model?

Q2: How do you support access priority?

Homework: sketch a solution for time-based access priority

Page 32: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Example

A very simple code

for a single resource using TCP communication

https://github.com/tuwiendsg/distributedsystemsexa

mples/tree/master/simplecentralizedmultualexclusion

DS WS 2014 32

java

at.ac.tuwien.dsg.dsexamples.Centr

alizedMutualExclusion localhost

4001 no tuwien

java

at.ac.tuwien.dsg.dsexamples.Centr

alizedMutualExclusion localhost

4001 no tuwien

java

at.ac.tuwien.dsg.dsexamples.

CentralizedMutualExclusion

localhost 4001 yes null

java

at.ac.tuwien.dsg.dsexamples.

CentralizedMutualExclusion

localhost 4001 yes null

Page 33: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Distributed algorithm (Ricart,

Agrawala, Lamport)Given a set of processes {𝑃1, 𝑃2, …, 𝑃𝑛}

If 𝑷𝒊wants to access a resource R, 𝑷𝒊 broadcast a

message msg(R, 𝑷𝒊, ts)

If 𝑷𝒋 receives msg(R, 𝑷𝒊, ts) then

No interest, no access return „OK“

Already accessing R then does not reply by putting the

msg into the queue

If already sent msg(R, 𝑃𝑗, tsj) but has not accessed R:

If ts < tsj then returns „OK“, otherwise put it in queue

If 𝑷𝒊 gets all OK then it can access R, after that it sends

an OK to all

DS WS 2014 33

Source: Andrew S. Tanenbaum and Maarten van Steen,

Distributed Systems – Principles and Paradigms, 2nd

Edition, 2007, Prentice-Hall

Source: Andrew S. Tanenbaum and Maarten van Steen,

Distributed Systems – Principles and Paradigms, 2nd

Edition, 2007, Prentice-Hall

Page 34: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Example

DS WS 2014 34

Source: Andrew S. Tanenbaum and Maarten van Steen,

Distributed Systems – Principles and Paradigms, 2nd

Edition, 2007, Prentice-Hall

Source: Andrew S. Tanenbaum and Maarten van Steen,

Distributed Systems – Principles and Paradigms, 2nd

Edition, 2007, Prentice-Hall

Page 35: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Ring algorithm

DS WS 2014 35

𝑃0

𝑃1𝑃𝑘−1

𝑃..

𝑃𝑖

𝑃…

𝑃..

token

When 𝑃𝑖 receives the token:

1. It accesses the resource and releases resource and

passes the token

2. Otherwise it just passes the token

Page 36: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

ELECTION ALGORITHMS

DS WS 2014 36

Page 37: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Leader election

In many situations we need a coordinator

The coordinator is selected from a set of processes

Why is it challenging to elect a coordinator?

Distributed, multiple processes involvement

Election algorithms

Designed for electing leaders

Processes are uniquely identified, e.g., using

process id

Process election occurs when

Initiating the systems, existing coordinator failed, etc.

DS WS 2014 37

Page 38: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Bully algorithm

DS WS 2014 38

𝑃𝑖

𝑃𝑘

𝑃𝑙

𝑃𝑚 Ps

𝑃𝑎

𝑃𝑏

𝑃𝑔

Lower rank processes Higher rank processes

ELECTION (1)

OK (1)

coordinator

ELECTION (2)

COORDINATOR

Page 39: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Example

DS WS 2014 39

Source: Andrew S.

Tanenbaum and Maarten

van Steen, Distributed

Systems – Principles and

Paradigms, 2nd Edition,

2007, Prentice-Hall

Source: Andrew S.

Tanenbaum and Maarten

van Steen, Distributed

Systems – Principles and

Paradigms, 2nd Edition,

2007, Prentice-Hall

Page 40: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Ring algorithm

From Le Lann, Chang and Roberts

Processes are organized into a ring, initially „non-

participant“ in the election

Election message (ELECTION) and elected message

(COORDINATION)

Messages are forwarded or created and sent clockwise

DS WS 2014 40

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd

Edition, 2007, Prentice-Hall

George Coulouris, Jean Dollimore, Tim Kindberg, „Distributed Systems – Concepts and Design“, 2nd Edition,

Chapter 10

Nancy A Lynch, Distributed Algorithms, 1996, Chapter 3.

Source: Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems – Principles and Paradigms, 2nd

Edition, 2007, Prentice-Hall

George Coulouris, Jean Dollimore, Tim Kindberg, „Distributed Systems – Concepts and Design“, 2nd Edition,

Chapter 10

Nancy A Lynch, Distributed Algorithms, 1996, Chapter 3.

Page 41: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Ring algorithm

DS WS 2014 41

𝑃𝑖 {𝑃𝑖}

{𝑃𝑖}

𝑃𝑖+1𝑃𝑖−1

𝑃𝑘{𝑃𝑘}

𝑃𝑚𝑎𝑥

𝑃…

𝑃..

ELECTION

{𝑃𝑚𝑎𝑥}

{𝑃𝑚𝑎𝑥}

un-participant

{𝑃𝑖}> {𝑃𝑖+1}

un-participant

{𝑃𝑘}> {𝑃𝑖}

participant

un-participant

{𝑃𝑚𝑎𝑥}> {𝑃𝑘}

{𝑃𝑚𝑎𝑥}

{𝑃𝑚𝑎𝑥}

{𝑃𝑚𝑎𝑥}

Dectect the leader

participant

participant

Q1: if 𝑃𝑘 receives another ELECTION

message with a smaller identifier after

becoming participant, what should it do?

Q1: if 𝑃𝑘 receives another ELECTION

message with a smaller identifier after

becoming participant, what should it do?

Another variant:

We do not compare and

replace 𝑃𝑖 but add 𝑃𝑖 into

the list and if a process

recognizes its ID in the

list, it becomes a leader

Page 42: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

COORDINATION Message

Ring algorithm

DS WS 2014 42

𝑃𝑖

𝑃𝑖+1𝑃𝑖−1

𝑃𝑘

𝑃𝑚𝑎𝑥

𝑃…

𝑃..

{𝑃𝑚𝑎𝑥}

{𝑃𝑚𝑎𝑥}

{𝑃𝑚𝑎𝑥}

{𝑃𝑚𝑎𝑥}

Dectect the leader

Non-participant

Non-participant

Page 43: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Simple Flooding Algorithm

Steps

P maintains the maximum unique process

identifier (UID) it knows

At a round, each P sends this UID to all nodes in

its outgoing edges

After n rounds, if a process P sees its ID equal

to the maximum UID, then the process becomes

the leader

DS WS 2014 43

Source: Nancy A Lynch, Distributed Algorithms, 1996, Chapter 4.Source: Nancy A Lynch, Distributed Algorithms, 1996, Chapter 4.

Assumption: processes are structured into a directed graphAssumption: processes are structured into a directed graph

Page 44: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

Summary

Time synchronization is important in real-world

But a complex problem in distributed systems

Different algorithms with different pros and cons

Logical clocks are useful in many situations

Happen-before or physical causality is the main

principle

Distributed coordination needs both mutual

exclusion and election mechanism

Dont forget to analyze algorithms to understand

their pros and cons

DS WS 2014 44

Page 45: Time and Coordination in Distributed Systems - TU Wien · Time and Coordination in Distributed Systems Hong-Linh Truong Distributed Systems Group, Vienna University of Technology

45

Thanks for your attention

Hong-Linh Truong

Distributed Systems Group

Vienna University of Technology

[email protected]

http://dsg.tuwien.ac.at/staff/truong

DS WS 2014