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

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

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


背景技术:

1、在对文件进行压缩存储的过程,一般的处理方式是先采用压缩算法对文件数据进行压缩,然后再将压缩后的数据放入到存储队列中进行落盘,但是,这种方式还是会存在大量的落盘延迟时间,文件无法及时落盘就可能由于其他情况导致文件数据的丢失。

2、针对相关技术中,文件的压缩存储效率较低等问题,尚未提出有效的解决方案。


技术实现思路

1、本技术实施例提供了一种文件的压缩存储方法、装置、存储介质和电子设备,以至少解决相关技术中文件的压缩存储效率较低的问题。

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

3、在接收到第一指令的情况下,检测所述第一指令所指示落盘的第一文件的第一落盘参数和第一压缩参数,其中,所述第一指令是数据的落盘延迟时间的落盘优先级高于数据的落盘存储空间的落盘优先级的落盘指令,所述第一落盘参数用于指示在目标时间内能够落盘的缓存块数量,所述第一压缩参数用于指示在所述目标时间内能够压缩的缓存块数量;

4、对所述第一文件中符合所述第一落盘参数的第一组缓存块进行落盘,同时对所述第一文件中符合所述第一压缩参数的第二组缓存块进行压缩得到第一压缩块集合;

5、对所述第一压缩块集合进行落盘。

6、在一个示例性实施例中,所述检测所述第一指令所指示落盘的第一文件的第一落盘参数和第一压缩参数,包括:

7、确定落盘缓存块的第一耗时,以及确定使用第一压缩算法压缩缓存块的第二耗时;

8、根据所述第一耗时和所述第二耗时确定能够同时完成缓存块的落盘和压缩的所述目标时间;

9、计算在所述目标时间内能够落盘的缓存块数量作为所述第一落盘参数,并计算在所述目标时间内能够压缩的缓存块数量作为所述第一压缩参数。

10、在一个示例性实施例中,所述确定落盘缓存块的第一耗时,以及确定使用第一压缩算法压缩缓存块的第二耗时,包括:计算n个缓存块的落盘耗时作为所述第一耗时,并计算使用所述第一压缩算法压缩所述n个缓存块的压缩耗时作为所述第二耗时,其中,所述第一压缩算法是允许使用的多个压缩算法中计算速度最慢的压缩算法;

11、所述根据所述第一耗时和所述第二耗时确定能够同时完成缓存块的落盘和压缩的所述目标时间,包括:将所述第一耗时与所述第二耗时的最小公倍数确定为所述目标时间;

12、所述计算在所述目标时间内能够落盘的缓存块数量作为所述第一落盘参数,并计算在所述目标时间内能够压缩的缓存块数量作为所述第一压缩参数,包括:将所述第一落盘参数确定为n与所述目标时间之间的乘积与所述第一耗时的商值,以及将所述第一压缩参数确定为n与所述目标时间之间的乘积与所述第二耗时的商值。

13、在一个示例性实施例中,所述对所述第一文件中符合所述第一落盘参数的第一组缓存块进行落盘,包括:

14、从所述第一文件中提取符合所述第一落盘参数的所述第一组缓存块;

15、将所述第一组缓存块插入存储器输入输出队列中,其中,在所述存储器输入输出队列中所述第一组缓存块优先被落盘。

16、在一个示例性实施例中,所述对所述第一文件中符合所述第一压缩参数的第二组缓存块进行压缩得到第一压缩块集合,包括:

17、从所述第一文件中提取符合所述第一压缩参数的所述第二组缓存块;

18、采用第一压缩算法集合中的压缩算法并行对所述第二组缓存块进行压缩运算,得到多个压缩块集合,其中,所述第一压缩块集合包括所述多个压缩块集合,所述第一压缩算法集合中包括n种压缩算法,n大于1。

19、在一个示例性实施例中,所述对所述第一压缩块集合进行落盘,包括:

20、在允许使用的压缩算法为第一压缩算法集合的情况下,将所述第一压缩块集合中采用第二压缩算法得到的压缩块进行落盘,其中,所述第一压缩算法集合中包括n种压缩算法,n大于1,所述第二压缩算法是所述n种压缩算法中落盘时间最短的压缩算法,所述第一压缩块集合包括多个压缩块集合,所述多个压缩块集合是采用所述n种压缩算法并行对所述第二组缓存块进行压缩运算得到的。

21、在一个示例性实施例中,在所述将所述第一压缩块集合中采用第二压缩算法得到的压缩块进行落盘之后,所述方法还包括:

22、采用所述第二压缩算法对所述第一文件中剩余未落盘缓存块进行压缩落盘。

23、在一个示例性实施例中,所述将所述第一压缩块集合中采用第二压缩算法得到的压缩块进行落盘,包括:

24、检测所述n种压缩算法中每种压缩算法得到的压缩块的压缩比;

25、在所述n种压缩算法的压缩比一致的情况下,将所述第一压缩块集合中采用第二压缩算法得到的压缩块进行落盘。

26、在一个示例性实施例中,在所述检测所述n种压缩算法中每种压缩算法得到的压缩块的压缩比之后,所述方法还包括:

27、在所述n种压缩算法的压缩比不一致的情况下,从所述第一压缩块集合中获取所述第二组缓存块中每个缓存块对应的落盘时间最短的压缩块,得到第二压缩块集合;

28、将所述第二压缩块集合进行落盘。

29、在一个示例性实施例中,在所述将所述第二压缩块集合进行落盘之后,所述方法还包括:

30、检测所述第一文件中除所述第一组缓存块合所述第二组缓存块之外的剩余缓存块的第二落盘参数和第二压缩参数,其中,所述第二落盘参数用于指示在参考时间内能够落盘的缓存块数量,所述第二压缩参数用于指示在所述参考时间内能够压缩的缓存块数量;

31、对所述剩余缓存块中符合所述第二落盘参数的第三组缓存块进行落盘,同时对所述剩余缓存块中符合所述第二压缩参数的第四组缓存块进行压缩得到第三压缩块集合;

32、对所述第三压缩块集合进行落盘。

33、在一个示例性实施例中,所述对所述剩余缓存块中符合所述第二压缩参数的第四组缓存块进行压缩得到第三压缩块集合,包括:

34、从所述剩余缓存块中提取符合所述第二压缩参数的所述第四组缓存块;

35、采用第二压缩算法集合中的压缩算法并行对所述第四组缓存块进行压缩运算,得到所述第三压缩块集合,其中,所述第二压缩算法集合中包括所述第一压缩算法集合中n-m种压缩算法,m大于或者等于1,m种压缩算法是所述第二压缩块集合中的压缩块均未使用的压缩算法。

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、在所述实际压缩比小于所述压缩比阈值的情况下,将所述目标缓存块插入所述存储器输入输出队列中,其中,在所述存储器输入输出队列中所述目标缓存块优先被落盘;在所述目标缓存块完成落盘的情况下,释放所述目标缓存块所占用的内存空间。

72、在一个示例性实施例中,所述方法还包括:

73、在接收到第四指令的情况下,从目标存储空间中获取存储数据,其中,所述第四指令用于指示优化所述目标存储空间,所述存储数据是落盘时数据的落盘存储空间的落盘优先级低于其他落盘维度的文件数据;

74、以数据的落盘存储空间的落盘优先级为最高优先级对所述存储数据进行重新落盘。

75、在一个示例性实施例中,所述从目标存储空间中获取存储数据,包括:

76、从所述目标存储空间中获取通过所述第一指令落盘的第三文件,和/或,从所述目标存储空间中获取通过所述第三指令落盘的第四文件,其中,所述第三指令是用于指示对所述目标内存空间进行释放的指令;

77、从获取到的文件中提取所述存储数据。

78、在一个示例性实施例中,所述从获取到的文件中提取所述存储数据,包括:

79、检测获取到的文件中散列存储的数据在获取到的文件中所占的目标比重;

80、在所述目标比重大于或者等于比重阈值的情况下,将获取到的文件的全部数据确定为所述存储数据;

81、在所述目标比重小于比重阈值的情况下,从获取到的文件中提取存储性能允许提高的数据作为所述存储数据。

82、在一个示例性实施例中,所述以数据的落盘存储空间的落盘优先级为最高优先级对所述存储数据进行重新落盘,包括:

83、将所述存储数据读取至系统的内存空间中,得到内存数据;

84、对所述内存数据执行第二指令,其中,所述第二指令是数据的落盘存储空间的落盘优先级高于数据的落盘延迟时间的落盘优先级的落盘指令。

85、在一个示例性实施例中,所述方法还包括:

86、按照文件优先级记录待落盘的文件,其中,所述文件优先级用于指示文件落盘的紧急程度,所述文件优先级是根据文件类型和文件对应的指令类型确定的,所述指令类型为指示文件落盘的指令的类型。

87、在一个示例性实施例中,所述按照文件优先级记录待落盘的文件,包括:

88、采用红黑树结构记录待落盘的文件,其中,所述红黑树结构以所述文件优先级为索引,每个红黑树节点为文件链表,所述文件链表中每个链表节点为对应的文件优先级下的一个待落盘的文件的inode索引,所述inode索引指向对应的待落盘的文件的缓存。

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

90、检测模块,用于在接收到第一指令的情况下,检测所述第一指令所指示落盘的第一文件的第一落盘参数和第一压缩参数,其中,所述第一指令是数据的落盘延迟时间的落盘优先级高于数据的落盘存储空间的落盘优先级的落盘指令,所述第一落盘参数用于指示在目标时间内能够落盘的缓存块数量,所述第一压缩参数用于指示在所述目标时间内能够压缩的缓存块数量;

91、处理模块,用于对所述第一文件中符合所述第一落盘参数的第一组缓存块进行落盘,同时对所述第一文件中符合所述第一压缩参数的第二组缓存块进行压缩得到第一压缩块集合;

92、落盘模块,用于对所述第一压缩块集合进行落盘。

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

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

95、通过本技术,当接收到数据的落盘延迟时间的落盘优先级高于数据的落盘存储空间的落盘优先级的落盘指令,即第一指令,对其指示落盘的第一文件的第一落盘参数和第一压缩参数进行检测,从而检测出在目标时间内能够落盘的缓存块数量以及在所述目标时间内能够压缩的缓存块数量,同时对第一文件中符合第一落盘参数的第一组缓存块进行落盘,以及对第一文件中符合第一压缩参数的第二组缓存块进行压缩得到第一压缩块集合,再对第一压缩块集合进行落盘。从而在数据的落盘延迟时间的落盘优先级高于数据的落盘存储空间的落盘优先级的情况下,对需要落盘的文件中的部分数据进行压缩,同时对另一部分数据直接进行落盘,由于二者使用的时间均为目标时间,因此直接落盘的数据落盘结束后,进行压缩的数据也压缩结束了,从而继续进行落盘,不会出现空闲时间被浪费的情况。因此,可以解决文件的压缩存储效率较低的技术问题,达到提高文件的压缩存储效率的技术效果。

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