CN117666926A - 数据存储方法、装置和电子设备 - Google Patents
数据存储方法、装置和电子设备 Download PDFInfo
- Publication number
- CN117666926A CN117666926A CN202211043529.2A CN202211043529A CN117666926A CN 117666926 A CN117666926 A CN 117666926A CN 202211043529 A CN202211043529 A CN 202211043529A CN 117666926 A CN117666926 A CN 117666926A
- Authority
- CN
- China
- Prior art keywords
- time period
- duty ratio
- space
- duty cycle
- storage 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
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004904 shortening Methods 0.000 claims description 10
- 239000002699 waste material Substances 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据存储方法、装置和电子设备,包括:每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,基于所述初始占比在所述存储空间内进行数据存储。本发明能够动态调整索引节点的大小,避免存储空间的浪费。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据存储方法、装置和电子设备。
背景技术
磁盘格式化之后,会分为数据块(block)和索引节点(inode)两个部分。block是文件存取的最小单位,用来存储真正的数据内容;inode用来存储文件的元信息,即,数据的一些属性,例如文件大小、权限信息、所有者信息等等。其中,inode的占比在磁盘格式化时给定,每个inode一般是256个字节或者512个字节。每个文件具有一个inode,每个inode具有唯一编号,操作***就是根据inode的编号来操作不同的文件。当操作***要读取某个文件时,先找到文件名对应的inode编号,然后获取inode中的信息,根据inode信息再获取对应的block,从block中读取数据。
由于每个文件都具有一个inode,当文件很小,inode占比也很小时,会出现磁盘的inode已经用完,但整个磁盘空间还未存满的情况,导致磁盘空间的浪费。
发明内容
本发明提供一种数据存储方法、装置和电子设备,用以解决现有技术中磁盘空间浪费的问题。
本发明提供一种数据存储方法,包括:每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
根据本发明提供的一种实施方式,所述根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,包括:获取所述索引节点在所述第i个时间段的初始占比;在所述期望占比大于或小于所述第i个时间段的初始占比时,将所述期望占比确定为所述索引节点在所述第i+1个时间段的初始占比。
根据本发明提供的一种实施方式,所述在所述期望占比大于或小于所述第i个时间段的初始占比时,将所述期望占比确定为所述索引节点在所述第i+1个时间段的初始占比,包括:在所述期望占比大于所述第i个时间段的初始占比时,确定所述数据块在所述第i个时间段的第一占比;在所述数据块的第一占比与所述索引节点的所述期望占比相匹配时,将所述期望占比确定为所述第i+1个时间段的初始占比;在所述期望占比小于所述第i个时间段的初始占比时,确定所述索引节点在所述第i个时间段的第二占比;在所述第二占比小于或等于所述期望占比时,将所述期望占比确定为所述第i+1个时间段内的初始占比。
根据本发明提供的一种实施方式,所述数据存储方法还包括:确定所述第i个时间段的初始占比与所述第i+1个时间段的初始占比之间的差异;在所述差异超过第一阈值时,缩短第i+2个时间段。
根据本发明提供的一种实施方式,所述数据存储方法还包括:确定所述第i个时间段之前,相邻的时间段的所述初始占比之间的差异;在所述相邻的时间段的所述初始占比之间的差异均不超过所述第一阈值时,增大第i个时间段。
根据本发明提供的一种实施方式,所述数据存储方法还包括:根据所述第i个时间段的空间使用信息,确定所述存储空间的空间使用率;在所述空间使用率超过第二阈值时,缩短所述目标时间段。
根据本发明提供的一种实施方式,所述确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,包括:根据第i个时间段内的空间使用信息,确定所述第i个时间段内存储数据的平均大小;基于所述平均大小确定所述索引节点的期望占比。
本发明还提供一种数据存储装置,包括:数据获取模块,用于每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;空间确定模块,用于根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;空间分配模块,用于根据所述期望占比调整所述索引节点在第i+1个时间段内的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
根据本发明的一种实施方式,所述空间分配模块具体可以包括:第一获取模块,用于获取所述索引节点在所述第i个时间段的初始占比;第一确定模块,用于在所述期望占比大于或小于所述第i个时间段的初始占比时,将所述期望占比确定为所述索引节点在所述第i+1个时间段的初始占比。
根据本发明的一种实施方式,所述第一确定模块具体包括:第二确定模块,用于在所述期望占比大于所述第i个时间段的初始占比时,确定所述数据块在所述第i个时间段的第一占比;第三确定模块,用于在所述数据块的第一占比与所述索引节点的所述期望占比相匹配时,将所述期望占比确定为所述第i+1个时间段的初始占比;第四确定模块,用于在所述期望占比小于所述第i个时间段的初始占比时,确定所述索引节点在所述第i个时间段的第二占比;第五确定模块,用于在所述第二占比小于或等于所述期望占比时,将所述期望占比确定为所述第i+1个时间段内的初始占比。
根据本发明的一种实施方式,所述数据存储装置还包括:差异确定模块,用于确定所述第i个时间段的初始占比与所述第i+1个时间段的初始占比之间的差异;时间缩短模块,用于在所述差异超过第一阈值时,缩短第i+2个时间段。
根据本发明的一种实施方式,所述数据存储装置还包括:差异计算模块,用于确定所述第i个时间段之前,相邻的时间段的所述初始占比之间的差异;时间增大模块,用于在所述相邻的时间段的所述初始占比之间的差异均不超过所述第一阈值时,增大第i个时间段。
根据本发明的一种实施方式,所述数据存储装置还包括:使用率确定模块,用于根据所述第i个时间段的空间使用信息,确定所述存储空间的空间使用率;时间段调整模块,用于在所述空间使用率超过第二阈值时,缩短所述目标时间段。
根据本发明的一种实施方式,所述空间确定模块具体包括:第一平均模块,用于根据第i个时间段内的空间使用信息,确定所述第i个时间段内存储数据的平均大小;占比计算模块,用于基于所述平均大小确定所述索引节点的期望占比。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据存储方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据存储方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据存储方法。
本发明提供的数据存储方法、装置和电子设备,每隔一段时间获取一次存储空间的空间使用信息,从而可以根据前一个时间段的空间使用信息来调整后一个时间段索引节点(inode)的占比,使得索引节点的大小动态变化,从而更好地适应实际存储的需求,避免存储空间的浪费,提高存储空间的利用率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据存储方法的流程示意图之一;
图2是本发明提供的数据存储方法的存储空间示意图;
图3是本发明提供的数据存储方法的流程示意图之二;
图4是本发明提供的数据存储方法的流程示意图之三;
图5是本发明提供的数据存储装置的结构示意图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本说明书中,用语“第一”、“第二”、“第三”等仅作为标记使用,不是对其对象的数量或顺序限制。
下面结合附图来描述本发明的数据存储方法、装置和电子设备。
本发明实施例中首先提供一种数据存储方法。示例性的,该数据存储方法可以应用于手机、平板电脑、掌上电脑、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备中,还可应用于服务器、个人计算机(personalcomputer,PC)等各种电子设备中,本发明对此不作具体限定。
图1示出了本实施例中数据存储方法的一种流程图。参考图1,该数据存储方法可以包括以下步骤:
步骤10:每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点。
存储空间指的是能够用于存储的存储介质,例如磁盘。电子设备中的磁盘在使用前需要先进行格式化,磁盘格式化时电子设备会将磁盘进行分区,划分为用于存储数据即文件的数据块(block),以及用于保存元信息的索引节点(inode),并设定索引节点或数据块的占比,索引节点与数据库的占比之和为1,即整个磁盘。
空间使用信息指的是当前已存储的数据占用的空间信息,具体可以包括已存储的文件数量、已占用的block的大小或占比,已占用的inode的大小或占比。在存储空间格式化完成后可以获取存储空间初始的空间使用信息,并每隔目标时间段统计一次存储空间的空间使用信息。
举例来说,如图2所示,磁盘(存储空间)20在格式化时,电子设备可以将磁盘20划分为两个区域,区域201和区域202。区域201为索引节点所在的区,区域202为数据块所在的区。假设磁盘20的总大小为A,格式化时电子设备默认设定的索引节点的占比为C(%)。在格式化完成后,该磁盘20的初始的空间使用信息可以如下表1:
表1
时间 | 初始时刻 |
占用大小(B) | 0 |
文件数量 | 0 |
inode占比 | C |
其中,初始时刻指的是磁盘格式化完成的时刻,通过获取电子设备的时钟的时间,可以确定磁盘格式化完成的时刻,从而记录该时刻。在该初始时刻,磁盘的占用大小为空,即,没有写入文件。
在存储文件时,***会先在区域201中为要存储的文件分配一个索引节点。索引节点的大小B由***指定,通常为256字节或者512字节。然后将要存储的文件写入索引节点指向的区域202的数据块中。
从初始时刻起每隔目标时间段可以获取一次空间使用信息,从而获取多个不同时刻的空间使用信息。目标时间段可以根据实际需求设定,例如5分钟、500秒、10分钟等等,本实施方式对此不作特殊限定。例如,目标时间段为3分钟,初始时刻为0时,可以获取初始时刻的空间使用信息,如表1,然后获取3分钟(第1个时间段)时的空间使用信息,6分钟(第2个目标时间段)时的空间使用信息等等。
每个时间段的空间使用信息可以记录在一张表中,该表的结构可以与表1相同。或者,一张表只记录特定时间段的空间使用信息,该特定的时间段大于目标时间段。例如,每隔5分钟记录一次空间使用信息,一天之内的空间使用信息保存在一张表中。为了减少对存储资源的占用,每隔一段时间可以删除记录,例如每隔一周删除记录的空间使用信息的表等等。
步骤20:根据第i个时间段内的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数。
i为开始调整索引节点占比的时间节点,可以根据实际调整的需求确定。i可以从1开始取值,当i为1时,第一个时间段为从初始时刻开始的目标时间段。当电子设备的时钟到达第一个时间段时,通过查询指令可以查询出存储空间当前存储的文件数量、存储空间的占用大小,从而得到第1个时间段的空间使用信息。示例性的,查询存储空间的占用大小时,可以采用查询指令“df-h”来查询;查询文件数量时,可以采用查询指令“df-i”进行查询,本实施方式不限于此。
举例来说,当目标时间段为n分钟时,则第一个时间段为从初始时刻开始的n分钟,第二个时间段为从n+初始时刻开始的n分钟,依次类推,当获取到第i个时间段的空间使用信息时,可以根据该空间使用信息预估当存储空间不可用时,索引节点的最终的占比,即期望占比。当存储空间中的inode用完或者block用完时,存储空间不能再写入数据,即不可用。
预估存储空间不可用时,索引节点的期望占比的方法如下:首先计算到第i个时间段时存储数据的平均大小,以及存储的数据的数量,即文件数量。然后基于存储数据的平均大小和文件数量来预测索引节点的期望占比。
具体的,以第一个时间段为例,当时间到达第一个时间段,再获取第一个时间段时存储空间的空间使用信息,此时空间使用信息如下表2:
表2
其中,第1个时刻为第1个时间段截止的时刻,即第1个时间段为从初始时刻到第1个时刻;E为第1个时刻时存储空间的占用大小,D为第1个时刻时存储空间存储的文件数量。
根据当前第1个时间段的空间使用信息,可以估算在存储空间不可用时,存储数据的平均大小为:(E-BD)/D。
存储空间不浪费的情况下,在block用完且inode用完时,存储空间不可用。在该情况下,假设最终写入的文件总数为X,inode的期望占比为Y,则有:
根据上述关系式(1),可以确定X=AD/E;Y=BD/E,从而得到X和Y的值,即最终写入的文件总数和最终索引节点所占的期望占比。
步骤30:根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
将第i+1个时间段的初始占比调整之后,电子设备则根据调整后的初始占比为要写入的文件分配索引节点以及数据块,从而对文件进行存储。调整完第i+1个时间段索引节点的占比之后,可以统计第i+1个时间段截止时的空间使用信息,执行上述图1中的步骤,再对第i+2个时间段索引节点的占比进行调整,依次类推,直到存储空间中索引节点用完或者数据块用完。本实施方式中,根据实际存储空间的使用情况可以对索引节点进行动态调整,从而使得索引节点与数据块的使用率同时接近最优,在存储空间用完时,索引节点与数据块同时达到最大使用率,避免因其中一方使用完时另一方剩余空间较多而造成空间浪费。
如果从i开始动态调整索引节点的占比,则根据第i个时间段时的期望占比,可以确定在当前是否存在存储空间的浪费。示例性的,获取索引节点当前的初始占比,即第i个时间段时的初始占比,如果预估的期望占比与该初始占比相同,则说明在该初始占比的情况下,存储空间的利用率较高,不会造成浪费。如果期望占比大于第i个时间段的初始占比,则说明在该初始占比的情况下可能会导致最终索引节点的空间不够,从而造成存储空间的浪费。因此在期望占比大于第i个时间段内的初始占比时,则将上述计算得到的期望占比确定为第i+1个时间段内索引节点的初始占比,可以避免索引节点的空间不够,造成存储空间的浪费。如果期望占比小于第i个时间段的初始占比,则说明书在该初始占比的情况下可能会导致数据块已经用完时,索引节点的空间还有剩余,从而造成存储空间的浪费。因此,在期望占比小于第i个时间段内的初始占比时,也将计算得到的期望占比作为第i+1个时间段内索引节点的初始占比。
结合上表2,第1个时间段索引节点的初始占比为C,计算出的期望占比为Y。那么,当C大于或者小于Y时,将Y作为后续时间内(即第2个时间段)索引节点的初始占比。如果C等于Y,则无需调整当前的初始占比,电子设备仍然按照当前的初始占比分配空间,存储数据。
调整索引节点的占比的同时数据块的占比也会同步改变,并且数据块与索引节点合并起来为整个存储空间。因此,为了保证调整索引节点的占比的正确性,需要考虑数据块当前已经使用的空间。具体的,在预估的期望占比大于第i个时间段内的初始占比时,确定数据块在第i个时间段内的第一占比;在数据块的第一占比与索引节点的期望占比相匹配时,将期望占比确定为第i+1个时间段内的初始占比。
其中,第一占比是根据第i个时间段的空间使用信息计算出来的数据块当前在存储空间中实际所占的比例。以上表2为例,第一占比为:(E-BD)/A。之后,确定该第一占比与索引节点的期望占比是否相匹配。如果第一占比与期望占比相加小于等于1,那么第一占比与期望占比相匹配。即,计算(E-BD)/A的值是否小于或等于1-Y。如果第一占比与期望占比相匹配,则将第i+1个时间段的初始占比调整为期望占比。
如果第一占比与期望占比相加的结果大于1,那么存储空间的索引节点的初始占比不能调整为期望占比。在这种情况下,电子设备可以显示提示信息,来提示用户不能对索引节点的占比进行调整。
在期望占比小于第i个时间段内的初始占比时,确定数据块在第i个时间段内的第二占比。该第二占比为索引节点在第i个时间段时实际所占的比例,可以通过第i个时间段的空间使用信息计算得到。同样以表2所示的数据为例,第二占比为:DB/A。如果第二占比大于期望占比,也就是说,存储空间当前(即第i个时间段)的索引节点实际所占的比例已经大于期望占比,那么将第i+1个时间段索引节点的初始占比调整为期望占比,会导致电子设备无法再分配索引节点,从而导致存储失败。因此,在第二占比小于或等于该期望占比时,将该期望占比确定为第i+1个时间段内的初始占比,能够避免空间分配出错的情况。
按照期望占比对第i+1个时间段的初始占比进行调整后,电子设备可以基于调整后的初始占比为需要存储的数据分配索引节点,进行存储。本实施方式中,通过动态监控存储空间的空间使用信息,来动态的配置索引节点的占比,可以使得索引节点与数据块的使用率同时达到最优,从而避免存储容量的浪费,提高存储空间的使用率。
为了保证调整的及时有效,每次调整对应的时间段也可以进行动态调整。示例性的,确定第i个时间段的初始占比与第i+1个时间段的初始占比之间的差异,当该差异超过设定的阈值时,缩短下一个时间段,即第i+2个时间段。该设定的阈值称为第一阈值。第一阈值可以根据实际情况确定,例如0.5、0.3等等。如果第i个时间段与第i+1个时间段的初始占比之间的差异较大,则可以确定i+1个时间段写入文件的大小和速度与第i个时间段不同,索引节点的占比的变动较大,为了准确控制索引节点的占比,可以缩短后续调整索引节点占比的时间段,即第i+2个时间段。每次缩短的程度可以根据实际情况确定,例如目标时间段为n分钟时,第i+2个时间段可以缩短为n/3分钟、n/2分钟等等,本实施方式对此不作特殊限定。例如,第i+2个时间段之前的时间段均为5分种,则第i+2个时间段可以缩短为3分钟。
示例性的,调整了第i+2个时间段的大小,之后的时间段可以与第i+2个时间段相同,也就是说,缩短第i+1个时间段之后的所有时间段。或者,只调整第i+2个时间段,之后的时间段仍然采用目标时间段,即第i+3个时间段为目标时间段。
同理,多个相邻的时间段的初始占比之间的差异均不超过第一阈值时,则可以确定索引节点消耗的速度比较稳定,占比变化较小,为了减少调整的次数,降低CPU的消耗。具体的,先确定第i个时间段之前M(M≥2)个时间段中相邻的时间段的初始占比之间的差异,在相邻的时间段的初始占比之间的差异均不超过第一阈值时,增大第i个时间段。或者,将第i个时间段以及之后的时间段统一进行增大。
举例来说,若M为3,则计算第一个时间段与第二个时间段之间初始占比的差异,以及第二个时间段与第三个时间段之间初始占比的差异,如果两次计算的差异均小于等于第一阈值,那么可以增大第四个时间段。示例性的,每次可以在目标时间段的基础上增大1/2、1/3等等,本实施方式不限于此。
增大或缩小了第j(j大于等于i)个时间段之后,可以继续确定第j个时间段的初始占比,然后根据第j个时间段以及在其之前的时间段的初始占比之间的差异,再确定是否要继续增大或缩小第j+1个时间段。
空间使用率越大,则存储空间剩余的越小,对调整的及时性需求越高。因此,还可以根据第i个时间段的空间使用信息,来确定第i个时间段的空间使用率;在空间使用率超过第二阈值时,缩短目标时间段。也就是说,在第i个时间段之后按照缩短后的目标时间段来调整索引节点的初始占比。
其中,空间使用率为当前时间段的占用大小与存储空间总大小的比值。例如,参考上述表2,在第1个时间段时,空间使用率为E/A。第二阈值可以为0.9、0.8、0.7等各种数值。例如,第二阈值为0.8时,当存储空间的空间使用率达到0.8时,则将目标时间段n缩短为n/2,按照该n/2对后续的时间段的初始占比进行调整。
本实施方式中,通过动态调整各个时间段的索引节点的占比,可以使得索引节点的占比更加符合实际数据存储的需求,在存储空间用完时索引节点的占比与数据库的占比之和能够更加接近1,从而实现对存储空间使用率的最大化。
示例性的,本发明的数据存储方法还可以由电子设备中的模块,或者进程来执行,举例来说,执行数据存储方法的模块可以称为:空间巡检模块(Space Inspection Module,以下简称为SIM)。图3示出了SIM执行本实施例中数据存储方法的流程图。参考图3,该数据存储方法还可以包括以下步骤:
步骤301,磁盘格式化完成,SIM记录磁盘inode的初始占比C、写入的文件数量、当前空间的占用大小和当前时刻至数据库表中。其中,磁盘为存储空间,数据库表可以采用上述表1或表2的表结构。步骤302:判断空间使用率是否达到10%,若是则执行步骤303。在空间使用率较小如小于10%的情况下,写入的文件较少,计算的期望占比可能不准确。本实施方式中,在空间使用率达到10%之后,开始调整索引节点的占比。步骤303中,SIM统计当前写入的文件数量的空间的占用大小,并确定当前时间段的期望占比Y,记录至数据库表中。步骤304中,SIM判断期望占比Y是否大于初始占比C,若是,则执行步骤305;若否,则执行步骤306。步骤305中,SIM确定block的使用率是否达到(1-Y),若block的使用率达到1-Y,则执行步骤307:返回提示信息,提示用户无法调整inode占比,可能存在容量浪费的情况。如果block的使用率没有达到1-Y,则执行步骤308:将下一个时间段的inode占比调整为期望占比Y。
步骤306中,判断期望占比Y是否等于初始占比C,若是,则不调整下一个时间段的inode占比,即下一个时间段的inode占比仍然为初始占比。如果步骤306中期望占比Y不等于初始占比C,则期望占比Y小于初始占比C,则执行步骤309:计算inode的使用率是否达到Y,若是,则执行步骤307;如否,则执行步骤308。
步骤310中,SIM模块计时,判断是否达到n分钟。其中,n分钟为预设的目标时间段。若达到n分钟,即达到下一个时间段,则继续执行步骤303,进行下一个时间段inode占比的调整。
在调整各个时间段的inode占比的同时,SIM还可以动态调整各个时间段的大小。图4示出了调整时间段大小的流程图,如图4所示,调整时间段的过程如下:
步骤401:SIM模块计时,判断是否达到n分钟。若达到n分钟,则执行步骤402:判断空间使用率是否超过90%。若没有达到n分钟,则继续计时。步骤402中,如果空间使用率没有超过90%,则执行步骤403:对比当前时间段与上一个时间段的inode占比的差值是否超过第一阈值,若是,则执行步骤404:缩短n。例如原来n为5分钟,缩短至4分钟。如果步骤402中,空间使用率超过90%,则将n缩短为n/2,然后以n/2继续返回步骤401中开始计时。若步骤403中,当前时间段与上一个时间段的inode占比的差值没有超过第一阈值,则执行步骤405:判断是否连续三次差值均没有超过第一阈值,若是,则执行步骤406:延长n,并将没有超过第一阈值的次数清零。例如原来n为5分种,延长为6分钟等。如果步骤405中,若没有连续三次差值均超过第一阈值,例如上一次确定的差值不超过第一阈值时,则超过第一阈值的次数没有达到连续三次,这种情况下执行步骤407:将没有超过第一阈值的次数加1,该次数初始为0。
然后,在步骤408中,判断n是否达到最大值,若是,则执行步骤409,将n设置为最大值。预先可以确定n的最大值,若n没有达到最大值,则继续按照n进行计时。
在步骤410中,判断n是否小于或等于最小值,若是,则执行步骤401,按照缩短后的n继续计时;若否,则执行步骤411:将n设置为最小值。预先确定目标时间段的最小值,若缩短后n超出最小值,则不再缩短n,按照最小值继续进行计时。
按照图4中的步骤对时间段的大小进行控制,从而按照不同的时间段统计空间使用信息,对索引节点的占比进行调整,使得索引节点的大小动态变化,更适应于实际存储数据的需求。
进一步的,本发明还提供一种数据存储装置,可以执行上述数据存储方法。下面对本发明提供的数据存储装置进行描述,下文描述的数据存储装置与上文描述的数据存储方法可相互对应参照。
图5示出了数据存储装置的结构示意图。参考图5所示,该数据存储装置50可以包括:数据获取模块51,用于每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;空间确定模块52,用于根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;空间分配模块53,用于根据所述期望占比调整所述索引节点在第i+1个时间段内的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
本实施例提供的数据存储装置,每隔一段时间获取一次存储空间的空间使用信息,从而可以根据前一个时间段的空间使用信息来调整后一个时间段索引节点(inode)的占比,使得索引节点的大小动态变化,从而更好地适应实际存储的需求,避免存储空间的浪费,提高存储空间的利用率。
根据本发明的一种实施方式,所述空间分配模块53具体可以包括:第一获取模块,用于获取所述索引节点在所述第i个时间段的初始占比;第一确定模块,用于在所述期望占比大于或小于所述第i个时间段的初始占比时,将所述期望占比确定为所述索引节点在所述第i+1个时间段的初始占比。
根据本发明的一种实施方式,所述第一确定模块具体包括:第二确定模块,用于在所述期望占比大于所述第i个时间段的初始占比时,确定所述数据块在所述第i个时间段的第一占比;第三确定模块,用于在所述数据块的第一占比与所述索引节点的所述期望占比相匹配时,将所述期望占比确定为所述第i+1个时间段的初始占比;第四确定模块,用于在所述期望占比小于所述第i个时间段的初始占比时,确定所述索引节点在所述第i个时间段的第二占比;第五确定模块,用于在所述第二占比小于或等于所述期望占比时,将所述期望占比确定为所述第i+1个时间段内的初始占比。
根据本发明的一种实施方式,所述数据存储装置50还包括:差异确定模块,用于确定所述第i个时间段的初始占比与所述第i+1个时间段的初始占比之间的差异;时间缩短模块,用于在所述差异超过第一阈值时,缩短第i+2个时间段。
根据本发明的一种实施方式,所述数据存储装置50还包括:差异计算模块,用于确定所述第i个时间段之前,相邻的时间段的所述初始占比之间的差异;时间增大模块,用于在所述相邻的时间段的所述初始占比之间的差异均不超过所述第一阈值时,增大第i个时间段。
根据本发明的一种实施方式,所述数据存储装置50还包括:使用率确定模块,用于根据所述第i个时间段的空间使用信息,确定所述存储空间的空间使用率;时间段调整模块,用于在所述空间使用率超过第二阈值时,缩短所述目标时间段。
根据本发明的一种实施方式,所述空间确定模块具体包括:第一平均模块,用于根据第i个时间段内的空间使用信息,确定所述第i个时间段内存储数据的平均大小;占比计算模块,用于基于所述平均大小确定所述索引节点的期望占比。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行数据存储方法,该方法包括:每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据存储方法,该方法包括:每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据存储方法,该方法包括:每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;
根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;
根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
2.根据权利要求1所述的数据存储方法,其特征在于,所述根据所述期望占比调整所述索引节点在第i+1个时间段的初始占比,包括:
获取所述索引节点在所述第i个时间段的初始占比;
在所述期望占比大于或小于所述第i个时间段的初始占比时,将所述期望占比确定为所述索引节点在所述第i+1个时间段的初始占比。
3.根据权利要求2所述的数据存储方法,其特征在于,所述在所述期望占比大于或小于所述第i个时间段的初始占比时,将所述期望占比确定为所述索引节点在所述第i+1个时间段的初始占比,包括:
在所述期望占比大于所述第i个时间段的初始占比时,确定所述数据块在所述第i个时间段的第一占比;
在所述数据块的第一占比与所述索引节点的所述期望占比相匹配时,将所述期望占比确定为所述第i+1个时间段的初始占比;
在所述期望占比小于所述第i个时间段的初始占比时,确定所述索引节点在所述第i个时间段的第二占比;
在所述第二占比小于或等于所述期望占比时,将所述期望占比确定为所述第i+1个时间段内的初始占比。
4.根据权利要求1所述的数据存储方法,其特征在于,还包括:
确定所述第i个时间段的初始占比与所述第i+1个时间段的初始占比之间的差异;
在所述差异超过第一阈值时,缩短第i+2个时间段。
5.根据权利要求4所述的数据存储方法,其特征在于,还包括:
确定所述第i个时间段之前,相邻的时间段的所述初始占比之间的差异;
在所述相邻的时间段的所述初始占比之间的差异均不超过所述第一阈值时,增大第i个时间段。
6.根据权利要求1所述的数据存储方法,其特征在于,还包括:
根据所述第i个时间段的空间使用信息,确定所述存储空间的空间使用率;
在所述空间使用率超过第二阈值时,缩短所述目标时间段。
7.根据权利要求1所述的数据存储方法,其特征在于,所述确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,包括:
根据第i个时间段内的空间使用信息,确定所述第i个时间段内存储数据的平均大小;
基于所述平均大小确定所述索引节点的期望占比。
8.一种数据存储装置,其特征在于,包括:
数据获取模块,用于每隔目标时间段获取存储空间的空间使用信息,所述存储空间包括存储数据的数据块和所述数据块对应的索引节点;
空间确定模块,用于根据第i个时间段的空间使用信息,确定在所述存储空间不可用时,所述索引节点在所述存储空间的期望占比,i为正整数;
空间分配模块,用于根据所述期望占比调整所述索引节点在第i+1个时间段内的初始占比,基于所述初始占比在所述存储空间内进行数据存储。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述数据存储方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043529.2A CN117666926A (zh) | 2022-08-29 | 2022-08-29 | 数据存储方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043529.2A CN117666926A (zh) | 2022-08-29 | 2022-08-29 | 数据存储方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117666926A true CN117666926A (zh) | 2024-03-08 |
Family
ID=90071906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211043529.2A Pending CN117666926A (zh) | 2022-08-29 | 2022-08-29 | 数据存储方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117666926A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971889A (zh) * | 2024-03-29 | 2024-05-03 | 天津南大通用数据技术股份有限公司 | 一种基于分布式数据库的sql性能优化方法 |
-
2022
- 2022-08-29 CN CN202211043529.2A patent/CN117666926A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971889A (zh) * | 2024-03-29 | 2024-05-03 | 天津南大通用数据技术股份有限公司 | 一种基于分布式数据库的sql性能优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110289994B (zh) | 一种集群容量调整方法及装置 | |
CN111522636A (zh) | 应用容器的调整方法、调整***、计算机可读介质及终端设备 | |
CN107656807A (zh) | 一种虚拟资源的自动弹性伸缩方法及装置 | |
CN106407191B (zh) | 一种数据处理方法及服务器 | |
CN112367384B (zh) | 基于Kafka集群的动态限速方法、装置以及计算机设备 | |
CN117666926A (zh) | 数据存储方法、装置和电子设备 | |
CN114490078A (zh) | 一种微服务的动态缩扩容方法、装置及设备 | |
CN112527746A (zh) | 日志存储方法、装置、设备及存储介质 | |
CN111008181A (zh) | 一种分布式文件***存储策略切换方法、***、终端及存储介质 | |
CN107707395B (zh) | 一种数据传输方法、装置和*** | |
CN113159463A (zh) | 业务量监控方法和装置 | |
CN102904946B (zh) | 集群内节点管理方法和装置 | |
CN112436962A (zh) | 区块链共识网络动态扩展方法、电子设备、***及介质 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
CN111506254A (zh) | 分布式存储***及其管理方法、装置 | |
CN113568891B (zh) | 分布式id生成方法、装置、服务器和可读存储介质 | |
CN114866563A (zh) | 扩容方法、装置、***和存储介质 | |
CN114157717A (zh) | 一种微服务动态限流的***及方法 | |
CN116166410A (zh) | 云数据库的处理方法、装置、电子设备及存储介质 | |
CN112003900A (zh) | 实现分布式***中高负载场景下服务高可用的方法、*** | |
CN111104381A (zh) | 一种日志管理方法、装置、设备及计算机可读存储介质 | |
CN115794446B (zh) | 一种消息处理方法、装置、电子设备和存储介质 | |
CN114185896B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN117194020B (zh) | 一种云计算的原始大数据处理方法、***和存储介质 | |
CN116204311A (zh) | Pod集群扩缩容方法、装置、计算机设备和存储介质 |
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 |