CN117743279A - 存储控制方法、装置、设备和介质 - Google Patents

存储控制方法、装置、设备和介质 Download PDF

Info

Publication number
CN117743279A
CN117743279A CN202311703799.6A CN202311703799A CN117743279A CN 117743279 A CN117743279 A CN 117743279A CN 202311703799 A CN202311703799 A CN 202311703799A CN 117743279 A CN117743279 A CN 117743279A
Authority
CN
China
Prior art keywords
storage
block
target
file
space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311703799.6A
Other languages
English (en)
Inventor
代安鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Pixel Software Technology Co Ltd
Original Assignee
Beijing Pixel Software Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Pixel Software Technology Co Ltd filed Critical Beijing Pixel Software Technology Co Ltd
Priority to CN202311703799.6A priority Critical patent/CN117743279A/zh
Publication of CN117743279A publication Critical patent/CN117743279A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例提供了一种存储控制方法、装置、设备和介质,涉及数据处理技术领域,方法包括获得待打包的至少一个目标文件,在包文件中建立各目标文件的索引和目录信息。针对每个目标文件,基于目标文件的大小和包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将目标文件存储至目标存储块中,从而提升存储性能。

Description

存储控制方法、装置、设备和介质
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种存储控制方法、装置、设备和介质。
背景技术
文件打包是指将多个文件组合成一个单独的文件(简称包文件),以便于加密、压缩、传输、存储、备份,可类比将一堆文件打包为一个zip压缩包文件。它可以有效地减少文件数量和管理复杂性,提高数据的整体性和可移植性。
在文件打包过程中,空间分配方式是决定如何分配存储空间以容纳文件的重要因素,现有的空间分配方式大多借鉴了操作系统的外存空间分配和内存空间分配方案,存储性能有待优化。
发明内容
本发明的目的之一包括,例如,提供了一种存储控制方法、装置、设备和介质,以至少部分地优化存储性能。
本发明的实施例可以这样实现:
第一方面,本发明提供一种存储控制方法,包括:
获得待打包的至少一个目标文件;
在包文件中建立各所述目标文件的索引和目录信息;
针对每个所述目标文件,基于所述目标文件的大小和所述包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将所述目标文件存储至所述目标存储块中。
在可选的实施方式中,所述确定出满足设定存储规则的至少一个目标存储块,包括:
按照所述包文件中各空闲块的排序,依次判断空闲块空间与所述目标文件所需空间的大小关系;
若空闲块空间大于所述目标文件所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块;
若空闲块空间小于目标文件所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块,并判断下一个空闲块空间与所述目标文件剩余所需空间的大小关系,若下一个空闲块空间大于所述目标文件剩余所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块;若下一个空闲块空间小于所述目标文件剩余所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块,并继续判断再下一个空闲块空间与所述目标文件其余所需空间的大小关系,直至确定出存储所述目标文件所需空间的全部目标存储块,将各所述目标存储块相互链接。
在可选的实施方式中,所述方法还包括:
若空闲块空间与所述目标文件所需空间差值的绝对值小于设定值,则确定该空闲块非满足设定存储规则的目标存储块,返回执行依次判断空闲块空间与所述目标文件所需空间的大小关系至确定出存储所述目标文件所需空间的全部目标存储块的步骤。
在可选的实施方式中,在所述目标存储块空间大于所述目标文件所需空间的情况下,所述将所述目标文件存储至所述目标存储块中,包括:
基于所述目标文件所需空间的大小,将所述目标存储块切割为第一存储块和第二存储块;其中,所述第一存储块与所述目标文件所需大小适配;
将所述目标文件存储至所述第一存储块;
将所述第二存储块标识为空闲块。
在可选的实施方式中,所述基于所述目标文件的大小和所述包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将所述目标文件存储至所述目标存储块中,包括:
针对每个所述目标文件,确定所述目标文件是否小于最小阈值;
在存在目标文件小于最小阈值的情况下,从所述包文件的空闲块中分配设定大小的空间对小于最小阈值的目标文件进行存储;
在所述设定大小的空间被小于最小阈值的目标文件占满后,继续从所述包文件的空闲块中分配设定大小的空间用于对小于最小阈值的目标文件进行存储,并将两个以上设定大小的空间相互链接。
在可选的实施方式中,所述方法还包括:
响应于删除请求,从包文件中查找出待删除文件;
将所述待删除文件以及所述待删除文件的索引和目录信息删除,将所述待删除文件所在存储块标记为空闲块,并检测该空闲块前后是否存在其他空闲块,在存在其他空闲块的情况下,将该空闲块与其他空闲块合并。
在可选的实施方式中,所述方法还包括:
在所述包文件的空闲块中不存在满足设定存储规则的目标存储块的情况下,从所述包文件的末端进行存储空间分配。
第二方面,本发明实施例提供一种存储控制装置,包括:
信息获得模块,用于获得待打包的至少一个目标文件;
信息处理模块,用于在包文件中建立各所述目标文件的索引和目录信息;针对每个所述目标文件,基于所述目标文件的大小和所述包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将所述目标文件存储至所述目标存储块中。
第三方面,本发明提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述实施方式任一项所述的存储控制方法。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在电子设备执行前述实施方式任一项所述的存储控制方法。
本发明实施例的有益效果包括,例如:基于目标文件的大小和包文件中空闲块的大小,灵活确定出满足设定存储规则的至少一个目标存储块对目标文件进行存储,具有较佳的灵活性和可扩展性,提高了存储性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种应用场景示意图。
图2示出了本发明实施例提供的一种存储控制方法的流程示意图。
图3示出了本发明实施例提供的一种存储控制方法的另一流程示意图。
图4示出了本发明实施例提供的一种存储控制装置的示例性结构框图。
图标:100-电子设备;110-存储器;120-处理器;130-通信模块;140-存储控制装置;141-信息获得模块;142-信息处理模块。
具体实施方式
现今,文件打包过程中的空间分配方式大多借鉴了操作系统的外存空间分配和内存空间分配方案,空间分配方式主要可分为两类:连续分配和非连续分配。
其中,连续分配一般在包文件中分配一块连续的空间,将散文件依次整个连续地写入。连续分配要求有连续的存储空间,如每一个文件要求分配一段连续的存储空间,因此采用连续分配方式,在对包内文件多次增删后,会产生许多的外部碎片,降低了存储空间利用率。并且必须事先知道文件的长度,对于一个动态增长的文件,存储效率较低。因而,连续分配方式通常在一次写入后续不再往包中增删文件的场景使用。
非连续分配方案以分块存储举例,分块存储过程中将存储空间分为固定大小的块,文件分段存储在若干个块中,通过链接或索引的方式将块链接起来。然而,将文件分块存储后读取文件需要多次读取,即使前后相邻的块也需多次读取。并且由于分配的空间只能是块大小的整数倍,因此会产生内部碎片,浪费存储空间。因而,分块存储方案通常在打包后需多次增删文件的场景使用。
由此可知,现有存储方案的存储性能有待提升。
基于上述研究,本发明实施例提供一种存储控制方案,基于所要存储的文件大小,灵活地分配存储空间,通过对空闲空间的灵活分配、释放,减少了存储空间浪费,提高了存储性能。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在发明过程中做出的贡献。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参照图1,是本实施例提供的一种电子设备100的方框示意图,本实施例中的电子设备100可以为能够进行数据交互、处理的服务器、处理设备、处理平台等。所述电子设备100包括存储器110、处理器120及通信模块130。所述存储器110、处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。
通信模块130用于通过所述网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图1所示的结构仅为电子设备100的结构示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请结合参阅图2,为本发明实施例提供的一种存储控制方法的流程示意图,可以由图1所述电子设备100执行,例如可以由电子设备100中的处理器120执行。该存储控制方法包括S110、S120和S130。
S110,获得待打包的至少一个目标文件。
S120,在包文件中建立各所述目标文件的索引和目录信息。
S130,针对每个所述目标文件,基于所述目标文件的大小和所述包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将所述目标文件存储至所述目标存储块中。
打包后的文件中,所有的文件和目录都被合并到一个文件中,在打包过程中依次输入待打包的文件,在包文件中建立输入文件的索引和目录信息,为输入文件分配相应大小的逻辑空间并存储文件数据,以合并到包文件中。
通过对设定存储规则的设置,基于待打包的目标文件的大小和包文件中空闲块的大小可以灵活确定一个或者多个目标存储块,从而将目标文件存储于一个或多个目标存储块中,提高了存储的灵活性和可扩展性,优化了存储性能。
本实施例中,包文件中的存储块可以灵活划分,设定存储规则可以灵活设置。例如,为了使得目标文件能够尽可能的存储于同一存储块以方便读写,初始状态下可以将包文件中的各存储块按较大空间划分,将设定存储规则设定为优先确保各待打包的目标文件中,存储于同一存储块中的目标文件数量最大。
又例如,为了尽可能的减少存储块空间浪费,初始状态下可以将包文件中的各存储块按较小空间划分,将设定存储规则设定为优先确保各存储块浪费空间最少。
又例如,综合考虑目标文件存储集中度和存储块空间浪费率,初始状态下可以将包文件中的各存储块按适中空间划分,将设定存储规则设定为按照各存储块可用空间情况和各目标文件大小,综合确定目标存储块。
示例性地,可以通过大数据收集,确定待打包的各文件的平均大小,按平均大小确定初始状态下包文件中各存储块的空间大小。按大小对待存储的各目标文件进行排序,按各存储块中可用空间大小对各存储块进行排序,设定存储规则为按照各目标文件与各存储块中可用空间大小,以各目标文件中被分散存储至两个以上存储块的目标文件数量最少、剩余空闲空间的存储块数量最少为目标,综合确定存储各目标文件的目标存储块。
为了便于管控,针对包文件中的各存储块可以基于标记进行管理,例如,可以针对未被使用的存储块进行标记,通过标记表征该存储块为空闲块,以在进行各目标文件存储时从标记的各存储块(空闲块)中确定出若干目标存储块用于存储,进而实现目标文件的快速、可靠存储。类似地,在删除已存储的文件释放被占用的存储块的情况下,重新将该存储块标记为空闲块,以供使用。
又例如,为了避免在目标文件存储过程中,包文件中的空闲块过于碎片化,目标文件被过于碎片化地划分,可以确定一设定值x,设定以下规则:
若|空闲块大小-目标文件所需大小|<x,则判定空闲块大小不满足要求,反之空闲块大小满足要求。
其中,设定值x可以灵活设置,例如可以将定长分块的长度大小确定为设定值。示例性地,x可以为1KB。
相应地,可以通过以下方式确定出满足设定存储规则的至少一个目标存储块:
按照所述包文件中各空闲块的排序,依次判断空闲块空间与所述目标文件所需空间的大小关系。若空闲块空间大于所述目标文件所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块。
若空闲块空间小于目标文件所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块,并判断下一个空闲块空间与所述目标文件剩余所需空间的大小关系。若下一个空闲块空间大于所述目标文件剩余所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块。若下一个空闲块空间小于所述目标文件剩余所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块,并继续判断再下一个空闲块空间与所述目标文件其余所需空间的大小关系,直至确定出存储所述目标文件所需空间的全部目标存储块。将各所述目标存储块相互链接。
若空闲块空间与所述目标文件所需空间差值的绝对值小于设定值,则确定该空闲块非满足设定存储规则的目标存储块,返回执行依次判断空闲块空间与所述目标文件所需空间的大小关系至确定出存储所述目标文件所需空间的全部目标存储块的步骤。
通过对设定值的设置,可以确保基于确定出的目标存储块进行目标文件的存储,无论是目标存储块剩余空间、还是目标文件划分出的部分均大于或者等于设定值,避免了小于设定值的空闲块和待打包文件的出现。
为了进一步提高存储块的空间利用率,在所述目标存储块空间大于所述目标文件所需空间的情况下,还可以将目标存储块中未使用部分进行分割,以作为空闲块进行备用,从而最大程度的减少存储空间浪费。
相应地,在目标存储块空间大于目标文件所需空间的情况下,在将所述目标文件存储至所述目标存储块中时,还可以基于所述目标文件所需空间的大小,将所述目标存储块切割为第一存储块和第二存储块,其中,所述第一存储块与所述目标文件所需大小适配。将所述目标文件存储至所述第一存储块,将所述第二存储块标识为空闲块。
在分配的空闲块大小大于目标文件所需大小的情况下,通过将空闲块切割,将多余的块继续标记为空闲块,以供后续使用,且多余的块的大小大于设定值,在减少存储空间浪费的同时确保了切割出的空闲块能够存储至少设定值大小的目标文件,从而避免了存储过程中空闲块和文件的碎片化。
在对各目标文件进行打包过程中,可以将包文件的末端当作一个无穷大的空闲块,因此,在包文件的各空闲块(空闲块池)中无可用的空闲块,如不存在满足设定存储规则的目标存储块的情况下,可以在包文件的末端进行存储空间分配,新分配空间用于存储,以完成对各目标文件的存储。
考虑到待打包的各目标文件中可能存在较小的小文件,而小文件的存储容易造成存储空间碎片化,管理较为繁琐,为了进一步提高存储性能,可以针对小文件集中分配存储空间进行集中管控。相应地,S130中,在进行目标文件存储过程中,可以通过设定的最小阈值确定目标文件是否为小文件,在最小阈值为x的情况下,确认小文件的规则可以如下:
若目标文件所需大小<x,则确定目标文件为小文件。
在x为定长分块的长度大小的情况下,鉴于包文件的空闲块中可能存在空闲块的空间为x,那么,可以设定该目标文件所需大小=x,从空闲块中分配x大小的空间,将目标文件存储在空间为x的空闲块中。
也可以针对每个所述目标文件,确定所述目标文件是否小于最小阈值。在存在目标文件小于最小阈值的情况下,从所述包文件的空闲块中分配设定大小的空间对小于最小阈值的目标文件进行存储。在所述设定大小的空间被小于最小阈值的目标文件占满后,继续从所述包文件的空闲块中分配设定大小的空间用于对小于最小阈值的目标文件进行存储,并将两个以上设定大小的空间相互链接。
示例性地,可以首次为所需大小<x的小文件分配y大小的空间。如某设定标识的文件,该设定标识的文件采用和散文件一样的方式存储在包文件中。将所有小文件连续的存储在该y大小的空间中。若小文件增多占满了分配的空间,则继续在包文件中分配y大小的空间,并且与上一y大小的空间链接起来,以此类推,实现对小文件的集中存储。
由于设定标识的文件中存储的均为小文件,因此可以轻松进行紧凑整理缩减空间,进一步提高了存储性能。
在完成目标文件的存储的情况下,若进行删除操作,则被占用的存储块会被释放,可供之后进行存储分配,因而,请结合参阅图3,存储控制方法还可以包括S210和S220。
S210,响应于删除请求,从包文件中查找出待删除文件。
S220,将所述待删除文件以及所述待删除文件的索引和目录信息删除,将所述待删除文件所在存储块标记为空闲块,并检测该空闲块前后是否存在其他空闲块,在存在其他空闲块的情况下,将该空闲块与其他空闲块合并。
通过在释放存储块时检查该存储块前后是否为空闲块,如是则与前后空闲块进行合并,从而进一步避免了存储块碎片化,提高了存储合理性。
为了更为清楚地阐述本实施例中的存储控制原理,进行以下示例性说明:分配空间时,针对输入文件大小,通过方法Alloc Chunks分配空间,Alloc Chunks循环调用AllocChunk方法依次获取分配的空闲块并连成链表,直至足额分配了文件所需空间。AllocChunk通过首次发现可用节点Find First Available Node获取空闲块池中的首个可用空闲块,依据情况全部使用或者分割后使用。Find First Available Node方法中采用上述设定存储规则选择并返回合规的块节点。将包文件的末端当作一个无穷大的空闲块,因此空闲块池中无可用块时在包文件的末端新分配空间用于存储。
若删除文件包中的文件,则在包文件中删除相应文件的索引信息并标记对应的空间为空闲空间。
基于本实施例中的存储控制方案,支持将目标文件分块或者整体存储在包文件中多个或者一个存储块,但是目标文件和存储块的分割大小不固定,提高了存储控制的灵活性和合理性。通过设定值避免了空闲块和文件过于碎片化。通过在存储文件时在标记的空闲块中分配若干空闲块用于存储,删文件时释放相关块并标记为空闲块,实现了对存储空间的灵活、可靠管控。通过将小文件集中存储在单独分配的空间中,从而能够便捷地整理缩减空间。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种存储控制装置的实现方式。请参阅图4,图4为本发明实施例提供的一种存储控制装置140的功能模块图,该存储控制装置140可以应用于图1所示电子设备100。需要说明的是,本实施例所提供的存储控制装置140,其基本原理及产生的技术效果和上述方法实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的方法实施例中相应内容。该存储控制装置140包括信息获得模块141和信息处理模块142。
其中,信息获得模块141用于获得待打包的至少一个目标文件。
信息处理模块142用于在包文件中建立各所述目标文件的索引和目录信息;针对每个所述目标文件,基于所述目标文件的大小和所述包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将所述目标文件存储至所述目标存储块中。
在上述基础上,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在电子设备执行上述的存储控制方法。
采用本发明实施例中的上述方案,在空闲块空间大于目标文件所需空间设定值的情况下,可以将目标文件一次打包,在包文件中一整块区域实现连续存储和读取,效果同连续存储方案,但具有更高的灵活性,可以方便地在一次打包之后再进行多次增删文件的操作。在目标文件所需空间大于空闲块空间设定值的情况下,对目标文件进行分块存储,基于设定值的设置,文件分段的段数更少、更容易地对连续的数据进行连续的读写,如设定值为定长分块,需要逐块地读写或者判断前后块是否存储的是连续数据、更省空间,避免了内部碎片的产生,可以为外存和内存的空间分配方案提供参考。
综上,本实施例中的存储控制方案增加了读取效率、减少了空间浪费,并且在具备连续存储和分块存储各自优势的情况下,进一步提升了存储灵活性、合理性,适用于各类场景,例如,适用于游戏资源文件的打包,几乎无外部碎片与内部碎片,提升了存储性能。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种存储控制方法,其特征在于,包括:
获得待打包的至少一个目标文件;
在包文件中建立各所述目标文件的索引和目录信息;
针对每个所述目标文件,基于所述目标文件的大小和所述包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将所述目标文件存储至所述目标存储块中。
2.根据权利要求1所述的存储控制方法,其特征在于,所述确定出满足设定存储规则的至少一个目标存储块,包括:
按照所述包文件中各空闲块的排序,依次判断空闲块空间与所述目标文件所需空间的大小关系;
若空闲块空间大于所述目标文件所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块;
若空闲块空间小于目标文件所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块,并判断下一个空闲块空间与所述目标文件剩余所需空间的大小关系,若下一个空闲块空间大于所述目标文件剩余所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块;若下一个空闲块空间小于所述目标文件剩余所需空间,且差值大于设定值,则将该空闲块确定为满足设定存储规则的目标存储块,并继续判断再下一个空闲块空间与所述目标文件其余所需空间的大小关系,直至确定出存储所述目标文件所需空间的全部目标存储块,将各所述目标存储块相互链接。
3.根据权利要求2所述的存储控制方法,其特征在于,所述方法还包括:
若空闲块空间与所述目标文件所需空间差值的绝对值小于设定值,则确定该空闲块非满足设定存储规则的目标存储块,返回执行依次判断空闲块空间与所述目标文件所需空间的大小关系至确定出存储所述目标文件所需空间的全部目标存储块的步骤。
4.根据权利要求2所述的存储控制方法,其特征在于,在所述目标存储块空间大于所述目标文件所需空间的情况下,所述将所述目标文件存储至所述目标存储块中,包括:
基于所述目标文件所需空间的大小,将所述目标存储块切割为第一存储块和第二存储块;其中,所述第一存储块与所述目标文件所需大小适配;
将所述目标文件存储至所述第一存储块;
将所述第二存储块标识为空闲块。
5.根据权利要求2所述的存储控制方法,其特征在于,所述基于所述目标文件的大小和所述包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将所述目标文件存储至所述目标存储块中,包括:
针对每个所述目标文件,确定所述目标文件是否小于最小阈值;
在存在目标文件小于最小阈值的情况下,从所述包文件的空闲块中分配设定大小的空间对小于最小阈值的目标文件进行存储;
在所述设定大小的空间被小于最小阈值的目标文件占满后,继续从所述包文件的空闲块中分配设定大小的空间用于对小于最小阈值的目标文件进行存储,并将两个以上设定大小的空间相互链接。
6.根据权利要求1至5任意一项所述的存储控制方法,其特征在于,所述方法还包括:
响应于删除请求,从包文件中查找出待删除文件;
将所述待删除文件以及所述待删除文件的索引和目录信息删除,将所述待删除文件所在存储块标记为空闲块,并检测该空闲块前后是否存在其他空闲块,在存在其他空闲块的情况下,将该空闲块与其他空闲块合并。
7.根据权利要求1所述的存储控制方法,其特征在于,所述方法还包括:
在所述包文件的空闲块中不存在满足设定存储规则的目标存储块的情况下,从所述包文件的末端进行存储空间分配。
8.一种存储控制装置,其特征在于,包括:
信息获得模块,用于获得待打包的至少一个目标文件;
信息处理模块,用于在包文件中建立各所述目标文件的索引和目录信息;针对每个所述目标文件,基于所述目标文件的大小和所述包文件中空闲块的大小,确定出满足设定存储规则的至少一个目标存储块,将所述目标文件存储至所述目标存储块中。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至7任一项所述的存储控制方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在电子设备执行权利要求1至7任一项所述的存储控制方法。
CN202311703799.6A 2023-12-12 2023-12-12 存储控制方法、装置、设备和介质 Pending CN117743279A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311703799.6A CN117743279A (zh) 2023-12-12 2023-12-12 存储控制方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311703799.6A CN117743279A (zh) 2023-12-12 2023-12-12 存储控制方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN117743279A true CN117743279A (zh) 2024-03-22

Family

ID=90282636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311703799.6A Pending CN117743279A (zh) 2023-12-12 2023-12-12 存储控制方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN117743279A (zh)

Similar Documents

Publication Publication Date Title
US7610468B2 (en) Modified buddy system memory allocation
CN106294190B (zh) 一种存储空间管理方法及装置
CN107122133B (zh) 数据存储方法及装置
CN108121813B (zh) 数据管理方法、装置、系统、存储介质及电子设备
US20210034674A1 (en) Cuckoo tree with duplicate key support
CN109032533B (zh) 一种数据存储方法、装置和设备
US10804930B2 (en) Compressed data layout with variable group size
CN110647502A (zh) 一种文件加载方法、设备、装置和计算机存储介质
EP3252624B1 (en) Method and apparatus for replicating data
WO2022083287A1 (zh) 存储空间管理方法、装置、设备及存储介质
US20150169623A1 (en) Distributed File System, File Access Method and Client Device
CN111984729A (zh) 异构数据库数据同步方法、装置、介质和电子设备
CN111190537B (zh) 一种追加写场景下顺序存储磁盘管理的方法及系统
CN115840731A (zh) 文件处理方法、计算设备及计算机存储介质
US20170255393A1 (en) Storage device and storage method
CN108132759B (zh) 一种文件系统中管理数据的方法和装置
KR100907477B1 (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
CN109144403B (zh) 一种用于云盘模式切换的方法与设备
CN113672171A (zh) 分布式对象存储方法、装置、系统和元数据服务器
CN111552438B (zh) 一种对象写入的方法、装置、服务器和存储介质
CN111414339B (zh) 一种文件的处理方法、系统、装置、设备及介质
CN116578410A (zh) 资源管理方法、装置、计算机设备和存储介质
CN107111549B (zh) 一种文件系统的管理方法及装置
CN117743279A (zh) 存储控制方法、装置、设备和介质
CN113568877A (zh) 一种文件合并方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination