Fused Table Scans: Combining AVX-512 and JIT to Double the Performance of Multi-Predicate Scans
Markus Dreseler, Jan Kossmann, Johannes Frohnhofen, Matthias Uflacker, Hasso Plattner · 2018
Recent work has started to combine two approaches for faster query execution: Vectorization and Just-in-Time Compilation (JIT). Combining the advantages of block-at-a-time and tuple-at-a-time processing opens up opportunities for performance improvements. In this context, we present the Fused Table Scan, a just-in-time-compiled scan operator for consecutive table scans. It makes use of the Intel AVX-512 instruction set to combine multiple predicates in a single scan. This reduces the number of instruction-level branches and makes memory access more efficient. We show that the Fused Table Scan doubles the scan performance in most cases and can achieve a speed-up of up to a factor of ten over sequential execution. Furthermore, we discuss which query plans profit from the Fused Table Scan and how the operator code can be generated at runtime.