
Automatic Generation of a Hybrid Query Execution Engine - ngaut
https://arxiv.org/abs/1808.05448
======
obl
It's a cute idea to cobble together a meta-tracing JIT for sqlite's query
interpreter using source extraction and gcc.

I think it's basically a local minimum for implementation complexity vs
performance though. To push that further you probably need to modify the
original interpreter or encode more (any) knowledge about the semantics in the
JIT, at which point you lose the main advantage of maintaining only one
codebase.

~~~
hinkley
It gives you an idea of the sort of gains you might get with a proper JIT. if
it had turned out that tracing only gave you a 10% boost then maybe a JIT
isn’t the best place to put your time.

------
ngaut
"We create a set of automated tools to create a runtime code generation engine
and integrate such an engine into SQLite which is one of the most popular
relational databases in the world and is used in a large variety of contexts.
Speedups of up to 1.7x were observed in microbenchmarks with queries involving
a large number of operations"

------
ngaut
The source code is available on GitHub:
[https://github.com/AlexKashuba/SQLite_JIT](https://github.com/AlexKashuba/SQLite_JIT)

------
kashuba
Glad someone took interest in the work. I'm one of the coauthors and I'll be
happy to answer the questions about the paper.

------
sitkack
Sounds like the Towers of Interpreters are starting to collapse.

