一种存储空间回收方法、系统及计算机存储介质技术方案

技术编号:30341691 阅读:26 留言:0更新日期:2021-10-12 23:12
本发明专利技术公开了一种存储空间回收方法、系统及计算机存储介质,其中,键值对数据中的键数据存储于第一文件中,所述键值对数据中的值数据存储于第二文件中,所述方法包括:当所述第一文件中触发合并操作时,根据所述第一文件中失效的键数据,在所述第二文件中确定失效的值数据;识别所述第二文件中当前处于失效状态的值数据的数据量,并在所述数据量满足前提条件时,在指定时长内确定所述第二文件中是否新增失效的值数据,并根据确定结果判断是否在所述第二文件中执行存储空间回收操作。本申请提供的技术方案,能够降低硬盘的负载。能够降低硬盘的负载。能够降低硬盘的负载。

【技术实现步骤摘要】
一种存储空间回收方法、系统及计算机存储介质


[0001]本专利技术涉及互联网
,特别涉及一种存储空间回收方法、系统及计算机存储介质。

技术介绍

[0002]为了有效利用硬盘的有限空间,目前可以通过GC(Garbage Collection,垃圾收集)技术实现存储空间的回收。具体地,可以统计文件中过期的数据,如果过期的数据达到一定的比例,便可以执行GC操作,从而将这部分过期的数据删除。
[0003]然而,文件中的数据可能是批量上传的,一部分数据可能会在短时间内陆续过期。按照现有的存储空间回收策略,会导致硬盘中持续执行GC操作,从而使得硬盘一直处于较高的读写状态中。这样会增加硬盘的负担,也会影响硬盘中正常的数据读写过程。此外,文件在存储回收过程中,可能会存在读写放大的问题,这样会进一步增加硬盘的负担。

技术实现思路

[0004]本申请的目的在于提供一种存储空间回收方法、系统及计算机存储介质,能够降低硬盘的负载。
[0005]为实现上述目的,本申请一方面提供一种存储空间回收方法,键值对数据中的键数据存储于第一文件中,所述键值对数据中的值数据存储于第二文件中,所述方法包括:当所述第一文件中触发合并操作时,根据所述第一文件中失效的键数据,在所述第二文件中确定失效的值数据;识别所述第二文件中当前处于失效状态的值数据的数据量,并在所述数据量满足前提条件时,在指定时长内确定所述第二文件中是否新增失效的值数据,并根据确定结果判断是否在所述第二文件中执行存储空间回收操作。
[0006]为实现上述目的,本申请另一方面还提供一种存储空间回收系统,键值对数据中的键数据存储于第一文件中,所述键值对数据中的值数据存储于第二文件中,所述系统包括:失效数据确定单元,用于当所述第一文件中触发合并操作时,根据所述第一文件中失效的键数据,在所述第二文件中确定失效的值数据;空间回收单元,用于识别所述第二文件中当前处于失效状态的值数据的数据量,并在所述数据量满足前提条件时,在指定时长内确定所述第二文件中是否新增失效的值数据,并根据确定结果判断是否在所述第二文件中执行存储空间回收操作。
[0007]为实现上述目的,本申请另一方面还提供一种计算机存储介质,所述计算机存储介质中包括随机存储区域和顺序存储区域,所述随机存储区域中写入第一文件,所述顺序存储区域中写入第二文件,其中,键值对数据中的键数据存储于所述第一文件中,所述键值对数据中的值数据存储于所述第二文件中;所述第一文件和所述第二文件按照上述的存储空间回收方法进行处理。
[0008]由上可见,本申请一个或者多个实施方式提供的技术方案,键值对数据可以分离存储在不同的文件中,这样可以减缓读写放大的问题,从而降低硬盘的负载。具体地,键数
据可以存储于第一文件中,对应的值数据可以存储于第二文件中。当第一文件中发生合并操作时,部分键数据可能会被删除或者覆盖,从而导致这部分键数据失效。在第二文件中失效的这部分键数据对应的值数据,便可以作为存储空间回收的对象。在实际应用中,第一文件中完成合并操作后,可以根据第一文件中失效的键数据计算出第二文件中应当删除的数据量。经过多次合并操作,便可以累计出第二文件中应当被删除的数据总量。这部分应当被删除的数据,便可以作为存储空间回收的对象。具体地,可以统计当前处于失效状态的值数据的数据量,如果统计的数据量满足回收条件时,可以不立即执行GC操作,而是继续确定在之后的指定时长内,第二文件中是否新增了失效的值数据。如果新增了失效的值数据,则表明批量文件可能在陆续失效,此时不宜直接进行GC操作。如果指定时长内都没有新增失效数据,则表明已经具备了GC操作的前提。这样,根据确定的结果,可以判断是否在第二文件中执行存储空间回收操作,从而避免了硬盘一直处于较高的读写状态,可以减轻硬盘的负载。
附图说明
[0009]为了更清楚地说明本专利技术实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0010]图1是本专利技术实施方式中存储空间回收方法步骤图;
[0011]图2是本专利技术实施方式中存储空间回收方法的流程图;
[0012]图3是本专利技术实施方式中存储空间回收系统的功能模块示意图;
[0013]图4为现有技术中进行存储空间回收时的硬盘读写情况示意图;
[0014]图5为本申请实施方式中进行存储空间回收时的硬盘读写情况示意图。
具体实施方式
[0015]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施方式及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施方式仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。
[0016]键值对(key-value)存储系统由于数据简单、易部署等优点,被广泛应用在数据存储领域。键值对存储系统中,可以通过写入(put)或者查询(get)功能,分别写入键值对数据,或者根据提供的键数据,查询对应的值数据。
[0017]LSM-Tree(Log-Structured Merge Tree,日志结构的合并树)是为键值对存储系统设计的存储引擎。该存储引擎可以先将最新的数据驻留在内存中,等到内存中积累到足够多的数据之后,再使用归并排序的方式将内存中的数据合并(compact)追加到硬盘的队尾。目前,基于LSM-Tree的数据库有很多,例如可以包括Hbase、RocksDB、LevelDB等。
[0018]然而,LSM-Tree的SST文件在执行数据合并操作时,通常会存在读写放大的问题。其中,读写放大问题是指,LSM-Tree在执行合并操作时,通常要把数据从当前的文件读出来,再写到新的文件去。实际上,在合并过程中可能没有任何数据发生变更,但这个过程依
然需要执行一遍,从而导致了读写放大的问题。为了缓解这一问题带来的影响,可以将键值对数据中的键数据和值数据分离存储。其中,键值对数据中的键数据可以存储于SST文件中,而键值对数据中的值数据可以分离至Blob(BinaryLargeObject,二进制大对象)文件中。当然,在实际应用中,在进行键值对数据分离存储时,可以不仅仅限于SST文件和Blob文件,而是可以将键数据和值数据分别存储于不同的第一文件和第二文件中。因此,本申请对于第一文件和第二文件的具体类型并不做限定,后续为了阐述方便,可以用SST文件和Blob文件为例,但本领域技术人员应当了解,这并不表示本申请的技术方案仅限于SST文件和Blob文件。
[0019]目前,为了存储海量数据和降低硬件成本,可以采用叠瓦式硬盘(Shingled Magnetic Recording,SMR)进行数据存储。叠瓦式硬盘中可以包括顺序存储区域和随机存储区域本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存储空间回收方法,其特征在于,键值对数据中的键数据存储于第一文件中,所述键值对数据中的值数据存储于第二文件中,所述方法包括:当所述第一文件中触发合并操作时,根据所述第一文件中失效的键数据,在所述第二文件中确定失效的值数据;识别所述第二文件中当前处于失效状态的值数据的数据量,并在所述数据量满足前提条件时,在指定时长内确定所述第二文件中是否新增失效的值数据,并根据确定结果判断是否在所述第二文件中执行存储空间回收操作。2.根据权利要求1所述的方法,其特征在于,所述第一文件写入叠瓦式硬盘的随机存储区域,所述第二文件写入所述叠瓦式硬盘的顺序存储区域。3.根据权利要求2所述的方法,其特征在于,所述第二文件写入所述叠瓦式硬盘的顺序存储区域包括:将所述第二文件的数据写入内存缓存区中,并在所述内存缓冲区内写满数据后,将所述内存缓冲区内的数据写入所述叠瓦式硬盘的顺序存储区域中;其中,所述内存缓冲区的区域大小被配置为扇区对齐,并且在向所述顺序存储区域中写入最后一次数据后,将所述顺序存储区域中的数据补齐为扇区对齐。4.根据权利要求1所述的方法,其特征在于,所述第一文件中还存储所述键数据关联的位置信息,所述位置信息用于指向所述键数据对应的值数据在所述第二文件中的存储位置;所述第二文件中还存储所述值数据对应的所述键数据。5.根据权利要求1或4所述的方法,其特征在于,所述第二文件中新增索引区块,所述索引区块中包含所述键数据和所述键数据对应的索引信息,所述索引信息用于指向所述值数据在所述第二文件中的存储位置。6.根据权利要求5所述的方法,其特征在于,所述第二文件中还包括关联句柄区块,所述关联句柄区块中记录的信息用于指向所述索引区块的存储位置。7.根据权利要求1所述的方法,其特征在于,所述数据量满足前提条件包括:所述数据量大于或者等于指定数据量阈值;或者统计所述第二文件中包含的值数据的数据总量,并且所述当前处于失效状态的值数据的数据量在所述数据总量中的占比大于或者等于指定比例阈值。8.根据权利要求1所述的方法,其特征在于,根据确定结果判断是否在所述第二文件中执行存储空间回收操作包括:若在所述指定时长内所述第二文件中不存在新增失效的值数据,在所述第二文件中执行存储空间回收操作,以删除所述第二文件中当前处于失效状态的值数据。9.根据权利要求8所述的方法,其特征在于,删除所述第二文件中当前处于失效状态的值数据包括:遍历所述第二文件的索引区块中存储的所述键数据,并识别所述键...

【专利技术属性】
技术研发人员:周越
申请(专利权)人:厦门网宿有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1