Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed...

33
Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001

Transcript of Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed...

Page 1: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Slides for Chapter 11: Coordination and Agreement

From Coulouris, Dollimore and KindbergDistributed Systems:

Concepts and DesignEdition 3, © Addison-Wesley 2001

Page 2: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.1A network partition

Crashedrouter

Page 3: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.2Server managing a mutual exclusion token for a set of processes

Server

1. Requesttoken

Queue ofrequests

2. Releasetoken

3. Granttoken

4

2

p4

p3p

2

p1

Page 4: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.3A ring of processes transferring a mutual exclusion token

pn

p2

p3

p4

Token

p1

Page 5: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

Ricart e Agrawala [1981] Implementa exclusão mútua distribuída entre N

processos.usa “multicast” e clocks lógicos

Idéia básica: Processos que requerem entrar em uma seção crítica “multicast” uma mensagem de “request”, e pode entrar somente quando todos os outros processos têm respondido a esta mensagem de “request”.

Page 6: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

As condições sob as quais um processo responde a um “request” são projetadas para garantir que as condições ME1(segurança), ME2(vivacidade)-ME3(ordenação) são satisfeitas.

Os processos p1, p2,..., pN arcam com identificadores numéricos distintos.

É assumido existirem canais de comunicação entre os processos e cada processo guarda um clock lógico de Lamport, atualizado de acordo com as regras LC1-LC4 (Cap10 – Tempo em SDs).

Page 7: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

Mensagens de “request” são da forma <T,pi>, onde T é o rótulo de tempo do processo enviando o “request” e pi é o identificador do processo que envia o “request”.

Cada processo registra seu estado em uma variável state:

- de estar fora da seção crítica (RELEASED), - esperando entrar na seção crítica (WANTED), - ou estando na seção crítica (HELD)

Page 8: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

Se um processo requisita entrar e o estado de todos os processos é RELEASED, então todos os processo responderão imediatamente ao “request” e o processo requerente obterá a entrada na seção crítica.

Se algum processo está em HELD, então aquele processo não responderá a “requests” até que ele tenha terminado sua seção crítica.

Page 9: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

E assim, o processo requerente não pode ganhar a entrada enquanto isso.

Se dois ou mais processos requerem entrar ao mesmo tempo em suas seções críticas, então qualquer que seja o processo requerente, aquele que suporta o menor rótulo de tempo será o primeiro a coletar N-1 respostas (replies), concedendo a ele próxima entrada na seção crítica.

Page 10: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

Se os “requests” têm rótulos de tempo iguais, os “requests” são ordenados pelos identificadores correspondendo aos processos.

Note que, quando um processo “requests” entrada, ele adia o processamento de “requests” de outros processos até que seu próprio “request” tenha sido enviado e ele tenha registrado o rótulo de tempo T do “request”.

É assim que processos tomam decisões consistentes quando processando “requests”.

Page 11: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

O algoritmo alcança a propriedade ME1:Se fosse possível para dois processos pi e pj (i

diferente de j) entrarem nas suas seções críticas ao mesmo tempo, então ambos os processos teriam que ter respondido ao outro.

Mas, visto que, os pares <Ti,pi> e <Tj,pj> são totalmente ordenados, isto se torna impossível.

O algoritmo também satisfaz a ME2 e ME3.

Page 12: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.4Ricart and Agrawala’s algorithm

On initializationstate := RELEASED;

To enter the sectionstate := WANTED;Multicast request to all processes; request processing deferred hereT := request’s timestamp;Wait until (number of replies received = (N – 1));state := HELD;

On receipt of a request <Ti, pi> at pj (i ≠ j)if (state = HELD or (state = WANTED and (T, pj) < (Ti, pi)))then

queue request from pi without replying; else

reply immediately to pi;end if

To exit the critical sectionstate := RELEASED;reply to any queued requests;

Page 13: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

Para ilustar o algoritmo, considere a Figura 11.5, seguinte.

Page 14: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.5Multicast synchronization

p3

34

Reply

34

41

4141

34

p1

p2

ReplyReply

Page 15: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

Assuma que p3 não está interessado em entrar na sua seção crítica.

P1 e p2 “requests” entrar concorrentemente.

O rótulo de tempo de p1, T1, é 41.

O rótulo de tempo de p2, T2, é 34.

Page 16: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

Quando p3 recebe seus “requests”, ele responde imediatamente, a p1 e a p2.

Quando p2 recebe o “request” de p1, ele descobre que seu próprio “request” tem o rótilo de tempo menor e assim, não “reply”, retendo p1 a esperar.

Contudo, p1 descobre que o “request” de p2 ^tem o rótulo de tempo menor do que o seu próprio “request” e assim responde imediatamente.

Page 17: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Algoritmo de Ricart e Agrawala

No recebimento do segundo “reply”, p2 pode então entar na sua seção crítica.

Quando p2 sai da sua seção crítica, ele responderá ao “request” de p1 e assim, concede a ele a entrada.

Para obter a entrada, o algoritmo proporciona 2(N-1) mensagens, seguidas por (N-1) respostas.

A vantagem do algoritmo é que seu atraso de sincronização é “round-trip syncronization”, ou seja, somente sobre o tempo de ida-e-volta para transmissão das mensagens “requests” e “replies”.

Page 18: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.6Maekawa’s algorithm – part 1

On initializationstate := RELEASED;voted := FALSE;

For pi to enter the critical sectionstate := WANTED;Multicast request to all processes in Vi – {pi};Wait until (number of replies received = (K – 1));state := HELD;

On receipt of a request from pi at pj (i ≠ j)if (state = HELD or voted = TRUE)then

queue request from pi without replying; else

send reply to pi;voted := TRUE;

end if Continues on next slide

Page 19: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.6Maekawa’s algorithm – part 2

For pi to exit the critical sectionstate := RELEASED;Multicast release to all processes in Vi – {pi};

On receipt of a release from pi at pj (i ≠ j)if (queue of requests is non-empty)then

remove head of queue – from pk, say; send reply to pk;voted := TRUE;

else voted := FALSE;

end if

Page 20: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.7A ring-based election in progress

24

15

9

4

3

28

17

24

1

Note: The election was started by process 17.The highest process identifier encountered so far is 24. Participant processes are shown darkened

Page 21: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.8The bully algorithm

p1 p2

p3

p4

p1

p2

p3

p4

Ccoordinator

Stage 4

C

election

electionStage 2

p1

p2

p3

p4

C

election

answer

answer

electionStage 1

timeout

Stage 3

Eventually.....

p1

p2

p3

p4

election

answer

The election of coordinator p2, after the failure of p4 and then p3

Page 22: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.9Open and closed groups

Closed group Open group

Page 23: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.10Reliable multicast algorithm

Page 24: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.11The hold-back queue for arriving multicast messages

Messageprocessing

Delivery queueHold-back

queue

deliver

Incomingmessages

When delivery guarantees aremet

Page 25: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.12Total, FIFO and causal ordering of multicast messages

F3

F1

F2

T2T1

P1 P2 P3

Time

C3

C1

C2

Notice the consistent ordering of totally ordered messages T1 and T2, the FIFO-related messages F1 and F2 and the causally related messages C1 and C3 – and the otherwise arbitrary delivery ordering of messages.

Page 26: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.13Display from bulletin board program

Bulletin board: os.interesting

Item From Subject

23 A.Hanlon Mach

24 G.Joseph Microkernels

25 A.Hanlon Re: Microkernels

26 T.L’Heureux RPC performance

27 M.Walker Re: Mach

end

Page 27: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.14Total ordering using a sequencer

Page 28: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.15The ISIS algorithm for total ordering

21

1

2

2

1 Message

2 Proposed Seq

P2

P3

P1

P4

3 Agreed Seq

3

3

Page 29: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.16Causal ordering using vector timestamps

Page 30: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.17Consensus for three processes

1

P2

P3 (crashes)

P1

Consensus algorithm

v1=proceed

v3=abort

v2=proceed

d1:=proceed d2:=proceed

Page 31: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.18Consensus in a synchronous system

Page 32: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.19Three byzantine generals

p1 (Commander)

p2 p3

1:v1:v

2:1:v

3:1:u

p1 (Commander)

p2 p3

1:x1:w

2:1:w

3:1:x

Faulty processes are shown shaded

Page 33: Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley.

Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Figure 11.20Four byzantine generals

p1 (Commander)

p2 p3

1:v1:v

2:1:v3:1:u

Faulty processes are shown shadedp4

1:v

4:1:v

2:1:v 3:1:w

4:1:v

p1 (Commander)

p2 p3

1:w1:u

2:1:u3:1:w

p4

1:v

4:1:v

2:1:u 3:1:w

4:1:v