Abordagem, Instalação e Realização de benchmarks para LibPaxos2 e RingPaxos Cristian Cleder Machado Disciplina de Programação com Objetos Distribuídos TF Professor: Cláudio Fernando Resin Geyer cristian@cristian.com.br Porto Alegre, 10 de Julho de 2012
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES CONCLUSÕES
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES CONCLUSÕES
INTRODUÇÃO Acelerado crescimento na utilização de Rede de Computadores e Sistemas Distribuídos. Redes e Sistemas, tornam-se demasiadamente maiores, complexos e poderosos. Alto desempenho e disponibilidade são pontos inextricáveis. LibPaxos2 e RingPaxos. Execuções propõem eficiência, escalabilidade e confiabilidade para problemas de consenso e implementação de difusão atômica. 4
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES CONCLUSÕES
OBJETIVOS E PROPOSTA Estudo, Instalação e Testes; Análise de diferentes aspectos (quantidade de nós, heterogeneidade, escalabilidade); Utilização de benchmarks e ferramentas para medição de desempenho; Realização de paradas propositais na estrutura de comunicação de determinados processos executados em distintos nodes. 6
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Sistemas Distribuídos) Segundo Coulouris define-se Sistemas Distribuídos como Um sistema no qual os componentes de hardware ou software, localizados em computadores interligados em rede, se comunicam e coordenam suas ações apenas trocando mensagens entre si. 8
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Tolerância à Falhas) Tolerância a falhas é definida como a característica que assume que softwares ou hardwares permaneçam funcionando normalmente após falhas em alguns de seus componentes/serviços. 9
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Consenso) Consenso é o processo de chegar ao acordo sobre um resultado entre um grupo de participantes, para isso, todos os elementos precisam ter as mesmas informações sobre as quais deve-se aplicar um mesmo algoritmo de decisão. 10
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Consenso) Consenso possui as seguintes propriedades: Terminação - Todo processo em algum momento decide por um valor; Integridade Uniforme - Todo processo decide no máximo uma vez; Acordo - Dois processos corretos não decidem por valores diferentes. 11
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Difusão Atômica) Admite que diferentes processos recebam uma série ordenada de valores. Muito favorável para concretizar a exclusão mútua distribuída ou para sustentar dados replicados com equivalência. 12
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Difusão Atômica) Suas propriedades formais determinam: Validade - Se um processo envia por difusão uma mensagem m, então ele em algum momento entrega m; Acordo - Se um processo correto entrega uma mensagem m, então todo processo correto entrega m em algum momento; 13
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Difusão Atômica) Integridade - Para cada mensagem m, todo processo correto entrega m no máximo uma vez, e somente se m foi enviada anteriormente por algum processo; e Ordem Total - Se dois processos corretos p e q entregam duas mensagens m e m0, então p entrega m antes de m0 se e somente se q entrega m antes de m0. 14
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Multicast) Envio de informação para diversos destinatários ao mesmo tempo utilizando interconexão para distribuição dos pacotes, tirando assim, o trabalho de envio do emissor. 15
Exemplo de um envio Multicast 16
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Unicast) É um endereçamento para um pacote feito para um único destino, ou seja, entrega ponto-aponto. 17
Exemplo de um envio Unicast 18
CONCEITOS, DEFINIÇÕES E PROPRIEDADES (Topologia em Anel) A topologia de rede em anel consiste em computadores interligados através de um circuito fechado, em série. 19
Exemplo de topologia em Anél 20
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES CONCLUSÕES
LIB PAXOS E RING PAXOS (Paxos) Resolver problemas de consenso; Implementar difusão atômica em uma rede de processadores não-confiáveis; Utilizados em situações que requerem a durabilidade, por exemplo, para replicar um sistema de arquivos distribuídos ou um banco de dados. 22
LIB PAXOS E RING PAXOS (Paxos) Escrito Linguagem C; LibEvent - Biblioteca assíncrona para notificação de eventos; Berkeley DB - Biblioteca que proporciona o gerenciamento e alta performance de dados em banco de dados complexos. 23
LIB PAXOS E RING PAXOS (Paxos) Processos possuem os seguintes papéis: Client - Usam Paxos como meio de comunicação confiável; Proposer - Podem propor valores; Learner - Aprendem o valor escolhido. Acceptor - Cooperam para escolher um valor; 24
LIB PAXOS E RING PAXOS (Paxos) ErlangPaxos - Um "simulador" Paxos que permite injetar eventos específicos, tais como, perda de mensagens, acidente processo, particionamento de rede, etc. 25
LIB PAXOS E RING PAXOS (Paxos) LibPaxos-T Escrito em C; Biblioteca Pthread (Problema custo do tempo de chamadas consideravelmente entre S.O.). 26
LIB PAXOS E RING PAXOS (Paxos) LibFastPaxos Multicast, LibEvent e Berkeley DB; Desenvolvido para entender melhor a perda de desempenho com o número crescente de Proposers. 27
LIB PAXOS E RING PAXOS (LibPaxos) LibPaxos é uma coleção de implementações de código aberto do algoritmo de Paxos. 28
LIB PAXOS E RING PAXOS (LibPaxos2) LibPaxos2 Uma versão melhorada do LibPaxos; Eleição do líder; e Otimizações de protocolo. 29
LIB PAXOS E RING PAXOS (LibPaxos2) RingPaxos Alto rendimento (entrega aprox. 800Mbit/s); Propõe processos sem falhas; Sem perda de mensagens; Anel lógico para comunicação dos Acceptors. 30
Exemplo de funcionamento dos processo em LibPaxos(a) e RingPaxos(b) 31
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES CONCLUSÕES
Estrutura de testes Nome Conf1 Conf2 Conf3 Conf4 Conf5 Equipamento P4 P4 P4 ML110 ML110 P4 Processadores 1 1 1 1 1 1 Cores 1 1 1 4 4 1 Clock 1.7Ghz 1.7 Ghz 1.7 Ghz 2.4Ghz 2.4Ghz 1.7 Ghz Memória 1Gb 1Gb 1Gb 8Gb 8Gb 1Gb Acceptors 3 7 7 3 3 5 Learners 2 1 1 1 1 4 Proposers 1 1 1 1 1 Quórum 2 5 2 2 4 S.O. Ubuntu 11.10 33
Parâmetros obrigatórios Item Descrição Exemplo multicast IP e Porta do endereço Multicast. Multicast 224.0.0.1 6667 acceptor p1_interval p2_interval quorum_size Contém o nome, que por padrão deve ser Acceptor; seu id no anel; porta no anel e porta de conexão do Learner. Intervalo de tempo antes do líder executar algum processo na fase 1. São dois valores, sendo o primeiro em segundos e o segundo em microssegundos. Intervalo de tempo antes do líder executar algum processo na fase 2. São dois valores, sendo o primeiro em segundos e o segundo em microssegundos. Determina o número de Acceptors necessários para que uma decisão seja considerada bem sucedida pelo líder. Acceptor 1 10.1.255.1 7771 5551 1 0 p1_interval 1 0 p2_interval quorum_size 2 34
ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES IMPORTANTE: Algumas características do sistema operacional, como tamanho do buffer do kernel, MTU, etc., podem influenciar na execução do algoritmo, porém não foram alterados nos testes. 35
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES CONCLUSÕES
METODOLOGIAS Alteração dos parâmetros para execução de cada processo, seja, Learner, Acceptor ou Proposer; O benchmark - Submete diversos valores randômicos à uma taxa fixa, que foi alterada em outros testes; Testes realizados 10 vezes para cada estrutura e/ou situação estabelecida; 37
METODOLOGIAS Execuções eram alternadas entre os números de Acceptors, Learners e Proposers; As ferramentas TOP e Indicator-Multiload foram utilizadas para medição do tráfego de rede, do consumo de CPU e utilização de memória. 38
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES CONCLUSÕES
RESULTADOS E DISCUSSÕES (GERAL) A arquitetura do computador, configuração do Sistema Operacional e a estrutura da rede influenciam para a execução e desempenho do algoritmo. 40
Arquivo de testes de estrutura Testes com erro Testes com sucesso 41
Latência em milissegundos Taxa de latência no RingPaxos com troca de switch e aumento de Acceptors 30 Média de Latência RingPaxos 25 24 20 15 10 11 18 10 16 Cisco Micronet 5 7 0 3 5 7 Número de Acceptors 42
Latência em milissegundos Taxa de latência no LibPaxos com troca de switch e aumento de Acceptors 6 Média de Latência LibPaxos 5 5,3 4 3 2 2,4 3 Cisco Micronet 1 0,8 1 1,2 0 3 5 7 Número de Acceptors 43
RESULTADOS E DISCUSSÕES (GERAL) Inicialização possui sequência lógica (Acceptor n, Learner n e Proposer n); OBS: Em RingPaxos tem-se o cuidado da ordem dos Acceptors. 44
Apresentação de uma tela com 6 A, 1 L e 1 P; 45
RESULTADOS E DISCUSSÕES (GERAL) A adição de Acceptors Não pode ser realizada durante a execução, pois são fixados no arquivo de parâmetros. IMPORTANTE: Em RingPaxos o Acceptor 1 é o Coordinator/Leader das rodadas. 46
RESULTADOS E DISCUSSÕES (GERAL) A adição de Learners Solicita todos os valores propostos; Não aparentou nenhum problema; Talvez, se o futuro = tempo muito longo, algum problema poderia surgir devido ao limite de armazenamento dos valores decididos. 47
RESULTADOS E DISCUSSÕES (LibPaxos2) A adição de Proposers Fica em modo de espera até o Proposer 1 parar ou cair, posteriormente, propõe ou assume as rodadas. OBS: Em LibPaxos Proposer é o Coordinator/Leader das rodadas. 48
RESULTADOS E DISCUSSÕES (RingPaxos) A adição de Proposers Resulta em queda do primeiro e parada do sistema; Porém, ao fim da execução de um Proposer, a execução de um Proposer novo pode ser realizada após término da execução do primeiro. 49
RESULTADOS E DISCUSSÕES (LibPaxos2) A falha de Acceptors O Sistema continua normalmente devido a comunicação Multicast e ao Quórum, este sendo maior ou igual ao número de Acceptors Ativos. 50
RESULTADOS E DISCUSSÕES (RingPaxos) A falha de Acceptors Falha no sistema devido a topologia em Anel; Algum tipo de mecanismo externo pode ser programado para substituição de Acceptors durante a execução. 51
Referente ao consumo de CPU Consumo de CPU por processo numa execução Learner 19% Acceptor 17% Proposer 19% Leader 45% 52
Referente ao consumo de memória Consumo de memória por processo numa execução Acceptor 20% Learner 20% Proposer 20% Leader 40% 53
Utilização da rede no Acceptor 1 54
Falha do Leader 55
RESULTADOS E DISCUSSÕES (GERAL) Gargalos O Acceptor após receber a decisão de mensagem tem que gravar o estado em disco. MTU e Buffer do Sistema ou do Switch. 56
RESULTADOS E DISCUSSÕES (GERAL) Transmissão ou Retransmissão de mensagens. A configuração errada dos parâmetros de intervalo podem causar problemas na estrutura; O aumento do buffer do kernel pode aumentar a performance ou diminuí-la, caso não seja bem estudado; 57
RESULTADOS E DISCUSSÕES (GERAL) Heterogeneidade Diferenças de hardware podem influenciar muito no desempenho; Modelos de placas de rede e switches podem influenciar no desempenho; 58
INTRODUÇÃO OBJETIVOS E PROPOSTA CONCEITOS, DEFINIÇÕES E PROPRIEDADES LIB PAXOS E RING PAXOS ESTRUTURAS, ARQUITETURAS E CONFIGURAÇÕES METODOLOGIAS RESULTADOS E DISCUSSÕES CONCLUSÕES
CONCLUSÕES RingPaxos obteve alta performance na execução em uma rede confiável; LibPaxos2 tem melhor comportamento quanto a falhas dos nodes; RingPaxos e LibPaxos2 demonstraram escalabilidade na adição de novos nodes; 60
CONCLUSÕES Para implementar LibPaxos2 ou RingPaxos é necessário resolver uma série de questões que são externas ao algoritmo. Supostamente, opções de design não se tornam evidentes antes de perceber para que tipo de aplicação LibPaxos2 ou RingPaxos vai ser usado. 61
CONCLUSÕES A escolha dos equipamentos, configurações e até mesmo modificações de parte do sistema influenciam muito nos resultados. Por esta razão deve-se considerar essas questões com antecedência e em tempo de design. 62
CONCLUSÕES Alguns parâmetros do algoritmo tornam o mesmo imprevisível. Dois parâmetros importantes são os intervalos de tempo utilizados para os timeouts da fase 1 e fase 2. 63
CONCLUSÕES A implantação de um sistema de mudança de líder em RingPaxos tornar o sistema mais confiável; O redirecionamento dos tráfegos de um Acceptor que falhar para o próximo pode tornar RingPaxos mais robusto; 64
CONCLUSÕES Um detector de fluxo poderia controlar as retransmissões para não gerar mais tráfego; 65
CONCLUSÕES Maiores estudos, utilização de ferramentas e criação de benchmarks podem retornar resultados mais precisos, juntamente com o aumento de nodes, troca de equipamentos, entre outros. 66
REFERÊNCIAS Distributed Operating Systems. A. S. Tanenbaum. Prentice- Hall, 1995. ISBN 0-13-219908-4. (Seções 2.4 e 2.5). Erlang. http://www.erlang.org. G. Coulouris, J. Dollimore, T. Kindberg. Distributed Systems: Concepts and Design. Addison-Wesley, 1994. ISBN 0-201-62433-8. (Capítulos 4 e 5). LibPaxos. Disponível em http://libpaxos.sourceforge.net/paxos_projects.php 67
REFERÊNCIAS Ring Paxos: A High-Throughput Atomic Broadcast Protocol. Disponível em http://www.inf.usi.ch/faculty/pedone/paper/2010/2010dsn.pdf. T. D. Chandra and S. Toueg. Unreliable failure detectors for reliable distributed systems. J. ACM, 43(2):225 267, 1996. TANEMBAUM, Andrew S. Redes de Computadores. Rio de Janeiro: Ed. Campus, 5ª edição, 2011. Vídeo de Apresentação na Google Zurich: http://www.youtube.com/watch?v=xxwuejlh54k 68
Perguntas? Abordagem, Instalação e Realização de benchmarks para LibPaxos2 e RingPaxos Obrigado! Cristian Cleder Machado Disciplina de Programação com Objetos Distribuídos TF Professor: Cláudio Fernando Resin Geyer cristian@cristian.com.br Porto Alegre, 10 de Julho de 2012