Vis enkel innførsel

dc.contributor.advisorRyeng, Norvald Hegelstad
dc.contributor.authorIversen, Anders Hallem
dc.contributor.authorØverland, Sveinung
dc.date.accessioned2022-09-22T17:19:44Z
dc.date.available2022-09-22T17:19:44Z
dc.date.issued2022
dc.identifierno.ntnu:inspera:112046434:21623652
dc.identifier.urihttps://hdl.handle.net/11250/3020760
dc.description.abstractFlaskehalsen til mange moderne databasesystemer har gått over til å være ineffektiv utnyttelse av CPU- og minneressurser, ettersom de fleste dataene nå passer innenfor kapasiteten til hovedminnet. Som et resultat har databaseforskning rettet fokuset mot generering av kode og kompilering i kjøretid for å produsere et mer CPU-vennlig eksekveringmiljø. Til tross for denne økende interessen for sanntidskompilering, har ikke MySQL tatt noen grep i denne saken og er fortsatt i dag påvirket av den dårlige CPU-utnyttelsen av spørringsmotoren. Denne masteroppgaven utforsker mulighetene for sanntidskompilering i MySQL og undersøker mulige ytelseseffekter av å kompilere filteringsuttrykk under eksekvering. Dette arbeidet tar sikte på å finne ut om MySQL-økosystemet kan forbedre ytelsen ved å erstatte logikken for uttrykk med maskinkode, og fjerne en urimelig mengde med oppblåste instruksjoner introdusert av eksisterende uttrykkslogikk. Vi eksperimenterer ved å implementere et "just-in-time" kompileringssystem i MySQL ved å bruke LLVM-kompilatorrammeverket og gir ytelsesdetaljer for to eksperimenter. Resultatene fra vårt arbeid bekrefter at MySQL faktisk er påvirket av dårlig utnyttelse av CPU-en og oppnår betydelige ytelsesforbedringer ved å kompilere uttrykk. Vi oppnår en ytelsesforbedring på 100x i evaluering av uttrykk for ekstremt store spørringer og videre halverer uttrykksevalueringstiden på forretningsorienterte spørringer. I denne oppgaven legger vi fram en metode for å forbedre CPU- og minnebruken i MySQL ved å kompilere uttrykk ved kjøring og gir ny innsikt i instruksjonsoppblåsningen til uttrykk i MySQL. Vi viser at MySQL kan oppnå betydelige ytelsesforbedringer ved å kompilere uttrykk og foreslår videre at MySQL bør ta i bruk essensen av sanntidskompilering for å forbedre ytelsen. Denne forskningen legger de første stegene i kompilering og kode generering under kjøretid for MySQL, der vi presenterer en metode for hvordan man kan ta i bruk sanntidskompilering av uttrykk i databasesystemet.
dc.description.abstractThe bottleneck of many modern database systems has shifted to inefficient utilization of CPU and memory resources, as most of the data now fits within the main memory capacity. As a result, database research has focused on code generation and runtime compilation to produce a more CPU-friendly execution environment. Despite this growing interest in runtime compilation, MySQL has not taken any action on this matter and is still affected by its interpreted engine's poor CPU utilization. This thesis explores the nature of runtime compilation in MySQL and investigates the possible performance impacts of compiling filter expressions. This work aims to determine whether the MySQL ecosystem can improve its performance by replacing the logic of expressions with native machine code and removing the substantial amount of inflated instructions introduced by the current system for expressions. We experiment by implementing a just-in-time compilation system in MySQL using the LLVM compiler framework and provide performance details of two conducted experiments. We achieve a 100x speedup on evaluating expressions for extremely large queries and reduce the expression evaluation time by half on business-oriented queries. The results from our work confirm that MySQL is indeed affected by poor CPU utilization and gains substantial performance improvements by compiling expressions. In this thesis, we propose an approach to improve CPU and memory usage in MySQL by compiling expressions at runtime and providing fresh insights into the instruction overhead of MySQL expressions. We show that MySQL can gain significant performance improvements from compiling expressions and further suggest that MySQL should adopt the essence of runtime compilation to enhance performance. This research lays the first steps for MySQL on compilation and code generation, where we present an approach on how to adopt JIT compilation on expressions in MySQL.
dc.languageeng
dc.publisherNTNU
dc.titleCompiling expressions in MySQL
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail
Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel