概括
VAQUERO瞄准的是向量型处理过程中面临的不规则数据访问和数据间依赖问题,kernel层级重点处理的是hash aggregate和hash join相关的查表probe这一瓶颈操作。
VAQUERO和x86 AVX512 ISA集成在一起,借助于后者中的VPCD指令来解决数据依赖问题。因此,该文章的重点应该是借助于SPM解决Gather/scatter问题。
理解该论文需要补充SPM和CAM的相关知识!
PS: 我每每感到数据库加速没有啥可以做的,或者说做的意义不大的时候,总有一些顶会工作出来打我的脸orz
问题
-
与PostgreSQL和MonetDB相比,仅加速了2.09x和3.32x,与Q100,AQUOMAN等动辄数量级级别加速相比,为什么加速效果如此不显著?
原因可能在于benchmark的选取问题,如下表格(待补充)
|VAQUERO| | 1GB |
|Q100|–|
| AQUOMAN | |
|RAPID|2.5x|1TB|
从工程成熟度方面来讲,Oracle的RAPID也是成功流片,但workload更大。因此,相比来说,本文能被录用,出彩的点不在于加速比,而在于引入SPM解决Gather/scatter的novel architecture。 -
为什么VAQUERO可以同时支持行式和列式两种数据库,是和基于GPU的HTAP[3]一样配备了两种类型的存储区域吗?
现今应用最多的还是行式数据库[2],但之前的研究认为行式数据库不适合向量处理,在gather/scatter问题上相比列