45
Gossip Protocol utilizando GEMS Alunos: João Batista, Lucas Eugênio, Vinícius Coelho

utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Gossip Protocolutilizando GEMS

Alunos: João Batista, Lucas Eugênio, Vinícius Coelho

Page 2: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Gossip-protocol

- Confiavel, escalavel, rápido;- Usado para detecção de falhas;- Consenso distribuído de falhas, entre centenas e até milhares de nós em tempo curto;- Usa mensagens UDPs;

Page 3: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Gossip-protocol

- Tem funcionamento parecido com a fofoca humana;- Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar suas informações; - Mensagens com informações sobre outros nós(lista gossip, matriz de suspeitos e cabeçalhos);

Page 4: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Parametros chave para o protocolo

- Gossip time - tempo que o nó espera entre o envio das mensagens;- Cleanup time - tempo decorrido desde a ultima mensagem recebida de um nó;- Consensus time - tempo decorrido desde que um nó foi declarado como falho;

Page 5: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

- Gossip lista - vetor com o tempo decorrido desde o ultimo sinal recebido, de cada nó do sistema;- Vetor de suspeitos - vetor com a marcação dos nós suspeitos de falha;- Matriz de suspeitos - matriz que guarda o vetor de suspeitos dos outros nós;- Vetor de vivos - guarda quais nós ainda estão vivos;

Dados mantidos por cada nó

Page 6: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar
Page 7: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Abordagens

- Flat System;- Layered System;

Page 8: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Abordagens

- Layered Gossip; divide o sistema em grupos; ideia de divisão e conquista;- Cada camada de grupos é tratada como se fosse um nó;- Os nós mantem informações do grupo, e o grupo mantém informações dos grupos mais ácima;- Uma lista de nós vivos para cada grupo é mantida em todos grupo;

Page 9: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar
Page 10: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Gossip-protocol

- Interessante ideia de consenso;- Para um nó ser declarado falho, maioria dos nós devem suspeitar de sua falha;- Informação sobre o nó falho é espalhada por broadcast;- No Layered System, o consensu é local, restrito ao grupo ao qual o nó pertence;

Page 11: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Gossip-protocol

- Se um grupo não tem a maioria dos nós ativos, ou não possui nós suficientes, é usado o timeout;- Checa-se a matriz de suspeitos, se foi ultrapassado o timeout e se não houve mudança na matriz(sinal de um nó) é detectada a falha;

Page 12: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar
Page 13: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar
Page 14: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Gossip-protocol

- Detecção de falhas de grupos;- Todos os nós do grupo cairam;- Enquanto houver um nó ativo, o grupo continua ativo;

Page 15: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Monitoramento de recursos e desempenho

- O modulo de controle é composto por dois componentes principais:

- RMA: Agente de monitoramento de recursos

- AG: Agente Gossip

Page 16: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Monitoramento de recursos e desempenho

- RMA: Agente de monitoramento de recursos- Reúne dados de desempenho do sistema e forma um

pacotes de dados.

- AG: Agente Gossip- Monitorar o estado sistema- Participa na detecção de falhas

Page 17: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar
Page 18: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Componentes do serviço de monitoramento

Page 19: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Sensores

- Função: interagir com o hardware e aplicativos para coletar dados de recursos

- Tipos de sensores:- Built-in sensors - User-defined sensors

Page 20: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Built-in sensors

- Ativamente mede os seguintes parâmetros de desempenho através dos serviços do sistema operacional e chamadas de sistema:

-

Page 21: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

User-defined sensors

- Mede novos parametros do sistema, que são úteis para monitorar recursos que não são suportados pelos sensores embutidos

- Exemplo: um novo sensor definido pelo usuário, que mede a latência de ida e volta entre dois nós.

Page 22: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Interface de comunicação

- Coraçao do RMA- Recebe consultas de aplicações através da API- Recebe dados monitorados localmente- Recebe dados do AG- Responsável por gerar o MDP

- MDP: Monitor Data Packet

Page 23: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

MIB: Management Information BaseAMIB: Aggregate Management Information Base

Page 24: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

As funções de agregação

Cada aplicações pode ter uma função de agregação especial de acordo com o tipo de dados.

- Fornecidas pelo RMA

- Definidas pelo usuario

Page 25: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar
Page 26: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Componentes do serviço de monitoramento

Page 27: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Application Programming Interface (API)

- É constituído por um conjunto de funções- É o principal modo de comunicação entre a aplicação e o RMA- Categorias:

- Funções de inicialização- Funções de controle- Funções de update

Page 28: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Funções de inicialização

Page 29: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Funções de Controle

Page 30: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Funções de Update

Page 31: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Experimentos com detecções de falha

-Não determinar o T-cleanup baixo-Aumento de falsas detecções de falha-Consenso se torna impossível

Tempo de consenso em um determinado grupoprecisa ser independente do tamanho do sistema:-Maior grupo, maior tempo de consenso-Menor grupo, menor tempo de consenso

Page 32: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Experimentos com detecções de falha

Crescimento de camadas vs. Crescimento de grupos-Grupos menores, mais camadas, evitando overhead e sem afetar restrições

-Nó "morto" pode ser detectado em até 130ms, enquanto em outros sistemas, pode ser de até 2s

Page 33: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Experimentos com detecções de falha

Page 34: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Experimentos com uso de rede

Para sistemas pequenos ( < 64 = 8 x 8 ), camadas adicionais aumentam a largura de banda

Para sistemas maiores ( > 64 ), a largura de banda por nó em uma arquitetura de 3 camadas é menor que em uma de 2 camadas

Poucos grupos na camada dois se comunicam

Page 35: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Experimentos com uso de rede

Page 36: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Experimento com uso de processador

Teste feito pelo autor, com uso de 8-144 máquinasPIII, 733 MHz, 256 RAM

Uso de CPU aumenta quando o número de nós ou de grupos em uma camada ultrapassa um múltiplo de 8

Característica semelhante a do experimento em rede

Page 37: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Experimento com uso de processador

Com GEMS, o uso de CPU gira em torno de 2%, quando o módulo que monitora a performance básica do sistema é incluida

Uso em processadores de mais rápidos, obtêm-se melhor eficiência com GEMS

Page 38: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Experimentos com uso de processador

Page 39: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Inserção de novos nós

A "fofoca" para até que novo nó seja inserido, para evitar inconsistência

É crucial manter uma detecção de falha rápida, devido a pausa da "fofoca"

O tempo para inserir um nó é o tempo entre o recebimento da requisição pelo "patrocinador" até o momento em que a comunicação é restabelecida

Page 40: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Inserção de novos nós

Com GEMS, esse tempo é na casa de microssegundos, mesmo em sistemas grandes

Em outros sistemas, gira em torno de um décimo de segundo

Page 41: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Inserção de novos nós

Page 42: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Otimização

É dada por uma fórmula:

Page 43: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Otimização

B é a largura de banda requirida pelo nó, Lk é o tamanho do pacote gossip na kth camada, λ é o número de camadas usadas no serviço, fk é a frequência da mensagem gossip na kth camada,Mk é o tamanho dos dados de monitoramento de performance na camada k, e gk é o número de nós ou grupos na camada k, que juntos foram um grupo na camada k+1.

Page 44: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Otimização

Uma "fofoca" inclui um header, um vetor de bits, lista de gossips e uma matriz de nós suspeitos juntamente com dados de monitoramento de performance.

O campo do header é composto de 4 bytes e especifica o tipo do pacote gossip e o tamanho.

Page 45: utilizando GEMS Gossip Protocol · Gossip-protocol - Tem funcionamento parecido com a fofoca humana; - Um nó escolhe randomicamente, de tempos em tempos, outros nós para propagar

Conclusão

Podemos concluir que o uso de GEMS, pode ser o diferencial em um sistema.A arquitetura de camadas possibilita uma alta escalabilidade e facilidade na inserção nos nós, sem que haja uma perda significativa de performance.Além disso, a capacidade de recuperação é bastante eficiente, visto que um nó morto é detectado em ms, graças a tabela de "heartbeat".