cap15-replicacao

Upload: camila-dias

Post on 13-Oct-2015

13 views

Category:

Documents


2 download

TRANSCRIPT

  • Replicao

  • Sumrio

    Introduo Modelo de Sistema e Comunicao em

    Grupo

    Servios Tolerantes a Falhas

  • Definio

    Replicao a manuteno de rplicas de recursos em vrios pontos da rede.

    uma estratgia amplamente utilizada em aplicaes distribudas.

    Exemplos: proxy web (cache de navegadores web) cache DNS Servidores redundantes

  • Motivao

    O uso de replicao pode: melhorar o desempenho de um servio, aumentar seu grau de disponibilidade aumentar seu grau de tolerncia a falhas.

  • Melhoria de Desempenho

    Reduo do tempo de resposta rplicas mais prximas permitem evitar a

    latncia de acesso aos dados originais.

    Balanceamento da carga de trabalho distribuio da demanda entre vrias rplicas de

    um recurso ou servio

  • Limitao

    A replicao de dados imutveis mais simples

    ela aumenta o desempenho com pouco custo para o sistema

    A replicao de dados mutveis (dinmicos) mais complexa

    acarreta sobrecarga nos protocolos para garantir consistncia das rplicas

  • Maior Disponibilidade

    A replicao dos recursos aumenta a porcentagem do tempo durante o qual o servio est disponvel

    Considere n servidores que falham (independentemente) com probabilidade p, ento a disponibilidade de 1 - pn

  • Tolerncia a falhas

    O uso de rplicas permite que o sistema funcione corretamente mesmo diante da ocorrncia de um certo nmero de falhas.

  • Requisitos (de Replicao)

    Transparncia Os clientes no devem saber que existem vrias

    cpias do objeto de interesse

    Consistncia Quando clientes diferentes executam uma

    determinada operao sobre diferentes rplicas de um mesmo objeto, o resultado deve ser o mesmo.

  • Sumrio

    Introduo Modelo de Sistema e Comunicao em

    Grupo

    Servios Tolerantes a Falhas

  • Notao

    Os dados em um sistema consistem em um conjunto de itens denominados objetos.

    Cada objeto (lgico) pode existir como um conjunto de cpias fsicas (instncias) denominadas rplicas.

    Em um determinado instante do tempo, as rplicas de um determinado objeto podem no ser idnticas.

  • Modelo de Sistema

    Um modelo de arqiutetura bsico para o gerenciamento de objetos replicados.

    FE!

    Requests and!replies!

    C!

    Replica!C!

    Service!Clients! Front ends!

    managers!

    RM!

    RM!FE!

    RM!

  • Gerenciadores de Rplicas

    So componentes que contm as rplicas e executam operaes (diretamente) sobre elas.

    Exige-se que um gerenciador execute operaes em sua rplica de forma atmica e recupervel

    para que seja possvel garantir consistncia

  • Requisies

    Tipos de requisies: requisies somente de leitura requisies de atualizao

    As requisies so tratadas por um componente denominado Front End

    comunica-se com os gerenciadores para efetuar as operaes invocadas pelos clientes

    torna a replicao transparente

  • Processamento de uma Requisio

    1. Requisio: A partir da invocao de um cliente, o Front End emite a requisio para os gerenciadores

    por multicast ou para um gerenciador especfico que se comunicar com os outros

    2. Coordenao: Os gerenciadores de rplicas se coordenam, preparando-se para executar a requisio de forma consistente

    ordem das requisies

  • Processamento de uma Requisio

    3. Execuo: Os gerenciadores executam a operao (de forma recupervel)

    4. Acordo: Os gerenciadores chegam a um consenso sobre os efeitos da operao e ela efetivada (ou cancelada)

    5. Resposta: Os gerenciadores enviam uma resposta ao Front End, que por sua vez responde ao cliente correspondente.

  • Comunicao em Grupo

    Comunicao multicast uma tcnica til no gerenciamento de dados replicados

    uma mensagem enviada pra um grupo de processos.

    Na prtica, os sistemas distribudos exibem participao dinmica de membros no grupo.

    requer servio de participao de membros

  • Funcionalidades de um Servio de Participao

    1. Fornecer uma interface para alteraes na participao dos membros do grupo

    criar ou excluir grupos; adiconar ou remover um processo de um grupo.

    2. Implementar detectores de falhas

    permite identificar membros do grupo que falharam ou tornaram-se inacessveis.

  • Funcionalidades de um Servio de Participao

    3. Notificar os membros sobre alteraes nos grupos

    4. Realizar a expanso de endereo de grupo

    para enviar uma mensagem multicast, o remetente informa o identificador do grupo

    a partir deste identificador, o servio precisa determinar os destinos para envio da mensagem (listar os membros do grupo)

  • Comunicao em Grupo

    Entra!

    Expanso do Endereo de grupo!

    Multicast!communication! Falha! Gerenciamento de Participao dos

    membros!

    Sai!

    Grupo de Processos!

  • Modos de Visualizao de Grupo

    Um servio de participao de membros mantm modos de visualizao

    listas dos membros correntes do grupo (identificados por seus identificadores de processo exclusivos)

    Um novo modo de visualizao gerado quando processos so adicionados ou excludos do grupo

  • Modos de Visualizao de Grupo

    Para cada grupo g, o servio de gerenciamento de grupo envia, para cada processo membro, uma srie de modos de vizualizao.

    Exemplo v0(g) = {}; v1(g) = {p1}; v2(g) = {p1, p2}; v3(g) = {p2};

  • Grupos de Objetos

    Estratgia orientada a objetos para gerncia de grupos.

    Um grupo de objetos um conjunto de instncias de um mesmo objeto

    processam o mesmo conjunto de invocaes de forma concorrente (cada um retorna sua resposta)

  • Grupos de Objetos

    Os clientes no sabem da replicao. Eles invocam operaes sobre um objeto local

    que atua como proxy para o grupo

    O proxy usa comunicao em grupo para enviar as invocaes para os membros do grupo de objetos

  • Sumrio

    Introduo Modelo de Sistema e Comunicao em

    Grupo

    Servios Tolerantes a Falhas

  • Objetivo

    Fornecer um servio correto (a despeito da ocorrncia de falhas de processos) atravs da replicao de dados

    Suposies: podem ocorrer at f falhas a comunicao confivel no ocorre particionamento da rede

  • Definio Informal

    Um servio baseado em replicao correto se

    ele continua respondendo a despeito de falhas os clientes no conseguem perceber a diferena

    entre o servio baseado em replicao e um servio sem replicao.

  • Exemplo de Anomalia

    Tempo Cliente 1 Cliente 2

    1 setBalance(x, 100)

    2 setBalance(y, 200)

    3 getBalance(y) 200

    4 getBalance(x) 0

  • Definio Formal

    Condies de correo para sistemas baseados em replicao:

    capacidade de linearizao (mais rigorosa) consistncia seqencial (menos rigorosa)

  • Capacidade de Linearizao

    Um servio baseado em replicao pode ser linearizado se, para qualquer execuo, existe alguma interposio da srie de operaes executadas por todos os clientes tal que:

    a seqncia satisfaz a especificao de uma nica cpia correta dos objetos

    a ordem das operaes consistente com o tempo real em que elas ocorreram

  • Consistncia Seqencial

    Um servio baseado em replicao tem consistncia seqencial se, para qualquer execuo, existe alguma interposio da srie de operaes executadas por todos os clientes tal que:

    a seqncia satisfaz a especificao de uma nica cpia correta dos objetos

    a ordem das operaes consistente com a ordem no qual cada cliente as executou

  • Todo servio que pode ser linearizado tambm tem consistncia seqencial.

  • Estratgias

    Replicao Passiva os clientes se comunicam com rplicas distintas

    Replicao Ativa os clientes se comunicam com todas as rplicas

    por multicast

  • Rplicao Passiva

    No modelo de replicao passiva existe um gerenciador primrio e um ou mais gerenciadores secundrios (backups)

    O gerenciador de rplica primrio executa as operaes e atualiza os backups

    pode ser utilizada comunicao em grupo com modo de visualizao sncrono

  • Rplicao Passiva

    FE!C!

    FE!C!

    RM!Primary!

    Backup!

    Backup!RM!

    RM!

  • Processamento de Requisio

    1. Requisio: O front end repassa a requisio (contendo um identificador exclusivo) para o gerenciador primrio.

    2. Coordenao: O gerenciador primrio avalia cada requisio (atomicamente) na ordem em que elas foram recebidas

    3. Execuo: O gerenciador primrio executa a operao.

  • Processamento de Requisio

    4. Acordo: Se a operao de atualizao, o gerenciador primrio envia o estado atualizado e o identificador para todos os secundrios (que respondem com uma confirmao)

    5. Resposta: O gerenciador primrio responde ao fronte end (que encaminha a resposta ao cliente)

  • Replicao Passiva

    Se o gerenciador primrio falhar, um dos secundrios ser promovido

    Como escolher exatamente um substituto? Os demais gerenciadores secundrios

    devem concordar a respeito das operaes que tinham sido executadas

  • Replicao Passiva

    Para sobreviver a at f falhas, um sistema com replicao passiva exige f+1 gerenciadores de rplicas

    no tolera falhas bizantinas Os gerenciadores secundrios registram

    cegamente o estado determinado apenas pelas aes do gerenciador primrio.

  • Desvantagem

    A replicao passiva tem a desvantagem de acarretar sobrecarga relativamente alta

    latncia para substituio do gerenciador primrio

    sobrecarga com comunicao multicast para comunicar os modos de visualizao e atualizar os backups

  • Estratgias

    Replicao Passiva os clientes se comunicam com rplicas distintas

    Replicao Ativa os clientes se comunicam com todas as rplicas

    por multicast

  • Replicao Ativa

    Os gerenciadores so organizados em grupo e desempenham papis equivalentes

    O front end envia uma requisio para todos os gerenciadores do grupo por multicast

    cada gerenciador executa a operao de forma independente

    se um deles falhar, os outros podem responder normalmente

  • Replicao Ativa

    FE! C!FE!C! RM!

    RM!

    RM!

  • Processamento de Requisio

    1. Requisio: O front end repassa a requisio (contendo um identificador exclusivo) para um grupo de gerenciadores usando multicast confivel e totalmente ordenado.

    2. Coordenao: O servio de comunicao em grupo envia a requisio para cada gerenciador na mesma ordem.

  • Processamento de Requisio

    3. Execuo: Todos os gerenciadores executam a requisio (de forma idntica); eles so mquinas de estado.

    4. Acordo: desnecessrio (devido ao uso de multicast confivel)

    5. Resposta: Cada gerenciador envia sua resposta ao front end.

  • Falhas

    Se o objetivo for tolerar apenas falhas por colapso, basta o front end repassar ao cliente a primeira resposta que chegar de algum gerenciador

    Este modelo pode tolerar falhas bizantinas, pois o front end capaz de reunir e comparar as respostas de vrios gerenciadores

  • Replicao Ativa

    Este modelo obtm consistncia seqencial mas no tem capacidade de linearizao

    Um sistema de replicao ativa pode mascarar at f falhas bizantinas, desde que o servio incorpore pelo menos 2f+1 gerenciadores de rplicas

    espera reunir f+1 respostas idnticas necessrio autenticar os gerenciadores

  • Replicao Ativa

    Para no sobrecarregar o sistema: operaes comutativas podem ser executadas

    fora de ordem

    requisies somente de leitura podem ser enviadas pelos front ends para gerenciadores individuais (com retransmisso em caso de falhas).