Thèse soutenue

Organisation du graphe de développement logiciel pour l'analyse à grande échelle

FR  |  
EN
Auteur / Autrice : Antoine Pietri
Direction : Stefano Zacchiroli
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 05/11/2021
Etablissement(s) : Université Paris Cité
Ecole(s) doctorale(s) : École doctorale Sciences mathématiques de Paris centre (Paris ; 2000-....)
Partenaire(s) de recherche : Laboratoire : Institut de recherche en informatique fondamentale (Paris ; 2016-....)
Jury : Président / Présidente : Roberto Di Cosmo
Examinateurs / Examinatrices : Stefano Zacchiroli, Roberto Di Cosmo, Marianne Huchard, Jesús María González Barahona, Hamida Seba Lagraa, Daniel M. Germán, Fabien de Montgolfier, Ralf Treinen
Rapporteurs / Rapporteuses : Marianne Huchard, Jesús María González Barahona

Résumé

FR  |  
EN

Software Heritage est une archive de logiciels contenant la plus grande collection publique de fichiers de code source ainsi que l'historique de leur développement, sous la forme d'un immense graphe de centaines de milliards d'arêtes. Dans cette thèse, nous présentons des techniques architecturales pour rendre ce graphe disponible à des fins de recherche. Nous proposons d'abord quelques utilitaires pour accéder aux données à un niveau local d'une manière adaptée à la recherche à petite échelle. Pour effectuer des analyses sur l'ensemble de l'archive, nous extrayons un graphe de propriétés dans un format relationnel et évaluons différents systèmes de traitement pour exploiter ces données. Cette approche est adaptée au traitement de grandes quantités de données horizontales, mais elle présente des limites inhérentes à la structure fortement récursive du graphe. Nous proposons d'utiliser la compression de graphe comme moyen de réduire considérablement la taille du graphe, ce qui nous permet de le charger en mémoire vive. Nous développons une bibliothèque pour exécuter des algorithmes arbitraires sur le graphe compressé, en utilisant des techniques de mise en correspondance de ses propriétés au niveau des noeuds et des arêtes. Nous utilisons ensuite cette infrastructure pour étudier la topologie locale du graphe ainsi que son organisation en forks de projets. Comprendre cette structure nous permet ensuite d'évaluer expérimentalement différentes approches d'analyse distribuée.