Precision Performance Surgery for PostgreSQL — LLVM-based Expression Compilation, Just in Time

Dennis ButtersteinTorsten Grust

Proceedings of the 42nd Int’l Conference on Very Large Databases (VLDB 2016), New Delhi, India, August 2016.

We demonstrate how the compilation of SQL expressions into machine code leads to significant query runtime improvements in PostgreSQL 9. Our primary goal is to connect recent research in query code generation with one of the most widely deployed database engines. The approach calls on LLVM to translate arithmetic and filter expressions into native x86 instructions just before SQL query execution begins. We deliberately follow a non-invasive design that does not turn PostgreSQL on its head: interpreted and compiled expression evaluation coexist and both are used to execute the same query. We will bring an enhanced version of PostgreSQL that exhibits notable runtime savings and provides visual insight into exactly where and how execution plans can benefit from SQL expression compilation.