• Home
  • Química
  • Astronomia
  • Energia
  • Natureza
  • Biologia
  • Física
  • Eletrônicos
  • Box of Pain:Um novo rastreador e injetor de falhas para sistemas distribuídos

    O relacionamento acontece antes de aceitar e conectar chamadas de sistema derivadas de Box of Pain. As cores indicam fios diferentes. Box of Pain é capaz de derivar que a conexão ↑ ocorre após aceitar ↓, porque o último causa o primeiro. Crédito:Bittman, Miller e Alvaro.

    Na ciência da computação, sistemas distribuídos são sistemas com componentes localizados em diferentes dispositivos, que se comunicam entre si. Embora esses sistemas tenham se tornado cada vez mais comuns, eles normalmente estão cheios de bugs.

    Alguns pesquisadores tentaram desenvolver ferramentas para encontrar bugs em sistemas distribuídos e removê-los, no entanto, uma solução tangível ainda não surgiu. Geral, ferramentas que 'perturbam' as execuções podem testar o quão robusto um sistema é para falhas, enquanto as ferramentas que 'observam' as execuções permitem que os pesquisadores entendam melhor os efeitos de tais falhas em todo o sistema.

    A maioria das abordagens e técnicas existentes para detecção de falhas e depuração são incompletas ou baseadas em testes, o que significa que eles podem ser úteis para encontrar bugs, mas não para eliminá-los. Ciente dessa lacuna na literatura, uma equipe de pesquisadores da UC Santa Cruz desenvolveu recentemente uma nova técnica, chamada de caixa de dor, para rastreamento e injeção de falhas em sistemas distribuídos não modificados.

    "Nosso laboratório é obcecado por tolerância a falhas, "Peter Alvaro, um dos pesquisadores que realizou o estudo, disse TechXplore. "Sistemas distribuídos, isso é, sistemas que requerem a cooperação de uma coleção de computadores independentes para cumprir sua finalidade, são onipresentes, mas são extremamente difíceis de raciocinar, programar e depurar. As técnicas de injeção de falha podem aumentar a confiança de que os sistemas distribuídos podem realmente tolerar as falhas (por exemplo, falhas de máquina, partições de rede, etc.) que foram projetados para tolerar, enquanto a infraestrutura de observabilidade (por exemplo, rastreamento) pode nos ajudar a entender melhor como esses sistemas funcionam durante as falhas. "

    O laboratório de Alvaro concentra-se principalmente em uma área de pesquisa chamada seleção de experimentos, o que envolve a escolha automática das falhas que têm maior probabilidade de levar um sistema a um estado ruim. Ele e seus colegas usam infraestrutura de rastreamento para observar as execuções, construir modelos de sistemas que produzem traços e, em seguida, usar esses modelos para identificar falhas 'interessantes' para injetar em um sistema.

    "Infelizmente, nossa abordagem assume que os sistemas já estão equipados com infraestrutura de rastreamento e injeção de falhas; para observar primeiro, e, finalmente, perturbar a execução do sistema, "Disse Alvaro." Na prática, muitos sistemas não são, e adicionar esses recursos pode ser caro e demorado. Nós nos perguntamos o que seria necessário para realizar o rastreamento e a injeção de falhas de forma transparente, em sistemas não modificados, para que pudéssemos aplicar nossas abordagens de detecção de bugs a 'qualquer' software distribuído. A caixa da dor é onde finalmente pousamos. "

    Caixa de Dor, a abordagem idealizada pelos pesquisadores da UC Santa Cruz, é essencialmente uma estrutura para rastrear um sistema de computador complexo para entender melhor seu comportamento, simule falhas dentro dele e observe o que acontece quando algo dá errado. Por exemplo, O Box of Pain pode simular uma rede quebrada e comparar o comportamento dos programas com seu comportamento em condições normais.

    "Nossa técnica faz isso observando eventos-chave no comportamento dos programas, como eventos de comunicação, trava, e condições de saída, "Daniel Bittman, outro pesquisador envolvido no estudo, explicado. "Usando esta informação, ao vivo constrói uma compreensão de como os computadores interagem, permitindo que o software de localização automatizada de bugs faça experiências com sistemas interrompidos automaticamente. "

    Em contraste com outros sistemas de injeção de falha, Box of Pain emprega uma abordagem leve para rastrear, concentrando-se em simular os efeitos de falhas parciais na comunicação, em vez de explorar as próprias falhas. Em seu estudo, os pesquisadores avaliaram sua técnica e descobriram que ela alcançou resultados altamente promissores, tanto na observação de falhas quanto na perturbação de sistemas distribuídos.

    "Uma descoberta importante foi o que fomos capazes de fazer com nossa visão um tanto limitada de um sistema de computador complexo, "Bittman disse." Já que nosso objetivo era entender o comportamento de um sistema de forma transparente (isto é, sem a necessidade de fazer alterações no sistema em estudo), as informações que coletamos sobre ele são bastante genéricas. "

    De acordo com Bittman, um primeiro passo importante em sua pesquisa foi mostrar que eles poderiam reconstruir com sucesso o padrão de comunicação de um sistema complexo apenas observando os eventos individuais de cada processo e que isso poderia ser feito em tempo real. Isso é crucial porque os pesquisadores queriam que seu modelo de injeção de falha lhes permitisse dizer a um sistema:'elimine toda a comunicação entre os programas A e B depois que B enviar uma mensagem para A'. Se eles foram incapazes de reconstruir o padrão de comunicação de um sistema até que ele terminasse de funcionar, Contudo, esta frase seria impossível de transmitir.

    "Uma segunda descoberta importante foi o número de maneiras pelas quais a execução de um determinado sistema pode diferir enquanto atinge o mesmo resultado, "Bittman acrescentou." Vários computadores interativos podem funcionar em velocidades diferentes, e, portanto, a maneira como eles interagem pode ser diferente entre execuções do mesmo sistema com as mesmas entradas, mesmo que o resultado da execução seja o mesmo. Isso tem uma consequência infeliz:decidir quando injetar uma falha em um sistema se torna muito mais difícil. Contudo, fomos capazes de fornecer algumas evidências iniciais de que o problema, na prática, não é tão ruim quanto pode parecer. "

    Os resultados recolhidos por Alvaro, Bittman e seu colega Ethan Miller têm implicações substanciais para injeção de falhas, já que sua abordagem pode tornar muito mais fácil decidir e realizar experimentos de injeção de falhas. Além disso, seu estudo pode informar o desenvolvimento de frameworks de depuração, que reportaria aos desenvolvedores com qual nível de confiança seu sistema está livre de bugs em circunstâncias particulares.

    "Esta pesquisa apenas começou, "Alvaro disse." Na verdade, como admitimos prontamente no jornal, mal começamos a usar o Box of Pain para seu propósito declarado de encontrar e isolar bugs em sistemas distribuídos. Publicamos este relatório inicial porque estávamos entusiasmados em contar à comunidade sobre o desenvolvimento. "

    De acordo com Alvaro, há duas direções principais nas quais sua pesquisa pode ser desenvolvida em um futuro próximo. Em primeiro lugar, embora seu estudo forneça evidências iniciais tentadoras para apoiar suas hipóteses, estudos futuros podem precisar executar mais testes experimentais para avaliar melhor suas suposições.

    "Argumentamos que um injetor de falhas distribuído precisa apenas se concentrar em perturbar as bordas do gráfico de comunicação de um sistema para encontrar os bugs mais interessantes, encolhendo massivamente a 'área de superfície' na qual precisamos nos concentrar, "Alvaro explicou." Agora precisamos mostrar que isso é verdade, encontrando alguns novos bugs! O que é mais, argumentamos que, embora o espaço de 'possíveis' execuções seja exponencialmente grande e intratável para cobrir, a probabilidade de execuções diferentes (no nível de abstração que capturamos no gráfico de comunicação) cai muito rapidamente, tornando possível cobrir este espaço com eficiência. "

    Para mostrar que o efeito que observaram é verdadeiro e pode ser generalizado em diferentes cenários, os pesquisadores precisarão expandir seus experimentos para sistemas maiores e mais ricos. A longo prazo, eles também prevêem uma integração estreita do Box of Pain com um seletor de experimento direcionado, como injeção de falha orientada por linhagem, pois isso pode ajudar a generalizar esse seletor para infraestruturas distribuídas arbitrariamente.

    "Nos próximos seis meses, nosso laboratório planeja fazer experimentos em armazenamentos de dados como o Cassandra, Redis e MongoDB, em filas de mensagens, como Kafka e RabbitMQ, e em serviços de coordenação, como EtcD e Zookeeper, "Alvaro acrescentou." Também pretendemos explorar as aplicações pedagógicas do Box of Pain, escolha de cronogramas de injeção de falha personalizados para o projeto apresentado pelos alunos do curso de sistemas distribuídos da UC Santa Cruz. Por aqui, ele pode ajudar os instrutores a avaliar os projetos dos alunos, bem como ajudar os alunos, fornecendo explicações valiosas sobre quaisquer bugs que ele identifique em seus programas. "

    O estudo realizado por Alvaro, Bittman and Miller foi pré-publicado em arXiv e foi aceito para publicação pela HotCloud 2019, um workshop sobre computação em nuvem que acontecerá em julho em Renton, Washington. Este workshop será uma ótima oportunidade para solicitar feedback sobre o Box of Pain da comunidade de sistemas distribuídos, o que poderia ajudar os pesquisadores a determinar quais caminhos para o trabalho futuro eles deveriam buscar primeiro.

    © 2019 Science X Network




    © Ciência https://pt.scienceaq.com