Traitement de requêtes dans les systèmes multistores

par Carlyna Bondiombouy

Projet de thèse en Informatique

Sous la direction de Patrick Valduriez.

Thèses en préparation à Montpellier , dans le cadre de I2S - Information, Structures, Systèmes , en partenariat avec Laboratoire d'Informatique, Robotique et Micro-électronique de Montpellier (laboratoire) et de Département Informatique (equipe de recherche) depuis le 01-10-2014 .


  • Résumé

    Définition du problème Soit Q (S1, S2, ... Sn) une requête CloudMdsQL imbriquée de la forme Q1 (S1) -> Q2 (S2) -> ... Qn (Sn), sur plusieurs sources de données, chacun avec un modèle de données différent et langage de requête, et dans certains cas (par exemple, un magasin de données de graphe) une API différente. L'approche que nous proposons permet de traduire Q dans un plan de requête optimisée, avec une gestion optimale des résultats intermédiaires. L'optimiseur CloudMdsQL devrait résoudre le problème suivant deux directions principales. Premièrement, il faut réécrire les sous-requêtes pour réduire la taille des données récupérées à partir des sources de données, par exemple pour exécuter le bind join, ce qui permet la récupération des tuples qui correspondent aux critères de jointure. Cela pourrait se faire en exploitant la connaissance des capacités des sources de données, suite à notre travail avec le médiateur DISCO [Tomasic 1998]. Deuxièmement, pour construire un plan d'exécution optimale au niveau global, un modèle de coût devrait être mis en œuvre. Cependant, le manque de modèles de coûts dans certaines sources de données NoSQL et le (ou l'absence de) capacité limitée pour construire des statistiques de base de données ne permettent pas de définir un modèle de coût global précis pour l'optimisation des requêtes. Par conséquent, la solution au problème d'optimisation doit faire face à des informations de coût vague, suivant (ou l'extension) des stratégies comme la modélisation des coûts floue (fuzzy cost modeling), l'échantillonnage de la requête ou de modèles de coûts pour les fonctions définies par l'utilisateur (UDF). Plan de travail Pour remédier à ce problème, dans le contexte de la thèse, le travail à faire est le suivant: 1. Étude des travaux connexes sur l'optimisation des requêtes dans les bases de données distribuées et les systèmes d'intégration de données [Ozsu 2011] et identifier les nouveaux défis pour traiter les données des sources hétérogènes dans le cloud. 2. Proposer une architecture pour un optimiseur, dans le cadre du moteur de requête CloudMdsQL et spécifier ses différents composants (recherche d'espace, modèle de coût, de recherche de strategie, ...). 3. Proposer de nouvelles techniques pour l'optimiseur CloudMdsQL. 4. Valider les solutions par le biais de la mise en œuvre et le prototypage avec plusieurs sources de données SQL et NoSQL (valeur-clé, document et bases de données graphiques).

  • Titre traduit

    Query Processing in Multistore Systems


  • Résumé

    Problem definition Let Q(S1, S2, … Sn) be a CloudMdsQL nested query of the form Q1 (S1) -> Q2 (S2) -> … Qn (Sn), over n data sources, each with a different data model and query language, and in some cases (e.g. a graph data store) a different API, propose an approach to translate Q into an optimized query plan, with optimal management of intermediate results. The CloudMdsQL query optimizer should solve the problem following two major directions. First, it must rewrite sub-queries to reduce the size of datasets retrieved from data stores, e.g. to perform bind joins, which allows the retrieval of only those tuples that match the join criteria. This could be done by exploiting the knowledge of the data stores' capabilities, following our pioneering work with the DISCO mediator [Tomasic 1998]. Second, to build an optimal execution plan at global level, a cost model should be implemented. However, the lack of cost models in some NoSQL data stores and the limited (or lack of) capability to build database statistics do not allow for defining a precise global cost model for query optimization. Therefore, the solution to the optimization problem has to deal with vague cost information, following (or extending) strategies like fuzzy cost modeling, query sampling or cost models for user-defined functions (UDF). Workplan To address this problem, in the context of a Ph.D. thesis, the work to be done is the following: 1. Study the large body of work on query optimization in distributed databases and data integration systems [Özsu 2011] and identify the new challenges to deal with heterogeneous cloud data stores. 2. Propose an architecture for an optimizer, in the context of the CloudMdsQL query engine, and specify its various components (search space, cost model, search strategy, …). 3. Propose new techniques for the CloudMdsQL optimizer. 4. Validate the solutions through implementation and prototyping with several SQL and NoSQL datastores (key-value, document and graph databases).