Mémoire de maîtrise (2022)
|
Libre accès au plein texte de ce document Conditions d'utilisation: Tous droits réservés Télécharger (2MB) |
Résumé
Avec l'augmentation de la complexité dans le développement de logiciel, les développeurs ont besoin d'outils sophistiqués pour faciliter leur travail. Les outils de traçage aident à comprendre le comportement réel des systèmes complexes grâce au relèvement des évènements bas-niveau, au moment précis des anomalies, avec très peu de surcoût, en production. Une fois que ces traces sont collectées, des outils d'analyse de trace sont nécessaires pour extraire des informations utiles, car il est presqu'impossible de les analyser manuellement. L'expansion de l'utilisation des systèmes distribués et parallèles crée des défis particuliers pour le domaine du traçage. Les outils traditionnels, créés pour analyser les traces des appareils personnels, ne sont pas adéquats pour analyser les traces générées par ces systèmes qui peuvent être gigantesques. Il existe une multitude de solutions dédiées au traçage des systèmes distribués. Ces outils supportent l'exécution des opérations pour agréger les analyses des traces de grande taille. Cependant, ces opérations sont souvent très couplées au type d'application ciblé par l'outil. Trace Compass est un outil très flexible. Il supporte plusieurs formats de fichiers de trace et offre des analyses très sophistiquées. Il est aussi facile de rajouter le support pour un nouveau type de trace ou de développer une nouvelle analyse, grâce à son architecture avec une base de données puissante qui permet d'effectuer n'importe quel type d'analyse de manière efficace. Cependant, Trace Compass, dans son état actuel, n'est pas encore utilisable dans un environnement distribué. Il lui manque la capacité de fournir une vue globale sur des traces de grande taille, ou de se déployer dans une organisation avec plusieurs instances parallèles, pour être capable de gérer un plus grand volume de traces. L'objectif de ce travail est de trouver une solution qui prend les meilleures caractéristiques des solutions existantes : un outil de traçage distribué qui fonctionne bien avec les traces de grand volume et offre des opérateurs puissants qui permettent aux utilisateurs de filtrer les données récupérées, tout en gardant la flexibilité pour faciliter l'adoption de l'outil dans des environnements différents. Nous avons fait une revue complète de la littérature sur les différentes techniques de traçage, et surtout les solutions existantes pour le traçage distribué en particulier. Nous avons souligné les avantages et les limitations de l'architecture de ces outils et avons fait ressortir les points sur lesquels nous pourrions apporter des contributions. Nous avons remarqué qu'il existe un patron d'architecture commun entre ces outils, et que la capacité d'offrir des opérateurs sur le résultat, à travers des requêtes, est très puissant.
Abstract
The increasing complexity in software architecture requires sophisticated tools to help engineers in their development process. An efficient tool for this purpose is a tracer, which allows deep understanding of the behaviour of the running program, as well as the complex underlying system, by collecting low level events during execution at the near-exact moment of the anomaly, with minimal overhead, in production. Once these traces are collected, another set of tools are used to analyse and extract useful information from the raw data. Indeed, it is almost impossible to analyse this data manually in modern days, due to their size. The rapid expansion of distributed and parallel systems requires these tools to be adapted, since these types of systems raise specific challenges due to their nature. Very often, traditional tools created for analysing single machines are not suitable for analysing the traces generated from these large parallel systems. There are currently several solutions explicitly engineered for distributed tracing. These tools allow users to execute operators on the requested data through their query protocol, to aggregate the analysed data for large size traces. However, these operators are often semantically tightly coupled to the type of application for which the tool was created. Trace Compass is a very flexible tool in this sense. It supports various trace formats and sophisticated analyses. It is also relatively easy to add support for new trace formats, or new types of trace nalysis, thanks to its architecture and its powerful database that offer efficient queries for any type of analysis. That being said, Trace Compass in its current form has limitations on scalability. It cannot be deployed over multiple parallel instances, to carry the analysis in parallel, and offer an aggregated view, for very numerous or very big traces. The goal for this work is to find a solution that brings the best of both world: a tool for tracing distributed and parallel systems with good scalability, offering powerful operators to allow complex combinations of operations on the requested data, while maintaining a certain level of flexibility to ease the adoption of the tool in different types of environments. We did a thorough literature review on trace analysis tools, with a particular focus on existing solutions for distributed tracing. We underline the advantages and limitations in their architecture, and pointed out the areas where we can bring potential contributions. We noticed some common design patterns among these tools and confirmed that the ability to run operators on the requested data is particularly interesting. From there, we attempt to find a working model for distributed tracing, with Trace Compass as the main analysis module, to bring the advantages of existing solutions to the tool, while maintaining its flexibility.
Département: | Département de génie informatique et génie logiciel |
---|---|
Programme: | Génie informatique |
Directeurs ou directrices: |
Michel Dagenais |
URL de PolyPublie: | https://publications.polymtl.ca/10481/ |
Université/École: | Polytechnique Montréal |
Date du dépôt: | 06 févr. 2023 14:49 |
Dernière modification: | 07 avr. 2024 19:01 |
Citer en APA 7: | Tran, Q.-H. (2022). Architecture pour les analyses distribuées et parallèles de traces logicielles [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/10481/ |
---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements