论文部分内容阅读
随着互联网数据信息的爆炸式增长,以及现今云计算、云存储环境下大规模数据密集型应用的蓬勃发展,分布式文件系统以其高可靠性,高吞吐率以及海量的存储能力等优点,受到了学术界和工业界越来越多的重视,同时也面临着越来越多的挑战。数据压缩通过对数据进行重新编码和进一步组织,可起到缩减数据量的效果。将其运用到分布式文件系统中,可以通过增加部分计算量,显著减少存储空间、传输带宽消耗,提高数据传输、处理效率。 然而目前分布式文件系统中压缩策略的应用仍然存在许多问题,没有根据分布式文件系统的应用特性进行有效地优化定制。通过将各类数据压缩算法集成到分布式文件系统中,可以分析不同的非结构化大数据集的压缩率,以及各类压缩算法对分布式文件系统IO吞吐率的影响,并由此发现了以下四个问题:非结构化数据多样性需要系统进行压缩率预测;压缩和解压缩速率成为了整个文件读写流程的瓶颈;各压缩算法压缩与解压缩的不对称性会对整体吞吐率造成不同影响;全文件压缩极大地限制了压缩算法的应用场景和范围。 在对上述问题进行充分分析研究的基础上,根据分布式文件系统按块存储的应用特点,分块检测、分块压缩的方案被提出并实现。方案首先将待写入文件预先分块,分别对各分块进行压缩率预测及压缩,然后再写入到数据服务器上。通过分块检测,可以更好地应对各种待压缩数据,有效地发现不适合压缩的数据类型及数据块,避免不必要的压缩增加读写文件所花费时间,浪费 CPU以及内存资源。;通过分块压缩,可以消除传统压缩策略带来的全文件压缩弊端,并且将数据压缩过程与传输过程部分重叠,充分利用客户端的计算资源,在微量影响压缩率的情况下,减轻数据压缩带来的时间开销,从而减轻压缩策略对分布式文件系统吞吐率的影响。 测试结果表明,分块检测策略可以很好地预测待压缩数据的压缩率,误差范围在10%以内;分块压缩策略将文件读写速率相较于传统的边压缩边传输方案提升了两倍以上。