这是Oracle联合哥伦比亚大学做的研究,论文中讨重点讨论了数据并行化(线程、指令、数据),也就是SIMD实现;论文中给出了一些基本的SIMD操作,如selective sotre/load、gather、scatter,在论文发表的时候,这几个操作主流CPU不是全支持,只能通过一些模拟操作来支持,如permutation等;通过定义这四个最基本的操作,再往上就可以定义数据库查询中比较重要的操作了,如:scan、hash-table(horizontal、vertical、build、线性探测、double hash、cuckoo hash)、bloom filter、分区(radix、hash、range);通过hash、分区等操作,又可以定义出排序、join等更复杂的操作,相当于是层层搭积木;测试结果SIMD会有大幅度性能提升,但也受到cache size的影响
阅读全文