sistemas distribuídos · 2018. 1. 30. · sistemas distribuídos replicação vinícius fernandes...

80
Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1

Upload: others

Post on 27-Oct-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Sistemas Distribuídos

Replicação

Vinícius Fernandes Soares Mota

1

Page 2: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

O Papel da replicação

DECSI/ICEA UFOP

2

Page 3: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Melhorando serviços com dados replicados• Balanceamento de carga

• carga de trabalho é compartilhada entre servidores amarrando-se vários IPs a um único nome de DNS. Endereços IP são retornados utilizando uma política tipo round-robin.

DECSI/ICEA UFOP

3

Page 4: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Melhorando serviços com dados replicados• Balanceamento de carga

• carga de trabalho é compartilhada entre servidores amarrando-se vários IPs a um único nome de DNS.

DECSI/ICEA UFOP

4

Page 5: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Melhorando serviços com dados replicados• Tolerância à falha

• se f de f + 1 servidores falham, pelo menos um mantém-se ativo e provendo o serviço

• Aumento da disponibilidade• serviço pode não estar disponível quando servidores

falham ou quando a rede é particionada

DECSI/ICEA UFOP

5

Page 6: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Melhorando serviços com dados replicados• Aumento da disponibilidade

P: probabilidade de falha de um servidor

1 – P: disponibilidade do serviço

Por exemplo, se P = 5%

Serviço está disponível 95% do tempo.

Pn: probabilidade de n servidores falharem

1 – Pn: disponibilidade do serviço

por exemplo, se P = 5%, n = 3

=> serviço está disponível 99.875% do tempo

DECSI/ICEA UFOP

6

Page 7: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Detectando falhas - Exercício

• Três computadores juntos fornecem um serviço replicado. Os fabricantes dizem que cada computador tem um tempo médio entre falhas de cinco dias; normalmente, uma falha demora quatro horas para ser corrigida. Qual é a disponibilidade do serviço replicado?

DECSI/ICEA UFOP

7

Page 8: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Detectando falhas - Exercício

• Três computadores juntos fornecem um serviço replicado. Os fabricantes dizem que cada computador tem um tempo médio entre falhas de cinco dias; normalmente, uma falha demora quatro horas para ser corrigida. Qual é a disponibilidade do serviço replicado?

DECSI/ICEA UFOP

8

Probabilidade Falha individual = 4/(5*24 ) ~ 0.03.

Disponibilidade do serviço:

1 – 0.033 = 0.999973.

Page 9: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Modelo arquitetural básico para o gerenciamento de dados replicados

FE

Requisições

e respostas

C

ReplicaC

ServiçoClientes Front ends

managers

RM

RMFE

RM

Transparência de replicaçãousuário/cliente não precisa saber que existem diversas cópias do recurso

Consistência de replicaçãoos dados são consistentes entre todas as réplicas, ou estão no processo de se

tornarem consistentes

DECSI/ICEA UFOP

9

Page 10: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Gerenciamento de replicação

• 5 Fases que afetam o desempenho de acesso a objetos replicados

• Requisição

• Coordenação

• Execução

• Acordo

• Resposta

DECSI/ICEA UFOP

10

Page 11: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Gerenciamento de replicação

• Requisições- requisições podem ser feitas a um RM

- Via multicast a múltiplos RM

• Coordenação: os RM devem decidir:- se a requisição será aplicada

- a ordem em que as requisições serão aplicadasordem FIFO: se um FE envia uma requisição r e então uma requisição r’, então toda RM deve tratar r e depois r’ordem causal: se a requisição r “happens-before” r’, então toda RM deve tratar r e depois r’ordem total: se uma RM trata r e depois r’, então todas as RM devem tratar r e depois r’

• Execução: Tentativas de executar a requisição

DECSI/ICEA UFOP

11

Page 12: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Gerenciamento de replicação

• Acordo/Consenso: • as RMs tentam alcançar o consenso sobre o efeito da requisição

• exemplo: Two-phase commit através de um coordenador

• se bem sucedido, a requisição se torna permanente

• Resposta: • uma ou mais RM respondem ao FE

• o FE retorna a primeira resposta obtida

DECSI/ICEA UFOP

12

Page 13: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Comunicação de grupos

• Grupos estáticos: membros são pré-definidos

• Grupos dinâmicos: membros podem entrar (join) e sair (leave) do grupo

• Um serviço de gerenciamento de membros em um grupo mantém visões de grupo (views):• listas dos membros atuais do grupo

• não é uma lista mantida por um membro, mas cada membro possui sua view local

DECSI/ICEA UFOP

13

Page 14: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Modo de visualização - Views

• Uma view Vp(g) é o entendimento do processo p de seu grupo (lista de membros)

Exemplo: Vp.0(g) = {p}, Vp.1(g) = {p, q}, Vp.2 (g) = {p, q, r}, Vp.3 (g) = {p,r}

• Uma nova view é disseminada através do grupo sempre que um membro entra ou sai do grupo• membros que detectarem uma falha de um outro

membro, envia um multicast confiável notificando a mudança da view (requer ordem total para multicasts)

• Mensagens enviadas em uma view devem ser enviada a todos os membros do grupo

DECSI/ICEA UFOP

14

Page 15: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Views

• Requisitos para entrega de uma view• Ordem: se p entrega uma vi(g), e então uma vi+1(g),

então nenhum outro processo q envia vi+1(g) antes de vi(g)

Garantia de consistência

• Integridade: se p envia vi(g), então p está na view vi(g)

Garantia de sanidade

• Não trivialidade: se o processo q entra em uma view e se torna alcançável pelo processo p, então, eventualmente, q estará sempre presente nas viewsentregues a p

Previne soluções triviais

DECSI/ICEA UFOP

15

Page 16: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Comunicação síncrona em uma view• Usa serviço de comunicação de grupo + multicast

confiável

• Garantias providas pelo protocolo multicastconfiável:

• Integridade: se p enviou a mensagem m, p não irá enviar mnovamente, e p grupo(m).

• Validade: processos corretos sempre entregam todas as suas mensagens

• Acordo/Consenso: processos corretos entregam o mesmo conjunto de mensagens em uma view

DECSI/ICEA UFOP

16

Page 17: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5

© Pearson Education 2012

Grupos de comunicação

DECSI/ICEA UFOP

17

Considere um grupo com três processos p, q e r .Suponha que p envie uma mensagem m enquanto está no modo de visualização (p, q, r);P falha após o envio

Page 18: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5

© Pearson Education 2012

Grupos de comunicação

DECSI/ICEA UFOP

18

Considere um grupo com três processos p, q e r .Suponha que p envie uma mensagem m enquanto está no modo de visualização (p, q, r);P falha após o envio

p

q

r

p crashes

view (q, r)view (p, q, r)

p

q

r

p crashes

view (q, r)view (p, q, r)

a (Permitido). b (Permitido).

Page 19: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5

© Pearson Education 2012

Grupos de comunicação

p

q

r

p crashes

view (q, r)view (p, q, r)

p

q

r

p crashes

view (q, r)view (p, q, r)

a (Permitido). b (Permitido).

p

q

r

view (p, q, r)

p

q

r

p crashes

view (q, r)view (p, q, r)

c (Proibido). d (Proibido).

p crashes

view (q, r)

DECSI/ICEA UFOP

19

Page 20: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Serviços Tolerantes a Falhas

• como fornecer um serviço correto quando ocorrer falhas?• Supõe-se que cada gerenciador de réplica se comporta

de acordo com os objetos que gerencia

• Exemplo: contas bancárias incluiria a garantia de que os fundos transferidos entre as contas nunca poderia desaparecer

DECSI/ICEA UFOP

20

Page 21: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Serviços Tolerantes a Falhas

• como fornecer um serviço correto quando ocorrer falhas?• Supõe-se que cada gerenciador de réplica se comporta

de acordo com os objetos que gerencia

• Exemplo: contas bancárias incluiria a garantia de que os fundos transferidos entre as contas nunca poderia desaparecer

• Podem surgir anomalias quando houver vários gerenciadores de réplicas

DECSI/ICEA UFOP

21

Page 22: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Serviços Tolerantes a Falhas

• Inicialmente, x = y = 0

• Cliente 1 atualiza objeto x em uma réplica B

• Réplica B falha

DECSI/ICEA UFOP

22

Page 23: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Serviços Tolerantes a Falhas

• Inicialmente, x = y = 0

• Cliente 1 atualiza objeto x em uma réplica B

• Réplica B falha

DECSI/ICEA UFOP

23

Houve atualização de X no servidor B

X não foi atualizado no servidor A

Page 24: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Serviços Tolerantes a Falhas

• Entender o que é um comportamento correto em um sistema replicado

• Como “serializar” as operações?

• Critérios de correção para objetos replicados:• Capacidade de linearização

• Interposição das operações para todos os clientes, para qualquer operação.

• Consistência sequencial• Interposição das operações

DECSI/ICEA UFOP

24

Page 25: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Capacidade de linearização

• Um serviço de compartilhamento de objetos replicado é dito linearizável se

• Obedecem à especificação de uma única cópia do objeto

• É consistente com os tempos reais com que cada operação ocorreu durante a execução

DECSI/ICEA UFOP

25

Page 26: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Capacidade de linearização

• A capacidade de linearização diz respeito à interposição de operações individuais e não se destina a ser transacional.

• Uma execução que pode ser linearizada pode violar as noções de consistência específicas da aplicação, caso não seja aplicado controle de concorrência.

DECSI/ICEA UFOP

26

Page 27: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Capacidade de linearização

• O exemplo anterior não pode ser linearizado

• Não há interposições das operações que leve ao resultado correto

DECSI/ICEA UFOP

27

Page 28: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Capacidade de linearização

• Linearização é difícil (ou quase impossível) de ser alcançada em sistemas reais

• Um critério menos restritivo é o de consistência sequencial

DECSI/ICEA UFOP

28

Page 29: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Consistência sequencial

• Um serviço de compartilhamento de objetos replicado é sequencialmente consistente se, para qualquer execução (real) existe alguma intercalação de operações do cliente (virtual) que:

• Obedecem à especificação de uma única cópia do objeto

• É consistente com ordem individual em que cada cliente executou a operação

DECSI/ICEA UFOP

29

Page 30: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Consistência sequencial

• Não exige ordenação total ou tempo absoluto.

• Para cada cliente, a ordem de execução da sua sequencia de operações deve ser consistente com a ordem do programa (~FIFO)

• Linearização implica em consistência sequencial, mas não vice versa• Como garantir consistência sequencial: garantindo que todas as

réplicas de um objeto sejam consistentes.

DECSI/ICEA UFOP

30

Page 31: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Consistência sequencial

DECSI/ICEA UFOP

31

O critério do tempo real para a capacidade de linearização

não é satisfeito, pois getBalanceA(x) 0 ocorre depois de

setBalanceB(x,1);

A interposição das operações do Cliente 2 serem

executadas antes do cliente 1 satisfaz os dois critérios da

consistência sequencial:

getBalanceA(y) 0, getBalanceA(x) 0

setBalanceB(x, 1), setBalanceA(y, 2).

Page 32: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Modelo de tolerância à falhas baseado em replicação passiva (backup primário)

FEC

FEC

RM

Primary

Backup

Backup

RM

RM

DECSI/ICEA UFOP

32

Page 33: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Replicação passiva (backup primário)• Comunicação: a requisição é encaminhada para o RM primário e

possui um único identificador de requisição

• Coordenação: o RM primário recebe todas as requisições atomicamente, em ordem, checa o id (reenvia resposta se não é novo identificador)

• Execução: RM primário executa e armazena as requisições

• Acordo/Consenso: se é atualização, RM primário envia estado atualizado/resultado do objeto, identificador de requisição e resposta para todos os RM de backups (1-phase commit).

• Resposta: RM primário envia resposta ao front end

DECSI/ICEA UFOP

33

Page 34: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Tolerância à falhas na replicação passiva• Implementa linearização

• Se RM primário falha, um backup se torna o líder por eleição e as RM que sobreviveram concordam sobre o conjunto de operações que foram realizados até o ponto em que o novo líder assume• requisito é alcançado se as RM estão organizadas como

um grupo e a réplica primária utiliza visão síncrona de grupo para comunicar updates

• O sistema permanece linearizável após a queda do servidor primário

DECSI/ICEA UFOP

34

Page 35: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5

© Pearson Education 2012

Replicação ativa

FE CFEC RM

RM

RM

DECSI/ICEA UFOP

35

Page 36: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Replicação ativa

1. Comunicação: a requisição contém um identificador único e é enviada por multicast confiável ordenado a todos os RM

2. Coordenação: comunicação de grupo garante que as requisições são entregues a cada RM na mesma ordem (pode ser em instantes físicos diferentes)

3. Execução: cada réplica executa a requisição (réplicas corretas retornam a mesma resposta)

4. Acordo/consenso: não é necessário acordo, devido às primitivas semânticas do multicast

5. Resposta: cada réplica envia a resposta diretamente para o front end

DECSI/ICEA UFOP

36

Page 37: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Tolerância à falhas na replicação ativa• RM exercem papeis equivalente -> respondem a uma

sequencia de requisições da mesma forma

• Se alguma RM cai, o estado é mantido pelas demais RMscorretas

• Implementa consistência sequencial

• Ordenação total de requisições garante que todas as réplicas executem a mesma sequencia de requisições

• Cada requisição do front end é executada na ordem FIFO, porque o FE espera pela resposta para fazer nova requisição

DECSI/ICEA UFOP

37

Page 38: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Serviços de alta Disponibilidade

Sistemas que oferecem serviços de alta disponibilidade

•Gossip

•Bayou

•Coda

DECSI/ICEA UFOP

38

Page 39: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Arquitetura Gossip (Fofoca)

• Desenvolvida para implementar serviços de alta disponibilidade por meio da replicação de dados próximos aos pontos onde os grupos de clientes precisam deles

• Os gerenciadores de réplicas trocam mensagens periodicamente para transmitir as atualizações que cada um recebeu dos clientes

• Oferece dois tipos básicos de operação: • somente de leitura

• atualizações que modificam mais não leem o estado.

DECSI/ICEA UFOP

39

Page 40: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Arquitetura Gossip (Fofoca)

• Vantagem • Clientes podem continuar a obter um serviço mesmo

quando são separados do resto da rede• Desde que pelo menos um gerenciador de réplica continue a

funcionar na partição.

• Desvantagem • Escalabilidade de seu sistema

• a medida que o número de gerenciadores de réplica aumenta, também aumenta o número de mensagens de fofoca.

DECSI/ICEA UFOP

40

Page 41: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Operações de consulta (query) e updates no serviço gossip

Query Val

FE

RM RM

RM

Query, prev Val, new

Update

FE

Update, prev Update id

Clients

gossip

DECSI/ICEA UFOP

41

Page 42: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Operações de consulta (query) e updates no serviço gossip

Query Val

FE

RM RM

RM

Query, prev Val, new

Update

FE

Update, prev Update id

Clients

gossip

DECSI/ICEA UFOP

42

1. Requisição

2. Resposta de atualização

3. Coordenação

4. Execução

5. Resposta de Consulta

6. Acordo

Page 43: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5

© Pearson Education 2012

Carimbo de tempo

FE

Clients

FE

Service

Vector

timestamps

RM RM

RM

gossip

DECSI/ICEA UFOP

43

Front ends propagam seus timestamps sempre que um cliente se comunica diretamente

Page 44: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Os componentes principais do estado de uma RM gossip

Other replica managers

Replica timestamp

Update log

Value timestamp

Value

Executed operation table

Stable

updates

Updates

Gossip

messages

FE

Replicatimestamp

Replica log

OperationID Update Prev

FE

Replica manager

Timestamp table

DECSI/ICEA UFOP

44

Page 45: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Processamento das operações

• Front-end envia a requisição

• RM verifica se já não processou baseado na tabela de operações realizadas

• Se não processou, incrementa seu relógio

• Atribui um carimbo de tempo da operação

• Armazena a operação no log

• Verifica se a atualização é estável (ao receber as msg gossip de outros RMs)

• Realiza as atualizações

DECSI/ICEA UFOP

45

Page 46: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Ao receber uma mensagem Gossip

• Integrar o log recebido com o seu próprio

• Aplicar as atualizações que se tornaram estáveis e não foram executadas antes

• Eliminar registros do log e entradas na tabela de operações executadas• Quando for conhecido que as atualizações foram

aplicadas por toda parte e para as quais não há perigo de repetições

• Entradas redundantes

DECSI/ICEA UFOP

46

Page 47: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Os componentes principais do estado de uma RM gossip

Other replica managers

Replica timestamp

Update log

Value timestamp

Value

Executed operation table

Stable

updates

Updates

Gossip

messages

FE

Replicatimestamp

Replica log

OperationID Update Prev

FE

Replica manager

Timestamp table

DECSI/ICEA UFOP

47

• mantém as atualizações em um log

• Realiza apenas atualizações consistentes com suas garantias de ordenação

• Mantem no log até que outras réplicas também tenham recebido a atualização

Page 48: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Os componentes principais do estado de uma RM gossip

Other replica managers

Replica timestamp

Update log

Value timestamp

Value

Executed operation table

Stable

updates

Updates

Gossip

messages

FE

Replicatimestamp

Replica log

OperationID Update Prev

FE

Replica manager

Timestamp table

DECSI/ICEA UFOP

48

• Carimbo de tempo vetorial

• Atualizações que foram aceitas pelo gerenciador de réplica

Page 49: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Os componentes principais do estado de uma RM gossip

Other replica managers

Replica timestamp

Update log

Value timestamp

Value

Executed operation table

Stable

updates

Updates

Gossip

messages

FE

Replicatimestamp

Replica log

OperationID Update Prev

FE

Replica manager

Timestamp table

DECSI/ICEA UFOP

49

valor do estado da

aplicação

Page 50: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Os componentes principais do estado de uma RM gossip

Other replica managers

Replica timestamp

Update log

Value timestamp

Value

Executed operation table

Stable

updates

Updates

Gossip

messages

FE

Replicatimestamp

Replica log

OperationID Update Prev

FE

Replica manager

Timestamp table

DECSI/ICEA UFOP

50

carimbo de tempo vetorial que representa as atualizaçõesrefletidas no valor

Page 51: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Os componentes principais do estado de uma RM gossip

Other replica managers

Replica timestamp

Update log

Value timestamp

Value

Executed operation table

Stable

updates

Updates

Gossip

messages

FE

Replicatimestamp

Replica log

OperationID Update Prev

FE

Replica manager

Timestamp table

DECSI/ICEA UFOP

51

• Contém um carimbo de tempo vetorial de todos os outros gerenciadores de réplica

• Preenchido com carimbos de tempo que chegam deles em mensagens de fofoca

Page 52: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Os componentes principais do estado de uma RM gossip

Other replica managers

Replica timestamp

Update log

Value timestamp

Value

Executed operation table

Stable

updates

Updates

Gossip

messages

FE

Replicatimestamp

Replica log

OperationID Update Prev

FE

Replica manager

Timestamp table

DECSI/ICEA UFOP

52

• impede que uma atualização seja aplicada duas vezes

• contendo os identificadores únicos, fornecidos pelo front-end

Page 53: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Considerações sobre o Gossip

• Depende do tempo entre as mensagens gossip• Muito alto: Inunda a rede

• Muito baixo: Pode inviabilizar sistemas de tempo real

• Escalabilidade• R gerenciadores de réplica normalmente reúne G

atualizações em uma mensagem de fofoca, então o número de mensagens trocadas é de

2 + (R – 1)/G.

DECSI/ICEA UFOP

53

Page 54: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Bayou

• Garantia de disponibilidade menor que Gossip

• Suporta conectividade variável

• Permite a detecção/solução de conflitos

DECSI/ICEA UFOP

54

Page 55: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Bayou

• Mantido na forma de um banco de dados

• consultas e atualizações

• Desfaz e refaz as atualizações no banco de dados

• cada gerenciador de réplica receberá o mesmo conjunto de atualizações e aplicará essas atualizações de maneira tal que os bancos de dados dos gerenciadores de réplica sejam idênticos

DECSI/ICEA UFOP

55

Page 56: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Committed updates e tentativeupdates no Bayou• Atualizações são marcadas como de tentativa

quando são aplicadas a um banco de dados pela primeira vez• o sistema pode desfazê-las e reaplicá-las

• Atualizações de tentativa são colocadas em uma ordem canônica, e após aplicadas são confirmadas• permanecem aplicadas em sua ordem definida.

DECSI/ICEA UFOP

56

Page 57: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Committed updates e tentativeupdates no Bayou

c0 c1 c2 cN t0 t1 ti

Committed Tentative

t2

Tentative update ti se torna o próximo committed update

E é inserido após o último committed update cN.

ti+1

DECSI/ICEA UFOP

57

Page 58: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Considerações Bayou

• Voltado para aplicações de “co-working”• Focar que o que foi feito por um usuário, não conflite

com outro

• Maior complexidade para o desenvolvedor • precisa fornecer verificações de dependência e

procedimentos de integração

• Maior complexidade para o usuário• Usuário pode lidar com dados que ainda não foram

confirmados

DECSI/ICEA UFOP

58

Page 59: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Sistema de arquivos Coda

• Um sistema de arquivo distribuído com réplicas

• Desenvolvido na Universidade de Carnegie Melon

DECSI/ICEA UFOP

59

Page 60: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Arquitetura CODA

• Venus Cliente

• Vice Servidores

DECSI/ICEA UFOP

60

Page 61: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Estratégia de replicação do CODA

• Permite que a modificação dos arquivos prossiga quando a rede é particionada ou durante a operação desconectada

• Mantém histórico de atualização de cada réplica de arquivo• Histórico baseado em carimbo de tempo

• Permite que conflitos em potencial possam ser detectados e submetidos à intervenção manual

DECSI/ICEA UFOP

61

Page 62: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Estratégias de replicação

• Gossip

• Focado em manter todos os servidores atualizados

• Bayou

• Focado em resolver conflitos

• Permite que usuários operem “offline”

• CODA

• Sistema de arquivo distribuído

DECSI/ICEA UFOP

62

Page 63: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Transações em dados replicados

• Uma transação sobre objetos replicados deve ser idêntica à dos objetos não replicados.• capacidade de serialização de uma cópia

• Principais problemas• se a requisição de um cliente pode ser tratada em

qualquer um dos gerenciadores de réplica;

• se o gerenciador de réplica contatado por um cliente pode adiar o encaminhamento das requisições até que uma transação seja confirmada

• como executar um protocolo de confirmação de duas fases.

DECSI/ICEA UFOP

63

Page 64: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Arquitetura para Transações replicadas

B

A

Client + front end

BB BA A

getBalance(A)

Client + front end

Replica managersReplica managers

deposit(B,3);

UT

DECSI/ICEA UFOP

64

Um lê/Todos EscrevemRead-one/write all

Page 65: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Arquitetura para Transações replicadas• Estratégia preguiçosa de atualização

• gerenciador de réplica adia o encaminhamento das requisições de atualização para outros gerenciadores de réplica do grupo, até que uma transação seja confirmada

• Estratégia ávida de atualização• encaminha cada requisição de atualização para todos os

gerenciadores de réplica necessários dentro da transação e antes de confirmar

DECSI/ICEA UFOP

65

Page 66: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Arquitetura para Transações replicadasProtocolo de confirmação de duas fases

• Primeira fase:• coordenador envia a requisição de canCommit? para os

operários,

• os quais a passam para os outros gerenciadores de réplica e reúnem suas respostas, antes de responder para o coordenador.

• Segunda fase:• o coordenador envia a requisição de doCommit ou

doAbort, a qual é passada para os membros dos grupos de gerenciadores de réplica.

DECSI/ICEA UFOP

66

Page 67: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Replicação Cópias disponíveis

A

X

Client + front end

P

B

Client + front end

Replica managers

deposit(A,3);

UT

deposit(B,3);

getBalance(B)

getBalance(A)

Replica managers

Y

M

B

N

A

B

DECSI/ICEA UFOP

67

O que acontece se um servidor falhar antes de replicar?

Page 68: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Replicação Cópias disponíveis

A

X

Client + front end

P

B

Client + front end

Replica managers

deposit(A,3);

UT

deposit(B,3);

getBalance(B)

getBalance(A)

Replica managers

Y

M

B

N

A

B

DECSI/ICEA UFOP

68

X e N falham após a operação getBalance

Page 69: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Replicação Cópias disponíveis

A

X

Client + front end

P

B

Client + front end

Replica managers

deposit(A,3);

UT

deposit(B,3);

getBalance(B)

getBalance(A)

Replica managers

Y

M

B

N

A

B

DECSI/ICEA UFOP

69

• O controle de concorrência de A no gerenciador de réplica X não impede que a transação U atualize A no gerenciador de réplica Y.

• O controle de concorrência de B no gerenciador de réplica N impede que a transação T atualize B nos gerenciadores de réplica M e P

Page 70: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Partição de rede

Client + front end

B

withdraw(B, 4)

Client + front end

Replica managers

deposit(B,3);

UTNetwork

partition

B

B B

DECSI/ICEA UFOP

70

Page 71: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Partição de rede

• Estratégia otimista• permitem atualizações em todas as partições

• Pode levar a inconsistências entre as partições, as quais deverão ser resolvidas quando o particionamento for reparado

• Estratégia pessimista• limita a disponibilidade

• mas impede a ocorrência de inconsistências durante o particionamento

DECSI/ICEA UFOP

71

Page 72: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Partição de rede

• Em caso de partição deve-se estabelecer regras que as operações só sejam executadas em uma partição

• Protocolo de consenso de Quórum• Um quorum é um subgrupo degerenciadores de réplica

cujo tamanho proporciona a ele o direito de executar operações.

DECSI/ICEA UFOP

72

Page 73: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Protocolo Quorum Consensus

Sistema de Quóruns:

• Conjunto de subconjuntos das réplicas, tal que quaisquer dois subconjuntos se intersectam.• N réplicas -> Quórum: qualquer maioria: |Q|>N/2

• Cada réplica guarda:• valor do objeto (registo)

• Timestamp e versão

• A cópia mais atualizada mantém a versão corrente

73DECSI/ICEA UFOP

Page 74: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Protocolo Quorum Consensus

• Operação de Leitura• Envia pedido de leitura para todas as réplicas

(retransmitindo-o até concluir a operação, para superar falhas temporárias na rede)

• Ao receber pedido, • réplica responde ao cliente comvalor atual de <val,ts>

• Cliente aguarda resposta de um quórum

• Escolhe valor associado ao maior timestamp

74DECSI/ICEA UFOP

Page 75: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Protocolo Quorum Consensus

• Operação de Escrita (2 fases – leitura e escrita)• Efetua pedido de leitura a todas as réplicas (ler

timestamp atual)

• Aguarda resposta de um quórum

• Escolha o maior timestamp, t, e incrementa

• Efetua um novo pedido a todas as réplicas para escrever <novo-val, t+1>

• Servidores respondem ack, e apenas guardam novo-valse o timestamp for maior do que o atual

• Cliente aguarda acknowledge de um quórum

75DECSI/ICEA UFOP

Page 76: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Protocolo Quorum Consensus

• Problema: • Duas escritas concorrentes podem escolher o mesmo

timestamp

• Solução: timestamp = <Nº seq., client-id>

76DECSI/ICEA UFOP

Page 77: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Cenários para o protocolo Quorum concensus de Gifford

Example 1 Example 2 Example 3

Latency Replica 1 75 75 75

(milliseconds) Replica 2 65 100 750

Replica 3 65 750 750

Voting Replica 1 1 2 1

configuration Replica 2 0 1 1

Replica 3 0 1 1

Quorum R 1 2 1

sizes W 1 3 3

Derived performance of file suite:

Read Latency 65 75 75

Blocking probability 0.01 0.0002 0.000001

Write Latency 75 100 750

Blocking probability 0.01 0.0101 0.03

DECSI/ICEA UFOP

77

Page 78: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Protocolo Quorum Consensus de Gifford• Vantagens:

• Primeiro protocolo que tolera falhas silenciosas em sistemas assíncronos

• Réplica que falhe temporariamente e recupera está imediatamente pronta para participar

• Ficará naturalmente atualizada quando receber próximo pedido de escrita

• Desvantagens:• À medida que os nós falham, há uma degradação da

disponibilidade.

• Quoruns são grandes

DECSI/ICEA UFOP

78

Page 79: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Concluindo

• Replicação visa aumentar a disponibilidade do sistema

• As réplicas devem manter consistência entre si

• A replicação pode ser passiva ou ativa

• Transações com dados replicados podem usarreplicação passiva• Em caso de partição, protocolo consensus permite as

operações nas cópias disponíveis

DECSI/ICEA UFOP

79

Page 80: Sistemas Distribuídos · 2018. 1. 30. · Sistemas Distribuídos Replicação Vinícius Fernandes Soares Mota 1. O Papel da replicação DECSI/ICEA UFOP 2. Melhorando serviços com

Questões

DECSI/ICEA UFOP

Vinícius Fernandes Soares Mota

Replicação

80