License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2016.4
URN: urn:nbn:de:0030-drops-60986
Go to the corresponding LIPIcs Volume Portal

Bolz, Carl Friedrich ; Kurilova, Darya ; Tratt, Laurence

Making an Embedded DBMS JIT-friendly

LIPIcs-ECOOP-2016-4.pdf (0.6 MB)


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.

BibTeX - Entry

  author =	{Carl Friedrich Bolz and Darya Kurilova and Laurence Tratt},
  title =	{{Making an Embedded DBMS JIT-friendly}},
  booktitle =	{30th European Conference on Object-Oriented Programming (ECOOP 2016)},
  pages =	{4:1--4:24},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-014-9},
  ISSN =	{1868-8969},
  year =	{2016},
  volume =	{56},
  editor =	{Shriram Krishnamurthi and Benjamin S. Lerner},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{},
  URN =		{urn:nbn:de:0030-drops-60986},
  doi =		{10.4230/LIPIcs.ECOOP.2016.4},
  annote =	{Keywords: DBMSs, JIT, performance, tracing}

Keywords: DBMSs, JIT, performance, tracing
Collection: 30th European Conference on Object-Oriented Programming (ECOOP 2016)
Issue Date: 2016
Date of publication: 18.07.2016

DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI