CPU and Cache Efficient Management of Memory-Resident Databases
原文
https://15721.courses.cs.cmu.edu/spring2023/papers/09-compilation/pirk-icde2013.pdf
背景
主内存数据库实现两个资源优化
- CPU时钟周期
- 内存带宽
对于HTAP场景,目前只能使用混合的、或者部分PDSM的实现 当前实现节省了带宽,但是消耗CPU 论文中提出一个方案,使用JIT编译,消除CPU的无效函数调用 不过这种代价模型不是为JIT查询设计的,论文提出了一个新的设计,来建立代价模型,以及后续的存储布局优化
随着内存的增加,可以用来处理更多数据,可以混合OLAP、OLTP场景
随之而来的是查询模型的调整,火山模型适合面向I/O的数据库,但不适合主内存数据库
为缓解这种问题,出现了 批模型,使用这种模型可以一次一列的方式,这样提高了缓存有效性
另一种是 Partially Decomposed Storage Model PDSM
不过上述跟火山模型类似,他们都很好的利用了 cache有效性,但是CPU有效性不足
相关文章
- Efficiently Compiling Efficient Query Plans for Modern Hardware
- Generating code for holistic query evaluation
- Implementing Database Operations Using SIMD Instructions
- Rethinking SIMD Vectorization for In-Memory Databases
- SIMD-Scan: Ultra Fast in-Memory Table Scan using onChip Vector Processing Units