CN105138282A - 一种存储空间回收的方法及存储系统 - Google Patents
一种存储空间回收的方法及存储系统 Download PDFInfo
- Publication number
- CN105138282A CN105138282A CN201510477662.2A CN201510477662A CN105138282A CN 105138282 A CN105138282 A CN 105138282A CN 201510477662 A CN201510477662 A CN 201510477662A CN 105138282 A CN105138282 A CN 105138282A
- Authority
- CN
- China
- Prior art keywords
- storage space
- concordance list
- offset parameter
- storage
- sublist
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了存储空间回收的方法及存储系统,包括:对存储系统中的第一存储空间进行检测,获取第一存储空间对应的闲置比例,判定第一存储空间的闲置比例是否大于等于预设阈值,在第一存储空间对应的闲置比例大于等于预设阈值时,配置第二存储空间,将第一存储空间中未被删除的文件顺序的存储于第二存储空间中。也就是说,在存储系统的第一存储空间中存在较多由于删除文件而留下的剩余存储空间时,该存储系统将第一存储空间中未被删除的文件顺序的存储在第二存储空间中,这样就可以去除掉第一存储空间中被删除的文件所占用的存储空间,从而对存储系统中的闲置存储空间进行回收,提升存储空间的利用率。
Description
技术领域
本申请涉及计算机存储技术领域,尤其涉及一种存储空间回收的方法及存储系统。
背景技术
当前,在很多的分布式的存储系统中,为了较快的读取文件,会首先建立一个较大的存储空间,比如说50G或者是100G的存储空间,然后将实际的用户文件顺序的放置在该较大的存储空间中。
所以目前的存储系统是在一大块连续的存储空间上按顺序存储着各个文件,对外则是以偏移量参数作为索引键值来读取到相应的文件,即:通过offset参数来读取到对应位置上的文件。
但是,目前的存储系统,通常在存入新文件或数据时,并不是将新文件或数据的信息写入已被删除的文件所在的磁盘位置处,而是在存储空间的剩余空间上顺序写入,导致已经被删除的文件所在位置的存储空间浪费,大大降低存储空间的利用率。
而且,当部分文件被删除之后,剩余在存储系统的文件处于不连续的物理存储位置,当磁头读写文件的时候,需要不断地寻找文件位置,从而导致访问或读取文件的速度大幅下降。
发明内容
本发明实施例提供了一种存储空间回收的方法及存储系统,用以解决现有技术中存储系统中的存储空间浪费,并且利用率也较低的问题,并大幅提高访问或读取文件的速度。
其具体的技术方案如下:
一种存储空间回收的方法,所述方法包括:
对存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例,其中,所述闲置比例为第一存储空间中被删除的文件所闲置的存储空间与第一存储空间的总存储空间的比值;
判定所述第一存储空间的闲置比例是否大于等于预设阈值;
在第一存储空间对应的闲置比例大于等于预设阈值时,则配置第二存储空间,将所述第一存储空间中未被删除的文件顺序的存储于所述第二存储空间中。
可选的,对存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例,具体为:
按照设定检测周期,周期性的对所述存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例。
可选的,在配置第二存储空间,将所述第一存储空间中未被删除的文件连续的存储于所述第二存储空间中之后,还包括:
生成第一索引表以及第二索引表;
在所述第一索引表中配置M个位置,并在所述第二索引表中配置M个子表,其中,每个子表中包含了X*Ni个槽位,所述第一索引表中的一个位置指示所述第二索引表中的一个子表,其中,M为大于等于2的正整数,Ni为第一索引表中的第i位置存放的符合h%M=i条件的有效文件数量,i为第一索引表中第i个位置,在1到M之间,N1+N2+...+Nm=第一存储空间文件总数。X为大于等于1的正整数;
在所述第一索引表的一个位置中存储一个子表地址的指针,并在所述第二索引表中存储原偏移量参数与新偏移量参数之间的对应关系。
可选的,在所述第一索引表中的配置M个位置,包括:
获取特定的原偏移量参数,并获取各个原偏移量参数的哈希值h,在所述第一索引表中配置M个位置。
可选的,在所述第二索引表中存储原偏移量参数与新偏移量参数之间的对应关系,包括:基于所述哈希值h,在所述第一索引表中确定出第h%M个位置,并在所述第h%M个位置确定出指针;
在所述第二索引表中确定出所述指针对应的子表;
从子表的第(h>>8)%(X*Ni)开始,如果M=256,则右移8位;如M=128则右移7位等;X为1,2,3...根据实际需要确定系数。然后依次向后遍历(遇到末尾就回到头),找到第一个空槽,存入(offset,newOffset)关系(也就是说,如果第一个不是空槽,则往该槽的下一个槽寻找,这是处理哈希冲突的线性探查法),所述新偏移量参数指示了存储在所述第二存储空间中的文件的地址。
可选的,在配置第二存储空间,将所述第一存储空间中未被删除的文件顺序的存储于所述第二存储空间中之后,还包括:
获取一偏移量参数,确定所述偏移量参数对应的哈希值h;
根据所述哈希值h,在所述第一索引表中根据h%M确定出哈希值h对应的位置中的指针;
在所述第二索引表中确定出对应所述指针的子表;
从子表的第(h>>8)%(X*Ni)开始,其中M=256时则右移8位,M=128时则右移7位;X=1,2,3...根据实际情况定。依次向后遍历(遇到末尾就回到头)。对于每个槽位,读取其中的(offset,newOffset)关系,在存在相同的所述偏移量参数时,则获取所述偏移量参数对应的新偏移量参数;如果遇到空槽,表示此offset不在索引中。
一种存储系统,包括:
检测模块,用于对存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例,其中,所述闲置比例为第一存储空间中的被删除的文件所闲置的存储空间与第一存储空间的总存储空间的比值;
判定模块,用于判定所述第一存储空间的闲置比例是否大于等于预设阈值;
处理模块,用于在第一存储空间对应的闲置比例大于等于预设阈值时,则配置第二存储空间,将所述第一存储空间中未被删除的文件顺序的存储于所述第二存储空间中。
可选的,所述检测模块,用于按照设定检测周期,周期性的对所述存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例。
可选的,所述处理模块,还用于生成第一索引表以及第二索引表;在所述第一索引表中配置M个位置,并在所述第二索引表中配置M个子表,在所述第一索引表的一个位置中存储一个子表地址的指针,并在所述第二索引表中存储原偏移量参数与新偏移量参数之间的对应关系,其中,每个子表中包含了X*Ni个槽位,所述第一索引表中的一个位置指示所述第二索引表中的一个子表,M为大于等于2的正整数,Ni为第一索引表中的第i位置存放的符合h%M=i条件的有效文件数量,i为第一索引表中第i个位置,在1到M之间,N1+N2+...+Nm=第一存储空间文件总数。X为大于等于1的正整数。
可选的,所述处理模块,具体用于获取特定的原偏移量参数,并获取各个原偏移量参数的哈希值h,在所述第一索引表中配置M个位置。
可选的,所述处理模块,具体用于基于所述哈希值h,在所述第一索引表中确定出第h%M个位置,并在所述第h%M个位置确定出指针在所述第二索引表中确定出所述指针对应的子表;从子表的第(h>>8)%(X*Ni)开始,如果M=256,则右移8位;如M=128则右移7位等;X为1,2,3...根据实际需要确定系数。然后依次向后遍历(遇到末尾就回到头),找到第一个空槽,存入(offset,newOffset)关系(也就是说,如果第一个不是空槽,则往该槽的下一个槽寻找,这是处理哈希冲突的线性探查法),所述新偏移量参数指示了存储在所述第二存储空间中的文件的地址。
可选的,所述处理模块,还用于获取一偏移量参数,确定所述偏移量参数对应的哈希值h;根据所述哈希值h,在所述第一索引表中确定出哈希值h%M对应的位置中的指针;在所述第二索引表中确定出对应所述指针的的子表;从子表的第(h>>8)%(X*Ni)开始,其中M=256时则右移8位,M=128时则右移7位;X=1,2,3...根据实际情况定。依次向后遍历(遇到末尾就回到头)。对于每个槽位,读取其中的(offset,newOffset)关系,在存在相同的所述偏移量参数时,则获取所述偏移量参数对应的新偏移量参数;如果遇到空槽,表示此offset不在索引中。
本发明提供的一种存储空间回收的方法及存储系统,可以及时的对存储系统中的闲置存储空间进行回收,提升了存储系统中的存储空间的利用率,重新将文件以顺序存储,大幅提高访问或读取文件的速度。
附图说明
图1为本发明实施例中一种存储空间回收的方法的流程图;
图2为本发明实施例中第一存储空间中存储的各文件的示意图;
图3为本发明实施例中第二存储空间中顺序存储的文件的示意图;
图4为本发明实施例中第一索引表与第二索引表之间的对应关系示意图;
图5为本发明实施例中查询文件的方法流程图示意图;
图6为本发明实施例中一种存储系统的结构示意图。
具体实施方式
为了解决现有技术中的存储系统中的存储空间利用率较低的问题,本发明实施例中提供了一种存储空间回收的方法,该方法包括:对存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例,判定第一存储空间的闲置比例是否大于等于预设阈值,在闲置比例大于等于预设阈值时,则配置第二存储空间,将第一存储空间中未被删除的文件按顺序存储于第二存储空间中。也就是说,在存储系统的第一存储空间中存在较多由于删除文件而留下的空洞(即闲置存储空间)时,该存储系统将配置第二存储空间,然后将第一存储空间中的数据按顺序存储在第二存储空间中,从而使得存储系统能够及时的对存储系统中的闲置存储空间进行回收,提升了存储系统中的存储空间的利用率。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解,本发明实施例以及实施例中的具体技术特征只是对本发明技术方案的说明,而不是限定,在不冲突的下,本发明实施例以及实施例中的具体技术特征可以相互组合。
如图1所示为本发明实施例中一种存储空间回收的方法的流程图,该方法包括:
S101,对存储系统中的第一存储空间进行检测,获取第一存储空间对应的闲置比例;
S102,判定第一存储空间的闲置比例是否大于等于预设阈值;
S103,在第一存储空间对应的闲置比例大于等于预设阈值时,则配置第二存储空间,将第一存储空间中未被删除的文件顺序的存储于第二存储空间中。
具体来讲,存储系统中的第一存储空间为较大的第一存储空间,比如说50G或者是100G的第一存储空间,在存储系统中未删除任何文件时,第一存储空间中的文件都是按照顺序存储的,比如图2所示,在图2中,A表征了一个文件,该文件为word文档,B也表征了一个文件,该文件为jpg格式的图片,C也表征了一个文件,该文件为word文档,当然,还包括D文件、E文件、F文件等等。在第一存储空间中可以包含Ni个文件,Ni为第一存储空间中的有效文件数量,其中i为文件序号,比如设置第一存储空间有256个文件,则i=0、1、2、3、4、5…255。也可以根据存储有效文件的数量大小确定位置数,比如64、128、512等个文件均可。
若是用户在存储系统中删除了文件时,则第一存储空间中的会出现空洞,比如说,在图2所示的文件中删除了B文件以及E文件,原来存储B文件以及E文件的的存储空间将闲置出来,比如图3所示,B文件以及E文件已经被删除,若是要利用B文件的存储空间,则存储系统需要确定出一个数据量小于等于B文件的文件,然后才能将该文件存储于闲置存储空间中,若是一个数据量大于B文件的文件存在时,则该闲置存储空间将无法利用,这样就降低了存储空间的利用率。
因此,在本发明实施例中,该存储系统会检测自身的第一存储空间对应的闲置比例,这里的闲置比例为第一存储空间中被删除的文件所闲置的存储空间与第一存储空间的总存储空间的比值,比如说第一存储空间为50G,而被删除的文件所占的存储空间为10G,则闲置比例为1/5,所以闲置比例表征了第一存储空间中被闲置的存储空间的一个百分比。
然后,存储系统将得到的闲置比例与预设阈值进行比较,若是该闲置比例小于预设阈值时,则说明第一存储空间中的存储空间基本都得到了有效的利用,此时该存储系统将正常运行。
若是存储系统判定出第一存储空间对应的闲置比例大于等于预设阈值时,也就是说该第一存储空间中存在较多空洞,该存储系统将配置第二存储空间,然后存储系统将第一存储空间中未被删除的文件按顺序存储于第二存储空间中。
比如说,如图3所示,该存储系统已经生成了第二存储空间,此时存储系统会将第一存储空间中未被删除的文件按顺序存储在第二存储空间中,即:图3中顺序存储的A文件、C文件、D文件以及F文件等等。
在上述实施例中,若是存储系统中的第一存储空间中存储较多空洞时,本发明实施例中的存储系统将配置第二存储空间,然后将第一存储空间中剩余的文件依次顺序的存储于第二存储空间中,这样就将第一存储空间中的剩余存储空间及时的回收,进而使得存储系统可以再次有效的利用剩余的存储空间,提升了存储系统中的存储空间的利用率,并且顺序存储文件可以高效提升文件的读取速度。
进一步,一种更佳的实施方式,在本发明实施例中,为了使得存储系统能够周期性的确定第一存储空间的闲置比例,从而及时的对第一存储空间中的剩余存储空间及时的回收,因此,存储系统会按照设定检测周期,周期性的对存储系统中的第一存储空间进行检测,获取第一存储空间对应的表征第一存储空间存储空间闲置率的闲置比例。简单来讲,通过周期性的对闲置比例进行检测,可以及时回收剩余存储空间,并且将剩余存储空间有效的利用起来。
进一步,一种更佳的实施方式,在本发明实施例中,由于将第一存储空间中的文件依次顺序的存储到了第二存储空间中,所以为了使得移动至第二存储空间中的文件能够被准确的定位,因此,将建立索引方式,该索引方式可以通过第一索引表以及第二索引表来实现,该数据结构能够确保在大数据量的情况下,快速定位到所需的位置。
首先,该存储系统将建立第一索引表以及第二索引表,并且在第一索引表中配置M个位置,在第二索引表中配置M个子表,每个子表中包含了多个槽位,第一索引表中的一个位置中保存了第二索引表中的一个子表地址的指针,也就是说,第一索引表中的每个位置中都保存了一个指针,这样可以将第二索引表中的每个子表都与第一索引表中的位置建立联系。其中,M为大于等于2的正整数。
具体来讲,由于存储系统中的文件可以是由offset参数来指示,所以该存储系统将第一存储空间中的文件移动至第二存储空间中之后,相应的位置也发生了改变。该存储系统将获取offset参数,然后对offset参数进行哈希计算,得到offset函数对应的哈希值h,在第一索引表中包含了M个位置,在本发明实施例中该M可以是256,当然,可以根据文件的数量大小来确定位置,比如M可以是64、128、512等。
在对第一索引表配置时,第二索引表也进行相应的配置,在第二索引表中包含了M个子表,比如说M为256时,则第二索引表中就包含了256个子表。第一索引表中的一个位置指示了第二索引表中的一个子表,在一个子表中包含可以了X*Ni个槽位,Ni为第一索引表中的第i位置存放的符合h%M=i条件的有效文件数量,i为第一索引表中第i个位置,在1到M之间,N1+N2+...+Nm=第一存储空间文件总数。X为大于等于1的正整数,比如,子表中可以包含4Ni个槽位,3Ni个槽位,或者是2Ni个槽位,或者是Ni个槽位,槽位的数量可以根据不同的需求进行配置,比如图4所示,在图4中第一索引表中的一个位置指针了第二索引表中的一个子表,在该子表中就包含了3Ni个槽位,i=0、1、2、3、4…255。
在确定offset参数对应的哈希值h之后,在第一索引表的第h%*256个位置,找到第二索引表中对应该位置的子表,然后从该子表的第(h>>8)%(X*Ni)个槽位开始,其中M=256时则右移8位,M=128时则右移7位;X=1,2,3...根据实际情况定。依次遍历各个槽位,查找出对应的空槽位,若是查找到该子表的末尾仍未查找到空槽位,则返回头部继续查找。若是找到第一个空槽,则将原offset参数与新offset参数的对应关系存储在该槽位中,即:在空槽位中保存(setoff,Newsetoff)。如果第一个不是空槽,则往该槽的下一个槽寻找,这里是处理哈希冲突的线性探查法。
当然,只要有位置改变的文件都按照上述的方式保存原offse参数与新offset参数之间的对应关系。这样可以使得存储系统能够通过第一索引表以及第二索引表准确的在第二存储空间中定位出需要的文件。
通过上述的方式,在将第一存储空间中的文件移动至第二存储空间中时,存储系统将可以通过第一索引表以及第二索引表准确的在第二存储空间中定位出需要查找的文件。
当然,在本发明实施例中可以通过图5所示的方法流程来查找出对应的文件,具体流程如下:
S501,获取一偏移量参数,确定该偏移量参数对应的哈希值h;
S502,根据哈希值h,在第一索引表中的确定出哈希值h%M对应的位置中的指针;
S503,在第二索引表中确定出对应该指针的子表;
S504,从子表的第(h>>8)%(X*Ni)开始,其中M=256时则右移8位,M=128时则右移7位;X=1,2,3...根据实际情况定。依次向后遍历(遇到末尾就回到头)。对于每个槽位,读取其中的(offset,newOffset)关系,在存在相同的所述偏移量参数时执行步骤S505;如果遇到空槽,表示此offset不在索引中。执行步骤S506;
S505,获取所述偏移量参数对应的新偏移量参数;
S506,返回错误信息。
具体来讲,在存储系统获取到一个偏移量参数,即:offset参数。存储系统将对该offset参数进行哈希运算,得到该offset参数对应的哈希值h。
基于该哈希值h就可以在第一索引表中确定出一个位置,即:第h1%*256个位置,在确定出该位置之后,由于第一索引表中的每个位置都对应第二索引表中的一个子表,因此在确定出第h%256个位置时,并在第h%256个位置确定出保存的指针,然后存储系统就可以在第二索引表中确定出该指针对应的子表。
从子表的第(h>>8)%(X*Ni)开始,其中M=256时则右移8位,M=128时则右移7位;X=1,2,3...根据实际情况定。依次向后遍历(遇到末尾就回到头)。对于每个槽位,读取其中的(offset,newOffset)关系,在存在相同的所述偏移量参数时,则获取所述偏移量参数对应的新偏移量参数;如果遇到空槽,表示此offset不在索引中。
若是存在相同的offset参数时,存储系统将读取出在该槽位中的对应关系,从而确定出该offset参数对应的Newoffset参数。然后基于该Newoffset参数就可以定位对应的文件。通过上述的方法,可以在将第一存储空间中的文件移动至第二存储空间中之后,存储系统仍然可以对第二存储空间中的文件进行准确的定位,保证存储系统可以快速准确的定位出用户需要的数据内容。
总体来讲,在本发明实施例中提供了一种存储空间回收的方法,该方法包括:对存储系统中额第一存储空间进行检测,获取所述第一存储空间对应闲置比例,判定第一存储空间的闲置比例是否大于等于预设阈值,在闲置比例大于等于预设阈值时,则配置第二存储空间,将第一存储空间中未被删除的文件按顺序存储于第二存储空间中。也就是说,在存储系统的第一存储空间中存在较多由于删除文件而留下的空洞时,该存储系统将配置第二存储空间,然后将第一存储空间中的数据连续的存储在第二存储空间中,这样就可以去除掉第一存储空间中的空洞,从而及时的对存储系统中的闲置存储空间进行回收,提升了存储系统中的存储空间的利用率,也大幅提高访问或读取文件的速度。
对应本发明实施例中的一种存储空间回收的方法,本发明实施例中还提供了一种存储系统,如图6所示为本发明实施例中一种存储系统的结构示意图,该存储系统包括:
检测模块601,用于对存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例,其中,所述闲置比例为第一存储空间中的被删除的文件所闲置的存储空间与第一存储空间的总存储空间的比值;
判定模块602,用于判定所述第一存储空间的闲置比例是否大于等于预设阈值;
处理模块603,用于在第一存储空间对应的闲置比例大于等于预设阈值时,则配置第二存储空间,将所述第一存储空间中未被删除的文件顺序的存储于所述第二存储空间中。
进一步,在本发明实施例中,检测模块601,用于按照设定检测周期,周期性的对所述存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例。
进一步,在本发明实施例中,处理模块603,还用于生成第一索引表以及第二索引表;在所述第一索引表中配置M个位置,并在所述第二索引表中配置M个子表,在所述第一索引表的一个位置中存储一个子表地址的指针,并在所述第二索引表中存储原偏移量参数与新偏移量参数之间的对应关系,其中,每个子表中包含了X*Ni个槽位,所述第一索引表中的一个位置指示所述第二索引表中的一个子表,M为大于等于2的正整数,Ni为第一索引表中的第i位置存放的符合h%M=i条件的有效文件数量,i为第一索引表中第i个位置,在1到M之间,N1+N2+...+Nm=第一存储空间文件总数,X为大于等于1的正整数。
进一步,在本发明实施例中,处理模块603,具体用于获取特定的原偏移量参数,并获取各个原偏移量参数的哈希值h,在所述第一索引表中配置M个位置。
进一步,在本发明实施例中,处理模块603,具体用于基于所述哈希值h,在所述第一索引表中确定出第h%M个位置,并在所述第h%M个位置确定出指针在所述第二索引表中确定出所述指针对应的子表,从子表的第(h>>8)%(X*Ni)开始,如果M=256,则右移8位;如M=128则右移7位等;X为1,2,3...根据实际需要确定系数。然后依次向后遍历(遇到末尾就回到头),找到第一个空槽,存入(offset,newOffset)关系,也就是说,如果第一个不是空槽,则往该槽的下一个槽寻找,所述新偏移量参数指示了存储在所述第二存储空间中的文件的地址。
进一步,在本发明实施例中,处理模块603,还用于获取一偏移量参数,确定所述偏移量参数对应的哈希值h;根据所述哈希值h,在所述第一索引表中确定出哈希值h%M(M=256)对应的位置中的指针;在所述第二索引表中确定出对应所述指针的的子表;从子表的第(h>>8)%(X*Ni)开始,其中M=256时则右移8位,M=128时则右移7位;X=1,2,3...根据实际情况定。依次向后遍历(遇到末尾就回到头)。对于每个槽位,读取其中的(offset,newOffset)关系,在存在相同的所述偏移量参数时,则获取所述偏移量参数对应的新偏移量参数;如果遇到空槽,表示此offset不在索引中。
尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种存储空间回收的方法,其特征在于,所述方法包括:
对存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例,其中,所述闲置比例为第一存储空间中被删除的文件所闲置的存储空间与第一存储空间的总存储空间的比值;
判定所述第一存储空间的闲置比例是否大于等于预设阈值;
在第一存储空间对应的闲置比例大于等于预设阈值时,则配置第二存储空间,将所述第一存储空间中未被删除的文件顺序的存储于所述第二存储空间中。
2.如权利要求1所述的方法,其特征在于,对存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例,具体为:
按照设定检测周期,周期性的对所述存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例。
3.如权利要求1所述的方法,其特征在于,在配置第二存储空间,将所述第一存储空间中未被删除的文件连续的存储于所述第二存储空间中之后,还包括:
生成第一索引表以及第二索引表;
在所述第一索引表中配置M个位置,并在所述第二索引表中配置M个子表,其中,每个子表中包含了X*Ni个槽位,所述第一索引表中的一个位置指示所述第二索引表中的一个子表,其中:M为大于等于2的正整数,Ni为第一索引表中的第i位置存放的符合h%M=i条件的有效文件数量,i为第一索引表中第i个位置,在1到M之间,N1+N2+...+Nm=第一存储空间文件总数,X为大于等于1的正整数,h为哈希值;
在所述第一索引表的一个位置中存储一个子表地址的指针,并在所述第二索引表中存储原偏移量参数与新偏移量参数之间的对应关系。
4.如权利要求3所述的方法,其特征在于,在所述第一索引表中的配置M个位置,一个哈希值h对应一个位置。
5.如权利要求4所述的方法,其特征在于,在所述第二索引表中存储原偏移量参数与新偏移量参数之间的对应关系,包括:
基于所述哈希值h,在所述第一索引表中确定出第h%M个位置,并在所述第h%M个位置确定出指针;
在所述第二索引表中确定出所述指针对应的子表。
6.如权利要求5所述的方法,其特征在于,在配置第二存储空间,将所述第一存储空间中未被删除的文件顺序的存储于所述第二存储空间中之后,还包括:
获取一偏移量参数,确定所述偏移量参数对应的哈希值h;
根据所述哈希值h,在所述第一索引表中确定出哈希值h%M对应的位置中的指针;
在所述第二索引表中确定出对应所述指针的子表。
7.一种存储系统,其特征在于,包括:
检测模块,用于对存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例,其中,所述闲置比例为第一存储空间中的被删除的文件所闲置的存储空间与第一存储空间的总存储空间的比值;
判定模块,用于判定所述第一存储空间的闲置比例是否大于等于预设阈值;
处理模块,用于在第一存储空间对应的闲置比例大于等于预设阈值时,则配置第二存储空间,将所述第一存储空间中未被删除的文件顺序的存储于所述第二存储空间中。
8.如权利要求7所述的存储系统,其特征在于,所述检测模块,用于按照设定检测周期,周期性的对所述存储系统中的第一存储空间进行检测,获取所述第一存储空间对应的闲置比例。
9.如权利要求7所述的存储系统,其特征在于,所述处理模块,还用于生成第一索引表以及第二索引表;在所述第一索引表中配置M个位置,并在所述第二索引表中配置M个子表,在所述第一索引表的一个位置中存储一个子表地址的指针,并在所述第二索引表中存储原偏移量参数与新偏移量参数之间的对应关系,其中,每个子表中包含了X*Ni个槽位,所述第一索引表中的一个位置指示所述第二索引表中的一个子表,M为大于等于2的正整数,Ni为第一索引表中的第i位置存放的符合h%M=i条件的有效文件数量,i为第一索引表中第i个位置,在1到M之间,N1+N2+...+Nm=第一存储空间文件总数,X为大于等于1的正整数,X为大于等于1的正整数,h为哈希值。
10.如权利要求9所述的存储系统,其特征在于,所述处理模块,具体用于获取特定的原偏移量参数,并获取各个原偏移量参数的哈希值h,在所述第一索引表中配置M个位置。
11.如权利要求10所述的存储系统,其特征在于,所述处理模块,具体用于基于所述哈希值h,在所述第一索引表中确定出第h%M个位置,并在所述第h%M个位置确定出指针在所述第二索引表中确定出所述指针对应的子表;从所述子表的第一个槽位开始,依次遍历各个槽位;在检测到空槽位时,将原偏移量参数与新偏移量参数之间的对应关系保存在所述空槽位中,所述新偏移量参数指示了存储在所述第二存储空间中的文件的地址。
12.如权利要求11所述的存储系统,其特征在于,所述处理模块,还用于获取一偏移量参数,确定所述偏移量参数对应的哈希值h,根据所述哈希值h,在所述第一索引表中确定出哈希值h对应的位置中的指针,在所述第二索引表中确定出对应所述指针的的子表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510477662.2A CN105138282A (zh) | 2015-08-06 | 2015-08-06 | 一种存储空间回收的方法及存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510477662.2A CN105138282A (zh) | 2015-08-06 | 2015-08-06 | 一种存储空间回收的方法及存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105138282A true CN105138282A (zh) | 2015-12-09 |
Family
ID=54723643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510477662.2A Pending CN105138282A (zh) | 2015-08-06 | 2015-08-06 | 一种存储空间回收的方法及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138282A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354427A (zh) * | 2016-08-19 | 2017-01-25 | 浪潮(北京)电子信息产业有限公司 | 一种精简卷空间回收方法及系统 |
CN106446044A (zh) * | 2016-08-31 | 2017-02-22 | 北京小米移动软件有限公司 | 存储空间回收方法及装置 |
CN107315543A (zh) * | 2017-07-03 | 2017-11-03 | 合肥联宝信息技术有限公司 | 一种对ec的存储器中数据的读写方法及装置 |
CN108090128A (zh) * | 2017-11-16 | 2018-05-29 | 北京奇艺世纪科技有限公司 | 一种合并存储空间回收方法、装置及电子设备 |
CN108958653A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种基于底层聚合文件的空间回收方法、系统及相关装置 |
CN109086220A (zh) * | 2018-06-21 | 2018-12-25 | 北京奇艺世纪科技有限公司 | 一种回收存储空间的方法和装置 |
CN109408231A (zh) * | 2018-10-11 | 2019-03-01 | 北京中电华大电子设计有限责任公司 | 一种有效管理多应用卡存储空间的方法 |
WO2020037560A1 (zh) * | 2018-08-22 | 2020-02-27 | 华为技术有限公司 | 一种应用的安装方法及终端 |
CN111597147A (zh) * | 2020-04-30 | 2020-08-28 | 星辰天合(北京)数据科技有限公司 | 空间回收方法、装置、存储介质以及处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100070734A1 (en) * | 2006-11-22 | 2010-03-18 | International Business Machines Corproation | Resource Reclamation in Data Storage |
CN102571599A (zh) * | 2012-02-08 | 2012-07-11 | 福建三元达通讯股份有限公司 | 一种路由表项的快速存储方法 |
CN103577336A (zh) * | 2013-10-23 | 2014-02-12 | 华为技术有限公司 | 一种存储数据处理方法及装置 |
CN103577117A (zh) * | 2012-08-09 | 2014-02-12 | 深圳市腾讯计算机系统有限公司 | 数据存储方法及装置 |
CN103957195A (zh) * | 2014-04-04 | 2014-07-30 | 上海聚流软件科技有限公司 | Dns系统以及dns攻击的防御方法和防御装置 |
-
2015
- 2015-08-06 CN CN201510477662.2A patent/CN105138282A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100070734A1 (en) * | 2006-11-22 | 2010-03-18 | International Business Machines Corproation | Resource Reclamation in Data Storage |
CN102571599A (zh) * | 2012-02-08 | 2012-07-11 | 福建三元达通讯股份有限公司 | 一种路由表项的快速存储方法 |
CN103577117A (zh) * | 2012-08-09 | 2014-02-12 | 深圳市腾讯计算机系统有限公司 | 数据存储方法及装置 |
CN103577336A (zh) * | 2013-10-23 | 2014-02-12 | 华为技术有限公司 | 一种存储数据处理方法及装置 |
CN103957195A (zh) * | 2014-04-04 | 2014-07-30 | 上海聚流软件科技有限公司 | Dns系统以及dns攻击的防御方法和防御装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354427A (zh) * | 2016-08-19 | 2017-01-25 | 浪潮(北京)电子信息产业有限公司 | 一种精简卷空间回收方法及系统 |
CN106446044A (zh) * | 2016-08-31 | 2017-02-22 | 北京小米移动软件有限公司 | 存储空间回收方法及装置 |
CN106446044B (zh) * | 2016-08-31 | 2020-08-11 | 北京小米移动软件有限公司 | 存储空间回收方法及装置 |
CN107315543A (zh) * | 2017-07-03 | 2017-11-03 | 合肥联宝信息技术有限公司 | 一种对ec的存储器中数据的读写方法及装置 |
CN107315543B (zh) * | 2017-07-03 | 2020-10-09 | 合肥联宝信息技术有限公司 | 一种对ec的存储器中数据的读写方法及装置 |
CN108090128A (zh) * | 2017-11-16 | 2018-05-29 | 北京奇艺世纪科技有限公司 | 一种合并存储空间回收方法、装置及电子设备 |
CN108090128B (zh) * | 2017-11-16 | 2021-11-26 | 北京奇艺世纪科技有限公司 | 一种合并存储空间回收方法、装置及电子设备 |
CN109086220A (zh) * | 2018-06-21 | 2018-12-25 | 北京奇艺世纪科技有限公司 | 一种回收存储空间的方法和装置 |
CN108958653A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种基于底层聚合文件的空间回收方法、系统及相关装置 |
CN112119378A (zh) * | 2018-08-22 | 2020-12-22 | 华为技术有限公司 | 一种应用的安装方法及终端 |
WO2020037560A1 (zh) * | 2018-08-22 | 2020-02-27 | 华为技术有限公司 | 一种应用的安装方法及终端 |
CN109408231A (zh) * | 2018-10-11 | 2019-03-01 | 北京中电华大电子设计有限责任公司 | 一种有效管理多应用卡存储空间的方法 |
CN111597147A (zh) * | 2020-04-30 | 2020-08-28 | 星辰天合(北京)数据科技有限公司 | 空间回收方法、装置、存储介质以及处理器 |
CN111597147B (zh) * | 2020-04-30 | 2021-12-17 | 星辰天合(北京)数据科技有限公司 | 空间回收方法、装置、存储介质以及处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138282A (zh) | 一种存储空间回收的方法及存储系统 | |
CN100541454C (zh) | 一种数据缓存方法及系统 | |
CN107391774B (zh) | 基于重复数据删除的日志文件系统的垃圾回收方法 | |
EP3306477B1 (en) | Storage device and block storage method based on the storage device | |
US20140359233A1 (en) | Read-write control method for memory, and corresponding memory and server | |
CN104238962A (zh) | 向缓存中写入数据的方法及装置 | |
CN111198856B (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
CN104115134A (zh) | 复合非易失性存储设备的数据迁移 | |
CN102158349A (zh) | 一种日志管理装置及方法 | |
CN105446664B (zh) | 一种对存储器进行文件存储方法和存储装置 | |
CN101419571A (zh) | 基于Hash算法的在NOR FLASH中存储配置参数的方法 | |
CN104834477B (zh) | 基于闪存的数据写入方法和装置 | |
CN105980992A (zh) | 一种控制器、闪存装置、识别数据块稳定性的方法以及在闪存装置中存储数据的方法 | |
CN103383690A (zh) | 分布式数据存储方法及系统 | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN105917303A (zh) | 一种控制器、识别数据块稳定性的方法和存储系统 | |
CN113568582A (zh) | 数据管理方法、装置和存储设备 | |
CN103778120A (zh) | 全局文件标识生成方法、生成装置及相应的分布式文件系统 | |
CN103793468A (zh) | 数据存储方法和装置以及数据读取方法和装置 | |
CN104050057A (zh) | 一种历史感知的数据去重碎片消除方法与系统 | |
CN109213898A (zh) | 视频监控系统的录像检索方法及装置 | |
CN109408416B (zh) | 一种地址映射表项页管理方法及装置 | |
US20120137107A1 (en) | Method of decaying hot data | |
CN108664482A (zh) | Flash存储器及存储文件管理方法 | |
US8756396B1 (en) | Conversion of in-memory data representations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151209 |