Compiling Database Application Programs

07/25/2018
by   Mohammad Dashti, et al.
0

There is a trend towards increased specialization of data management software for performance reasons. In this paper, we study the automatic specialization and optimization of database application programs -- sequences of queries and updates, augmented with control flow constructs as they appear in database scripts, UDFs, transactional workloads and triggers in languages such as PL/SQL. We show how to build an optimizing compiler for database application programs using generative programming and state-of-the-art compiler technology. We evaluate a hand-optimized low-level implementation of TPC-C, and identify the key optimization techniques that account for its good performance. Our compiler fully automates these optimizations and, applied to this benchmark, outperforms the manually optimized baseline by a factor of two. By selectively disabling some of the optimizations in the compiler, we derive a clinical and precise way of obtaining insight into their individual performance contributions.

READ FULL TEXT
research
11/13/2017

Souper: A Synthesizing Superoptimizer

If we can automatically derive compiler optimizations, we might be able ...
research
03/14/2022

Automatic Compiler-Based Data Structure Generation

Optimizing compilers are mainly equipped to optimize control flow. The o...
research
02/05/2020

MKPipe: A Compiler Framework for Optimizing Multi-Kernel Workloads in OpenCL for FPGA

OpenCL for FPGA enables developers to design FPGAs using a programming m...
research
03/08/2019

Deductive Optimization of Relational Data Storage

Optimizing the physical data storage and retrieval of data are two key d...
research
02/20/2023

Control Flow Duplication for Columnar Arrays in a Dynamic Compiler

Columnar databases are an established way to speed up online analytical ...
research
12/01/2017

Optimization of Imperative Programs in a Relational Database

For decades, RDBMSs have supported declarative SQL as well as imperative...
research
05/11/2018

Enabling Cross-Event Optimization in Discrete-Event Simulation Through Compile-Time Event Batching

A discrete-event simulation (DES) involves the execution of a sequence o...

Please sign up or login with your details

Forgot password? Click here to reset