Exploration des bases de données orientées graphe : Énumération des triangles dans les graphes à grande échelle - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2023

Exploration of Graph Databases : Triangle Enumeration in Large Graphs

Exploration des bases de données orientées graphe : Énumération des triangles dans les graphes à grande échelle

Résumé

This thesis falls within the field of large-scale graph analysis, with a particular focus on triangle enumeration. The search for triangles is a fundamental problem that allows us to detect all structures composed of three adjacent vertices, all interconnected by edges. These triangles play a crucial role in many graph-related applications, such as determining the clustering coefficient, assessing the age of a community in a social network, and detecting cliques.To address this study, we conducted an in-depth literature review on triangle detection in graphs. We identified two main categories of approaches: (a) those that assume the graph can fit in main memory, and (b) those that consider that the graph cannot be entirely stored in main memory. Analyzing these works, we found that the first approaches (which rely on main memory management) are effective when the graph can be fully loaded into memory, but this does not always apply to large-scale graphs that do not entirely fit into main memory. Therefore, it is essential to develop efficient algorithms for these types of graphs, which poses a major challenge for the scientific community.In the context of this thesis, we proposed a randomized algorithm (also known as adaptive algorithm) for triangle enumeration in large-scale graphs using distributed Relational Database Management System (RDBMS) technology. We chose Vertica, an RDBMS that is based on a column-oriented storage model, unlike traditional RDBMSs that use a row-oriented model. Our solution also leveraged the distributed k-machines computing model. In this approach, the graph is represented as tables and processed through SQL queries executed across a set of machines while ensuring workload balancing among these nodes. To evaluate this workload balancing, we developed a tool called "PandaSQL," which allows us to analyze the graph's structure and compare our solution to existing algorithms dedicated to triangle enumeration. Furthermore, we made another contribution by studying the behavior of our randomized algorithm in a distributed environment using Python, while managing data communication between machines via the Message Passing Interface (MPI). A theoretical analysis of our algorithm, implemented in the two aforementioned environments, was also conducted.Finally, we conducted a series of experiments using large-scale graphs with different structures while varying the number of machines in the k-machines model (4, 9, and 16 machines). These experiments focused on the performance of the randomized algorithm and its comparison against competing systems in different environments. Specifically, the classic solution on RDBMS, Networkx in Python, Spark Graphx, and G-thinker in a Big Data environment. The results obtained during this thesis highlight the benefits of combining RDBMS technology and parallel algorithms for efficient triangle enumeration in large-scale graphs.
Cette thèse s’inscrit dans le domaine de l’analyse des graphes à grande échelle, avec une attention particulière portée sur l’énumération des triangles. La recherche de triangles est un problème fondamental qui permet de détecter toutes les structures composées de trois sommets adjacents, tous interconnectés par des arêtes. Ces triangles jouent un rôle crucial dans de nombreuses applications liées aux graphes, telles que : la détermination du coefficient de clustering, l’évaluation de l’âge d’une communauté dans un réseau social, et la détection de cliques. Pour aborder cette étude, nous avons effectué une revue approfondie de la littérature sur la détection de triangles dans les graphes. Nous avons identifié deux catégories principales d’approches : (a) celles qui supposent que le graphe peut être entièrement stocké en mémoire centrale, et (b) celles qui considèrent que le graphe ne peut pas être stocké entièrement en mémoire centrale. En analysant ces travaux, nous avons constaté que les premières approches (qui reposent sur une gestion en mémoire centrale) sont efficaces lorsque le graphe peut être complètement chargé en mémoire, mais cela ne s’applique pas toujours aux graphes à grande échelle qui ne tiennent pas entièrement en mémoire centrale. Par conséquent, il est essentiel de développer des algorithmes efficaces pour ces types de graphes, ce qui constitue un défi majeur pour la communauté scientifique. Dans le cadre de cette thèse, nous avons proposé un algorithme randomisé (également connu sous le nom de l'algorithme adapté) pour l’énumération de triangles dans des graphes à grande échelle en utilisant la technologie des Systèmes de Gestion de Bases de Données (\ac{SGBD}) relationnel distribué. Nous avons choisi Vertica\footnote{https://www.vertica.com/fr/}, un SGBD qui repose sur un modèle de stockage orienté colonne, contrairement aux SGBD traditionnels qui utilisent le modèle orienté ligne. Notre solution a également exploité le modèle de calcul distribué k-machines.Dans cette approche, le graphe est représenté sous forme de tables et exploité à travers des requêtes \ac{SQL} exécutées sur l’ensemble de machines, tout en veillant à équilibrer la charge de travail entre ces nœuds. Pour évaluer cet équilibrage de charge, nous avons développé un outil appelé \textbf{PandaSQL}, qui permet d’analyser la structure du graphe et de comparer notre solution aux algorithmes existants dédiés à l’énumération de triangles. En outre, nous avons apporté une autre contribution en étudiant le comportement de notre algorithme randomisé dans un environnement distribué en utilisant Python, tout en gérant la communication des données entre les machines via l’interface de passage de messages (\ac{MPI}). Une analyse théorique de notre algorithme, mise en œuvre dans les deux environnements susmentionnés, a également été réalisée.Enfin, nous avons mené une série d’expériences en utilisant des graphes à grande échelle présentant différentes structures, tout en variant le nombre de machines du modèle k-machines (4, 9 et 16 machines). Ces expériences concernent les performances de l'algorithme randomisé et sa comparaison avec des systèmes concurrents sur différents environnements. Particulièrement, la solution classique sur le \ac{SGBD}, Networkx sur Python, Spark Graphx et G-thinker sur un environnement Big Data. Les résultats obtenus au cours de cette thèse mettent en évidence l’intérêt de combiner la technologie des \ac{SGBD} et des algorithmes parallèles pour l’énumération efficace de triangles dans des graphes à grande échelle.
Fichier principal
Vignette du fichier
2023ESMA0012_farouzi.pdf (10.12 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-04326161 , version 1 (06-12-2023)

Identifiants

  • HAL Id : tel-04326161 , version 1

Citer

Abir Farouzi. Exploration des bases de données orientées graphe : Énumération des triangles dans les graphes à grande échelle. Autre [cs.OH]. ISAE-ENSMA Ecole Nationale Supérieure de Mécanique et d'Aérotechique - Poitiers; Ecole Nationale Supérieure d'Informatique (ESI) - Alger, 2023. Français. ⟨NNT : 2023ESMA0012⟩. ⟨tel-04326161⟩
80 Consultations
47 Téléchargements

Partager

Gmail Facebook X LinkedIn More