论文部分内容阅读
为了减少数据处理过程中数据移动带来的开销,近数据处理(Near Data Processing, NDP)提出在存储数据的地方就近处理数据。分布式对象存储系统中的存储节点不仅能用于存储数据,还可以用于近数据处理。然而现有的面向存储系统的NDP方案并未能充分利用大量存储节点的资源来满足近数据处理的需求。
首先设计并实现了一个基于存储节点的本地近数据处理方案,接着复现了已有的异地近数据处理方案,通过测试验证了本地近数据处理方案和异地近数据处理方案的局限性。在此基础上,提出了协作式近数据处理方案(Collaborative Near Data Processing, CNDP)。CNDP的核心思想是近数据处理任务由多个计算单元协作完成。CNDP由代理模块、存储模块、触发器、服务模块和执行器五部分组成,可以同时服务两种类型的请求:NDP请求和普通I/O请求。NDP请求的数据会在从存储模块读出后或写入存储模块前由对应的NDP应用处理。代理模块负责接收请求和返回响应,存储模块服务普通I/O请求,触发器拦截NDP请求,根据NDP请求的元数据确定执行数据处理的NDP应用,服务模块负责调度NDP请求到合适的执行器。NDP应用是根据用户需求提前编写和部署的函数代码。基于容器引擎Docker设计的执行器由NDP应用和NDP应用的运行环境组成,以容器的形式运行在存储节点上。基于容器调度工具Kubernetes设计的服务模块除了调度NDP请求以外,还为执行器提供资源限制功能和资源扩展功能,减少近数据处理对存储系统性能的影响。
实现了CNDP和其它三个典型数据处理方案原型SDP、ZNDP和TDP,并在三种常见的数据处理场景下进行了对比测试,分别是数据加密、数据压缩和数据解压。测试结果显示,在CNDP节点数量少于TDP和ZNDP的情况下,当执行加密处理时,CNDP的请求延迟比SDP低41.5%,同时CNDP与其它方案的平均延迟差距不超过13.5%;当执行压缩处理时,CNDP的请求延迟比SDP低40%,比TDP低25%,CNDP与ZNDP的性能差距不超过5.4%;当执行解压处理时,CNDP的请求延迟比SDP低40%,TDP的请求延迟比CNDP低29.8%,CNDP和ZNDP的性能差距不超过4%。在节点数量相同的情况下,当执行加密处理时,CNDP的请求延迟比ZNDP低18.3%。
首先设计并实现了一个基于存储节点的本地近数据处理方案,接着复现了已有的异地近数据处理方案,通过测试验证了本地近数据处理方案和异地近数据处理方案的局限性。在此基础上,提出了协作式近数据处理方案(Collaborative Near Data Processing, CNDP)。CNDP的核心思想是近数据处理任务由多个计算单元协作完成。CNDP由代理模块、存储模块、触发器、服务模块和执行器五部分组成,可以同时服务两种类型的请求:NDP请求和普通I/O请求。NDP请求的数据会在从存储模块读出后或写入存储模块前由对应的NDP应用处理。代理模块负责接收请求和返回响应,存储模块服务普通I/O请求,触发器拦截NDP请求,根据NDP请求的元数据确定执行数据处理的NDP应用,服务模块负责调度NDP请求到合适的执行器。NDP应用是根据用户需求提前编写和部署的函数代码。基于容器引擎Docker设计的执行器由NDP应用和NDP应用的运行环境组成,以容器的形式运行在存储节点上。基于容器调度工具Kubernetes设计的服务模块除了调度NDP请求以外,还为执行器提供资源限制功能和资源扩展功能,减少近数据处理对存储系统性能的影响。
实现了CNDP和其它三个典型数据处理方案原型SDP、ZNDP和TDP,并在三种常见的数据处理场景下进行了对比测试,分别是数据加密、数据压缩和数据解压。测试结果显示,在CNDP节点数量少于TDP和ZNDP的情况下,当执行加密处理时,CNDP的请求延迟比SDP低41.5%,同时CNDP与其它方案的平均延迟差距不超过13.5%;当执行压缩处理时,CNDP的请求延迟比SDP低40%,比TDP低25%,CNDP与ZNDP的性能差距不超过5.4%;当执行解压处理时,CNDP的请求延迟比SDP低40%,TDP的请求延迟比CNDP低29.8%,CNDP和ZNDP的性能差距不超过4%。在节点数量相同的情况下,当执行加密处理时,CNDP的请求延迟比ZNDP低18.3%。