Database systems that keep their data primarily in main memory provide high query performance but also incur high costs. We have analyzed various real-world enterprise systems and their workload and data characteristics. We found that the main memory footprint can be efficiently reduced by (i) data encoding and (ii) tiering without degrading performance significantly.
To encode and compress a database instance, we use learned cost models to predict runtimes of various data encodings. We use linear programming models to determine optimal encoding configurations within a given memory budget. For the applicability in real-world scenarios, the models incorporate robustness measures that mitigate unexpected performance degradations. To efficiently tier data to secondary storage, we extended the hybrid data layout of the first version of Hyrise and evict infrequently accessed columns in a row-major format.