English

Making an Embedded DBMS JIT-friendly

Programming Languages 2016-06-21 v4 Databases

Abstract

While database management systems (DBMSs) are highly optimized, interactions across the boundary between the programming language (PL) and the DBMS are costly, even for in-process embedded DBMSs. In this paper, we show that programs that interact with the popular embedded DBMS SQLite can be significantly optimized - by a factor of 3.4 in our benchmarks - by inlining across the PL / DBMS boundary. We achieved this speed-up by replacing parts of SQLite's C interpreter with RPython code and composing the resulting meta-tracing virtual machine (VM) - called SQPyte - with the PyPy VM. SQPyte does not compromise stand-alone SQL performance and is 2.2% faster than SQLite on the widely used TPC-H benchmark suite.

Keywords

Cite

@article{arxiv.1512.03207,
  title  = {Making an Embedded DBMS JIT-friendly},
  author = {Carl Friedrich Bolz and Darya Kurilova and Laurence Tratt},
  journal= {arXiv preprint arXiv:1512.03207},
  year   = {2016}
}

Comments

24 pages, 18 figures

R2 v1 2026-06-22T12:06:11.708Z