Dynamic Memory allocation for large Query execution

Luc Bouganim, Olga Kapitskaia, Patrick Valduriez · 1998

ABSTRACT. The execution time of a large query depends mainly on the memory utilization which should avoid disk accesses for intermediate results. Poor memory management can hurt performance and even lead to system thrashing because of paging. However, memory management optimization is hard to incorporate in a query optimizer because of cost estimate errors. In this paper, we address the problem of efficient memory management for large query execution. We propose a static memory allocation scheme applied at start-up time, and a more efficient dynamic execution model which performs memory-adaptive scheduling of the query. Our execution model handles graciously memory overflow by choosing dynamically the best scheduling among several possible using a simple cost model. The model is robust to cost estimate errors. We describe a performance evaluation using a prototype implementation. The experiments with many queries show significant gain over static strategies. KEY WORDS: Memory Management, Query Execution, System Paging RÉSUMÉ Le temps d’exécution de requêtes complexes dépends principalement de la gestion de la mémoire qui peut éviter des accès disques, notamment pour les résultats intermédiaires. Une mauvaise gestion de la mémoire peut entraîner un écroulement des performances dû au swap système. Cependant, il est difficile d’incorporer l’optimisation de l’utilisation de la mémoire dans l’optimiseur de requêtes. Dans cet article, nous proposons des solutions pour une gestion efficace de la mémoire lors de l’exécution de requêtes complexes. Plusieurs méthodes statiques d’allocation de la mémoire sont d’abord proposées, puis un mécanisme dynamique, plus efficace est présenté. Ce dernier change l’ordre d’exécution des requêtes de manière à optimiser la gestion de la mémoire. Il permet ainsi de s’adapter à d’éventuels débordement de capacité ou à des erreurs du modèle de coût. Nous réalisons une évaluation de performances sur un prototype montrant des gains importants par rapport aux stratégies statiques. MOTS CLÉS: gestion de la mémoire, exécution de requête, système, swap. 1.

Read the paper · More papers on PaperTik