• Home
  • Chimie
  • Astronomie
  • Énergie
  • La nature
  • Biologie
  • Physique
  • Électronique
  • Box of Pain :Un nouveau traceur et injecteur de défauts pour les systèmes distribués

    La relation se produit-avant d'accepter et de connecter les appels système que Box of Pain dérive. Les couleurs indiquent des fils différents. Box of Pain est capable de déduire que la connexion↑ se produit après l'acceptation↓, parce que ce dernier provoque le premier. Crédit :Bittman, Miller &Alvaro.

    En informatique, les systèmes distribués sont des systèmes avec des composants situés sur différents appareils, qui communiquent entre eux. Alors que ces systèmes sont devenus de plus en plus courants, ils sont généralement remplis de bugs.

    Quelques chercheurs ont essayé de développer des outils pour trouver des bogues dans les systèmes distribués et les supprimer, pourtant, une solution tangible n'a pas encore émergé. Globalement, les outils qui "perturbent" les exécutions peuvent tester la robustesse d'un système aux pannes, tandis que les outils qui « observent » les exécutions permettent aux chercheurs de mieux comprendre les effets à l'échelle du système de ces défauts.

    La plupart des approches et techniques existantes pour la détection des pannes et le débogage sont incomplètes ou basées sur des tests, ce qui signifie qu'ils peuvent être utiles pour trouver des bogues mais pas pour les éliminer. Conscient de cette lacune dans la littérature, une équipe de chercheurs de l'UC Santa Cruz a récemment développé une nouvelle technique, appelé Boîte de Douleur, pour le traçage et l'injection de fautes dans les systèmes distribués non modifiés.

    "Notre laboratoire est obsédé par la tolérance aux pannes, " Pierre Allvaro, l'un des chercheurs qui a mené l'étude, a déclaré TechXplore. "Systèmes distribués, C'est, des systèmes qui nécessitent la coopération d'un ensemble d'ordinateurs indépendants pour remplir leur fonction, sont omniprésents, mais ils sont extrêmement difficiles à raisonner, programmer et déboguer. Les techniques d'injection de fautes peuvent augmenter la confiance que les systèmes distribués peuvent réellement tolérer les fautes (par exemple, pannes de machines, partitions réseau, etc.) qu'ils ont été conçus pour tolérer, tandis que l'infrastructure d'observabilité (par exemple, le traçage) peut nous aider à mieux comprendre comment ces systèmes fonctionnent pendant les pannes."

    Le laboratoire d'Alvaro se concentre principalement sur un domaine de recherche appelé sélection d'expériences, ce qui implique de choisir automatiquement les défauts les plus susceptibles de conduire un système dans un mauvais état. Lui et ses collègues utilisent l'infrastructure de traçage pour observer les exécutions, construire des modèles de systèmes qui produisent des traces, puis utiliser ces modèles pour identifier des défauts « intéressants » à injecter dans un système.

    "Malheureusement, notre approche suppose que les systèmes sont déjà équipés à la fois d'infrastructures de traçage et d'injection de fautes ; d'abord observer, et finalement perturber l'exécution du système, " dit Alvaro. " En pratique, de nombreux systèmes ne le sont pas, et l'ajout de ces capacités peut être coûteux et prendre du temps. Nous nous sommes demandé ce qu'il faudrait pour pouvoir effectuer le traçage et l'injection de fautes de manière transparente, sur des systèmes non modifiés, afin que nous puissions appliquer nos approches de recherche de bogues à « n'importe quel » logiciel distribué. Box of Pain est l'endroit où nous avons finalement atterri."

    Boîte de douleur, l'approche imaginée par les chercheurs de l'UC Santa Cruz, est essentiellement un framework de traçage d'un système informatique complexe pour mieux comprendre son comportement, simuler des défauts en son sein et observer ce qui se passe quand quelque chose ne va pas. Par exemple, Box of Pain peut simuler un réseau cassé et comparer le comportement des programmes avec leur comportement dans des conditions normales.

    "Notre technique le fait en observant des événements clés dans les comportements des programmes, tels que des événements de communication, se bloque, et conditions de sortie, " Daniel Bittman, un autre chercheur impliqué dans l'étude, expliqué. « En utilisant ces informations, il permet de comprendre comment les ordinateurs interagissent, permettant à un logiciel de recherche de bogues automatisé d'expérimenter automatiquement des systèmes perturbateurs. "

    Contrairement à d'autres systèmes d'injection de défauts, Box of Pain utilise une approche légère du traçage, se concentrer sur la simulation des effets des échecs partiels sur la communication plutôt que sur l'exploration des échecs eux-mêmes. Dans leur étude, les chercheurs ont évalué leur technique et ont constaté qu'elle obtenait des résultats très prometteurs, à la fois en observant les défauts et en perturbant les systèmes distribués.

    "Une découverte importante était ce que nous avons pu faire avec notre vision quelque peu limitée d'un système informatique complexe, " a déclaré Bittman. " Puisque notre objectif était de comprendre le comportement d'un système de manière transparente (c'est-à-dire, sans qu'il soit nécessaire d'apporter des modifications au système à l'étude), les informations que nous recueillons à ce sujet sont assez génériques."

    Selon Bittman, une première étape clé de leur recherche consistait à montrer qu'ils pouvaient reconstruire avec succès le modèle de communication d'un système complexe simplement en examinant les événements individuels de chaque processus et que cela pouvait être fait en temps réel. Ceci est crucial car les chercheurs voulaient que leur modèle d'injection de fautes leur permette de dire à un système :« abandonnez toute communication entre le programme A et B après que B ait envoyé un message à A ». S'ils n'ont pas pu reconstruire le modèle de communication d'un système avant la fin de son exécution, cependant, cette phrase serait impossible à transmettre.

    "Un deuxième résultat important était le nombre de façons dont l'exécution d'un système particulier pouvait différer tout en obtenant le même résultat, " Bittman ajouté. " Plusieurs ordinateurs en interaction peuvent fonctionner à des vitesses différentes, et donc la façon dont ils interagissent peut être différente entre les exécutions du même système avec les mêmes entrées, même si le résultat de l'exécution est le même. Cela a une conséquence malheureuse :décider quand injecter une faute dans un système devient beaucoup plus difficile. Cependant, nous avons pu fournir une première preuve que le problème, en pratique, n'est pas aussi grave qu'il n'y paraît."

    Les résultats recueillis par Alvaro, Bittman et leur collègue Ethan Miller ont des implications substantielles pour l'injection de fautes, car leur approche pourrait rendre la décision et la réalisation d'expériences d'injection de fautes beaucoup plus faciles. En outre, leur étude pourrait éclairer le développement de frameworks de débogage, qui indiquerait aux développeurs avec quel niveau de confiance leur système est exempt de bogues dans des circonstances particulières.

    "Cette recherche ne fait que commencer, " dit Alvaro. " En fait, comme nous l'admettons volontiers dans le papier, nous avons à peine commencé à utiliser Box of Pain dans le but déclaré de trouver et d'isoler les bogues dans les systèmes distribués. Nous avons publié ce premier rapport parce que nous étions ravis d'informer la communauté du développement."

    Selon Alvaro, il y a deux directions clés dans lesquelles leurs recherches pourraient être développées davantage dans un proche avenir. Premièrement, bien que leur étude fournisse des preuves initiales alléchantes à l'appui de leurs hypothèses, les futures études pourraient devoir exécuter plus de tests expérimentaux pour évaluer davantage leurs hypothèses.

    "Nous soutenons qu'un injecteur de défauts distribués n'a besoin de se concentrer que sur les bords perturbateurs dans le graphe de communication d'un système pour trouver les bogues les plus intéressants, réduire massivement la "surface" sur laquelle nous devons nous concentrer, " expliqua Alvaro. " Nous devons maintenant montrer que c'est vrai en trouvant de nouveaux bugs ! De plus, nous soutenons que bien que l'espace des exécutions « possibles » soit exponentiellement grand et difficile à couvrir, la probabilité d'exécutions différentes (au niveau d'abstraction que nous capturons dans le graphe de communication) diminue très fortement, permettant de couvrir en grande partie cet espace efficacement.

    Pour montrer que l'effet qu'ils ont observé est vrai et peut être généralisé à différents scénarios, les chercheurs devront étendre leurs expériences à des systèmes plus vastes et plus riches. À long terme, ils envisagent également une intégration étroite de Box of Pain avec un sélecteur d'expériences ciblées, telles que l'injection de fautes par lignage, car cela pourrait aider à généraliser ce sélecteur à des infrastructures distribuées arbitraires.

    "Au cours des six prochains mois, notre laboratoire prévoit d'expérimenter sur des magasins de données tels que Cassandra, Redis et MongoDB, sur les files d'attente de messages telles que Kafka et RabbitMQ, et sur les services de coordination tels que EtcD et Zookeeper, " Alvaro a ajouté. " Nous prévoyons également d'explorer les applications pédagogiques de Box of Pain, choisir des calendriers d'injection de fautes personnalisés pour les projets soumis par les étudiants du cours sur les systèmes distribués de l'UC Santa Cruz. Par ici, il peut aider les instructeurs à noter les projets des étudiants ainsi qu'aider les étudiants en fournissant des explications détaillées sur tous les bogues qu'il identifie dans leurs programmes."

    L'étude réalisée par Alvaro, Bittman et Miller a été prépublié sur arXiv et a été accepté pour publication par HotCloud 2019, un atelier sur le cloud computing qui aura lieu en juillet à Renton, Washington. Cet atelier sera une excellente occasion de solliciter des commentaires sur Box of Pain de la communauté des systèmes distribués, ce qui pourrait aider les chercheurs à déterminer quelles pistes de travaux futurs ils devraient poursuivre en premier.

    © 2019 Réseau Science X




    © Science https://fr.scienceaq.com