CN111897493A - 存储空间管理方法、装置及电子设备、存储介质 - Google Patents
存储空间管理方法、装置及电子设备、存储介质 Download PDFInfo
- Publication number
- CN111897493A CN111897493A CN202010682733.3A CN202010682733A CN111897493A CN 111897493 A CN111897493 A CN 111897493A CN 202010682733 A CN202010682733 A CN 202010682733A CN 111897493 A CN111897493 A CN 111897493A
- Authority
- CN
- China
- Prior art keywords
- space
- occupied
- idle
- data
- data segment
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种存储空间管理方法、装置及电子设备、存储介质,涉及数据存储领域。通过获取存储设备中数据块占据的存储空间的空间索引;然后根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;最后如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间,实现了将数据块占据的存储空间中的所有的碎片闲置空间整合成一个闲置空间,使得整合后的闲置空间可以满足数据的存储,实现了闲置空间的重复利用,节省了存储资源,仅在空间利用状态参数处于预设的数值区间时才进行碎片闲置空间整合,使得满足在闲置空间的重复利用的同时IO消耗较小。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种存储空间管理方法、装置及电子设备、存储介质。
背景技术
云存储是一种通过集群应用、网格技术和分布式自有存储文件***等方式,将网络中大量的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的***。云存储中的每一个存储服务器称为一个存储节点。存储节点中包括用于存储数据的存储设备,如磁盘、SSD、FC设备等。
通常地,在存储设备中,存储有多个数据块,每个数据块中包括有多个数据段,当数据块的存储空间未被数据段全部占用时,说明数据块的存储空间存在闲置空间。
在现有技术中,当数据块的存储空间存在闲置空间时,闲置空间被默认为空间很小,不足以满足数据的存储,通常遭到废弃,没有被重复利用,造成了资源的浪费。
发明内容
第一方面,本申请实施例提供了一种存储空间管理方法,包括:
获取存储设备中数据块占据的存储空间的空间索引,其中,所述数据块占据的存储空间包括数据段的占用空间与被所述占用空间隔离的至少两个碎片闲置空间;
根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;
如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间。
第二方面,本申请实施例还提供了一种存储空间管理装置,包括:
信息获取单元,被配置成获取存储设备中数据块占据的存储空间的空间索引,其中,所述数据块占据的存储空间包括数据段的占用空间与被所述占用空间隔离的至少两个碎片闲置空间;
参数确定单元,被配置成根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;
数据迁移单元,被配置成如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间。
第三方面,本申请实施例还提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如本申请实施例第一方面所述的存储空间管理方法。
第四方面,本申请实施例还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本申请实施例第一方面所述的存储空间管理方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:通过获取存储设备中数据块占据的存储空间的空间索引;然后根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;最后如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间,从而实现了将数据块占据的存储空间中的所有的碎片闲置空间整合成一个闲置空间,使得整合后的闲置空间可以满足数据的存储,从而实现了闲置空间的重复利用,节省了存储资源,并且由于在碎片闲置空间整合时,需要进行数据读写,造成IO消耗较大,因此仅在空间利用状态参数处于预设的数值区间时才进行碎片闲置空间整合,使得满足在闲置空间的重复利用的同时IO消耗较小。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的存储设备与电子设备的交互示意图;
图2为本申请的其中一种实施例提供的存储空间管理方法的流程图;
图3为本申请实施例提供的数据块占据的存储空间的结构示意图;
图4为本申请实施例提供的进行数据段迁移后的数据块占据的存储空间的结构示意图;
图5为本申请的其中一种实施例提供的存储空间管理方法的流程图;
图6为本申请的其中一种实施例提供的存储空间管理方法的流程图;
图7为本申请的其中一种实施例提供的存储空间管理装置的功能模块示意图;
图8为本申请的其中一种实施例提供的存储空间管理装置的功能模块示意图;
图9为本申请的其中一种实施例提供的存储空间管理装置的功能模块示意图;
图10为本申请的其中一种实施例提供的存储空间管理装置的功能模块示意图;
图11为本申请的其中一种实施例提供的电子设备的电路连接框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
索引区域:存储设备中用来存储数据块所对应的索引的区域。
数据块:存储设备中用来存储数据的块。
IO:输入输出,I指的是input,O指的是output。
空间利用状态参数:表征数据块中数据段的占用空间的情况与闲置空间的情况。
请参阅图1,本申请实施例提供了一种存储空间管理方法,应用于电子设备101,其中,电子设备101可以为服务器。如图2所示,服务器通过数据总线与存储设备102通信。所述方法包括:
S11:获取存储设备102中数据块占据的存储空间的空间索引,其中,数据块占据的存储空间包括数据段的占用空间与被占用空间隔离的至少两个碎片闲置空间。
空间索引的内容可以包括:每个数据段的占用空间的起始地址、结束地址以及空间大小,每个碎片闲置空间的起始地址、结束地址以及空间大小,数据块的占用空间的起始地址、结束地址以及空间大小。
例如,如图3所示,数据块占据的存储空间的结构可以为:数据块占据的存储空间包括数据区与索引区,其中,数据区包括数据段1、数据段2、空闲空间1、数据段3、空闲空间2、数据段4……数据段N,索引区包括索引内容 1、索引内容2、索引内容3、索引内容4……索引内容N,其中,一个索引内容对应一个数据段。另外,数据块还可以包括备索引区,备索引区的数据结构与主索引区的数据结构相同,在此不再多做赘述。
S12:根据空间索引,确定数据块占据的存储空间的空间利用状态参数。
S13:判断空间利用状态参数处于预设的数值区间是否在预设的数值区间内,如果是,则执行S14。
例如,当空间利用状态参数处于数据区间[A,B)内时,可能将数据块占据的存储空间中的碎片闲置空间整合后的目标闲置空间的空间大小仍然较小,因此,对存储空间中的数据段的迁移带来的空间收益小,则不进行数据段迁移 (对数据段迁移会造成IO消耗)。当空间利用状态参数处于数据区间(C,D) 内时,说明当前的数据块占据的存储空间中可能包含空间大小较大的碎片闲置空间,可以满足数据的存储,也不进行数据段的迁移(对数据段迁移会造成IO 消耗)。当空间利用状态参数处于预设的数值区间为[B,C]时,当前的数据块占据的存储空间中可能不包含空间大小较大的碎片闲置空间,并且将数据块占据的存储空间中的碎片闲置空间整合后的目标闲置空间的空间大小较大,因此,需要预先判断空间利用状态参数是否在预设的数值区间内,来决定是否进行数据段的迁移。
S14:根据空间索引对数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间。
例如,对图3中的数据段3迁移至与数据段2相邻,如图4所示,以使得空闲空间1、空闲空间2合并成目标闲置空间。
另外,目标闲置空间可以位于数据块的任意一个位置。如,目标闲置空间可以位于数据块的块头或者块尾,如果根据空间索引对数据段依次向块头进行迁移,则目标闲置空间位于数据块的块尾,如果根据空间索引对数据段依次向块尾进行迁移,则目标闲置空间位于数据块的块头。
该存储空间管理方法通过获取存储设备102中数据块占据的存储空间的空间索引;然后根据空间索引,确定数据块占据的存储空间的空间利用状态参数;最后如果空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间,从而实现了将数据块占据的存储空间中的所有的碎片闲置空间整合成一个闲置空间,使得整合后的闲置空间可以满足数据的存储,从而实现了闲置空间的重复利用,节省了存储资源,并且由于在碎片闲置空间整合时,需要进行数据读写,造成IO消耗较大,因此仅在空间利用状态参数处于预设的数值区间时才进行碎片闲置空间整合,使得满足在闲置空间的重复利用的同时IO消耗较小。
具体地,如图5所示,S14包括:
S141:根据空间索引从占用空间中确定一个目标占用空间以及将与目标占用空间相邻的碎片闲置空间确定为待合并闲置空间。
例如,把图3中的数据段3确定为目标占用空间,将空闲空间1与空闲空间2确定为待合并闲置空间。
S142:将目标占用空间中的数据段读出,以使被读出数据段的目标占用空间与待合并闲置空间合并,形成合并闲置空间。
例如,把图3中的数据段3读出,将数据段3被读出后空出来的空间与待合并闲置空间,形成合并闲置空间。
S143:将读出的数据段写入合并闲置空间,并且被写入的数据段相对于与合并闲置空间相邻的数据段位置连续。
例如,将被读出的数据段3写入合并闲置空间,并且数据段3与数据段2 的位置连续。
S144:将合并闲置空间中被写入的数据段的空间与位置连续的数据段的占用空间合并生成新的目标占用空间,以及将合并闲置空间中未被写入数据段的空间确定为新的待合并闲置空间。
例如,将图3中的位置连续的数据段1、数据段2以及数据段3确定为新的目标占用空间,将合并闲置空间中未被数据段3占用的空间确定为新的待合并闲置空间。
S145:判断当前剩余的碎片闲置空间的数量是否为一个;如果是,则执行 S146,如果否,则返回执行S142。
S146:将新的待合并闲置空间确定为目标闲置空间的操作。
可选地,如图6所示,S142、S143包括:
S61:判断目标占用空间的大小是否大于与目标占用空间相邻的碎片闲置空间的大小,如果是,则执行S62,如果否,则执行S63。
S62:将读出的数据段写入合并闲置空间。
S63:将目标占用空间中的数据段以及空间索引中目标占用空间对应的索引内容读出并写入备用数据空间。
S64:判断存储设备102是否运行异常,如果否,则执行S65,如果是,则执行S66。
S65:将读出的数据段写入合并闲置空间,然后删除写入备用数据空间的数据段。
S66:如果检测到存储设备102重启时,根据空间索引中目标占用空间对应的索引内容,将备用数据空间读出的数据段还原至目标占用空间;并返回 S63。
由于数据段在被读出、写入的过程中可能会出现程序崩溃或者断电等问题,可能导致数据丢失或者异常。为了保证数据的安全性,当有可能出现数据覆盖导致数据破坏的风险时,通过S61-S65的方式,可以防止数据被破坏后无法还原。
可选地,所述方法还包括:
将读出的数据段写入合并闲置空间的同时,更新空间索引中目标占用空间对应的索引内容以及更新合并闲置空间中被写入的数据段的空间对应的索引内容。
由于保持空间索引本身的位置不变,并且根据数据段迁移情况对空间索引中的索引内容进行了更新,从而保证了外部数据库能够正常的查询、访问数据块占用的存储空间中的内容。
具体地,本实施例中,S12的实现包括但不限于以下两种方式:
第一种:根据空间索引确定数据段的占用空间的数量与被占用空间隔离的所有碎片闲置空间的数量。
根据数据段的占用空间的数量与被占用空间隔离的所有碎片闲置空间的数量二者之和,以及数据段的占用空间的数量或被占用空间隔离的所有碎片闲置空间的数量,确定空间利用状态参数。
例如,根据算式空间利用状态参数=数据段的占用空间的数量/数据段的占用空间的数量与被占用空间隔离的所有碎片闲置空间的数量二者之和,或空间利用状态参数=被占用空间隔离的所有碎片闲置空间的数量/数据段的占用空间的数量与被占用空间隔离的所有碎片闲置空间的数量二者之和,确定空间利用状态参数。
第二种:根据空间索引确定数据块占据的存储空间的大小,以及确定数据段的占用空间的空间大小或被占用空间隔离的所有碎片闲置空间的大小。
根据数据块占据的存储空间的大小,以及数据段的占用空间的空间大小或被占用空间隔离的所有碎片闲置空间的大小确定空间利用状态参数,确定空间利用状态参数。
根据算式空间利用状态参数=数据段的占用空间的大小/数据段的占用空间的大小与被占用空间隔离的所有碎片闲置空间的数量二者之和,或空间利用状态参数=被占用空间隔离的所有碎片闲置空间的大小/数据段的占用空间的大小与被占用空间隔离的所有碎片闲置空间的大小二者之和,确定空间利用状态参数。
请参阅图7,本申请实施例还提供了一种存储空间管理装置700,应用于电子设备101,其中,电子设备101可以为服务器。如图2所示,服务器通过数据总线与存储设备102通信。需要说明的是,本申请实施例所提供的存储空间管理装置700,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本申请实施例部分未提及之处,可参考上述的实施例中相应内容。所述装置700 包括信息获取单元701、参数确定单元702以及数据迁移单元703,其中,
信息获取单元701被配置成获取存储设备102中数据块占据的存储空间的空间索引。
其中,数据块占据的存储空间包括数据段的占用空间与被占用空间隔离的至少两个碎片闲置空间。
参数确定单元702被配置成根据空间索引,确定数据块占据的存储空间的空间利用状态参数。
数据迁移单元703被配置成如果空间利用状态参数处于预设的数值区间,则根据空间索引对数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间。
可选地,目标闲置空间可以位于数据块的任意一个位置。如,目标闲置空间可以位于数据块的块头或者块尾,如果根据空间索引对数据段依次向块头进行迁移,则目标闲置空间位于数据块的块尾,如果根据空间索引对数据段依次向块尾进行迁移,则目标闲置空间位于数据块的块头。
该存储空间管理装置700,在执行时可以实现如下功能:通过获取存储设备102中数据块占据的存储空间的空间索引;然后根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;最后如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间,从而实现了将数据块占据的存储空间中的所有的碎片闲置空间整合成一个闲置空间,使得整合后的闲置空间可以满足数据的存储,从而实现了闲置空间的重复利用,节省了存储资源,并且由于在碎片闲置空间整合时,需要进行数据读写,造成IO消耗较大,因此,仅在空间利用状态参数处于预设的数值区间时才进行碎片闲置空间整合,使得满足在闲置空间的重复利用的同时IO消耗较小。
具体地,如图8所示,数据迁移单元703可以包括:
目标确定模块801,被配置成根据空间索引从占用空间中确定一个目标占用空间以及将与目标占用空间相邻的碎片闲置空间确定为待合并闲置空间。
数据读出模块802,被配置成将目标占用空间中的数据段读出,以使被读出数据段的目标占用空间与待合并闲置空间合并,形成合并闲置空间。
数据写入模块803,被配置成将读出的数据段写入合并闲置空间,并且被写入的数据段相对于与合并闲置空间相邻的数据段位置连续。
目标确定模块801,还被配置成将合并闲置空间中被写入的数据段的空间与位置连续的数据段的占用空间合并生成新的目标占用空间,以及将合并闲置空间中未被写入数据段的空间确定为新的待合并闲置空间。
数据判断模块804,被配置成判断当前剩余的碎片闲置空间的数量是否为一个。
结果确定模块805,被配置成如果是,则执行将新的待合并闲置空间确定为目标闲置空间的操作。
进程返回模块806,被配置成如果否,则执行返回将目标占用空间中的数据段读出,以使被读出数据段的目标占用空间与待合并闲置空间合并,形成合并闲置空间的操作。
可选地,数据读出模块802,被配置成如果目标占用空间的大小大于与目标占用空间相邻的碎片闲置空间的大小,则将目标占用空间中的数据段以及空间索引中目标占用空间对应的索引内容读出并写入备用数据空间。
数据写入模块803,被配置成如果未检测到存储设备102运行异常,则将读出的数据段写入合并闲置空间,然后删除写入备用数据空间的数据段。
如图9所示,所述装置700还包括:
数据还原模块901,被配置成如果检测到存储设备102重启时,根据空间索引中目标占用空间对应的索引内容,将备用数据空间读出的数据段还原至目标占用空间。
进行返回模块806还被配置成返回将目标占用空间中的数据段以及空间索引中目标占用空间对应的索引内容读出并写入备用数据空间的操作。
可选地,如图10所示,所述装置700还包括:
数据更新单元704,被配置成将读出的数据段写入合并闲置空间的同时,更新空间索引中目标占用空间对应的索引内容以及更新合并闲置空间中被写入的数据段的空间对应的索引内容。
具体地,本申请实施例中,参数确定单元702的实现确定参数的功能的方式包括但不限于以下两种:
第一种:参数确定单元702被配置成根据空间索引确定数据段的占用空间的数量与被占用空间隔离的所有碎片闲置空间的数量;根据数据段的占用空间的数量与被占用空间隔离的所有碎片闲置空间的数量二者之和,以及数据段的占用空间的数量或被占用空间隔离的所有碎片闲置空间的数量,确定空间利用状态参数。
第二种:参数确定单元702被配置成根据空间索引确定数据块占据的存储空间的大小,以及确定数据段的占用空间的空间大小或被占用空间隔离的所有碎片闲置空间的大小;根据数据块占据的存储空间的大小,以及数据段的占用空间的空间大小或被占用空间隔离的所有碎片闲置空间的大小确定空间利用状态参数。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图11是本申请的一个实施例电子设备101的结构示意图。请参考图11,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成存储空间管理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取存储设备中数据块占据的存储空间的空间索引,其中,所述数据块占据的存储空间包括数据段的占用空间与被所述占用空间隔离的至少两个碎片闲置空间;
根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;
如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间。
上述如本申请图1所示实施例揭示的存储空间管理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor, NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field -Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的方法,并实现存储空间管理装置在图1所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或至少两个程序,该一个或至少两个程序包括指令,该指令当被包括至少两个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图 1所示实施例的方法,并具体用于执行以下操作:
获取存储设备中数据块占据的存储空间的空间索引,其中,所述数据块占据的存储空间包括数据段的占用空间与被所述占用空间隔离的至少两个碎片闲置空间;
根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;
如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (10)
1.一种存储空间管理方法,其特征在于,包括:
获取存储设备中数据块占据的存储空间的空间索引,其中,所述数据块占据的存储空间包括数据段的占用空间与被所述占用空间隔离的至少两个碎片闲置空间;
根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;
如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间。
2.根据权利要求1所述的方法,其特征在于,所述如果所述空间利用状态参数处于预设的数值区间时,根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间包括:
根据所述空间索引从所述占用空间中确定一个目标占用空间以及将与所述目标占用空间相邻的碎片闲置空间确定为待合并闲置空间;
将所述目标占用空间中的数据段读出,以使被读出数据段的目标占用空间与待合并闲置空间合并,形成合并闲置空间;
将读出的数据段写入合并闲置空间,并且被写入的数据段相对于与合并闲置空间相邻的数据段位置连续;
将合并闲置空间中被写入的数据段的空间与所述位置连续的数据段的占用空间合并生成新的目标占用空间,以及将所述合并闲置空间中未被写入数据段的空间确定为新的待合并闲置空间;
判断当前剩余的碎片闲置空间的数量是否为一个;
如果是,则执行将所述新的待合并闲置空间确定为目标闲置空间的操作;
如果否,则执行返回将目标占用空间中的数据段读出,以使被读出数据段的目标占用空间与待合并闲置空间合并,形成合并闲置空间的操作。
3.根据权利要求2所述的方法,其特征在于,所述将目标占用空间中的数据段读出包括:如果目标占用空间的大小大于与所述目标占用空间相邻的碎片闲置空间的大小,则将目标占用空间中的数据段以及所述空间索引中所述目标占用空间对应的索引内容读出并写入备用数据空间;
所述将读出的数据段写入合并闲置空间包括:
如果未检测到所述存储设备运行异常,则将读出的数据段写入合并闲置空间,然后删除写入所述备用数据空间的数据段;
如果检测到所述存储设备重启时,根据所述空间索引中目标占用空间对应的索引内容,将备用数据空间读出的数据段还原至所述目标占用空间;
返回将目标占用空间中的数据段以及所述空间索引中目标占用空间对应的索引内容读出并写入备用数据空间的操作。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将读出的数据段写入合并闲置空间的同时,更新所述空间索引中目标占用空间对应的索引内容以及更新合并闲置空间中被写入的数据段的空间对应的索引内容。
5.根据权利要求1所述的方法,其特征在于,所述根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数包括:
根据所述空间索引确定数据段的占用空间的数量与被所述占用空间隔离的所有碎片闲置空间的数量;
根据数据段的占用空间的数量与被所述占用空间隔离的所有碎片闲置空间的数量二者之和,以及数据段的占用空间的数量或被所述占用空间隔离的所有碎片闲置空间的数量,确定空间利用状态参数。
6.根据权利要求1所述的方法,其特征在于,所述根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数包括:
根据所述空间索引确定数据块占据的存储空间的大小,以及确定数据段的占用空间的空间大小或被所述占用空间隔离的所有碎片闲置空间的大小;
根据数据块占据的存储空间的大小,以及数据段的占用空间的空间大小或被所述占用空间隔离的所有碎片闲置空间的大小确定空间利用状态参数。
7.根据权利要求1所述的方法,其特征在于,所述目标闲置空间位于所述数据块的块头或者块尾。
8.一种存储空间管理装置,其特征在于,包括:
信息获取单元,被配置成获取存储设备中数据块占据的存储空间的空间索引,其中,所述数据块占据的存储空间包括数据段的占用空间与被所述占用空间隔离的至少两个碎片闲置空间;
参数确定单元,被配置成根据所述空间索引,确定数据块占据的存储空间的空间利用状态参数;
数据迁移单元,被配置成如果所述空间利用状态参数处于预设的数值区间,则根据所述空间索引对所述数据段进行迁移,以使所有的碎片闲置空间合并成一个目标闲置空间。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的存储空间管理方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至7中任一项所述的存储空间管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010682733.3A CN111897493B (zh) | 2020-07-15 | 2020-07-15 | 存储空间管理方法、装置及电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010682733.3A CN111897493B (zh) | 2020-07-15 | 2020-07-15 | 存储空间管理方法、装置及电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897493A true CN111897493A (zh) | 2020-11-06 |
CN111897493B CN111897493B (zh) | 2023-03-10 |
Family
ID=73192023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010682733.3A Active CN111897493B (zh) | 2020-07-15 | 2020-07-15 | 存储空间管理方法、装置及电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897493B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463058A (zh) * | 2020-11-27 | 2021-03-09 | 杭州海康威视***技术有限公司 | 一种碎片数据整理方法、装置及存储节点 |
CN112817526A (zh) * | 2021-01-19 | 2021-05-18 | 杭州和利时自动化有限公司 | 一种数据存储方法、装置及介质 |
CN113126918A (zh) * | 2021-04-01 | 2021-07-16 | 山东英信计算机技术有限公司 | 一种碎片化数据读取方法、装置及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007033746A1 (de) * | 2006-10-12 | 2008-04-17 | Giesecke & Devrient Gmbh | Verwaltung von Datenobjekten in einem Haldenspeicher |
CN102279808A (zh) * | 2011-09-06 | 2011-12-14 | 晨星软件研发(深圳)有限公司 | 一种嵌入式设备图像内存管理方法及装置 |
CN103488685A (zh) * | 2013-09-02 | 2014-01-01 | 上海网达软件股份有限公司 | 一种基于分布式存储***的碎片文件存储方法 |
CN105224237A (zh) * | 2014-05-26 | 2016-01-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN105975398A (zh) * | 2015-12-07 | 2016-09-28 | 国家电网公司 | 一种内存碎片管理方法 |
CN110321329A (zh) * | 2019-06-18 | 2019-10-11 | 中盈优创资讯科技有限公司 | 基于大数据的数据处理方法及装置 |
CN110609748A (zh) * | 2019-09-05 | 2019-12-24 | 青岛海信移动通信技术股份有限公司 | 一种内存分配方法、电子设备及存储介质 |
-
2020
- 2020-07-15 CN CN202010682733.3A patent/CN111897493B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007033746A1 (de) * | 2006-10-12 | 2008-04-17 | Giesecke & Devrient Gmbh | Verwaltung von Datenobjekten in einem Haldenspeicher |
CN102279808A (zh) * | 2011-09-06 | 2011-12-14 | 晨星软件研发(深圳)有限公司 | 一种嵌入式设备图像内存管理方法及装置 |
CN103488685A (zh) * | 2013-09-02 | 2014-01-01 | 上海网达软件股份有限公司 | 一种基于分布式存储***的碎片文件存储方法 |
CN105224237A (zh) * | 2014-05-26 | 2016-01-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN105975398A (zh) * | 2015-12-07 | 2016-09-28 | 国家电网公司 | 一种内存碎片管理方法 |
CN110321329A (zh) * | 2019-06-18 | 2019-10-11 | 中盈优创资讯科技有限公司 | 基于大数据的数据处理方法及装置 |
CN110609748A (zh) * | 2019-09-05 | 2019-12-24 | 青岛海信移动通信技术股份有限公司 | 一种内存分配方法、电子设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463058A (zh) * | 2020-11-27 | 2021-03-09 | 杭州海康威视***技术有限公司 | 一种碎片数据整理方法、装置及存储节点 |
CN112817526A (zh) * | 2021-01-19 | 2021-05-18 | 杭州和利时自动化有限公司 | 一种数据存储方法、装置及介质 |
CN113126918A (zh) * | 2021-04-01 | 2021-07-16 | 山东英信计算机技术有限公司 | 一种碎片化数据读取方法、装置及介质 |
CN113126918B (zh) * | 2021-04-01 | 2023-02-28 | 山东英信计算机技术有限公司 | 一种碎片化数据读取方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111897493B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111897493B (zh) | 存储空间管理方法、装置及电子设备、存储介质 | |
CN108846749B (zh) | 一种基于区块链技术的分片化的交易执行***及方法 | |
CN111737265B (zh) | 区块数据访问方法、区块数据存储方法及装置 | |
CN110716845B (zh) | 一种Android***的日志信息读取的方法 | |
CN112365244B (zh) | 数据生命周期管理方法和装置 | |
CN112463058B (zh) | 一种碎片数据整理方法、装置及存储节点 | |
CN110019063B (zh) | 计算节点数据容灾回放的方法、终端设备及存储介质 | |
CN111984204B (zh) | 一种数据读写方法、装置及电子设备和存储介质 | |
CN111611145A (zh) | 崩溃信息收集方法、装置、存储介质及电子设备 | |
CN111198777A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN115391337A (zh) | 数据库分区的方法、装置、存储介质及电子设备 | |
CN110851434A (zh) | 一种数据存储方法、装置及设备 | |
CN111414207A (zh) | 一种页面搭建方法、装置和设备 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN111008233B (zh) | 一种kv数据库的访问方法、装置及设备 | |
CN110569315B (zh) | 基于数据仓库的数据处理方法和装置 | |
CN112907198B (zh) | 业务状态流转维护方法、装置及电子设备 | |
CN113821193B (zh) | 一种信息生成的方法、装置和存储介质 | |
CN111459474B (zh) | 一种模板化的数据处理方法及装置 | |
CN108959517B (zh) | 文件管理方法、装置及电子设备 | |
CN114675995A (zh) | 数据备份方法、装置和电子设备 | |
CN107305582B (zh) | 一种元数据处理方法及装置 | |
CN111078714B (zh) | 数据处理的方法及装置 | |
CN112231292A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |