一种数据去重方法及装置制造方法及图纸

技术编号:31080505 阅读:14 留言:0更新日期:2021-12-01 11:54
本申请公开一种数据去重方法及装置,该数据去重方法包括:获取待存储到目标存储空间中的第一数据,目标存储空间中已存储M个数据块,M为正整数;计算第一数据的数据内容的总和校验码;在确定第一数据的数据内容的总和校验码与M个数据块的数据内容的总和校验码都不相同的情况下,为第一数据分配第一数据块,将第一数据存储到第一数据块中;在确定第一数据的数据内容的总和校验码与M个数据块中的第二数据块的数据内容的总和校验码相同,且第二数据块的数据内容与第一数据的数据内容相同的情况下,将第二数据块的地址信息作为存储第一数据的数据块的地址信息记录到索引节点中。使得提升存储空间利用率的同时减少性能损耗。升存储空间利用率的同时减少性能损耗。升存储空间利用率的同时减少性能损耗。

【技术实现步骤摘要】
一种数据去重方法及装置


[0001]本申请涉及计算机存储领域,尤其涉及一种数据去重方法及装置。

技术介绍

[0002]随着科技的发展,电子产品使用的场景越来越丰富,需要存储的数据越来越多,用户对于存储空间的需求也越来越大,数据去重技术应运而生。
[0003]目前的数据去重技术中,通过散列算法或指纹算法等算法,为待存储的数据和已存储到存储空间中的数据块计算独特的标识符,查找存储空间中是否存在与该待存储的数据的标识符相同的目标数据块。若是,则仅存入指针,该指针指向存储目标数据块的原始位置。若否,则将该待存储的数据写入存储空间。使得文件中相同的数据只存储一份,相同数据共用同一个数据块。
[0004]然而,若将计算存储空间中除了目标数据块以外的其他数据块的标识符称为无效计算,则通过散列算法或指纹算法等查找存储空间是否存储有目标数据块的数据去重方法中无效计算所产生的运算量和功耗大。特别是当文件中大部分数据不相同的情况下,无效计算所产生的运算量和功耗很大。
[0005]因此,如何提供一种数据去重方法使得提升存储空间利用率的同时减少性能损耗,成为了
内重要的研究课题。

技术实现思路

[0006]本申请提供一种数据去重方法及装置,用于减少待存储的数据与已存储到目标存储空间中的数据块进行数据内容比较所产生的计算量和功耗,提升存储空间利用率的同时减少性能损耗。
[0007]第一方面,本申请实施例提供一种数据去重方法,所述方法包括:获取待存储到目标存储空间中的第一数据,所述目标存储空间中已存储M个数据块,所述M为正整数;计算所述第一数据的数据内容的总和校验码;在确定所述第一数据的数据内容的总和校验码与所述M个数据块的数据内容的总和校验码都不相同的情况下,为所述第一数据分配第一数据块,将所述第一数据存储到所述第一数据块中;在确定所述第一数据的数据内容的总和校验码与所述M个数据块中的第二数据块的数据内容的总和校验码相同,且所述第二数据块的数据内容与所述第一数据的数据内容相同的情况下,将所述第二数据块的地址信息作为存储所述第一数据的数据块的地址信息记录到索引节点中,所述索引节点用于记录数据与存储数据的数据块的地址信息的关联关系。
[0008]可理解的,该第一数据可以为一份文档中的部分文本内容,或者,该第一数据为一段视频中的部分图像帧等,本申请实施例对此不做限定。
[0009]可理解的,该目标存储空间可以为采用数据块存储数据的存储介质的存储分区,具体的,该采用数据块存储数据的存储介质可以为磁盘或固态硬盘等。
[0010]实施第一方面提供的方法,若该第一数据的总和校验码(checksum)与该M个数据
块的总和校验码都不相同,则表明该第一数据的数据内容与该M个数据块的数据内容一定不相同,此时便不再进行第一数据和该M个数据块的数据内容比较,减少了当第一数据的数据内容和第二数据块的数据内容一定不同的情况下的数据内容比较所产生的计算量和功耗。在第二数据块的总和校验码与该第一数据的总和校验码相同,也即该第一数据的数据内容和第二数据块的数据内容可能相同的情况下,再进一步确认第一数据的数据内容与第二数据块的数据内容是否相同。若确认第一数据的数据内容与该第二数据块的数据内容一致,则让该第一数据与该第二数据块共用同一个数据块的地址信息,不需为该第一数据分配新的数据块,使得提升存储空间利用率的同时减少了性能损耗。
[0011]在一种可能的实施方式中,所述在确定所述第一数据的数据内容的总和校验码与所述M个数据块中的第二数据块的数据内容的总和校验码相同,且所述第二数据块的数据内容与所述第一数据的数据内容相同的情况下,将所述第二数据块的地址信息作为存储所述第一数据的数据块的地址信息记录到索引节点中,包括:在确定所述第一数据的数据内容的总和校验码与所述M个数据块中的第二数据块的数据内容的总和校验码相同,且所述第二数据块的数据内容与所述第一数据的数据内容相同,以及所述第二数据块的第一被引用次数小于第一阈值的情况下,将所述第二数据块的地址信息作为存储所述第一数据的数据块的地址信息记录到索引节点中,并将所述第一被引用次数加1;所述第一被引用次数为重复计数表中记录的所述第二数据块的地址信息被引用的次数,所述重复计数表用于记录数据块与数据块的地址信息被重复引用的次数的关联关系。
[0012]可理解的,该第二数据块可以为该M个数据块中的任一数据块。
[0013]可选的,确定该第一数据的数据内容的总和校验码与该M个数据块中的第二数据块的数据内容的总和校验码是否相同,与确定该第一被引用次数是否小于第一阈值,同时执行或先后执行,先后顺序不限。示例性的,在确定该第一数据的总和校验码与所述M个数据块中的该第二数据块的总和校验码相同后,再确定该第一被引用次数是否小于第一阈值。或者,在确定该第一被引用次数小于第一阈值后,再确定该第一数据的数据内容的总和校验码与所述M个数据块中的该第二数据块的数据内容的总和校验码是否相同。
[0014]可选的,确定该第一数据的数据内容与该第二数据块的数据内容是否相同,与确定该第一被引用次数是否小于第一阈值,同时执行或先后执行,先后顺序不限。示例性的,在确定该第一数据的数据内容与该第二数据块的数据内容相同后,再确定该第一被引用次数是否小于第一阈值。或者,在确定该第一被引用次数小于第一阈值后再确定该第一数据的数据内容与该第二数据块的数据内容是否相同。
[0015]在一种可能的实现方式中,所述方法还包括:在确定所述M个数据块中的N个第二数据块的数据内容的总和校验码与所述第一数据的数据内容的总和校验码相同,且所述N个第二数据块的第一被引用次数都大于或等于第一阈值的情况下,为所述第一数据分配第一数据块,并将所述第一数据存储到所述第一数据块中;所述N为小于或等于M的整数,所述第一被引用次数为重复计数表中记录的所述第二数据块的地址信息被引用的次数,所述重复计数表用于记录数据块与数据块的地址信息被重复引用的次数的关联关系。
[0016]在本申请实施例中,为数据去重方法设置数据去重上限(该第一阈值即为该数据去重上限)。一方面,若不设置该数据去重上限,第二数据对应的目标数据块的被引用次数会逐渐增大,导致目标数据块的被访问的频率也逐渐增多,而长期反复地读取目标存储空
间中同一个目标数据块的数据,会加速存储该目标数据块的存储介质(目标存储空间)的损坏,缩短存储介质的使用寿命。因此,设置该数据去重上限,可以避免目标数据块被频繁访问而导致的加速存储介质损坏速度的问题。另一方面,目标数据块被引用次数越多,重复度越高,会为目标直接索引表的索引带来一定的困难,以及,导致修改操作的速度变慢,降低修改操作的效率。因此,设置该数据去重上限,可以避免重复度过高带来的索引困难和重复度过高带来的降低修改操作的效率等问题。
[0017]在一种可能的实现方式中,在所述获取待存储到目标存储空间中的第一数据之前,所述方法还包括:在接收到将第三数据修改为第四数据的指令后,获取与所述第三数据对应的第三数据块的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据去重方法,其特征在于,包括:获取待存储到目标存储空间中的第一数据,所述目标存储空间中已存储M个数据块,所述M为正整数;计算所述第一数据的数据内容的总和校验码;在确定所述第一数据的数据内容的总和校验码与所述M个数据块的数据内容的总和校验码都不相同的情况下,为所述第一数据分配第一数据块,将所述第一数据存储到所述第一数据块中;在确定所述第一数据的数据内容的总和校验码与所述M个数据块中的第二数据块的数据内容的总和校验码相同,且所述第二数据块的数据内容与所述第一数据的数据内容相同的情况下,将所述第二数据块的地址信息作为存储所述第一数据的数据块的地址信息记录到索引节点中,所述索引节点用于记录数据与存储数据的数据块的地址信息的关联关系。2.如权利要求1所述的方法,其特征在于,所述在确定所述第一数据的数据内容的总和校验码与所述M个数据块中的第二数据块的数据内容的总和校验码相同,且所述第二数据块的数据内容与所述第一数据的数据内容相同的情况下,将所述第二数据块的地址信息作为存储所述第一数据的数据块的地址信息记录到索引节点中,包括:在确定所述第一数据的数据内容的总和校验码与所述M个数据块中的第二数据块的数据内容的总和校验码相同,且所述第二数据块的数据内容与所述第一数据的数据内容相同,以及所述第二数据块的第一被引用次数小于第一阈值的情况下,将所述第二数据块的地址信息作为存储所述第一数据的数据块的地址信息记录到索引节点中,并将所述第一被引用次数加1;所述第一被引用次数为重复计数表中记录的所述第二数据块的地址信息被引用的次数,所述重复计数表用于记录数据块与数据块的地址信息被重复引用的次数的关联关系。3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:在确定所述M个数据块中的N个第二数据块的数据内容的总和校验码与所述第一数据的数据内容的总和校验码相同,且所述N个第二数据块的第一被引用次数都大于或等于第一阈值的情况下,为所述第一数据分配第一数据块,并将所述第一数据存储到所述第一数据块中;所述N为小于或等于M的整数,所述第一被引用次数为重复计数表中记录的所述第二数据块的地址信息被引用的次数,所述重复计数表用于记录数据块与数据块的地址信息被重复引用的次数的关联关系。4.如权利要求1

3任一项所述的方法,其特征在于,在所述获取待存储到目标存储空间中的第一数据之前,所述方法还包括:在接收到将第三数据修改为第四数据的指令后,获取与所述第三数据对应的第三数据块的第二被引用次数;所述第二被引用次数为重复计数表中记录的所述第三数据块的地址信息被引用的次数,所述重复计数表用于记录数据块与数据块的地址信息被重复引用的次数的关联关系;在确定所述第二被引用次数等于1的情况下,将所述第四数据作为所述第一数据,并删除与所述第三数据相关的信息;在确定所述第二被引用次数大于1的情况下,将所述第四数据作为所述第一数据,并将所述重复计数表中的所述第二被引用次数减1。
5.如权利要求1

4任一项所述的方法,其特征在于,所述方法还包括:在接收到删除第五数据的指令后,获取所述第五数据对应的第五数据块的第三被引用次数;所述第三被引用次数为重复计数表中记录的所述第五数据块的地址信息被引用的次数,所述重复计数表用于记录数据块与数据块的地址信息被重复引用的次数的关联关系;在确定所述第三被引用次数等于1的情况下,删除与所述第五数据相关的信息;在确定所述第三被引用次数大于1的情况下,将所述重复计数表中所述第三被引用次数减1。6.如权利要求1所述的方法,其特征在于,所述在确定所述第一数据的数据内容的总和校验码与所述M个数据块中的第二数据块的数据内容的总和校验码相同,且所述第二数据块的数据内容与所述第一数据的数据内容相同的情况下,将所述第二数据块的地址信息作为存储所述第一数据的数据块的地址信息记录到索引节点中,包括:在确定所述第一数据的数据内容的总和校验码与所述M个数据块中的第二数据块的数据内容的总和校验码相同的情况下,计算所述第一数据的数据内容的第一标识符和所述第二数据块的数据内容的第二标识符;在确定所述第一标识符与所述第二标识符相同的情况下,确定所述第二数据块的数据内容与所述第一数据的数据内容相同;在确定所述第二数据块的数据内容与所述第一数据的数据内容相同的情况下,将所述第二数据块的地址信息作为存储所述第一数据的数据块的地址信息记录到索引节点中。7.如权利要求1

6任一项所述的方法,其特征在于,所述总和校验码包括循环冗余校验码。8.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器、存储器和显示屏;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:获取待存储到目标存储空间中的第一数据,所...

【专利技术属性】
技术研发人员:周文
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

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

1