一种分布式文件系统的自适应压缩方法及系统的制作方法

文档序号:9929594阅读:600来源:国知局
一种分布式文件系统的自适应压缩方法及系统的制作方法
【技术领域】
[0001]本发明涉及分布式系统文件压缩领域,特别涉及一种分布式文件系统的自适应压缩方法及系统。
【背景技术】
[0002]随着数据时代的到来,互联网所处理的数据量日益增大,为了达到高可靠性,当前的分布式文件系统一般采用多副本的策略,在大规模机群中,这会带来不可忽略的巨额存储开销,同时,对于分布式文件系统之上的系统或应用,如分布式数据库、分布式数据仓库、MapReduce框架或其它应用,也有可能会产生冗余数据,这样,会使得数据的膨胀率更高,I/O性能成为系统的瓶颈日益明显,现有的分布式文件系统难以同时满足高性能、高可靠性和低存储开销的需求。
[0003]通过对分布式文件系统上应用的类型进行分析可以知道,这些应用使用或产生的大部分数据是文本信息,特别是离线或在线分析系统中的数据基本都是文本,而文本本身是一种高度可压缩的数据,因此通过引入一种快速的数据压缩方法,可以有效降低数据的存储开销,提尚磁盘和网络i/o的有效带宽,从而提尚应用的吞吐量。
[0004]对于分布式系统自带的压缩机制,只能在启动时配置特定的某种压缩算法,在系统运行过程中,cpu使用率,网络带宽实时动态变化,只是配置单一的压缩算法无法达到最优的系统吞吐量,并且对于某些已经压缩过的数据也进行压缩,会使系统的吞吐量下降,在分布式文件系统中采用透明压缩的有以下两个,如下所示:
[0005]BlobSeer ,BlobSeer在文件系统层次对上层应用透明地压缩文件,在写入数据的时候对每个文件块进行压缩,为了能适应不同的负载,在压缩文件块之前会提取部分数据进行抽样压缩以此来预测整个文件块的压缩比,从而判断压缩是否有益,实验结果表明在分布式文件系统上实现透明压缩能节省40%空间,但整体吞吐率有明显下降,因为压缩占用了过多的CPU资源,但是实验结果并没有揭示在不同的环境中(比如CPU、磁盘性能或网络带宽配置不同)压缩算法对系统吞吐率的影响,而且仅测试了 LZO和BZIP2两种压缩算法,虽然可以配置不同的压缩算法,却不能自动选择较优的压缩算法来适应不同的工作负载;
[0006]百度透明压缩,百度的透明压缩存储在HDFS添加了三种角色:压缩服务、调度器和块访问层,该项工作采用离线压缩方式,压缩服务会定时去向调度器请求任务,然后对文件块进行压缩,而命名空间节点(Namenode)对这个压缩过程并不知情,该工作采用离线压缩的优点是实现简单,能充分利用数据节点(Datanode)的计算能力,但数据在网络中传输的开销并没有变化,而本发明希望把数据压缩转移到客户端,采用实时在线压缩的方式,减少在网络中传输的数据量,以此来提高系统的吞吐率。
[0007]自适应压缩模型早已被发明用来加速数据的流动,其也可以被用来提高系统的吞吐量,现有的自适应压缩模型主要有以下两种:AdOC,AdOC(AdaptiveOnline Compress1n)是一种自适应实时数据压缩算法,主要用于网络传输场景,使用多线程的方法。一个线程用于压缩数据块,数据块压缩后放入发送队列中,一个线程用于发送队列中的数据块,允许压缩和网络传输重叠。该算法根据发送队列中的拥塞情况来实时调整压缩等级,使压缩效果能适应当前网络和计算资源的变化。AdOC假设更高的压缩等级能达到更好的压缩效果,但对于冗余程度不高的数据来说,压缩数据只会徒然增加压缩的时间。并且这个工作只使用了 z I ib—种压缩算法,通过调整压缩等级来改变压缩速度和压缩比;
[0008]ACE,ACE(Adaptive Compress1n Environment)是一个自适应压缩系统,自动并透明地在传输过程中应用压缩技术来提高网络传输的性能,与本文的工作很相似。ACE使用NWS(Network Weather Service)[Wolski98]来预测CPU和网络性能,并配合其它的估计方法来预测32KB大小数据块的压缩、解压缩和传输时间。ACE能根据数据的产生速度自动地在流水线模型和顺序模型间切换,两种模型都基于各自的策略来决定应用何种压缩算法或不压缩,ACE支持的压缩算法有bzip、zlib和lzo。
[0009]通过对现有的透明压缩机制和自适应压缩模型的对比发现,没有一种自适应压缩模型是在分布式文件系统中使用的,有的压缩模型虽然可能可以适用于分布式文件系统,但是借助第三方软件获得相关资源信息,系统负载重,而现有的在分布式文件系统中使用的透明压缩机制,又不具备自动选择最优的压缩算法的能力。
[0010]—发明提供了一种自适应数据压缩和解压缩的方法和系统及存储装置,该方法的步骤为:(I)压缩:根据存储系统设定的压缩率目标、存储控制器的负载情况为需要压缩的数据段自适应选择对应的数据压缩算法、参数进行数据压缩;(2)解压缩:获取需要解压缩数据段的压缩算法、参数,并使用与所获得的压缩算法、参数对应的解压缩算法为相应的数据段解压缩。该系统为用来实施上述方法的系统。该存储装置包括存储控制器和存储介质,所述存储控制器包括上述自适应数据压缩和解压缩系统。该发明能够根据存储系统预设压缩率、存储控制器负载情况,自适应选择对应压缩算法和压缩参数,既能满足存储系统的压缩率要求又能减少存储控制器负载,从而大大提高存储系统性能,但该发明只能通过预设压缩率的方式来选择对应压缩算法,而本发明方法和技术形成的系统可以根据计算场景和数据类型自主选择最优压缩算法,最优压缩算法可能是压缩率最高的算法,也可能是压缩速率最高的压缩算法。

【发明内容】

[0011]针对现有技术的不足,本发明提出一种分布式文件系统的自适应压缩方法及系统。
[0012]本发明提出一种分布式文件系统的自适应压缩方法,包括:
[0013]步骤I,设置压缩文件格式,形成压缩数据流,所述压缩数据流由头部信息与多个数据块组成,其中所述头部信息用于判断所述压缩数据流是否已经过压缩;
[0014]步骤2,接收待压缩文件,将所述待压缩文件按照所述压缩文件格式将所述待压缩文件进行压缩生成所述压缩数据流;
[0015]步骤3,设置索引文件,其中所述索引文件由多个记录组成,每条记录维护所述压缩数据流中数据的数据信息,所述索引文件用于快速定位所述压缩数据流。
[0016]所述的分布式文件系统的自适应压缩方法,所述数据信息包括所述待压缩文件的位置、所述待压缩文件在压缩文件中的位置、所述待压缩文件的大小。
[0017]所述的分布式文件系统的自适应压缩方法,所述步骤3包括获取客户端的写请求,所述分布式文件系统的命名空间节点告知所述待压缩文件所在的数据节点,所述客户端与数据节点通信,所述客户端传输待压缩数据给所述数据节点,通过自适应压缩理论模型获取最优压缩算法,选择最优压缩算法后,将所述待压缩数据进行压缩,生成所述压缩数据流,将所述压缩数据流发送给所述数据节点。
[0018]所述的分布式文件系统的自适应压缩方法,所述自适应压缩理论模型为
[0019]|CRXR-TR|,CR>TR且R<0.8
[0020]R为各压缩算法之间的压缩比,CR为各压缩算法之间的压缩速率,TR数据传输速率。
[0021]所述的分布式文件系统的自适应压缩方法,所述步骤3还包括获取客户端的读请求,所述分布式文件系统的命名空间节点告知所述待压缩文件所在的数据节点,所述客户端与数据节点通信,所述数据节点传输所述压缩数据流给所述客户端,根据所述压缩数据流的所述头部信息,将所述压缩数据流进行解压缩,所述数据节点将解压缩后的数据传输给所述客户端。
[0022]本发明还提出一种分布式文件系统的自适应压缩系统,包括:
[0023]设置压缩文件格式模块,用于设置压缩文件格式,形成压缩数据流,所述压缩数据流由头部信息与多个数据块组成,其中所述头部信息用于判断所述压缩数据流是否已经过压缩;
[0024]压缩模块,用于接收待压缩文件,将所述待压缩文件按照所述压缩文件格式将所述待压缩文件进行压缩生成所述压缩数据流;
[0025]设置索引文件模块,用于设置索引文件,其中所述索引文件由多个记录组成,每条记录
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1