Estratégias de mapeamento de Threads para processamento eficiente de consultas
Abstract
Resumo: Os Sistemas Gerenciadores de Banco de Dados (SGBDs) modernos usam a execução paralela de consultas para cumprir requisitos de desempenho importantes, como baixo tempo de resposta e grande vazão no processamento de consultas. Contudo, cumprir requisitos de desempenho com o aumento exponencial dos volumes de dados gerados na atual era digital tem sido um constante desafio. Neste sentido, o desenvolvimento dos SGBDs requer o envolvimento com os avanços nas arquiteturas de hardware e sistemas operacionais (SO) para aproveitar de forma eficiente os múltiplos recursos de hardware disponíveis, como processadores, memória e discos. Nesta tese exploramos a execução de consultas em arquitetura de acesso não-uniforme à memória (Non-uniform memory access (NUMA)) que tem potencial para oferecer alta vazão através de vários chips contendo unidades de processamento de múltiplos núcleos agrupados em nós de processamento. No entanto, os SGBDs modernos não exploram o hardware NUMA em todo o seu potencial deixando para os SOs o trabalho de alocação de threads geradas pelas consultas. A alocação de threads dos SOs acarreta em movimento de dados ine?ciente entre os nós NUMA dado que os SOs são projetados para cargas de trabalho de propósito geral e políticas de balanceamento de carga. Esta tese apresenta dois mecanismos de alocação de threads de execução de consultas. O primeiro mecanismo é direcionado para os SGBDs relacionais. O mecanismo proposto utiliza um pipeline de regra-condição-ação que, por meio de contadores de hardware, encontra prontamente o número ideal local de núcleos. Esse mecanismo usa uma fila de prioridade que rastreia o histórico do espaço de endereço de memória usado pelas threads da execução de consultas para decidir sobre a alocação/liberação de núcleos e sua distribuição entre os nós NUMA e, com isso, diminui os acessos remotos à memória ao mesmo tempo em que aumenta consideravelmente a vazão e o speedup máximo. O segundo mecanismo considera os SGBDs multidimensionais. Este mecanismo controla a alocação de threads por meio de um algoritmo de jogo multi-agente. Nesse contexto, as threads são agentes tomadores de decisão e escolhem a melhor alocação baseadas em informações de contadores de hardware e padrões de acesso à memória com redução dos acessos remotos e aumento na economia de energia. Em resumo, estes mecanismos permitem que SGBDs relacionais e multidimensionais aproveitem os recursos computacionais oferecidos por máquinas NUMA melhorando sensivelmente os tempos de resposta e vazão na execução paralela de consultas. Abstract: Modern Database Management Systems (DBMS) use parallel query execution to meet performance requirements, like low response time and high throughput in query processing. With the exponential increase in data volumes generated in the current digital age, meeting these performance requirements in query execution has been a constant challenge. In this sense, there is a dire need for co-design among DBMSs, hardware architectures and operating systems (OS) to eficiently take advantage of the multiple hardware resources, such as processors, memory and disks. NUMA hardware has the potential to provide high throughput across multiple chips containing multi-core processing units grouped into processing nodes. However, modern DBMSs do not exploit the NUMA hardware to its full potential, leaving the allocation of query threads to the OSs. The allocation of threads from OSs leads to inefficient data movement between NUMA nodes as OSs are designed for general purpose workloads and load balancing policies. This thesis presents two query processing thread allocation mechanisms. The first mechanism relational DBMSs. The proposed mechanism uses a rule-condition-action pipe that, through hardware counters, readily finds the local optimal number of cores. This mechanism uses a priority queue that tracks the history of the memory address space used by the query execution threads to decide on the allocation/release of cores and their distribution among the NUMA nodes and, with that, decreases the remote memory accesses while considerably increasing the throughput and the maximum speedup. The second mechanism aims multidimensional DBMSs. This mechanism controls the allocation of threads through a multi-agent game algorithm. In this context, threads are decision-making agents that choose the best allocation based on information from hardware counters and memory access patterns, reducing remote access and increasing energy savings. In summary, these mechanisms allow relational and multidimensional DBMS to take advantage of the computational resources offered by NUMA machines, significantly improving the response times and throughput in the parallel processing of queries.
Collections
- Teses [140]