![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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/5.jpg)
- 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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/6.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/9.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/12.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/13.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/17.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/25.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050314/5f766a211d7e1b4ffa4b7c03/html5/thumbnails/45.jpg)
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".