Geno:基于代价的异构融合查询优化器

作者:屠要峰*; 陈小强; 周士俊; 卞福升; 吴非; 陈兵
来源:软件学报, 2022, 33(03): 774-796.
DOI:10.13328/j.cnki.jos.006441

摘要

新型硬件及其构建的环境改变了传统的计算、存储以及网络体系,也改变了上层软件既往的设计假设,特别是通用处理器和专用加速器组成的异构计算架构,改变了数据库系统的底层框架设计和查询优化的代价模型.数据库系统需要针对新型硬件的特性做出适应性调整,以充分发挥新硬件的潜力.提出一种面向CPU/GPU/FPGA异构计算融合的基于代价的查询优化器Geno,可以灵活地调度并最优化地使用各类资源.主要的贡献是:发现根据系统环境硬件实际能力调整代价参数可以显著地提升查询计划的准确性,并提出一种异构资源代价计算方法和校准工具;通过对GPU、FPGA等异构硬件能力估算及对数据库系统硬件实际能力的校准,建立异构计算环境下查询处理的代价模型;实现了支持选择、投影、连接、聚合的GPU算子和FPGA算子,实现了GPU算子融合及流水线设计、FPGA算子流水线设计;通过基于代价的评估解决算子分配和调度问题,生成异构协同的执行计划,实现异构计算资源的协同优化,以充分发挥各异构资源的优势.实验结果表明,通过Geno校准后的参数值与实际硬件能力更加匹配.相比于PostgreSQL和GPU数据库HeteroDB,Geno能够生成更加合理的查询计划.TPC-H实验中,在行存表情况下,Geno比Postgresql执行时长减少了64%-93%,比Hetero-DB执行时长减少了1%-39%;在列存表情况下, Geno比Postgresql执行时间减少了87%-92%,比Hetero-DB执行时间减少了1%-81%;Geno列存与行存相比,查询执行时间减少了32%-89%.

全文