Allocation de ressources élastique pour l’optimisation de requêtes

Allocation de ressources élastique pour l’optimisation de requêtes

Allocation de ressources 

L’allocation de ressources consiste à déterminer « quand » et « où » exécuter chaque tâche du plan. Le choix de la ressource d’exécution (où ?) est appelé placement. La détermination de l’instant de déclenchement (quand ?) par rapport aux autres tâches placées sur la même ressource et en tenant compte des dépendances entre les tâches de la même requête est appelé ordonnancement. L’allocation de ressources se base sur un modèle de coûts. Ce dernier utilise des statistiques contenues dans un catalogue (notamment le nombre de tuples et leur taille en octets, nombre de valeurs uniques d’un attribue donné, histogrammes) pour estimer le nombre et la taille des tuples des relations intermédiaires de la requête. À partir de ces estimations, des algorithmes sont utilisés pour trouver une allocation de ressources qui minimise (ou maximise, selon la formulation du problème) une fonction objectif tout en 3   

 Contexte respectant un ensemble de contraintes

 Avant la naissance des systèmes cloud, plusieurs travaux ont considéré le problème d’allocation de ressources pour l’interrogation de bases de données dans des architectures parallèles. Certains ont résolu le problème d’une manière statique avant l’exécution de la requête (Nag and DeWitt, 1998; Yu and Cornell, 1993) alors que d’autres d’une manière dynamique pendant l’exécution de la requête (Bouganim et al., 1998). Il y a aussi des travaux qui supposent l’existence d’une allocation statique puis cette dernière est modifiée dynamiquement pendant l’exécution de la requête si les estimations initiales du modèle de coûts sont significativement différentes de la réalité (Kabra and DeWitt, 1998). Ceci est appelé la réallocation de ressources. Suite à l’arrivée du cloud, certaines méthodes ont été étendues pour répondre aux spécificités de cet environnement, notamment les SLAs, le modèle économique et le multi-locataire (Kllapi et al., 2011; Pietri et al., 2019). Dans cette thèse, nous étudions le problème d’allocation de ressource statique en environnement cloud, et aussi le réallocation. 

 Dimensionnement automatique

 L’utilisation du cloud a de nombreux avantages par rapport à une solution en local au sein des locaux de l’entreprise. Une solution en local nécessite un investissement initial pour la mise en place de l’infrastructure et l’installation des logiciels. De plus, elle peut donner lieu à une infrastructure sous-chargée ou surchargée. En effet, le nombre de ressources est défini lors de la mise en place de l’infrastructure alors que la charge peut varier dans le temps d’une façon imprévisible. La surcharge implique une diminution des performances de service alors que la sous-charge est considérée comme du gaspillage de ressources. Par contre, dans le cloud, il n’y a pas d’investissement initial pour le locataire car les ressources sont au niveau de l’infrastructure du fournisseur. De plus, grâce à l’élasticité (Kouki and Ledoux, 2012), le nombre de ressources attribuées peut changer à tout moment ce qui permet de garder des performances acceptables et au même temps éviter le gaspillage. Afin d’assurer l’élasticité du cloud, il est important de décider le moment d’augmenter ou diminuer le nombre de ressources attribuées au service (combien ?). Le dimensionnement automatique est le mécanisme permettant de choisir le moment d’augmenter et diminuer le nombre de ressources. La plupart des fournisseurs actuels utilisent une ap4 

 Problématique proche intuitive basée sur des seuils 

 L’idée principale de cette approche est d’ajouter (ou de supprimer) des ressources si une certaine mesure est supérieure (ou inférieure) à un seuil prédéfini. Le principal inconvénient de l’approche basée sur les seuils est le fait qu’elle exige une compréhension approfondie des tendances de la charge pour choisir les bons seuils, ce qui n’est pas facile à réaliser. Afin d’éviter les inconvénients de l’approche de seuils, de nombreux travaux scientifiques ont été consacrés à la conception de méthodes de dimensionnement automatique indépendantes de l’humain, basées sur l’apprentissage par renforcement (Dutreilh et al., 2011; Rao et al., 2011). L’apprenant est un agent qui fait des actions successives dans un environnement et reçoit une récompense pour chaque action effectuée. Après une suite d’essais, il devrait apprendre à prendre de bonnes décisions ce qui permet d’effectuer le dimensionnement automatique sans intervention humaine. Dans cette thèse, nous avons adopté la deuxième approche. 

Table des matières

1 Introduction générale
1.1 Contexte
1.1.1 Allocation de ressources
1.1.2 Dimensionnement automatique
1.2 Problématique
1.3 Contributions
1.4 Liste des publications
1.5 Organisation du manuscrit
2 État de l’art
2.1 Introduction
2.2 Cloud Computing
2.2.1 Définition et caractéristiques
2.2.2 Classifications
2.2.2.1 Modèles de service
2.2.2.2 Modèles de déploiement
2.2.3 Concepts clés
2.2.3.1 Service-Level Agreements (SLAs)
2.2.3.2 Élasticité
2.2.3.3 Modèle économique
2.3 Bases de données dans le cloud
2.4 Interrogation parallèle des bases de données
2.4.1 Analyse et optimisation de requêtes
2.4.2 Parallélisation de requêtes : modèle d’exécution sans-pipeline
modèle d’exécution avec-pipeline
2.4.3 Architectures parallèles
2.4.4 Répartition des données
2.5 Allocation de ressources
2.5.1 Pour l’interrogation parallèle de bases de données non cloud
2.5.2 Pour l’interrogation parallèle de bases de données dans le cloud
2.6 Dimensionnement automatique de ressources
2.6.1 Pour un cadre applicatif général
2.6.1.1 Dimensionnement basé sur les seuils
2.6.1.2 Dimensionnement basé sur l’apprentissage par renforcement
2.6.2 Pour l’interrogation de bases de données
2.7 Conclusion
3 Stratégie d’allocation de ressources
3.1 Introduction
3.2 Description du service cloud considéré
3.2.1 Paradigme d’exécution de requêtes
3.2.2 Architecture de l’infrastructure considérée
3.2.3 Modèle de coûts
3.2.4 Modèle économique
3.3 Méthode d’allocation de ressources statique
3.3.1 Principe de la Programmation Linéaire en Nombres Entiers (PLNE)
3.3.2 Formulation PLNE pour le modèle d’exécution avec-pipeline
3.3.2.1 Formulation PLNE du placement
3.3.2.2 Formulation PLNE de l’ordonnancement
3.4 Méthode de réallocation de ressources
3.4.1 Algorithme du choix des collecteurs de statistiques pertinents
3.4.2 Algorithme de réallocation
3.5 Conclusion
4 Méthode de dimensionnement automatique
4.1 Introduction
4.2 Processus d’allocation de ressources élastique
4.3 Principe de l’algorithme Q-learning
4.4 Méthode de dimensionnement automatique
4.5 Conclusion
5 Évaluation des performances
5.1 Introduction
5.2 Mise en oeuvre de l’évaluation des performances
5.2.1 Description des modules du simulateur
5.2.2 Génération des plans d’exécution parallèles
5.3 Évaluation de la méthode d’allocation de ressources statique
5.3.1 Méthodes comparées et métriques
5.3.2 Paramètres et scénario de simulation
5.3.3 Analyse des résultats
5.4 Évaluation de la méthode de réallocation de ressources
5.4.1 Méthodes comparées et métriques
5.4.2 Paramètres et scénario de simulation
5.4.3 Analyse des résultats
5.5 Évaluation de la méthode de dimensionnement automatique
5.5.1 Méthodes comparées et métriques
5.5.2 Paramètres et scénario de simulation
5.5.3 Analyse des résultats
5.5.3.1 Comparaison de notre méthode et une méthode d’apprentissage par renforcement de base
5.5.3.2 Impact du partage d’expérience
5.5.3.3 Comparaison de l’algorithme d’apprentissage Q-learning classique et de la variante Sarsa
5.6 Conclusion
6 Conclusion générale
6.1 Synthèse des contributions
6.2 Perspectives
Bibliographie
Annexe A Modèle de coûts pour l’exécution sans-pipeline
Annexe B Exemple de calcul de Top pour une requête TPC-H

projet fin d'etudeTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *