Cactus: Cache-Centric Techniques for In-Memory Query Processing

Both database systems and modern memory hierarchies are becoming increasingly complex and diverse. As a result, for many memory-resident data-intensive applications, the CPU caches have become the new bottleneck in the performance. There are two apporaches to cache-centric query processing, one is cache-conscious, and the other cache-oblivious. Both of them are aware of the existence of the memeory hierarchy, and the main difference is in if they assume the knowledge of specific parameters of the hierarchy such as the number of levels and the capacity and block size of each level. Due to this difference, cache-conscious techniques can achieve a great overall performance on a specific memory hiearchy through careful tuning whereas cache-oblivious ones are able to automatically maintain a good cache performance with provable bounds across memory hierarchies.

In this project, we examine the hardware cache behavior of in-memory query processing systems, study both cache-conscious and cache-oblivious approaches, and optimize them for performance as well as for automaticity.