Making Compiling Query Engines Practical

Kohn A, Leis V, Neumann T (2021)


Publication Type: Journal article

Publication year: 2021

Journal

Book Volume: 33

Pages Range: 597-612

Article Number: 8667737

Journal Issue: 2

DOI: 10.1109/TKDE.2019.2905235

Abstract

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. Besides compilation time, we also focus on debugging, which is another important challenge of compilation-based query engines. To address this problem, we present a novel, database-specific debugger for compiling query engines.

Authors with CRIS profile

Involved external institutions

How to cite

APA:

Kohn, A., Leis, V., & Neumann, T. (2021). Making Compiling Query Engines Practical. IEEE Transactions on Knowledge and Data Engineering, 33(2), 597-612. https://dx.doi.org/10.1109/TKDE.2019.2905235

MLA:

Kohn, Andre, Viktor Leis, and Thomas Neumann. "Making Compiling Query Engines Practical." IEEE Transactions on Knowledge and Data Engineering 33.2 (2021): 597-612.

BibTeX: Download