On Algebraic Foundations for the Optimization of Iterative Programming with Distributed Data Collections
Fondements algébriques pour l'optimisation de la programmation itérative avec des collections de données distribuées
Résumé
The goal of my PhD is to study the optimization and the distribution of queries, especially recursive queries, handling large amounts of data. I start by reviewing different query languages as well as formal approaches to intermediate representations of these languages. Languages and formal approaches are reviewed in the light of a number of aspects such as expressivity, distribution, automatic optimizations, manipulating complex data, graph querying, and impedence mismatch, with a special focus on the ability to express recursion. I then propose extensions to formal approaches along two main lines of work: (1) algebras based on the relational model, for which I propose Dist-μ-RA, and (2) algebras based on generic collections of arbitrary types, for which I propose μ-monoids.Dist-μ-RA is a system that extends theμ-RA algebra to the distributed setting. Regarding the algebraic aspect, it integrates well with the relational algebra and inherits its advantages including the fact that queries are optimized regardless of their initial shape and translation into the algebra. With respect to distribution, different strategies for evaluating recursive algebraic terms in a distributed setting have been studied. These strategies are implemented as plans with automated techniques for distributing data in order to reduce communication costs. Experimental results on both real and synthetic graphs show the effectiveness of the proposed approach compared to existing systems.μ-monoids is an extension of the monoid algera with a fixpoint operator that models recursion. The extended μ-monoids algebra is suitable for modeling recursive computations with distributed data collections such as the ones found in Big Data frameworks. The major interest of the “μ” fixpoint operator is that, under prerequisites that are often met in practice, it can be considered as a monoid homomorphism and thus can be evaluated by parallel loops with one final merge rather than by a global loop requiring network overhead after each iteration. Rewriting rules for optimizing fixpoint terms, such as pushing filters, are proposed. In particular, I propose a sufficient condition on the repeatedly evaluated term (φ) regardless of its shape, as well as a method using polymorphic types and a type system such as Scala’s to check whether this condition holds. I also propose a rule to prefilter a fixpoint before a join. The third rule allows for pushing aggregation functions inside a fixpoint. Experiments with the Spark platform illustrate performance gains brought by these systematic optimizations.
Le but de ma thèse est d’étudier l’optimisation et la distribution de requêtes, principalement de requêtes récursives, qui manipulent de larges volumes dedonnées. Premièrement, je passe en revue différents langages de requêtes ainsi que différentes approches formelles liées aux représentations intermédiaires de ces langages. Les langages et les approches formelles sont examinés à la lumière d’un nombre d’aspects tels que l’expressivité, la distribution, les optimisations automatiques, la manipulation des données complexes, le requêtage de graphes, l’incompatibilité d’impédence, avec une attention particulière portée à la capacité à exprimer des requêtes récursives. Dans un second temps, je propose des extensions d’approches formelles suivant deux axes de travaux de recherche: (1) les algèbres basées sur le modèle de données relationnel et pour lesquels je propose Dist-μ-RA, ainsi que (2) les algèbres basées sur les collections de types arbitraires, et pour lesquels je propose μ-monoids.Dist-μ-RA est un système qui étend l’algèbreμ-RA au contexte distribué.Concernant l’aspect algébrique, il s’intègre bien avec l’algèbre relationnelle et hérite de ses avantages tels que sa capacité à optimiser les requêtes quelles que soient leur forme initiale et leur traduction vers l’algèbre. Concernant l’aspect de distribution, différentes stratégies d’évaluation de termes algébriques récursifs dans un contexte distribué ont été étudiées. Ces stratégies sont implémentées sous forme de plans physiques avec des techniques qui automatisent la distribution des données afin de réduire les coûts de communication. Les résultats expérimentaux sur des graphes réels et synthétiques montrent l’efficacité de l’approche proposée par rapport aux systèmes existants.μ-monoids est une extension de l’algèbre de monoides avec un opérateur de point fixe qui modélise la récursion. L’algèbre μ-monoids est capable de modéliser des calculs récursifs sur des collections distribuées similaires à ceux effectués sur les plateformes Big Data. L’intérêt principal de l’opérateur de point fixe “μ” est que, sous réserve de conditions souvent remplies en pratique, il peut-être considéré comme un homomorphisme de monoides et peut donc être évalué avec des boucles parallèles avec une fusion finale plutôt qu’avec une boucle globale nécessitant des transferts réseau supplémentaires à chaque itération. Des règles de réécritures pour optimiser les termes récursifs, telles que le poussage de filtres, ont été proposées.Je propose en particulier une condition suffisante sur le terme évalué en boucle(φ) quelque soit sa forme, ainsi qu’une méthode qui utilise les types polymorphes et un système de types comme celui de Scala pour vérifier si cette condition est remplie. Je propose également une règle qui préfiltre les points fixes avant les jointures. La troisième règle permet de pousser des fonctions d’agrégation dans les points fixes. Les expériences menées sur la plateforme Spark montre les gains en performances apportés par ces optimisations systématiques.
Origine | Version validée par le jury (STAR) |
---|