Query compilation can make query execution extremely efficient, but it introduces additional compilation time. The compilation time causes a relatively high overhead especially for short-running and high-complexity queries. We propose Flounder IR as a lightweight intermediate representation for query compilation to reduce compilation times. Flounder IR is close to machine assembly and adds just that set of features that is necessary for efficient query compilation: virtual registers and function calls ease the construction of the compiler front-end; database-specific extensions enable efficient pipelining in query plans; more elaborate IR features are intentionally left out to maximize compilation speed. In this paper, we present the Flounder IR language and motivate its design; we show how the language makes query compilation intuitive and efficient; and we demonstrate with benchmarks how our Flounder library can significantly reduce query compilation times.
CITATION STYLE
Funke, H., Mühlig, J., & Teubner, J. (2020). Efficient generation of machine code for query compilers. In Proceedings of the 16th International Workshop on Data Management on New Hardware, DaMoN 2020. Association for Computing Machinery. https://doi.org/10.1145/3399666.3399925
Mendeley helps you to discover research relevant for your work.