Using an Interpreter to Hide the Latency of Query Compilation in a In-Memory Database Managment System
Compiling queries on the fly speeds up execution in an in-memory DBMS by 50-100x. The compilation step itself, however, can be quite significant (20-150ms). It is a constant factor that is independent from the query runtime. This extra latency is noticeable and makes up most of the overall request time, especially for queries with a short running time. One solution to this problem is to hide this latency by immediately running the query and start processing tuples before its compilation finishes. One can achieve this by interpreting the intermediate language that was generated from the query plan, and which is fed into the compiler. This talk covers the design and the implementation of such an interpreter for LLVM IR in the Peloton In-Memory Database Managment System as topic of a Master Thesis.
Marcel Kost is a Master's student from Karlsruhe Institute of Technology (Germany) visiting CMU as a research scholar for his Master Thesis, working with Andy Pavlo in the area of Query Compilation for Databases.