一种数据压缩的方法及装置制造方法及图纸

技术编号:23932083 阅读:46 留言:0更新日期:2020-04-25 01:50
本申请提供一种数据压缩的方法及装置,涉及存储技术领域,解决了的相似数据压缩存储空间的利用率不高,数据压缩的缩减率不高的问题。该方法包括:获取第一数据块的第一指纹和第二指纹;根据第一指纹将第一数据块加入第一数据块队列;其中,第一数据块队列的数据块均包含第一指纹;根据第二指纹将第一数据块加入第二数据块队列;其中,第二数据块队列的数据块均包含第二指纹;当对第一数据块队列中的数据块参考第一参考数据块进行压缩后的数据大小未达到预设阈值,则从第二数据块队列中获取第二数据块,第二数据块队列包括与第一参考数据块相同指纹的数据块;将第二数据块参考第一参考数据块进行压缩。

A method and device of data compression

【技术实现步骤摘要】
一种数据压缩的方法及装置
本申请涉及存储
,尤其涉及一种数据压缩的方法及装置。
技术介绍
随着大数据的快速发展,海量数据呈爆发式增长,给数据存储管理带来了巨大的挑战。为了提高存储空间的利用率,数据缩减技术是存储系统中必不可少的关键技术,具体可以通过数据压缩、重复数据删除、相似数据压缩等实现方式减少存储系统中使用的存储容量,从而提升存储空间的利用率。其中,衡量存储系统性能的重要指标可以为缩减效率、缩减率,或者压缩比。目前的基于相同数据的不同版本进行压缩存储的技术方案中,每次数据更新后,参考原始数据进行压缩得到增量值,在存储空间中存放每一次数据更新的增量值。但是由于存储数据的物理页面是定长的,对于更新较少的数据,则会造成该物理页面的浪费,存储空间的利用率不高。
技术实现思路
本申请提供一种数据压缩的方法及装置,解决了现有技术的相似数据压缩存储空间的利用率不高,数据压缩的缩减率不高的问题。为达到上述目的,本申请采用如下技术方案:第一方面,提供一种数据压缩的方法,所述方法包括:获取第一数据块的第一指纹和第二指纹;根据所述第一指纹将所述第一数据块加入第一队列;其中,所述第一队列的数据块均包含所述第一指纹;根据所述第二指纹将所述第一数据块加入第二队列;其中,所述第二队列的数据块均包含所述第二指纹;当对所述第一数据块队列中的数据块参考第一参考数据块进行压缩后的数据大小未达到预设阈值,从所述第二队列中获取第二数据块,所述第二数据块队列包括与所述第一参考数据块的指纹相同的数据块;对所述第二数据块参考所述第一参考数据块进行压缩。上述技术方案中,根据多个数据块提取的多个指纹得到多个数据块队列,将包括相同指纹的数据块队列中的数据块进行参考压缩,当第一数据块队列中的数据块参考第一参考数据块进行压缩后仍有剩余的存储空间,则将第二数据队列中与第一参考数据块包括相同指纹的数据块参考第一参考数据块进行压缩,从而能提升存储空间的利用率,避免存储资源的浪费。在一种可能的设计方式中,所述方法还包括:在所述第二数据块队列未压缩处理的数据块中确定第二参考数据块;对所述第二数据块队列中未压缩处理的数据块参考所述第二参考数据块进行压缩。在一种可能的设计方式中,所述方法还包括:确定所述第一参考数据块,所述第一参考数据块为所述第一数据块队列中相似度最高的数据块中的一个一种数据压缩的方法,该方法包括:根据多个数据块中每个数据块对应的多个指纹,得到多个数据块队列,每个数据块队列中的数据块之间存在相同的指纹;若对第一数据块队列中的数据块参考第一参考数据块进行压缩后的数据大小未达到预设阈值,则从第二数据块队列中获取至少一个数据块,该第二数据块队列包括与该第一参考数据块相同指纹的数据块;将该至少一个数据块参考该第一参考数据块进行压缩。在一种可能的设计方式中,该方法还包括:在该第二数据块队列未压缩处理的数据块中确定第二参考数据块;对该第二数据块队列中未压缩处理的数据块参考该第二参考数据块进行压缩。在一种可能的设计方式中,该根据多个数据块中每个数据块对应的多个指纹,得到多个数据块队列包括:根据多个数据块中每个数据块对应的多个指纹,确定数据块之间的相似度,其中,至少两个数据块的相同指纹的数量越多,该至少两个数据块的相似度越高;根据数据块之间的相似度从高到低的顺序确定该多个数据块队列,其中,多个指纹相同且相似度最高的多个数据块在相同的数据块队列中,该多个数据块队列包括该第一数据块队列。上述可能的实现方式中,进行数据块参考压缩的时候,首先参考数据块之间的相似度进行相似数据的数据块队列分组,根据数据块之间的相似度从高到低的顺序确定不同的数据块队列分组,将相似度最高的数据块参考同一个参考块进行相似压缩,从而将相似度高的数据块放在同一个压缩组参考压缩,提高相似数据压缩的缩减率,从而提升存储空间的利用率。在一种可能的设计方式中,该根据多个数据块中每个数据块对应的多个指纹,确定数据块之间的相似度包括:根据多个数据块中每个数据块对应的多个指纹,获取与每个数据块对应的至少一个全局指纹,根据该全局指纹确定数据块之间的相似度。上述可能的实现方式中,根据全局指纹确定数据块之间的相似度,能够减少由于大量的数据块指纹所产生的存储空间,还能减少由于统计数据块之间相同的指纹二产生的读写和计算开销,从而有效提高查询效率和存储空间的利用率。在一种可能的设计方式中,对第一数据块队列中的数据块参考该第一参考数据块进行压缩之前,该方法还包括:确定该第一参考数据块,该第一参考数据块为该第一数据块队列中相似度最高的数据块中的一个。上述可能的实现方式中,将相似度最高的数据块放在同一个压缩组,并且参考其中一个数据块进行相似,从而有效提高相似数据块的缩减率,提升存储空间的利用率。在一种可能的设计方式中,对第一数据块队列中的数据块参考该第一参考数据块进行压缩之前,该方法还包括:确定该第一参考数据块,该第一参考数据块为该第一数据队列中其他数据块参考该第一参考数据块进行压缩后占用的存储空间最小的数据块。上述可能的实现方式中,将数据块队列中压缩收益最高的数据块作为参考数据块,将其他数据块参考该参考数据块进行压缩,能够有效提高数据块的缩减率。第二方面,提供一种数据压缩的装置,该装置包括:获取模块,用于获取第一数据块的第一指纹和第二指纹;根据所述第一指纹将所述第一数据块加入第一队列;其中,所述第一队列的数据块均包含所述第一指纹;根据所述第二指纹将所述第一数据块加入第二队列;其中,所述第二队列的数据块均包含所述第二指纹;压缩模块,用于判断当对所述第一数据块队列中的数据块参考第一参考数据块进行压缩后的数据大小未达到预设阈值,从所述第二队列中获取第二数据块,所述第二数据块队列包括与所述第一参考数据块的指纹相同的数据块;对所述第二数据块参考所述第一参考数据块进行压缩。在一种可能的设计方式中,所述压缩模块,还用于在所述第二数据块队列未压缩处理的数据块中确定第二参考数据块;对所述第二数据块队列中未压缩处理的数据块参考所述第二参考数据块进行压缩。在一种可能的设计方式中,所述压缩模块,还用于确定所述第一参考数据块,所述第一参考数据块为所述第一数据块队列中相似度最高的数据块中的一个获取模块,用于根据多个数据块中每个数据块对应的多个指纹,得到多个数据块队列,每个数据块队列中的数据块之间存在相同的指纹;压缩模块,用于判断若对第一数据块队列中的数据块参考第一参考数据块进行压缩后的数据大小未达到预设阈值,则该压缩模块,用于从第二数据块队列中获取至少一个数据块,并将该至少一个数据块参考该第一参考数据块进行压缩;其中,该第二数据块队列包括与该第一参考数据块相同指纹的数据块。在一种可能的设计方式中,压缩模块还用于在该第二数据块队列未压缩处理的数据块中确定第二参考数据块,对该第二数据块队列中未压缩处理的数据块参考该第二参考数据块进行压缩。在一种可能的设计方式中,获取模块,具体用于根据多个数据块中每个数据块对应的多个指纹,确定数据块之间的相似度,其中,至少两个数本文档来自技高网...

【技术保护点】
1.一种数据压缩的方法,其特征在于,所述方法包括:/n获取第一数据块的第一指纹和第二指纹;/n根据所述第一指纹将所述第一数据块加入第一队列;其中,所述第一队列的数据块均包含所述第一指纹;/n根据所述第二指纹将所述第一数据块加入第二队列;其中,所述第二队列的数据块均包含所述第二指纹;/n当对所述第一数据块队列中的数据块参考第一参考数据块进行压缩后的数据大小未达到预设阈值,从所述第二队列中获取第二数据块,所述第二数据块队列包括与所述第一参考数据块的指纹相同的数据块;/n对所述第二数据块参考所述第一参考数据块进行压缩。/n

【技术特征摘要】
1.一种数据压缩的方法,其特征在于,所述方法包括:
获取第一数据块的第一指纹和第二指纹;
根据所述第一指纹将所述第一数据块加入第一队列;其中,所述第一队列的数据块均包含所述第一指纹;
根据所述第二指纹将所述第一数据块加入第二队列;其中,所述第二队列的数据块均包含所述第二指纹;
当对所述第一数据块队列中的数据块参考第一参考数据块进行压缩后的数据大小未达到预设阈值,从所述第二队列中获取第二数据块,所述第二数据块队列包括与所述第一参考数据块的指纹相同的数据块;
对所述第二数据块参考所述第一参考数据块进行压缩。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二数据块队列未压缩处理的数据块中确定第二参考数据块;
对所述第二数据块队列中未压缩处理的数据块参考所述第二参考数据块进行压缩。


3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定所述第一参考数据块,所述第一参考数据块为所述第一数据块队列中相似度最高的数据块中的一个。


4.一种数据压缩的装置,其特征在于,所述装置包括:
获取模块,用于获取第一数据块的第一指纹和第二指纹;根据所述第一指纹将所述第一数据块加入第一队列;其中,所述第一队列的数据块均包含所述第一指纹;根据所述第二指纹将所述第一数据块加入第二队列;其中,所述第二队列的数据块均包含所述第二指纹;
压缩模块,用于判断当对所述第一数据块队列中的数据块参考...

【专利技术属性】
技术研发人员:王力玉关坤刘帮张真波沈建强
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1