Query Load Balancing in Parallel Database Systems [chapter]

Luc Bouganim
2017 Encyclopedia of Database Systems  
We consider the execution of multi-join queries in a hierarchical parallel system, i.e., a shared-nothing system whose nodes are shared-memory multiprocessors. In this context, load balancing must be addressed at two levels, locally among the processors of each shared-memory node and globally among all nodes. In this paper, we propose a dynamic execution model that maximizes local load balancing within shared-memory nodes and minimizes the need for load sharing across nodes. This is obtained by
more » ... allowing each processor to execute any operator that can be processed locally, thereby taking full advantage of inter-and intra-operator parallelism. We conducted a performance evaluation using an implementation on a 72-processor KSR1 computer. The experiments with many queries and large relations show very good speedup results, even with highly skewed data. We show that, in shared-memory, our execution model performs as well as a dedicated model and can scale up very well to deal with multiple nodes. Résumé : Nous considérons l'exécution de requêtes complexes dans une architecture parallèle hiérarchique, consistant d'un ensemble de noeuds multiprocesseurs à mémoire partagée, reliés par un réseau rapide. Dans ce contexte, l'équilibrage de charge doit être effectué à deux niveaux, localement entre les processeurs de chaque noeud à mémoire partagée puis globalement entre les differents noeuds. Dans ce papier, nous proposons un modèle d'exécution dynamique qui maximise l'équilibrage locale de charge et minimise ainsi le besoin de répartitionnement du travail entre les noeuds. Cela est obtenu en permettant à chaque processeur d'un noeud d'exécuter n'importe quelle opération pouvant être traitée localement, tirant ainsi parti du parallélisme inter et intra-opération présent dans les requêtes complexes. Nous effectuons une évaluation de performances en utilisant une implémentation de notre modèle sur une machine KSR1 comprenant 72 processeurs. Les mesures effectuées sur un ensemble de requêtes mettant en jeu de grandes relations montrent de très bon gains (speed-up), même dans le cas de mauvaises répartitions des données. Nous montrons que notre modèle se comporte, sur un noeud à mémoire partagée, aussi bien que des modèles dédiées et prend en compte efficacement plusieurs noeuds.
doi:10.1007/978-1-4899-7993-3_1080-2 fatcat:5zr45zzzwzgcnfgwxgc4ahpdhi