论文部分内容阅读
近年来,随着互联网的发展,海量数据存储以及大数据技术得到飞快的发展,数据量的提升使CPU性能陷入瓶颈。为了处理这一问题,协处理器被广泛使用,来解决海量数据存储中的查询效率。其中,可编程逻辑器件FPGA因其并行和流水线的特性,在提高系统查询效率方面受到广泛关注。本文旨在研究在存储与计算分离的大数据体系结构中应用FPGA提升系统整体的数据查询过滤性能。首先,基于大数据存储的不同文件格式,本文提出了两种关于TextFile和RCFile的查询过滤方案。在实现算法的过程中,充分利用FPGA的并行和流水线的特性,提高数据过滤效率,并且能够在FPGA板上集成不同文件格式的查询过滤方案。实验表明,针对TextFile文件格式,查询性能平均提高62%,针对RCFile存储的文件数据,查询性能平均可以提高66%。其次,本文提出一种基于时间预估的CPU-FPGA架构,并将其应用在存储与计算分离的大数据系统中,将FPGA通过PCIe接口部署到存储节点,用来增强存储节点的处理能力。本方法提供了两种方式数据转发方式,一种是传统方法,由CPU直接将数据转发给计算节点,二是通过FPGA预过滤再将过滤后的数据转发给计算节点,这样能够很大程度地减少传输数据量和降低通信开销。数据转发方式由时间预估算法来决定,即每次数据过滤任务更适合由CPU还是FPGA处理,通过时间预估算法的最优选择,能够提升整个大数据系统的数据查询过滤性能。在基于时间预估的CPU-FPGA架构中,FPGA过滤后的数据需要通过CPU转发到网络,存在一定的通信浪费。针对这一问题,本文提出了一种基于FPGA的带过滤功能的网卡(NIC-QF)设计方案。在该设计方案中,FPGA以隐形协处理器的形式存在,集协处理器的数据过滤功能和网卡的数据转发功能于一体,这样的好处是无需做体系结构上的改变,只需要将传统网卡替换成NIC-QF,CPU感觉不到FPGA的存在,上层软件也不需要做太大的修改。存储节点将数据转发给计算节点,数据通过NIC-QF时,首先进行数据查询过滤,从而有效地减少了最后需要转发到网络的数据量,同时也降低了网络开销,进而达到减轻了计算节点的计算压力。实验表明,使用NIC-QF的系统比使用普通网卡的系统平均减少56%的时间开销,且这一提升效率与过滤数据量密切相关,随着过滤数据量的增加,提升的效率会更加明显。最后,针对非关系型数据库MongoDB,本文提出了一种基于FPGA的智能存储引擎结构。采用FPGA与SSD结合的智能存储引擎来存储热数据,减少内存占用率,针对文档型数据,设计了一种基于谓词逻辑参数化的数据查询过滤方法。利用流水线技术,实现了并行过滤文档中<key,value>数据。实验表明,我们的系统设计比原来MongoDB的查询速度平均快56.09%。