Experimental evaluation of NUMA effects on database management systems
Tim Kiefer, Benjamin Schlegel, Wolfgang Lehner · 2013
Abstract: NUMA systems with multiple CPUs and large main memories are common today. Consequently, database management systems (DBMSs) in data centers are deployed onNUMA systems. They serve awide range of database use-cases, single large applications having high performance needs as well as many small applications that are consolidated on one machine to save resources and increase utilization. Database servers often show anatural partitioning in the data that is accessed, e.g., caused by multiple applications accessing only their data. Knowledge about these partitions can be used to allocate adatabase’s memory on the different nodes accordingly: astrategy that increases memory locality and reduces expensive communication between CPUs. In this work, we show that partitioning adatabase’s memory with respect to the data’s access patterns can improve the query performance by as much as 75%. The allocation strategy is enabled by knowledge that is available only inside the DBMS. Additionally, weshow that grouping database worker threads on CPUs, based on their data partitions, improves cache behavior, whichinturn improvesquery performance. We use aself-developed synthetic, low-level benchmark as well as areal database benchmark executed on the MySQL DBMS to verify our hypotheses. We also give anoutlook on how our findings can be used to improve future DBMS performance on NUMA systems. 1