Adaptive execution of compiled queries - Kohn, Andre; Leis, Viktor; Neumann, Thomas (Proceedings - IEEE 34th International Conference on Data Engineering, ICDE 2018, 2018)
Compiling queries to machine code is a very efficient way for executing queries. One often overlooked problem with compilation is the time it takes to generate machine code. Even with fast compilation frameworks like LLVM, generating machine code for complex queries often takes hundreds of milliseconds. Such durations can be a major disadvantage for workloads that execute many complex, but quick queries. To solve this problem, we propose an adaptive execution framework, which dynamically switches from interpretation to compilation. We also propose a fast bytecode interpreter for LLVM, which can execute queries without costly translation to machine code and dramatically reduces the query latency. Adaptive execution is fine-grained, and can execute code paths of the same query using different execution modes. Our evaluation shows that this approach achieves optimal performance in a wide variety of settings-low latency for small data sets and maximum throughput for large data sizes.
CRIS-Team Scopus Importer:2021-04-12
Keywords: Compilation; Interpretation; LLVM; query execution