Abstract-Memory-Resident Database Management Systems (MRDBMS) have to be optimized for two resources: CPU cycles and memory bandwidth. To optimize for bandwidth in mixed OLTP/OLAP scenarios, the hybrid or Partially Decomposed Storage Model (PDSM) has been proposed. However, in current implementations, bandwidth savings achieved by partial decomposition come at increased CPU costs. To achieve the aspired bandwidth savings without sacrificing CPU efficiency, we combine partially decomposed storage with Just-in-Time (JiT) compilation of queries, thus eliminating CPU inefficient function calls. Since existing cost based optimization components are not designed for JiT-compiled query execution, we also develop a novel approach to cost modeling and subsequent storage layout optimization. Our evaluation shows that the JiT-based processor maintains the bandwidth savings of previously presented hybrid query processors but outperforms them by two orders of magnitude due to increased CPU efficiency. Increasing capacity at decreasing costs of RAM make Memory-Resident Database Management Systems (MRDBMSs) an interesting alternative to disk-based solutions [30] . The superior latency and bandwidth of RAM can boost many database applications such as Online Analytical Processing (OLAP) and Online Transaction Processing (OLTP). Unfortunately, the Volcano-style processing model [14] that forms the basis of most disk-based DBMSs was not designed to support such fast storage devices. To process arbitrarily wide tuples with generic operators, Volcano-style query processors "configure" the operators using function pointers that are "chased" at execution time. This pointer chasing is highly CPU inefficient [2], [6], but acceptable for disk-based systems because disk I/O costs hide the costs for function calls. Due to its CPU inefficiency, a direct port of the Volcano model to a faster storage device often fails to yield the expected performance gain. MRDBMSs performance has a second critical dimension next to I/O (cache) efficiency: CPU efficiency (see Figure 1) . To improve the CPU efficiency of MRDBMSs, the Bulk Processing model has been proposed [23] . Using this model, data is processed column-at-a-time which is CPU efficient but only cache efficient on data that is stored according to the Decomposed Storage Model (DSM) [12] . The DSM is known for its good OLAP performance but suffers from bad OLTP performance due to poor cache efficiency when (partially) reconstructing tuples. To achieve good performance for mixed (OLTP & OLAP) workloads, the hybrid or, more accurately, the Partially Decomposed Storage Model (PDSM) has been proposed [15] . Even though they bulk-process data partitionat-a-time, current implementations have to handle arbitrarily wide tuples (within a partition). Just like Volcano, they do this using function pointers [15] . Therefore, the current PDSM processors yield better cache efficiency than the DSM but lower CPU efficiency (Figure 1) . To resolve the conflict between CPU and cache efficient query processing we propose to remove the need for function pointers by combining Just-in-Time (JiT) compilation of queries with the PDSM. Specifically, we make the following contributions: • We present the design and implementation of a PDSMbased storage component for HyPer, our JiT-based Database Management System (DBMS).
Recently, Pirk et al. REF studied partial decomposition to save bandwidth without sacrificing CPU cycles.
CPU and cache efficient management of memory-resident databases
2013 IEEE 29th International Conference on Data Engineering (ICDE)
2013 IEEE 29th International Conference on Data Engineering (ICDE)
Computer Science