作者简介
KaiGai Kohei,HeteroDB数据库首席架构师、共同创始人,PG-Storm作者。
译者简介
朱君鹏,华东师范大学博士研究生,个人兴趣主要集中在:新型硬件(GPU、RDMA、FPGA等)在数据库中的应用,架构设计与并行计算。校对者简介
崔鹏,任职于海能达通信股份有限公司哈尔滨平台中心,数据库开发高级工程师,致力于PostgreSQL数据库在专网通信领域、公共安全领域的应用与推广,个人兴趣主要集中在:分布式数据库系统设计、高并发高可用数据库架构设计与开源数据库的源码研究。摘要
GPUDirect RDMA允许直接从PCIe设备到GPU RAM的对等数据加载。 对于Linux内核和PostgreSQL的扩展模块,我们通过将NVMe-SSD上的数据库块加载到GPU RAM以及在GPU设备上执行SQL来协同利用此基础架构进行非常快速的表扫描。 一旦数据块加载到GPU RAM上,内核函数就会根据提供的SQL(WHERE clause,JOIN和GROUP BY)减少数据大小。 在结果中,CPU / RAM将获得比实际表大小小得多的数据大小,并且看起来存储在理解SQL的情况下智能地执行。 根据基于SQL星型模式的基准测试,我们的功能可以在80秒内扫描351GB平台;这是大约4.5GB / s的查询处理吞吐量,比通常的文件系统基本I / O实现快2.5倍。 此结果表明GPU对I / O密集型工作负载也很有价值,而不仅仅是计算密集型工作负载。简要架构
基准测试
结论和展望
我们的挑战表明,从应用的角度来看,一对GPU和NVMe-SSD可以像智能存储一样运行。 GPU可以根据应用程序端的知识处理数据流,但在数据到达CPU / RAM之前有GPUDirect RDMA支持。 它将数据处理吞吐量提高到了硬件的理论极限值附近,但成本比现有的高端数据库解决方案相对较小。 目前,我们的实现仍然在md-raid0配置上具有不可忽视的开销。 它需要修改。 然后,我们将尝试每个计算节点10GB / s的数据处理吞吐量。参考文献
[1] PG-Strom – Extension of PostgreSQL for GPU acceleration, http://strom.kaigai.gr.jp/ [2] PostgreSQL – Well used open source RDBMS, https://www.postgresql.org/ [3] Intel SSD 750 (400GB) – http://www.intel.com/content/www/us/en/solid-state-drives/solid-state-drives-750-series.html 出自: http://heterodb.com/blobs/P7130_KAIGAI_SSD2GPU_FIXTYPO.pdfPostgreSQL中文社区欢迎广大技术人员投稿
投稿邮箱:press@postgres.cn