一种文件去重方法及其相关设备技术

技术编号:34422667 阅读:14 留言:0更新日期:2022-08-06 15:49
本申请实施例公开了一种文件去重设备及其相关设备,用于将从文件缓存中释放的文件再次换入文件缓存中时,减少对数据的读取量。本申请实施例方法包括:根据第一文件对应的第一哈希值确定出第二文件,第二文件的第二哈希值与第一哈希值的近似度高于预设值,第一文件以及第二文件都存在于文件缓存中,这之后确定第一文件以及第二文件的差分压缩值,之后根据差分压缩值释放第一文件中的数据。分压缩值释放第一文件中的数据。分压缩值释放第一文件中的数据。

【技术实现步骤摘要】
一种文件去重方法及其相关设备


[0001]本申请实施例涉及数据处理领域,尤其涉及一种文件去重方法及其相关设备。

技术介绍

[0002]在安卓系统中,允许同时运行多个应用程序,应用程序在访问文件时会将文件加载到文件缓存中,不同的应用程序可能会访问数据相同,但存储路径不同的文件,由于文件存储的路径不同,因此当应用程序访问时,会出现多份数据相同的文件被加载到文件缓存中的情况,或者文件缓存中也可能存在数据相似的文件的情况,从而使得文件缓存中出现页面冗余,因此需要对文件缓存中数据相同或相似的文件执行去重处理,从而提高内存的使用效率。
[0003]在现有的技术中,通过计算文件缓存中的匿名页的哈希值,进而确定出与文件缓存中的匿名页的哈希值一致,并且已经从文件缓存中释放的匿名页,从而将该已释放的匿名页加上去重标记位,并将文件缓存中的匿名页释放,当需要将该匿名页再次加载到文件缓存中时,再根据去重标记位找出对应的匿名页,并将其加载到文件缓存中。
[0004]然而,现有技术的方案仅仅针对匿名页进行去重处理,而非整个文件,并且当应用程序需要访问匿名页时,也即将匿名页重新加载到文件缓存中时,需要将整个匿名页都进行加载,工作量较大。

技术实现思路

[0005]本申请实施例提供了一种文件去重方法及其相关设备,用于节省文件缓存的内存空间以及减少换入时的数据读取量。本申请实施例还提供了相应的装置、系统、计算机可读存储介质以及计算机程序产品等。
[0006]本申请实施例第一方面提供了一种文件去重方法:
[0007]当需要对文件缓存中的第一文件进行释放时,可以根据第一文件对应的第一哈希值确定出第二文件,这其中,第二文件的第二哈希值与第一文件对应的第一哈希值的近似度高于预设值,并且第一文件和第二文件都存在于文件缓存中。在确定出第二文件之后,可以对第一文件以及第二文件执行差分压缩,确定出差分压缩值,该差分压缩值用于表示第一文件与第二文件在数据上的差异,在确定出差分压缩值之后,可以根据差分压缩值释放第一文件中的数据,也即释放第一文件中与第二文件中的数据重合的数据。
[0008]本申请实施例中,可以通过哈希值的比对确定出与第一文件的数据相似的第二文件,并将这第一文件以及第二文件执行差分压缩,保留差分压缩值,节省了文件缓存的内存空间,并且当需要再次换入第一文件时,可以根据第二文件以及差分压缩值重构第一文件,不需要从存储器中再次读取第一文件。
[0009]在上述第一方面中,文件缓存指的是用以暂时存放读写期间的文件数据而在内存区预留的空间;哈希值则为文件中数据的映射关系,若两个文件的哈希值接近,则说明这两个文件的数据也很接近;差分压缩可以用于计算两个文件在数据上的最小差异,通常应用
于两个高度冗余的文件,差分压缩的计算结果也称之为差分压缩值;第一文件与第二文件为只读文件,例如,可以为so库文件。
[0010]在一种可能的实现方式中,在根据差分压缩值释放了第一文件中的数据之后,如果还需要在文件缓存中访问第一文件,则可以根据在文件缓存中的第二文件以及差分压缩值获取第一文件。
[0011]本申请实施例中,限定了可以根据第二文件以及差分压缩值获取第一文件的方式,提高了方案的完整性。
[0012]在一种可能的实现方式中,在根据第一文件对应的第一哈希值确定第二文件之前,可以先扫描不同存储路径下的文件,这其中就包括第一文件以及第二文件,在扫描完成之后,确定扫描到的文件的文件类型,如果文件的文件类型为只读文件,则通过局部敏感性哈希算法获取该文件的哈希值。
[0013]本申请实施例中,在执行文件去重之前,预先获取了文件的哈希值,因此提高了文件去重的效率。
[0014]上述实施例中,局部敏感性哈希算法也称局部敏感性散列算法,对文件的数据进行细微的修改之后,使用局部敏感性哈希算法计算出文件的哈希值与对修改之前的文件计算得出的哈希值相比,其变化也是微小的。
[0015]本申请实施例第二方面提供了一种文件访问方法:
[0016]如果第一文件不存在文件缓存中,则在文件缓存中访问该第一文件时会发生未命中,这时,可以根据第一文件对应的第一哈希值确定出第二文件,该第二文件对应的第二哈希值与第一哈希值一致,并且该第二文件也存在于文件缓存中,在确定出该第二文件之后,可以直接在文件缓存中访问第二文件。
[0017]在上述第二方面中,文件缓存指的是用以暂时存放读写期间的文件数据而在内存区预留的空间;哈希值则为文件中数据的映射关系,若两个文件的哈希值接近,则说明这两个文件的数据也很接近;第一文件与第二文件为只读文件,例如,可以为so库文件。
[0018]本申请实施例中,通过哈希值的比对,在文件缓存中不存在所需访问的文件的情况下,可以确定出与所需访问的文件的哈希值一致的文件,由此可以直接访问该文件,从而不需要在文件缓存中存储两份数据一样的文件,节省了文件缓存的内存空间。
[0019]在一种可能的实现方式中,在访问文件缓存中的第一文件未命中之前,可以先扫描不同存储路径下的文件,这其中就包括第一文件以及第二文件,在扫描完成之后,确定扫描到的文件的文件类型,如果文件的文件类型为只读文件,则通过局部敏感性哈希算法获取该文件的哈希值。
[0020]本申请实施例中,在执行文件访问之前,预先获取了文件的哈希值,因此提高了文件访问的效率。
[0021]上述实施例中,局部敏感性哈希算法也称局部敏感性散列算法,对文件的数据进行细微的修改之后,使用局部敏感性哈希算法计算出文件的哈希值与对修改之前的文件计算得出的哈希值相比,其变化也是微小的。
[0022]本申请实施例第三方面提供了一种文件去重设备,该文件去重设备包括确定单元以及释放单元,其中,确定单元用于根据第一文件对应的第一哈希值确定第二文件,该第二文件对应的第二哈希值与第一哈希值的近似值高于预设值,并且第一文件以及第二文件都
存在于文件缓存中;该确定单元还用于确定第一文件以及第二文件的差分压缩值,该差分压缩值用于表示第一文件以及第二文件在数据上的差异;释放单元用于根据差分压缩值释放第一文件中的数据。
[0023]本申请实施例中,可以通过哈希值的比对确定出与第一文件的数据相似的第二文件,并将这第一文件以及第二文件执行差分压缩,保留差分压缩值,节省了文件缓存的内存空间,并且当需要再次换入第一文件时,可以根据第二文件以及差分压缩值重构第一文件,不需要从存储器中再次读取第一文件。
[0024]在一种可能的实现方式中,文件去重设备还包括获取单元,该获取单元用于当需要访问第一文件时,根据第二文件以及差分压缩值获取第一文件。
[0025]本申请实施例中,限定了可以根据第二文件以及差分压缩值获取第一文件的方式,提高了方案的完整性。
[0026]在一种可能的实现方式中,文件去重设备还可以包括扫描单元,该扫描单元可以用于扫描不同存储路径下的文件,这其中就包括了第一文件以及第二文件;确定单元还用于确定文件的文件类型;获取单本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件去重方法,其特征在于,包括:根据第一文件对应的第一哈希值确定第二文件,所述第二文件对应的第二哈希值与所述第一哈希值的近似度高于预设值,所述第一文件与所述第二文件存在于文件缓存中;确定所述第一文件与所述第二文件的差分压缩值,所述差分压缩值用于表示所述第一文件与所述第二文件在数据上的差异;根据所述差分压缩值释放所述第一文件中的数据。2.根据权利要求1所述的方法,其特征在于,所述根据所述差分压缩值释放所述第一文件中的数据之后,所述方法还包括:当需要访问所述第一文件时,根据所述第二文件以及所述差分压缩值获取所述第一文件。3.根据权利要求1或2所述的方法,其特征在于,所述根据第一文件对应的第一哈希值确定第二文件之前,所述方法还包括:扫描不同存储路径下的文件,所述文件包括所述第一文件以及所述第二文件;确定所述文件的文件类型;若所述文件的文件类型为只读文件,则通过局部敏感性哈希算法获取所述文件对应的哈希值。4.一种文件访问方法,其特征在于,包括:在文件缓存中访问第一文件未命中,所述第一文件不存在所述文件缓存中;根据所述第一文件对应的第一哈希值确定第二文件,所述第二文件对应的第二哈希值与所述第一哈希值一致,所述第二文件存在所述文件缓存中;访问所述第二文件。5.根据权利要求4所述的方法,其特征在于,所述在文件缓存中访问第一文件未命中之前,所述方法还包括:扫描不同存储路径下的文件,所述文件包括所述第一文件以及所述第二文件;确定所述文件的文件类型;若所述文件的文件类型为只读文件,则通过局部敏感性哈希算法获取所述文件对应的哈希值。6.一种文件去重设备,其特征在于,包括:确定单元,用于根据第一文件对应的第一哈希值确定第二文件,所述第二文件对应的第二哈希值与所述第一哈希值的近似度高于预设值,所述第一文件以及所述第二文件存在于文件缓存中;所述确定单元,还用于确定所述第一文件与所述第二文件的差分压缩值,所述差分压缩值用于表示所述第一文件与所述第二文件在数据上的差异;...

【专利技术属性】
技术研发人员:韩磊
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1