论文部分内容阅读
互联网的高速发展使得信息的采集、传播速度和规模都达到了空前的水平,并实现了全球的信息共享与交互。这种爆炸式的数据增长使得数据的存储、传播和处理面临着严峻的挑战,持续产生的庞大数据量给传统的存储系统带来了极大的压力。主动存储技术是解决现代计算机体系结构中数据传输瓶颈问题的一种有效途径,其基本思想是利用存储端访问数据的高带宽优势,将数据分析人物的处理程序下载到存储系统中执行并将数据的处理结果通过网络传输给客户端,从而减少要传输的数据量,改善网络环境并降低功耗。现已提出并部署多种形式的主动存储系统原型,但缺乏灵活的编程接口与高适应性的任务分配策略。本文实现了一种基于HDFS的主动存储系统AHDFS,其具有常规主动存储的基本特征并且提供了灵活的编程框架。AHDFS提供了与Java输入流类似的实现类ASInputStream,其屏蔽了系统的内部实现细节,使得应用程序能够灵活地调用主动存储系统计算资源。AHDFS采用移动计算的思想,提供了一套基于流的编程模型,应用程序根据相关语法可以灵活地实现需要下载到存储端的数据分析程序。AHDFS开放了任务分配策略的编程接口,便于应用程序根据特定的分配需求在存储端和计算端分配计算任务。合理地根据系统运行时环境在存储端与计算端之间划分数据任务有利于充分利用系统空闲计算资源,而传统的主动存储系统考虑的系统信息不够全面,不能适应各种运行环境。本文提出了一种动态任务分配策略DTAP,并在AHDFS系统上实现。DTAP在分配数据任务时,即考虑了系统运行时内部节点的计算负荷,同时考虑了网络带宽与数据分析任务的特征信息。实验结果表明在系统原型上采用DTAP能使系统适用各种应用环境,取得比传统主动存储系统更优的性能。