文件的压缩编码方法、装置存储介质及电子设备与流程

文档序号:36654804发布日期:2024-01-06 23:41阅读:21来源:国知局
文件的压缩编码方法、装置存储介质及电子设备与流程

本技术实施例涉及计算机领域,具体而言,涉及一种文件的压缩编码方法、装置存储介质及电子设备。


背景技术:

1、将文件分块后进行压缩存储的技术中,采用的方式一般都是在文件的头部或尾部添加元信息,元信息中记录了分块压缩前后数据块的位置与大小。然而这些方式存在以下缺陷:首先,被压缩对象必须预知其大小,无法支持对文件的压缩。其次,数据分块压缩后便不再支持对文件的修改,文件只能以只读形式存在。上述缺陷,导致目前的分块压缩的编码方式只能适用于只读的场景。对于文件系统层,需要频繁修改的使用场景便无法很好的支持。

2、针对相关技术中,文件的访问灵活性较差等问题,尚未提出有效的解决方案。


技术实现思路

1、本技术实施例提供了一种文件的压缩编码方法、装置存储介质及电子设备,以至少解决相关技术中文件的访问灵活性较差的问题。

2、根据本技术的一个实施例,提供了一种文件的压缩编码方法,包括:

3、检测对目标逻辑文件执行的目标数据的目标访问操作;

4、根据初始元信息对第一物理文件中所述目标数据对应的第一文件数据进行解压并执行所述目标访问操作,得到第二文件数据,其中,所述初始元信息用于记录所述目标逻辑文件中的分块区间与所述第一物理文件中数据物理块之间的对应关系;

5、在对所述第二文件数据进行压缩落盘的情况下,采用所述第二文件数据对应的目标压缩方式对所述第二文件数据进行压缩编码,得到第三文件数据以及所述第三文件数据的参考元信息;

6、将所述第三文件数据和所述参考元信息插入所述第一物理文件,得到所述目标逻辑文件对应的携带了目标元信息的第二物理文件,其中,所述目标元信息用于记录所述目标逻辑文件中的分块区间与所述第二物理文件中数据物理块之间的对应关系。

7、在一个示例性实施例中,所述采用所述第二文件数据对应的目标压缩方式对所述第二文件数据进行压缩编码,得到第三文件数据以及所述第三文件数据的参考元信息,包括:

8、采用所述第二文件数据对应的目标压缩方式对所述第二文件数据进行压缩,得到参考压缩数据;

9、根据参考压缩参数与初始压缩参数之间的关系对所述参考压缩数据进行编码,得到所述第三文件数据以及所述第三文件数据的参考元信息,其中,所述参考压缩参数是所述参考压缩数据的压缩参数,所述初始压缩参数是所述第一文件数据解压前的初始压缩数据的压缩参数。

10、在一个示例性实施例中,所述根据参考压缩参数与初始压缩参数之间的关系对所述参考压缩数据进行编码,得到所述第三文件数据以及所述第三文件数据的参考元信息,包括:

11、获取所述参考压缩数据中每个压缩数据块所在的分块区间的窗口号;

12、根据参考压缩参数与初始压缩参数之间的关系在所述第一物理文件的物理空间中为在每个分块区间中的压缩数据块分配数据物理块得到所述第三文件数据,并获取每个数据物理块的块编号;

13、记录具有对应关系的窗口号和块编号,得到所述第三文件数据对应的参考索引信息,其中,所述参考元信息包括所述参考索引信息。

14、在一个示例性实施例中,所述记录具有对应关系的窗口号和块编号,得到所述第三文件数据对应的参考索引信息,包括:

15、创建具有对应关系的窗口号字段和物理块信息字段;

16、根据每个所述分块区间中压缩数据块的属性和块编号按照所述物理块信息字段生成每个所述分块区间的窗口号对应的物理块信息;

17、将具有对应关系的窗口号和物理块信息添加到所述具有对应关系的窗口号字段和物理块信息字段中,得到所述参考索引信息。

18、在一个示例性实施例中,所述创建具有对应关系的窗口号字段和物理块信息字段,包括以下之一:

19、创建具有对应关系的窗口号字段,物理块数字段,块类型字段和块编号字段,所述物理块数字段用于记录对应窗口号中包括的物理块的数量,所述块类型字段用于记录对应窗口号中包括的物理块的类型;

20、创建具有对应关系的窗口号字段,区间数字段,块类型字段,块起始字段和块结尾字段,其中,所述区间数字段用于记录对应窗口号中连续的物理块区间的数量,所述块类型字段用于记录对应窗口号中包括的物理块的类型,所述块起始字段用于记录对应窗口号中一个物理块区间内的起始块编号,所述块结尾字段用于记录对应窗口号中一个物理块区间内的结尾块编号。

21、在一个示例性实施例中,所述方法还包括以下至少之一:

22、所述块类型字段包括压缩块数字段,其中,所述压缩块数字段用于记录通过压缩得到的数据块的数量;

23、在对所述第二文件数据进行压缩允许采用多种存储方式的情况下,所述具有对应关系的窗口号字段和物理块信息字段中还包括具有对应关系的窗口号字段和存储方式字段,其中,所述多种存储方式至少包括:非压缩存储,一种或者多种压缩算法中每种压缩算法存储,所述存储方式字段用于记录对应窗口号所采用的存储方式的标识。

24、在一个示例性实施例中,在对应窗口号中连续的物理块区间的数量为1的情况下,所述块起始字段用于记录对应窗口号中一个物理块区间内的起始块编号,所述块结尾字段用于记录对应窗口号中一个物理块区间内的结尾块编号;

25、在对应窗口号中连续的物理块区间的数量大于1的情况下,所述块起始字段用于指向对应窗口号的区间索引信息,所述区间索引信息用于记录多个物理块区间中每个物理块区间,所述块结尾字段用于记录对应窗口号中最后一个物理块区间内的结尾块编号。

26、在一个示例性实施例中,在所述获取每个数据物理块的块编号之后,所述方法还包括:

27、记录具有对应关系的块编号和空闲标识,得到所述第三文件数据对应的空闲空间管理信息,其中,所述参考元信息还包括所述空闲空间管理信息,所述空闲标识用于指示对应的物理块是否空闲。

28、在一个示例性实施例中,所述记录具有对应关系的块编号和空闲标识,得到所述第三文件数据对应的空闲空间管理信息,包括:

29、在为分块区间中的压缩数据块重新分配了数据物理块的情况下,记录具有对应关系的原数据物理块的块编号和第一空闲标识,以及具有对应关系的重新分配的数据物理块的块编号和第二空闲标识,其中,所述原数据物理块是分块区间在所述第一物理文件中所占用的数据物理块,所述第一空闲标识用于指示对应的物理块为空闲,所述第二空闲标识用于指示对应的物理块为非空闲。

30、在一个示例性实施例中,所述根据参考压缩参数与初始压缩参数之间的关系在所述第一物理文件的物理空间中为在每个分块区间中的压缩数据块分配数据物理块得到所述第三文件数据,包括:

31、比对第一存储空间和第二存储空间,其中,所述参考压缩参数包括所述第一存储空间,所述初始压缩参数包括所述第二存储空间,所述第一存储空间为所述参考压缩数据中当前分配数据物理块的参考分块区间中的压缩数据块所需的存储空间,所述第二存储空间为所述参考分块区间在所述第一物理文件中所占的存储空间;

32、在所述第一存储空间大于所述第二存储空间的情况下,清除所述参考分块区间在所述第一物理文件中的数据,并从所述第一物理文件中获取符合所述第一存储空间的空闲块;将所述参考分块区间的压缩数据块的数据添加至获取到的空闲块中;

33、在所述第一存储空间小于或者等于所述第二存储空间的情况下,清除所述参考分块区间在所述第一物理文件中的数据;将所述参考分块区间的压缩数据块的数据添加至清楚了数据的数据物理块中。

34、在一个示例性实施例中,所述从所述第一物理文件中获取符合所述第一存储空间的空闲块,包括:

35、从所述第一物理文件中查找符合所述第一存储空间的第一连续空闲块;

36、在查找到所述第一连续空闲块的情况下,将所述第一连续空闲块确定为获取到的空闲块;

37、在未查找到所述第一连续空闲块的情况下,在所述第一物理文件之后申请符合所述第一存储空间的第二连续空闲块;将所述第二连续空闲块确定为获取到的空闲块。

38、在一个示例性实施例中,所述从所述第一物理文件中查找符合所述第一存储空间的第一连续空闲块,包括:

39、确定所述参考分块区间的操作热度,其中,所述操作热度用于指示所述参考分块区间被操作的频率;

40、在所述操作热度大于热度阈值的情况下,从所述第一物理文件中查找符合所述第一存储空间的第一连续空闲块。

41、在一个示例性实施例中,在所述确定所述参考分块区间的操作热度之后,所述方法还包括:

42、在所述操作热度大于热度阈值的情况下,确定所述第一存储空间与所述第二存储空间之间的存储量差值;

43、从所述第一物理文件中查找符合所述存储量差值的目标空闲块;

44、将所述参考分块区间在所述第一物理文件中所占的数据物理块和所述目标空闲块确定为获取到的空闲块。

45、在一个示例性实施例中,所述将所述第三文件数据和所述参考元信息插入所述第一物理文件,得到所述目标逻辑文件对应的携带了目标元信息的第二物理文件,包括:

46、将所述第三文件数据按照所述参考元信息插入所述第一物理文件所在的物理空间,并使用所述参考元信息更新所述初始元信息,得到所述携带了目标元信息的第二物理文件。

47、在一个示例性实施例中,所述使用所述参考元信息更新所述初始元信息,包括:

48、使用所述参考元信息所包括的参考索引信息更新所述第一物理文件中的初始索引块所包括的初始索引信息,得到目标索引块,其中,所述初始元信息包括所述初始索引信息,所述参考索引信息用于记录具有对应关系的所述第三文件数据中所包括的分块区间的窗口号和所述第三文件数据在物理空间中所占数据物理块的块编号。

49、在一个示例性实施例中,所述使用所述参考元信息所包括的参考索引信息更新所述第一物理文件中的初始索引块所包括的初始索引信息,包括:

50、在所述初始索引块中查找所述参考索引信息中所记录的目标窗口号;

51、使用所述参考索引信息中所记录的块编号替换所述初始索引块中所述目标窗口号下的块编号。

52、在一个示例性实施例中,在所述使用所述参考元信息所包括的参考索引信息更新所述第一物理文件中的初始索引块所包括的初始索引信息之后,所述方法还包括:

53、使用所述参考元信息所包括的空闲空间管理信息更新所述第一物理文件中的空闲空间管理块所包括的初始空闲空间管理信息,得到目标空闲空间管理块,其中,所述初始元信息包括所述初始空闲空间管理信息,所述空闲空间管理信息用于记录具有对应关系的所述第三文件数据在物理空间中所占数据物理块的块编号和空闲标识,所述空闲标识用于指示对应的物理块是否空闲。

54、在一个示例性实施例中,在所述使用所述参考元信息所包括的空闲空间管理信息更新所述第一物理文件中的空闲空间管理块所包括的初始空闲空间管理信息之后,所述方法还包括:

55、根据所述目标索引块和所述目标空闲空间管理块更新所述第一物理文件中的文件管理块,得到目标文件管理块,其中,所述初始元信息包括所述文件管理块,所述文件管理块用于记录所述第一物理文件的文件信息,所述初始索引块的位置和所述空闲空间管理块的位置,所述目标文件管理块用于记录所述第二物理文件的文件信息,所述目标索引块的位置和所述目标空闲空间管理块的位置。

56、在一个示例性实施例中,所述根据初始元信息对第一物理文件中所述目标数据对应的第一文件数据进行解压并执行所述目标访问操作,得到第二文件数据,包括:

57、根据所述初始元信息从所述第一物理文件中提取所述目标数据对应的所述第一文件数据;

58、对所述第一文件数据进行解压,得到解压数据;

59、对所述解压数据执行所述目标访问操作,得到第二文件数据。

60、在一个示例性实施例中,所述根据所述初始元信息从所述第一物理文件中提取所述目标数据对应的所述第一文件数据,包括:

61、确定所述目标数据在所述目标逻辑文件的分块区间中所在的目标分块区间;

62、从所述初始元信息中查找所述目标分块区间所对应的目标数据物理块;

63、从所述第一物理文件中提取所述目标数据物理块作为所述第一文件数据。

64、根据本技术的另一个实施例,提供了一种文件的压缩编码装置,包括:

65、检测模块,用于检测对目标逻辑文件执行的目标数据的目标访问操作;

66、操作模块,用于根据初始元信息对第一物理文件中所述目标数据对应的第一文件数据进行解压并执行所述目标访问操作,得到第二文件数据,其中,所述初始元信息用于记录所述目标逻辑文件中的分块区间与所述第一物理文件中数据物理块之间的对应关系;

67、编码模块,用于在对所述第二文件数据进行压缩落盘的情况下,采用所述第二文件数据对应的目标压缩方式对所述第二文件数据进行压缩编码,得到第三文件数据以及所述第三文件数据的参考元信息;

68、插入模块,用于将所述第三文件数据和所述参考元信息插入所述第一物理文件,得到所述目标逻辑文件对应的携带了目标元信息的第二物理文件,其中,所述目标元信息用于记录所述目标逻辑文件中的分块区间与所述第二物理文件中数据物理块之间的对应关系。

69、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

70、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

71、通过本技术,当检测到对目标逻辑文件执行的目标数据的目标访问操作,依据初始元信息对目标逻辑文件对应的第一物理文件中目标数据相关的第一文件数据进行解压并执行目标访问操作,从而实现文件的随机读写访问,对于访问操作后得到的第二文件数据,在其需要压缩落盘时,采用相应的目标压缩方式进行压缩编码,形成第三文件数据以及参考元信息,将第三文件数据和参考元信息插入第一物理文件中,从而实现物理文件的元信息的动态生成和插入。因此,可以解决文件的访问灵活性较差的技术问题,达到提高文件的访问灵活性的技术效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1