机房360首页
当前位置:首页 » 云存储 » 3种文件切分方法进行比较

3种文件切分方法进行比较

来源:机房360 作者:GOCN编辑 更新时间:2013-1-31 18:09:16

摘要:Policroniades和Pratt等使用几种典型的不同数据集比较了以文件为数据片段粒度的切分、定长数据片段切分和变长数据片段切分的数据压缩效果和开销(66),结论是存储利用率方面变长数据片段优于定长数据片段10—30%,而文件粒度压缩存储利用率总是比定长和变长数据片段存储利用率差:计算开销方面,变长数据片段切分的代价大于定长数据片段切分的代价,文件粒度压缩花费最小。

  接下来对上述3种文件切分方法进行比较。Policroniades和Pratt等使用几种典型的不同数据集比较了以文件为数据片段粒度的切分、定长数据片段切分和变长数据片段切分的数据压缩效果和开销(66),结论是存储利用率方面变长数据片段优于定长数据片段10—30%,而文件粒度压缩存储利用率总是比定长和变长数据片段存储利用率差:计算开销方面,变长数据片段切分的代价大于定长数据片段切分的代价,文件粒度压缩花费最小。

  以下是定量比较的细节。

  (1)对互联网著名站点sunsite.org.uk的35GB镜像数据,使用具有两个不同滑动窗口和三个不同数据片段长度的变长数拥片段,以及使用定长数据片段进行压缩,结果表明滑动窗口长度没有茧大影响,一般取48字节即可。数据片段较小时相同数据百分比较大,因为发现相似数据片段的概率增加。但减小数据片殷长度会增加Hash表长度,从而增加存储空间。整个文件压缩方法找到的相同数据最少,使用定长和变长数据片段方法结果差不多,所以对这类数据可使用简单的定长数据片段方法,并不会影响存储空间的节省。使用变长

  数据片段分割方法得到的块长平均值为9.2KB,其中7.6%至少有一个相同的副本。使用变长数据片段压缩和整个文件压缩方法对占据全部存储空间97%的15类文件进行压缩,传统压缩文件中的相似性的利用很困难,特别是所有重复的数据片段都包含于相同文件中:对扩展名为大.iso和.jmg两类文件的压缩效果差别最大,变长数据片段方法大大优于整个文件方法。这个结果表明,文件之间的变化可用变长数据片段分割方法进行有效隅离,而在文件级方法中,即使在文件中有较小的改变也会导致存储一个新的但几乎相同的文件。在150映像文件这种大文件(平均长度为280MB)中这一现象表现得特别明显。对所有其他格式的文件来说,变长数据片段方法仅略优于整个文件方法。使用变长数据片段保存不重复信息,存储35GB数据集只需3OGB空间,节省14%的存储空间,比tar压缩(约占33.3GB)更有效,这是因为已有大批数据被压缩过了。使用同样算法对已压缩的数据再压缩通常会增加数拥而不是减少数据。使用以下三种万法对扩展名为gz、bz2、zip和z的四类压缩文件进行压缩:整个文件压缩万法:变长数据片段压缩方法:先把文件解压,使用变长数据片段压缩方法去掉冗余再进行压缩。虽然第三种方法节省存储空间的效果最好,但也仅仅稍优于只用变长数据片段压缩方法对相当大的原文件(gz和bz2格式)进行压缩的效果。

  (2)对用户个人文件类进行压缩。数据集取自44个不同用户的主目录,共2.9GB,具有很强的多样性,在平均长度为3lKB的98678个文件中含有1756个不同的文件扩展名。有15个扩展名的文件占用全部数据69%的存储空间。使用变长数据片段压缩和定长数据片段压缩方法,变长数据片段效果较好,可将原来的存储空间由2.9GB减少到2.3GB,节省20.6%。但压缩的tar数据集仅占用1.4GB磁盘空间,大大优于以上两种方法。

  (3)对研究小组的文件数据集进行压缩。这些数据来自不同的研究小组,具有高度的相似性,因为包含软件项目、文档和各小组共享的信息。这是一个节省存储空间、减少数据传输量的理想环境。该数据集共有708536个文件,占用21GB磁盘空间,平均长度为32KB。全部文件中的相同数据面分比为25%。变长数据片段方法可将该数据集所占用的存储空间由原来的2lGB减少到14GB,节省了约33%,但传统压缩文件 (tar.gz格式)仅占用约8.9GB磁盘空间。

  (4)对软件分发数据集压缩。对五个连续版本的Linux内核源代码的分发,先使用变长数据片段对2.5.34内核压缩,然后依次对其他版本内核压缩,最后分析三个可能的分发状态 (tar.gz、tar和原始文件)。在所有情况下,扩展名为付tar.gz的文件在共享数据片段中的数据百分比为零。由此得出结论,尽管变长数据片段分割方法能有效地发现相同的数据,但其主要的源是全部相同的文件。使用整个文件压缩技术时,在tar和tar.gz格式的文件中没有发现相似性,内核分发非常相似。普通文件系统存储不同版本原始状态的Linux 内核时,几乎是对同样的信息进行存储,存储次数等于版本次数。存储最初状态的Linux 内核增加约145MB数捕,至少有95%的数据已包含在前一版本内核数拥的数据片段中,从而仅需增加7MB新数据。但分发压缩格式的内核补丁仍然是最有效的传播方法,如最大的补丁仅为977KB。即使对此补丁解压,其长度也不于使用变长数拥片段方法找到的不同数据片段的长度。使用变长数据片段方法,可以传输新数据片段中的7MB,而未压缩的补丁长度仅为3.7MB。但是如果这五个版本内核都解压并以tar格式打开,再使用变长数据片段方法消除重复并且最后进行压缩时,最后的长度仅为38MB,大大小于最初使用五个.tar.gz格式的内核文件 (171M3),仅大于单个压缩内核34MB。

  (5)开销。使用这些技术减少数据重复时会产生计算开销和存储开销。计算开销来自对SHA-l搁要和Rabin Fingerprint指纹的计算。维持数据结构(Hash表)用于跟踪产生的数据片段及其参考计数器也会增加CPU时间和存储空间。为了比较三种方法中的计算开销,创建一个 30OMB的文件,由来自研究组文件的随机数据片段组成,使用不联网的pentiumIII5OOMHz处理器。变长数据片段方法包括产生Rabin指纹和数据片段的SHA-1摘要。处理全部文件需要约340CPU周期。全部执行时间的76%用于执行指纹计算有关的任务。定长数据片段方法花费约7lCPU周期计算SHA-l摘要。整个文件方法花费62CPU周期计算摘要。存储开销与产生的不重复数据片段数和用于跟踪其出现次数的数据结构(Hash表)有关。在所有情况下,存储开销(最大1.2%)和全部数据集比起来是相当小的,但如果存储到内存则是个重大负担。

  责任编辑:GOCN

本文地址:http://www.jifang360.com/news/2013131/n477744923.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片