Blogs (28) >>
ECOOP 2016
Sun 17 - Fri 22 July 2016 Rome, Italy

While DataBase Management Systems (DBMSs) are highly optimized, interactions across the Programming Language (PL) / DBMS boundary are costly, even for in-process embedded DBMSs. In this paper we show that programs that interact with the widely-used 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 VM – called SQPyte – with the PyPy VM. SQPyte does not compromise stand-alone SQL performance: it is 2.2% faster than SQLite on the widely used TPC-H benchmark suite.