/
Distributed Systems: Paxos Distributed Systems: Paxos

Distributed Systems: Paxos - PowerPoint Presentation

tatyana-admore
tatyana-admore . @tatyana-admore
Follow
365 views
Uploaded On 2018-03-17

Distributed Systems: Paxos - PPT Presentation

Burcu Canakci amp Matt Burke Outline Consensus The PartTime Parliament SingleDecree Paxos Liveness MultiDecree Paxos Paxos Variants Conclusion Outline Consensus The PartTime Parliament ID: 654982

propose paxos decide correct paxos propose correct decide consensus eventually deciding processes process food thai decides decided protocol prepare

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Distributed Systems: Paxos" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Distributed Systems: Paxos

Burcu Canakci & Matt Burke

Slide2

Outline

Consensus

The Part-Time Parliament

Single-Decree Paxos

Liveness

Multi-Decree Paxos

Paxos Variants

ConclusionSlide3

Outline

Consensus

The Part-Time Parliament

Single-Decree Paxos

Liveness

Multi-Decree Paxos

Paxos Variants

ConclusionSlide4

What is consensus?

Where do we want to go to eat lunch?Slide5

What is consensus?

I personally don’t care.

Indifferent.

I’m good with anywhere.

Slide6

What is consensus?

Where do we want to go to eat lunch?Slide7

What is consensus?

I’d like

Thai

food.

I’m feeling

Korean

food.

I also want

Thai

food.Slide8

What is consensus?

OK, let’s get

Thai

food.

OK, let’s get

Thai

food.

OK, let’s get

Thai

food.Slide9

What is consensus?

Consensus

is the problem of getting a set of processors to agree on some value.Slide10

What is consensus?

OK, let’s get

Thai

food.

OK, let’s get

Thai

food.

OK, let’s get

Thai

food.Slide11

What is consensus?

More formally,

consensus

is the problem of satisfying the following properties:

Validity

Agreement

Integrity

Termination Slide12

What is consensus?

More formally,

consensus

is the problem of satisfying the following properties:

Validity

If all processes that propose a value propose v, then all correct deciding processes eventually decide v

Agreement

Integrity

Termination Slide13

What is consensus?

I’d like

Thai

food.

Thai

food.

I also want

Thai

food.

Validity:

If all processes that propose a value propose v, then all correct deciding processes eventually decide vSlide14

What is consensus?

More formally,

consensus

is the problem of satisfying the following properties:

Validity

If all processes that propose a value propose v, then all correct deciding processes eventually decide v

Agreement

I

f a correct deciding process decides v, then all correct deciding processes eventually decide v

IntegrityTermination Slide15

What is consensus?

I’d like

Thai

food.

I’m feeling

Korean

food.

I also want

Thai

food.

Agreement:

If a correct deciding process decides v, then all correct deciding processes eventually decide v

OK, let’s get

Thai

food.

OK, let’s get

Thai

food.

OK, let’s get

Thai

food.Slide16

What is consensus?

More formally,

consensus

is the problem of satisfying the following properties:

Validity

If all processes that propose a value propose v, then all correct deciding processes eventually decide v

Agreement

If a correct deciding process decides v, then all correct deciding processes eventually decide v

Integrity

Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed vTerminationSlide17

What is consensus?

I’d like

Thai

food.

I’m feeling

Korean

food.

I also want

Thai

food.

Integrity:

Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed v

Slide18

What is consensus?

More formally,

consensus

is the problem of satisfying the following properties:

Validity

If all processes that propose a value propose v, then all correct deciding processes eventually decide v

Agreement

If a correct deciding process decides v, then all correct deciding processes eventually decide v

Integrity

Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed vTerminationEvery correct learning process eventually learns some decided valueSlide19

What is consensus?

I’d like

Thai

food.

I’m feeling

Korean

food.

I also want

Thai

food.

Agreement:

If a correct deciding process decides v, then all correct deciding processes eventually decide v

OK, let’s get

Thai

food.

OK, let’s get

Thai

food.

OK, let’s get

Thai

food.

Termination:

Every correct learning process eventually learns some decided value

Slide20

Assumption about our model

Asynchronous

, but

reliable

, networkSlide21

Assumption about our model

Asynchronous

, but

reliable

, network

Every message is eventually delivered, but can be delayed arbitrarily longSlide22

Assumption about our model

Asynchronous

, but

reliable

, network

Every message is eventually delivered, but can be delayed arbitrarily long

Processes can take arbitrarily long to transition between statesSlide23

Assumption about our model

Asynchronous

, but

reliable

, network

Every message is eventually delivered, but can be delayed arbitrarily long

Processes can take arbitrarily long to transition between states

Processes can only fail by

crashingSlide24

Assumption about our model

Asynchronous

, but

reliable

, network

Every message is eventually delivered, but can be delayed arbitrarily long

Processes can take arbitrarily long to transition between states

Processes can only fail by

crashingNo indication of failure; simply stops responding to messagesSlide25

Assumption about our model

Asynchronous

, but

reliable

, network

Every message is eventually delivered, but can be delayed arbitrarily long

Processes can take arbitrarily long to transition between states

Processes can only fail by

crashingNo indication of failure; simply stops responding to messages

Failed processes cannot arbitrarily transition or send arbitrary messagesSlide26

Timeline

Time, Clocks and Ordering

State Machine Replication

Paxos Published

1978

1984

1989

Slide27

Timeline

Time, Clocks and Ordering

State Machine Replication

Paxos Published

1978

1984

1989

Paxos Published In Journal

1998

Slide28

Timeline

Time, Clocks and Ordering

State Machine Replication

Paxos Published

1978

1984

1989

Paxos Published In Journal

1998

Paxos Made Simple

2001

Slide29

Timeline

Time, Clocks and Ordering

State Machine Replication

Paxos Published

1978

1984

1989

Paxos Published In Journal

1998

Paxos Made Simple

2001

2015

Paxos Made Moderately ComplexSlide30

Recall the Consensus Problem in the State Machine ApproachSlide31

Outline

Consensus

The Part-Time Parliament

Single-Decree Paxos

Liveness

Multi-Decree Paxos

Paxos Variants

ConclusionSlide32

The Part-Time Parliament

The Part-Time Parliament (1998)

R

ecent archaeological discoveries on the island of Paxos reveal that the parliament functioned despite the peripatetic propensity of its part-time legislators. The legislators maintained consistent copies of the parliamentary record, despite their frequent forays from the chamber and the forgetfulness of their messengers. The Paxon parliament’s protocol provides a new way of implementing the state machine approach to the design of distributed systems.

Leslie LamportSlide33

The Part-Time Parliament

Slide34

The Part-Time Parliament

The Part-Time Parliament (1998)

Recent archaeological discoveries on the island of Paxos reveal that the parliament functioned despite the peripatetic propensity of its part-time legislators. The legislators maintained consistent copies of the parliamentary record, despite their frequent forays from the chamber and the forgetfulness of their messengers. The Paxon parliament’s protocol provides a new way of implementing the state machine approach to the design of distributed systems.

Paxos Made Simple (2001)

The Paxos algorithm, when presented in plain English, is very simple.

Leslie LamportSlide35

Paxos Made Moderately Complex

Paxos Made Moderately Complex (2015)

This article explains the full reconfigurable multidecree Paxos (or multi-Paxos) protocol. Paxos is by no means a simple protocol, even though it is based on relatively simple invariants. We provide pseudocode and explain it guided by invariants.

Robbert Van Renesse

Deniz AltinbukenSlide36

Outline

Consensus

The Part-Time Parliament

Single-Decree Paxos

Liveness

Multi-Decree Paxos

Paxos Variants

ConclusionSlide37

Roles in Protocol

Validity

If all processes that propose a value propose v, then all correct deciding processes eventually decide v

Agreement

If a correct deciding process decides v, then all correct deciding processes eventually decide v

Integrity

Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed v

Termination

Every correct learning process eventually learns some decided value

Slide38

Roles in Protocol

Validity

If all processes that

propose

a value

propose

v, then all correct

deciding

processes eventually

decide

v

Agreement

If a correct

deciding

process

decides v, then all correct deciding processes eventually

decide vIntegrity

Every correct

deciding

process

decide

s at most one value, and if it

decide

s

v, then some process must have

propose

d v

Termination

Every correct

learning

process eventually

learn

s

some

decided

value

Proposers

Acceptors

LearnersSlide39

Constructing a Protocol

Proposer

Do nothing

Acceptor

Let v

decided

= v

0

and send decide(v0) to learnersSlide40

Constructing a Protocol

decide(v

0

)

Integrity:

Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed v

Slide41

Constructing a Protocol

Proposer

When have value v to propose

Send propose(v) to acceptors

Acceptor

On receive propose(v)

If not yet decided, let v

decided

= v and send decide(v) to learnersSlide42

Constructing a Protocol

propose(v)

???

propose(v)

propose(v)

Termination:

Every correct learning process eventually learns some decided value

Slide43

Constructing a Protocol

Proposer

When have value v to propose

Send propose(v) to acceptors

Acceptor

On receive propose(v)

If not yet decided, let v

decided

= vWhen majority of correct acceptors have decided v

Send decide(v) to learnersSlide44

Constructing a Protocol

propose(v)

propose(v)

decide(v)

decide(v)

propose(v)Slide45

v’

v’’

v

Constructing a Protocol

propose(v’)

propose(v’’)

propose(v)

???

Agreement:

If a correct deciding process decides v, then all correct deciding processes eventually decide v

Slide46

prepare(1)

promise(1)

propose(v’,1)

prepare(0)

promise

(0)

0

0

1

0

Constructing a Protocol

1

1

propose(v,0)

v’,

1

v’,

1

v’,

1

decide(v’)

decide(v’)

decide(v’)

Ballot number:

unique natural number associated with each proposal made by any proposer

Slide47

Constructing a Protocol

Proposer

When have value v to propose

Send prepare(b) to acceptors, where b is the highest ballot number not yet used that is known to the proposer

When have majority of acceptors’ promises for proposal b

Send propose(v,b) to acceptors

Acceptor

On receive prepare(b)

If b > b

promised

, let b

promised

= b and respond with promise(b)

On receive

propose(v,b)

If b = bpromised, let vdecided = v

When majority of correct acceptors have decided vSend decide(v) to learnersSlide48

decide(v

)

decide(v’)

decide(v’)

decide(v)

decide(v)

decide(v)

prepare(1)

promise(1)

propose(v’,1)

prepare(0)

promise(0)

0

0

v,0

v,0

0

v,0

v,

1

Constructing a Protocol

v,

1

v,

1

propose(v,0)

v’,1

v’,1

v’,1

v

v’

Integrity:

Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed v

Slide49

Constructing a Protocol

Proposer

When have value v to propose

Send prepare(b) to acceptors, where b is the highest ballot number not yet used that is known to the proposer

When have majority of acceptors’ promises for proposal b

Send propose(v,b) to acceptors,

where v is the value of the highest accepted proposal, or any value if no proposal accepted

Acceptor

On receive prepare(b)

If b > b

promised

, let b

promised

= b and respond with

promise(b, vdecided)On receive propose(v,b)

If b = bpromised, let vdecided = vWhen majority of correct acceptors have decided vSend decide(v) to learnersSlide50

Constructing a Protocol

Paxos

Proposer

When have value v to propose

Send prepare(b) to acceptors, where b is the highest ballot number not yet used that is known to the proposer

When have majority of acceptors’ promises for proposal b

Send propose(v,b) to acceptors, where v is the value of the highest accepted proposal, or any value if no proposal accepted

Acceptor

On receive prepare(b)

If b > b

promised

, let b

promised

= b and respond with promise(b, v

decided)On receive propose(v,b)If b = bpromised

, let vdecided = vWhen majority of correct acceptors have decided vSend decide(v) to learnersSlide51

Outline

Consensus

The Part-Time Parliament

Single-Decree Paxos

Liveness

Multi-Decree Paxos

Paxos Variants

ConclusionSlide52

Liveness

Something good eventually happens

Progress is made

An action is always eventually executed

Slide53

Liveness

Something good eventually happens

Progress is made

An action is always eventually executed

In consensus

Termination

Every correct learning process eventually learns some decided value

Slide54

Liveness

Something good eventually happens

Progress is made

An action is always eventually executed

In consensus

Does Paxos guarantee liveness?

Termination

Every correct learning process eventually learns some decided value

Slide55

prepare(0)

Scenario

Slide56

promise(0)

0

0

0

Scenario

Slide57

prepare(1)

0

0

0

Scenario

Slide58

promise(1)

1

1

1

Scenario

Slide59

propose(v, 0)

1

1

1

Scenario

Slide60

prepare(3)

3

3

3

Scenario

Slide61

promise(3)

3

3

3

Scenario

._.

Slide62

propose

(v’, 1)

3

3

3

Scenario

._.

Slide63

prepare(4)

3

3

3

Scenario

-_-

Slide64

promise(4)

4

4

4

Scenario

Slide65

Outline

Consensus

The Part-Time Parliament

Single-Decree Paxos

Liveness

Multi-Decree Paxos

Paxos Variants

ConclusionSlide66

Consider Input Ordering in SMRSlide67

Paxos Made Moderately Complex

Slide68

Paxos Made Moderately Complex

Proposers

Slide69

Paxos Made Moderately Complex

Proposers

Learners

Slide70

Paxos Made Moderately Complex

Proposers

Learners

Acceptors

Somewhere here

Slide71

Paxos Made Moderately Complex

Proposers

Learners

Acceptors

Somewhere here

Slide72

Paxos Made Moderately Complex

Slide73

Paxos Made Moderately Complex

Prepare

Slide74

Paxos Made Moderately Complex

Prepare

PromiseSlide75

Paxos Made Moderately Complex

Prepare

Promise

ProposeSlide76

Paxos Made Moderately Complex

Prepare

Promise

Propose

Slide77

Paxos Made Moderately Complex

Prepare

Promise

Propose

can both be

preempted

by a higher ballot number being reportedSlide78

Outline

Consensus

The Part-Time Parliament

Single-Decree Paxos

Liveness

Multi-Decree Paxos

Paxos Variants

ConclusionSlide79

Paxos Variants

Fast Paxos

Generalized Paxos

Disk Paxos

Cheap Paxos

Vertical Paxos

Egalitarian Paxos

Mencius

Stoppable PaxosSlide80

Paxos in Real Systems

Chubby

Google Spanner

Megastore

OpenReplica

Bing

WANDisco

XtreemFS

Doozerd

Ceph

Clustrix

Neo4jSlide81

Outline

Consensus

The Part-Time Parliament

Single-Decree Paxos

Liveness

Multi-Decree Paxos

Paxos Variants

ConclusionSlide82

Conclusion

Paxos

is a protocol for solving the

consensus problem

in an

asynchronous

distributed environment with processors that can fail by

crashing

A replicated state machine can be built by maintaining a distributed command log where the command at each position in the log is decided by solving consensus

Correctly and efficiently implementing a replicated state machine using Paxos is notoriously difficult