System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 垃圾数据回收方法、装置、电子设备及存储介质制造方法及图纸_技高网

垃圾数据回收方法、装置、电子设备及存储介质制造方法及图纸

技术编号:44262432 阅读:3 留言:0更新日期:2025-02-14 22:07
本申请实施例提供了一种垃圾数据回收方法、装置、电子设备及计算机可读存储介质,涉及计算机存储领域、数据库技术领域,例如,本申请可用于分布式数据库领域。该方法包括:响应于满足LSM Tree的合并条件,对LSM Tree执行合并操作;确定每个BLOB文件中存储的无效BLOB的第一数据量和有效BLOB的第二数据量;对第一数据量和第二数据量的不同情况,分别采用通过打洞操作进行垃圾数据回收和重写有效BLOB的方式进行垃圾数据回收。本申请实施例的垃圾数据回收方式减小对系统I/O资源的消耗,有效避免了系统的性能的降低,并且提高了垃圾数据回收的效率,及时释放存储空间。

【技术实现步骤摘要】

本申请涉及计算机存储领域、数据库,具体而言,本申请涉及一种垃圾数据回收方法、装置、电子设备及计算机可读存储介质。


技术介绍

1、日志结构合并树(log-structured merge-tree,lsm tree)是一种广泛用于管理持久化数据的数据结构,特别适用于写入密集型的应用场景。然而,lsm tree在处理写入操作时,由于其设计需要定期将数据从内存合并到磁盘上,这会导致写入放大问题,即实际写入到磁盘的数据量远大于原始数据量。

2、为了解决这一问题,现有技术采用了键值分离的方法,即只将键(key)保留在lsmtree中,而将值(value)存储在其他地方,以此来减少写入放大,但这种方法在进行垃圾数据回收时增加了对i/o资源的瞬时需求,从而导致垃圾数据回收时系统响应时间和吞吐量等性能的降低。


技术实现思路

1、本申请实施例提供了一种垃圾数据回收方法、装置、电子设备、计算机可读存储介质及计算机程序产品,可以解决相关技术在垃圾数据回收时对i/o资源需求高导致系统性能下降的问题。所述技术方案如下:

2、根据本申请实施例的第一方面,提供了一种垃圾数据回收的方法,应用于键值分离存储系统,所述存储系统包括第一存储区域和第二存储区域,所述第一存储区域采用日志结构合并树lsm tree的形式存储数据,所述第二存储区域用于存储所述lsm tree对应的多个二进制大对象blob文件;该方法包括:

3、响应于满足lsm tree的合并条件,对lsm tree执行合并操作;所述lsm tree存储有至少一个第一键值对、每个第一键值对的键和值分别是一个blob文件中的一个blob的标识和存储地址;

4、对于所述第二存储区域中的每个blob文件,确定该blob文件中存储的无效blob的第一数据量和有效blob的第二数据量;其中,所述有效blob为对所述lsm tree执行合并操作后所述lsm tree中未被删除或未被覆盖的第一键值对对应的blob;

5、对于每个blob文件执行以下目标操作:

6、若所述blob文件的第一数据量超过第一预设阈值,且第二数据量占所述blob文件的总数据量的比例超过第二预设阈值,则将所述blob文件作为待打洞回收文件并添加至回收候选列表,以通过打洞punch hole操作对所述回收候选列表中的待打洞回收文件进行垃圾数据回收;

7、若所述blob文件中的第二数据量占所述blob文件的总数据量的比例未超过第二预设阈值,则将所述blob文件作为待重写回收文件,将所述blob文件中的有效blob重写,得到新的blob文件。

8、根据本申请实施例的第二方面,提供了一种垃圾数据回收装置,该装置应用于键值分离存储系统,所述存储系统包括第一存储区域和第二存储区域,所述第一存储区域采样日志结果合并树lsm tree的形式存储数据,所述第二存储区域用于存储所述lsm tree对应的多个二进制大对象blob文件,该装置包括:

9、合并操作模块,用于响应于满足lsm tree的合并条件,对lsm tree执行合并操作;所述lsm tree存储有至少一个第一键值对、每个第一键值对的键和值分别是一个blob文件中的一个blob的标识和存储地址;

10、确定数据量模块,用于对于所述第二存储区域中的每个blob文件,确定该blob文件中存储的无效blob的第一数据量和有效blob的第二数据量;其中,所述有效blob为对所述lsm tree执行合并操作后所述lsm tree中未被删除或未被覆盖的第一键值对对应的blob;

11、执行目标操作模块,用于对于每个blob文件执行以下目标操作:

12、若所述blob文件的第一数据量超过第一预设阈值,且第二数据量占所述blob文件的总数据量的比例超过第二预设阈值,则将所述blob文件作为待打洞回收文件并添加至回收候选列表,以通过打洞punch hole操作对所述回收候选列表中的待打洞回收文件进行垃圾数据回收;若所述blob文件中的第二数据量占所述blob文件的总数据量的比例未超过第二预设阈值,则将所述blob文件作为待重写回收文件,将所述blob文件中的有效blob重写,得到新的blob文件。

13、根据本申请实施例的第三方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。

14、根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。

15、根据本申请实施例的第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。

16、本申请实施例提供的技术方案带来的有益效果是:通过在满足lsm tree的合并条件时,对lsm tree进行合并操作,从而更新lsm tree的存储信息,在更新lsm tree的存储信息后,触发后续的垃圾数据回收步骤。在进行垃圾数据回收时,通过对第二存储区域中的每个blob文件进行分析,确定出每个blob文件中的无效blob的第一数据量和有效blob的第二数据量;通过将第一数据量与第一预设阈值进行比对,将第二数据量占所属blob文件的总数据量的比例超过第二预设阈值,则将blob文件作为待打洞回收文件,并将该待打洞回收文件添加至回收候选列表,以使得后续通过打洞操作对回收候选列表中的待打洞回收文件进行垃圾数据回收;通过将每个blob文件的第二数据量占blob文件的总数据量的比例未超过第二预设阈值的文件作为待重写文件,已通过对该blob文件中的有效blob进行重写到新的blob文件的形式实现垃圾数据回收。本申请实施例对blob文件中有效blob的数据量和无效blob的数据量的不同情况,对blob文件采取不同的垃圾数据回收方式,当无效blob的数据量较大且有效blob的数据量也较大时,通过打洞操作的方式对blob文件进行垃圾数据回收,减小对i/o资源的消耗,解决了相关技术对i/o资源的过度消耗导致系统性能下降的问题,通过在有效blob的数据量较小时,采样重写有效blob的方式进行垃圾数据回收,提高了垃圾数据回收的效率。

本文档来自技高网...

【技术保护点】

1.一种垃圾数据回收方法,其特征在于,所述方法应用于键值分离存储系统,所述存储系统包括第一存储区域和第二存储区域,所述第一存储区域采用日志结构合并树LSM Tree的形式存储数据,所述第二存储区域用于存储所述LSM Tree对应的多个二进制大对象BLOB文件;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述通过打洞punch hole操作对所述回收候选列表中的待打洞回收文件进行垃圾数据回收,包括:

3.根据权利要求2所述的方法,其特征在于,每个BLOB对应有一个回收标识,所述回收标识为第一标识或第二标识,每个BLOB的第一标识指示所述BLOB在对应的BLOB文件中已被打洞回收,每个BLOB的第二标识指示所述BLOB在对应的BLOB文件中未被打洞回收;

4.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述BLOB文件作为待重写回收文件,将所述BLOB文件中的有效BLOB重写,得到新的BLOB文件,包括:

5.根据权利要求3所述的方法,其特征在于,每个BLOB包括信息头和信息体,所述回收标识记录在所述信息头中,所述信息体中记录有BLOB的描述信息,所述描述信息包括BLOB的键和BLOB中存储数据的数据量,所述信息体中还记录BLOB的键对应的存储数据;每个BLOB存储在BLOB文件中的至少一个存储块中,且所述BLOB的信息头、描述信息和存储数据依次存储在各个存储块中,其中所述BLOB的信息头存储在所述BLOB的首个存储块中,所述BLOB文件中的每个存储块的数据存储量为第一预设值;

6.根据权利要求5所述的方法,其特征在于,所述确定该BLOB文件中存储的无效BLOB的第一数据量和有效BLOB的第二数据量,包括:

7.根据权利要求3所述的方法,其特征在于,所述将所述BLOB文件作为待打洞回收文件并添加至回收候选列表,之前还包括:

8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:

9.一种垃圾数据回收装置,其特征在于,所述装置应用于键值分离存储系统,所述存储系统包括第一存储区域和第二存储区域,所述第一存储区域采样日志结果合并树LSM Tree的形式存储数据,所述第二存储区域用于存储所述LSM Tree对应的多个二进制大对象BLOB文件,所述装置包括:

10.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一项所述方法的步骤。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。

12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。

...

【技术特征摘要】

1.一种垃圾数据回收方法,其特征在于,所述方法应用于键值分离存储系统,所述存储系统包括第一存储区域和第二存储区域,所述第一存储区域采用日志结构合并树lsm tree的形式存储数据,所述第二存储区域用于存储所述lsm tree对应的多个二进制大对象blob文件;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述通过打洞punch hole操作对所述回收候选列表中的待打洞回收文件进行垃圾数据回收,包括:

3.根据权利要求2所述的方法,其特征在于,每个blob对应有一个回收标识,所述回收标识为第一标识或第二标识,每个blob的第一标识指示所述blob在对应的blob文件中已被打洞回收,每个blob的第二标识指示所述blob在对应的blob文件中未被打洞回收;

4.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述blob文件作为待重写回收文件,将所述blob文件中的有效blob重写,得到新的blob文件,包括:

5.根据权利要求3所述的方法,其特征在于,每个blob包括信息头和信息体,所述回收标识记录在所述信息头中,所述信息体中记录有blob的描述信息,所述描述信息包括blob的键和blob中存储数据的数据量,所述信息体中还记录blob的键对应的存储数据;每个blob存储在blob文件中的至少一个存储块中,且所述blob的信息头、描述信息和存储数据...

【专利技术属性】
技术研发人员:张博康张阳刘奇黄东旭崔秋
申请(专利权)人:平凯星辰北京科技有限公司
类型:发明
国别省市:

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

1