Abstract
JIT (Just-in-Time) technology has garnered significant attention for improving the efficiency of database execution. It offers higher performance by eliminating interpretation overhead compared to traditional execution engines. LLVM serves as the primary JIT architecture, which was implemented in PostgreSQL since version 11. However, recent advancements in WASM-based databases, such as Mutable, present an alternative JIT approach. This approach minimizes the extensive engineering efforts associated with the execution engine and focuses on optimizing supported operators for lower latency and higher throughput. In this paper, we perform comprehensive experiments on these two representative open-source databases to gain deeper insights into the effectiveness of different JIT architectures.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
McCarthy, J.: Recursive functions of symbolic expressions and their computation by machine. Commun. ACM 3, 01 (1960)
Neumann, T.: Efficiently compiling efficient query plans for modern hardware. Proc. VLDB Endowment 4(9), 539–550 (2011)
PostgreSQL. “Postgresql”, 8 June 2023. https://www.postgresql.org/
M.O. “Github - mutable-org/mutable: a database system for research and fast prototyping”, 7 June 2023. https://github.com/mutable-org/mutable/
Wade, A.W., Kulkarni, P.A., Jantz, M.R.: AOT vs. JIT: impact of profile data on code quality. In: ACM SIGPLAN Notices, vol. 52, pp. 1–10 (2017)
(Margaret Rouse, A. P.), “Intermediate language.techopedia”, 16 Nov 2011. https://www.techopedia.com/definition/24290/intermediate-language-il-net
Metula, E.: Chapter 1 - introduction. In: Managed Code Rootkits (E. Metula, ed.), pp. 3–21. Syngress, Boston (2011)
( TPC-H Homepage. (n.d.)), TPC-H homepage. https://www.tpc.org/tpch/
Graefe, G.: Volcano-an extensible and parallel query evaluation system. IEEE Trans. Knowl. Data Eng. 6, 120–135 (1994)
Boncz, P.A., Zukowski, M., Nes, N.: MonetDB/x100: hyper-pipelining query execution. In: 2nd Biennial Conference on Innovative Data Systems Research, CIDR 2005 (2005)
Krikellas, K., Viglas, S.D., Cintra, M.: Generating code for holistic query evaluation, pp. 613–624 (2010)
Muehlbauer, T.: HyPer: Hybrid OLTP &OLAP high-performance database system (n.d). https://hyper-db.de/
Leis, V., Boncz, P., Kemper, A., Neumann, T.: Morsel-driven parallelism: a NUMA-aware query evaluation framework for the many-core age. In: Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, pp. 743–754 (2014)
Kohn, A., Leis, V., Neumann, T.: Adaptive execution of compiled queries. In: 2018 IEEE 34th International Conference on Data Engineering (ICDE), pp. 197–208. IEEE (2018)
Haffner, I., Dittrich, J.: A simplified architecture for fast, adaptive compilation and execution of SQL queries. In: Proceedings of the EDTB (2023)
S., “Python JIT compilers”. Accessed 21 June 2023
The LuaJIT Project. “The luajit project” (n.d.)
Cwi, T., Boncz, P.: Exploring query execution strategies for JIT, vectorization and SIMD (2017)
postgresql-llvmjit Fedora Packages. “Postgresql-llvmjit - fedora packages” (n.d.). https://packages.fedoraproject.org/pkgs/postgresql/postgresql-llvmjit/
Pop, S., Yazdani, R., Neill, Q.: Improving GCC’s auto-vectorization with if-conversion and loop flattening for AMD’s bulldozer processors. In: GCC Developers’ Summit, p. 89 (2010)
Graefe, G.: Volcano/splminus/an extensible and parallel query evaluation system. IEEE Trans. Knowl. Data Eng. 6(1), 120–135 (1994)
W. (n.d.) “binaryen/readme.md at main” (2017). https://github.com/WebAssembly/binaryen
Liftoff: a new baseline compiler for WebAssembly in V8, “Liftoff: A new baseline compiler for webassembly in v8 \(\cdots \) v8” 20 August 2018. https://v8.dev/blog/liftoff
Boncz, P., Neumann, T., Erling, O.: TPC-H analyzed: Hidden messages and lessons learned from an influential benchmark, pp. 61–76 (2014)
Boncz, P., Neumann, T., Erling, O.: TPC-H analyzed: hidden messages and lessons learned from an influential benchmark. In: Nambiar, R., Poess, M. (eds.) TPCTC 2013. LNCS, vol. 8391, pp. 61–76. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-04936-6_5
Quinoñes, E., Parcerisa, J.M., Gonzáilez, A.: Improving branch prediction and predicated execution in out-of-order processors, pp. 75–84 (2007)
LLDB, 4 Sept 2023. https://lldb.llvm.org/
GDB: The GNU Project Debugger (n.d.). https://www.sourceware.org/gdb/
W. (n.d.). “relaxed-simd/proposals/simd/simd.md at main \(\cdot \) webassembly/relaxed-simd. github”. https://github.com/WebAssembly/relaxed-simd/blob/main/proposals/simd/SIMD.md
Dreseler, M., Kossmann, J., Frohnhofen, J., Uflacker, M., Plattner, H.: Fused table scans: combining AVX-512 and JIT to double the performance of multi-predicate scans, pp. 102–109 (2018)
Kemper, A., Neumann, T.: Hyper: A hybrid OLTP &OLAP main memory database system based on virtual memory snapshots, pp. 195–206 (2011)
Kersten, T., Leis, V., Neumann, T.: Tidy tuples and flying start: fast compilation and fast execution of relational queries in umbra. VLDB J. 30, 09 (2021)
Zukowski, M., Boncz, P., Nes, N., Héman, S.: MonetDB/x100 - a DBMS in the CPU cache. IEEE Data Eng. Bull. 28, 17–22 (2005)
Acknowledgements
Zhengyi Yang is supported by Enmotech Data AU. We would like thank the anonymous reviewers at ADC2023 Shepherding Track for their valuable insights and suggestions that significantly contributed to the paper’s improvement.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Ma, M., Yang, Z., Hao, K., Chen, L., Wang, C., Jin, Y. (2024). An Empirical Analysis of Just-in-Time Compilation in Modern Databases. In: Bao, Z., Borovica-Gajic, R., Qiu, R., Choudhury, F., Yang, Z. (eds) Databases Theory and Applications. ADC 2023. Lecture Notes in Computer Science, vol 14386. Springer, Cham. https://doi.org/10.1007/978-3-031-47843-7_16
Download citation
DOI: https://doi.org/10.1007/978-3-031-47843-7_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-47842-0
Online ISBN: 978-3-031-47843-7
eBook Packages: Computer ScienceComputer Science (R0)