3 research outputs found

    An Elastic Multi-Core Allocation Mechanism for Database Systems

    Get PDF
    During the parallel execution of queries in Non-Uniform Memory Access (NUMA) systems, he Operating System (OS) maps the threads (or processes) from modern database systems to the available cores among the NUMA nodes using the standard node-local policy. However, such non-smart mapping may result in inefficient memory activity, because shared data may be accessed by scattered threads requiring large data movements or non-shared data may be allocated to threads sharing the same cache memory, increasing its conflicts. In this paper we present a data-distribution aware and elastic multi-core allocation mechanism to improve the OS mapping of database threads in NUMA systems. Our hypothesis is that we mitigate the data movement if we only hand out to the OS the local optimum number of cores in specific nodes. We propose a mechanism based on a rule-condition-action pipeline that uses hardware counters to promptly find out the local optimum number of cores. Our mechanism uses a priority queue to track the history of the memory address space used by database threads in order to decide about the allocation/release of cores and its distribution among the NUMA nodes to decrease remote memory access. We implemented and tested a prototype of our mechanism when executing two popular Volcano-style databases improving their NUMA-affinity. For MonetDB, we show maximum speedup of 1.53 × , due to consistent reduction in the local/remote per-query data traffic ratio of up to 3.87 × running 256 concurrent clients in the 1 GB TPC-H database also showing system energy savings of 26.05%. For the NUMA-aware SQL Server, we observed speedup of up to 1.27 × and reduction on the data traffic ratio of 3.70 ×

    Estratégias de mapeamento de Threads para processamento eficiente de consultas

    Get PDF
    Orientador: Eduardo Cunha de AlmeidaCoorientador: Marco Antonio Zanata AlvesTese (doutorado) - Universidade Federal do Paraná, Setor de Ciências Exatas, Programa de Pós-Graduação em Informática. Defesa : Curitiba, 15/02/2022Inclui referênciasÁrea de concentração: Ciência da ComputaçãoResumo: 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
    corecore