Distributed query processing over fluctuating streams
Traitement distribué de requêtes sur des flux de données dynamiques
Résumé
In a Big Data context, stream processing has become a very active research domain. In order to manage ephemeral data (Velocity) arriving at important rates (Volume), some specific solutions, denoted data stream management systems (DSMSs), have been developed. DSMSs take as inputs some queries, called continuous queries,defined on a set of data streams. A continuous query generates new results as long as new data arrive in input. In many application domains, data streams have input rates and distribution of values which change over time. These variations may impact significantly processing requirements for each continuous query.
This thesis takes place in the ANR project Socioplug (ANR-13-INFR-0003). In this context, we consider a collaborative platform for stream processing. Each user can submit multiple continuous queries and contributes to the execution support of the platform. However, as each processing unit supporting treatments has limited resources in terms of CPU and memory, a significant increase in input rate may cause the congestion of the system. The problem is then how to adjust dynamically resource usage to processing requirements for each continuous query ? It raises several challenges : i) how to detect a need of reconfiguration ? ii) when reconfiguring the system to avoid its congestion at runtime ? iii) how to avoid reconfigurations that do not improves the performance of the system ?
In this work, we are interested by the different processing steps involved in the treatment of a continuous query over a distributed infrastructure. From this global analysis, we extract mechanisms enabling dynamic adaptation of resource usage for each continuous query. We focus on automatic parallelization, or auto-parallelization, of operators composing the execution plan of a continuous query. We suggest an original approach based on the monitoring of operators and an estimation of processing requirements in near future. Thus, we can increase (scale-out), or decrease (scale-in) the parallelism degree of operators in a proactive way such as resource usage fits to processing requirements dynamically. Compared to a static configuration defined by an expert, we show that it is possible to avoid the congestion of the system in many cases or to delay it in most critical cases. Moreover, we show that resource usage can be reduced significantly while delivering equivalent throughput and result quality.
We suggest also to combine this approach with complementary mechanisms for dynamic adaptation of continuous queries at runtime. These differents approaches have been implemented within a widely used DSMS and have been tested over multiple and reproductible micro-benchmarks.
Le traitement de flux de données est au cœur des problématiques actuelles liées au Big Data. Face à de grandes quantités de données (Volume) accessibles de manière éphémère (Vélocité), des solutions spécifiques tels que les systèmes de gestion de flux de données (SGFD) ont été développés. Ces SGFD prennent en entrée des flux et des requêtes continues pour générer de nouveaux résultats aussi longtemps que des données arrivent en entrée. Dans certains domaines, les flux considérés ont des débits qui varient en termes de nombre de données produites par unité de temps ou en termes de distribution de valeurs des données. Ces variations peuvent impacter fortement les besoins en ressources nécessaires au traitement des requêtes continues.
Dans le contexte de cette thèse, qui s’est réalisée dans le cadre du projet ANR Socioplug (ANR-13-INFR-0003), nous considérons une plateforme collaborative de traitement de flux de données. Chaque utilisateur peut soumettre des requêtes continues et contribue aux ressources de traitement de la plateforme. Cependant, chaque unité de traitement mise à disposition pour le traitement des requêtes dispose de ressources limitées en termes de processeur et de mémoire ce qui peut engendrer la congestion du système en fonction des variations des flux en entrée. Le problème est alors de savoir comment adapter dynamiquement les ressources utilisées par chaque requête continue par rapport aux besoins de traitement ? Cela soulève plusieurs défis : i) comment détecter un besoin de reconfiguration ? ii) quand reconfigurer le système pour éviter sa congestion ? iii) comment éviter des reconfigurations n’ajustant pas l’usage des ressources aux besoins des traitements ?
Durant ces travaux de thèse, nous nous sommes intéressés aux différentes étapes de traitement d’une requête continue sur une infrastructure distribuée. De cette analyse, nous avons pu identifier les limites de l’existant et les mécanismes permettant d’adapter dynamiquement les ressources utilisées pour l’exécution d’une requête continue. Nous avons focalisé nos efforts sur la gestion automatique de la parallélisation des opérateurs composant le plan d’exécution d’une requête. Nous proposons une approche originale basée sur l’observation des opérateurs et une estimation des besoins de traitement dans un futur proche. Ainsi, nous pouvons augmenter (scale-out) ou diminuer (scale-in) le niveau de parallélisme des opérateurs composant une requête continue de manière proactive afin d’ajuster les ressources utilisées aux besoins des traitements. Par rapport à une configuration statique définie par un expert, nous montrons qu’il est possible à la fois d’éviter la congestion du système dans certains cas ou de la retarder dans les cas les plus critiques. Nous montrons également qu’il est possible de réduire significativement la consommation de ressources tout en maintenant une performance et une qualité des résultats équivalentes.
Nous proposons également de combiner cette approche avec des mécanismes complémentaires tels que l’équilibrage de charge pour l’adaptation dynamique de requêtes continues. Ces différents travaux ont été implémentés et validés dans un SGFD largement utilisé avec différents jeux de tests reproductibles.
Fichier principal
Distributed query processing over fluctuating data streams.pdf (8.66 Mo)
Télécharger le fichier
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...