一种通过压缩提高简易再生码存储效率的方法和系统的制作方法

文档序号:8258859阅读:308来源:国知局
一种通过压缩提高简易再生码存储效率的方法和系统的制作方法
【技术领域】
[0001]本发明属于数据处理领域,尤其涉及一种通过压缩提高简易再生码存储效率的方法和系统。
【背景技术】
[0002]传统的文件存储方式将数据集中存储在单个存储节点上,但单个存储节点的处理能力毕竟十分有限,容易形成系统性能瓶颈,系统的可靠性和安全性比较低,无法满足大规模存储应用的需要。
[0003]分布式存储的概念由此提出。这种存储方式将数据分散存储在多个存储节点上,这些存储节点通过计算机网络相互通信,由分布式存储系统进行集中管理并提供简洁的访问接口。分布式存储系统通常为每个文件创建多个副本并将其分散存储,让多个存储节点分担用户的访问请求压力,可以有效地减少响应时间并且具有很好的容错性和可扩展性。
[0004]Hadoop是由Apache Software Fundat1n(阿帕奇软件基金会)开发的一个分布式系统基础架构,它实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)。HDFS被设计用来部署在廉价的硬件上,具有很高的容错性,对应用程序的数据提供高传输率并且可以用流的形式来访问文件系统中的数据。
[0005]HDFS的高容错性一般是通过多副本备份的方式来实现的,但随着互联网和世界范围内的各种数据的近乎指数级别的飞速增长,多副本方式较低的存储效率会带来较高的存储开销。
[0006]为了在降低HDFS的存储开销的同时仍然保持较高的容错性,基于ErasureCode (纠删码)的软件RAID (磁盘冗余阵列)方案产生了。使用多副本备份的方式时,为了保证廉价硬件不丢失数据,至少要保证有三个副本同时存在;而使用Erasure Code后,可以在增加少量校验文件的基础上只保留一个文件副本,这样就能大大提高HDFS的存储效率,并且经过理论证明,这种方案仍能保持极高的可靠性。
[0007]SRC是Erasure Code的一种,它处理每组10个数据块,不足10个的部分由全O数据进行填充,最终编码产生相对应的10个校验块。HDFS在实现这种方案时将SRC编码获得的一组校验块一起写入到分布式存储系统的单个文件中,每个校验块按照软件RAID方案的原则分别存储在不完全相同的节点上。
[0008]这种实现方案并没有考虑校验块的数据重复特性。根据SRC的特性,当文件包含4个数据块时,SRC编码产生的10个校验块中有两个校验块是由两个补充的全O数据块异或得到的,这两个校验块的信息可以进行极大程度的压缩,而SRC获得的其他校验块也存在或多或少的重复信息,通过压缩的方法也可以节省一部分存储空间。另外,如果采用HDFS自带的压缩机制直接对SRC编码产生的单个文件进行压缩的话,会导致一个块中存储多个校验块的信息,这违背了软件RAID的原则,同时也会降低系统的容错性。

【发明内容】

[0009]鉴于此,本发明提供一种通过压缩提高简易再生码存储效率的方法和系统,以解决现有技术简易再生码存储效率低的技术问题。
[0010]本发明实施例是这样实现的,一种通过压缩提高简易再生码存储效率的方法,所述方法包括以下步骤:
[0011]获取待压缩文件,并根据所述待压缩文件的大小与预设的文件大小阀值和数据块大小的关系对所述待压缩文件进行处理;
[0012]根据所述待压缩文件的数据块的大小设置压缩算法;
[0013]根据所述压缩算法对所述待压缩文件进行简易再生码编码获得的校验块进行压缩;
[0014]对所述校验块对应的压缩类型码和临时文件进行压缩检验;
[0015]将经过所述压缩的校验块存储到各个存储节点。
[0016]本发明实施例还提供一种通过压缩提高简易再生码存储效率的系统,所述系统包括:
[0017]处理单元,用于获取待压缩文件,并根据所述待压缩文件的大小与预设的文件大小阀值和数据块大小的关系对所述待压缩文件进行处理;
[0018]压缩算法设置单元,用于根据所述处理单元处理的待压缩文件的数据块的大小设置压缩算法;
[0019]压缩单元,用于根据所述压缩算法设置单元设置的压缩算法对所述待压缩文件进行简易再生码编码获得的校验块进行压缩;
[0020]压缩检验单元,用于对所述校验块对应的压缩类型码和临时文件进行压缩检验;
[0021]存储单元,用于将经过所述压缩单元压缩的校验块存储到各个存储节点。
[0022]本发明实施例,获取待压缩文件,根据待压缩文件的大小进行处理,根据待压缩文件数据块的大小设置压缩算法,根据所述压缩算法对所述待压缩文件进行SRC编码获得的校验块进行压缩,将经过所述压缩的校验块存储到各个存储节点,使得能有效提高简易再生码的存储效率,并能维持原系统的高容错性和可靠性。
【附图说明】
[0023]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是本发明实施例提供的通过压缩提高简易再生码存储效率方法的流程图;
[0025]图2是本发明实施例提供的通过压缩提高简易再生码存储效率系统的流程图。
[0026]
【具体实施方式】
[0027]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0028]为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0029]实施例一
[0030]如图1所示为本发明实施例提供的通过压缩提高简易再生码存储效率方法的流程图,所述方法包括以下步骤:
[0031]步骤S101,获取待压缩文件,并根据所述待压缩文件的大小与预设的文件大小阀值和数据块大小的关系对所述待压缩文件进行处理。
[0032]在本发明实施例中,进行处理的系统首先获取待压缩的文件,根据该待压缩文件的大小与预设的文件大小阀值和数据块大小的关系对该待压缩文件进行处理。所述根据所述待压缩文件的大小与预设的文件大小阀值和数据块大小的关系对所述待压缩文件进行处理,具体为:
[0033]1、如果所述待压缩文件的大小大于所述预设的文件大小阀值,则不对所述待压缩文件进行处理;或者,
[0034]在本发明实施例中,预设的文件大小阀值以2G大小为例,若待压缩文件的大小大于2G (分布式文件系统中文件上传的速度约为数十兆,假设上传速度为32M/s,则上传I分钟左右能够获得的文件大小为2G。本文暂取这个值,实际应用场景中可以根据文件的数量和大小分布来具体决定,编码器编码的总时间随这个值的增大而增长),由于调整数据块大小的时间开销较大,不对待压缩文件的数据块大小进行调整。
[0035]2、如果所述待压缩文件的大小大于一组数据块,小于所述预设的文件大小阀值,判断所述待压缩文件的数据块数量,并根据所述数据块数量进行再次处理;
[0036]在本发明实施例中,如果待压缩文件的大小大于一组数据块,小于预设的文件大小阀值,则需要根据该压缩文件的数据块数量进行再次处理。所述根据所述数据块数量进行再次处理的步骤,包括:
[0037](I)、如果所述待压缩文件的数据块数量不为10的倍数,则增大所述压缩文件的数据块的大小使所述压缩文件的数据块总数变为10的倍数;或者,
[0038](2)、如果所述待压缩文件的数据块数量为10的倍数,则不对所述待压缩文件进行处理。
[0039]在本发明实施例中,若文件的数据块总数不为10的倍数,将文件下载到本地后重新上传到HDFS,重新上传时增大原文件数据块的大小使文件的数据块总数变为10的倍数(比如对于数据块大小为80M的1000M文件,通过调整数据块大小为100M,文件数据
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1