eecs 491 introduction to distributed systems · let’s revisit notion of time … what is the...

26
EECS 491 Introduction to Distributed Systems Fall 2019 Harsha V. Madhyastha

Upload: others

Post on 13-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

EECS 491Introduction to Distributed

Systems

Fall 2019

Harsha V. Madhyastha

Page 2: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Replicated State Machine● How to enable fault-tolerance of a service?

◆ Replicate state◆ Model every replica as deterministic state machine◆ Apply updates in same order à Same final state

● How to implement RSM?◆ Order updates based on time of receipt◆ Challenge: Syncing clocks given unbounded

network delay

September 10, 2019 EECS 491 – Lecture 3 2

Page 3: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Let’s revisit notion of time …● What is the utility of associating every event

with a timestamp?

● What property do we expect from our clocks?

● If event a “happened before” event b, then time(a) < time(b)

September 10, 2019 EECS 491 – Lecture 3 3

Page 4: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Idea: Logical clocks

● Landmark 1978 paper by Leslie Lamport

● Insight: Disregard precise clock time◆ Only relationships between events matter

● Associate every event with “logical time”◆ Preserve “happens before” relationships◆ a “happens before” b represented as a à b

4September 10, 2019 EECS 491 – Lecture 3

Page 5: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

What rules can we follow to identify which events happened before a particular event?

Defining “happens-before”

P1 P2 P3a

bc

5

Physical time ↓

September 10, 2019 EECS 491 – Lecture 3

ed

Space timediagram

Page 6: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

1. In same process, if a occurs before b, then a à b2. If c is a message receipt of b, then b à c3. If a à b and b à c, then a à c

Defining “happens-before”

P1 P2 P3a

bc

6

Physical time ↓

September 10, 2019 EECS 491 – Lecture 3

ed

Page 7: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Back to RSMs …

● How do we use “happens before” to construct a logical clock?

● Use logical clock to ensure consistent ordering of updates in an RSM

September 10, 2019 EECS 491 – Lecture 3 7

Page 8: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

● Associate any event a with a clock time C(a)

● Clock property: If a à b, then C(a) < C(b)

Lamport clock: Objective

8September 10, 2019 EECS 491 – Lecture 3

Page 9: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

● Each process Pi maintains a local clock Ci

● Define clock’s rules to respect “happens before” ◆ If a à b, then it must be the case that C(a) < C(b)

The Lamport Clock algorithm

P1C1=0

a

bc

P2C2=0

P3C3=0

9

Physical time ↓September 10, 2019 EECS 491 – Lecture 3

ed

f

Page 10: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

1. Before executing an event, Ci ß Ci + 1

The Lamport Clock algorithm

P1C1=1

a

bc

P2C2=0

P3C3=0

C(a) = 1

10

Physical time ↓September 10, 2019 EECS 491 – Lecture 3

ed

f

Page 11: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

1. Before executing an event, Ci ß Ci + 1

The Lamport Clock algorithm

P1C1=2

a

bc

P2C2=0

P3C3=0

C(b) = 2

C(a) = 1

11

Physical time ↓September 10, 2019 EECS 491 – Lecture 3

ed

f

Page 12: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

1. Before executing an event, Ci ß Ci + 1

2. Send the local clock in the message m

The Lamport Clock algorithm

P1C1=2

a

bc

P2C2=0

P3C3=0

C(b) = 2

C(a) = 1

C(m) = 212

Physical time ↓September 10, 2019 EECS 491 – Lecture 3

ed

f

Page 13: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

3. On process Pj receiving a message m:

◆ What time to set for receive event? C(m) + 1?

The Lamport Clock algorithm

P1C1=2

a

bc

P2C2=3

P3C3=0

C(b) = 2

C(a) = 1

C(m) = 213

Physical time ↓September 10, 2019 EECS 491 – Lecture 3

ed

f

C(c) = 3?

Page 14: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

EECS 491 – Lecture 3

3. On process Pj receiving a message m:

◆ What time to set for receive event? C(m) + 1?

The Lamport Clock algorithm

P1C1=2

a

bc

P2C2=3

P3C3=2

C(b) = 2

C(a) = 1

C(m) = 2C(c) = 3?

14

Physical time ↓

ed

f

C(d) = 1

C(e) = 2

C(f) = 3

September 10, 2019

Page 15: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

3. On process Pj receiving a message m:

◆ Set Cj and time of receive event to 1 + max{ Cj, C(m) }

The Lamport Clock algorithm

P1C1=2

a

bc

P2C2=4

P3C3=2

C(b) = 2

C(a) = 1

C(m) = 215

Physical time ↓

ed

f

C(d) = 1

C(e) = 2

C(f) = 3

September 10, 2019 EECS 491 – Lecture 3C(c) = 4

Page 16: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

● Associate any event a with a clock time C(a)

● Clock condition: If a à b, then C(a) < C(b)

● If a causally leads to b, then C(a) < C(b)

Lamport clock

16September 10, 2019 EECS 491 – Lecture 3

Page 17: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Example use of Lamport clock● Imagine actions on Facebook after internship

◆ A: Remove manager as friend◆ B: Post that you hated your internship

● Server that serves news feed to manager has executed B, but not yet A◆ Oops!

● Lamport clock to the rescue!◆ Guarantees that clock(A) < clock(B)◆ All servers will do A then B if they follow clock order

September 10, 2019 EECS 491 – Lecture 3 17

Page 18: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

● Not all events are related by “happens before”

● a, d not related by à so concurrent, written as a || d

Concurrent events

P1C1=2

a

bc

P2C2=4

P3C3=2

18

Physical time ↓

ed

f

September 10, 2019 EECS 491 – Lecture 3

Page 19: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Ordering all events

● How to ensure total ordering at all replicas?

● Can two events at same process have same clock value?

September 10, 2019 EECS 491 – Lecture 3 19

a bc

d e f

C = 1 2 3 4

a d b e f c

d a e b f c

C = 1 C = 2

Page 20: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Ordering all events● Break ties by appending process number to each event:

1. Process Pi timestamps event e with Ci(e).i2. C(a).i < C(b).j when:

» C(a) < C(b), or C(a) = C(b) and i < j

● Now, for two events a and b, C(a) < C(b) or C(b) < C(a)◆ Total ordering of events

20September 10, 2019 EECS 491 – Lecture 3

Page 21: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Announcements● Project 1

◆ Run non-deterministic test cases repeatedly◆ Synchronize concurrent access of shared state

● Friday’s discussion section:◆ Homework questions will be posted on web page

● Reminder: Group declaration due next Monday

September 10, 2019 EECS 491 – Lecture 3 21

Page 22: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

● Recall multi-site database replication:◆ San Francisco (P1) deposited $100:◆ New York (P2) paid 1% interest:

● Applying updates in different order made replicas inconsistent

● All replicas apply updates in Lamport clock order

Making concurrent updates consistent

P1P2

$%

22September 10, 2019 EECS 491 – Lecture 3

Page 23: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

23

RSMs with Lamport Clocks

P1P2

$ 3.1%

8.2

$

%

%

$

2.17.2

$3.1 %8.2

9.1 9.2

10.1 10.2

September 10, 2019 EECS 491 – Lecture 3

11.2

Page 24: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

● Key idea: Place events into a local queue◆ Sortedby increasing C(x)

● How to tell if update at head of queue can be applied?◆ Ping other nodes and check if they have earlier updates

Consistent Ordering of Updates

24

Replicated State Machine

Application

Updates

Ordered Updates

September 10, 2019 EECS 491 – Lecture 3

Replicated State Machine

Application

Updates

Server1 Server2

Page 25: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

25

RSMs with Lamport Clocks

P1P2

$ 3.1%

8.2

$

%

%

$

2.17.2

$3.1 %8.2

9.1 9.2

10.1 10.2

September 10, 2019 EECS 491 – Lecture 3

11.2

Page 26: EECS 491 Introduction to Distributed Systems · Let’s revisit notion of time … What is the utility of associating every event with a timestamp? What property do we expect from

Reducing Waiting● How to reduce time between receiving an

update and applying it?

● Periodically ping all other nodes to sync clock

● Tolerate temporary inconsistency◆ Apply update immediately upon receipt◆ But, maintain log of updates in order to rollback

September 10, 2019 EECS 491 – Lecture 3 26