一种基于LSM-Tree存储引擎的文件管理方法和装置制造方法及图纸

技术编号:30341690 阅读:20 留言:0更新日期:2021-10-12 23:12
本发明专利技术公开了一种基于LSM-Tree存储引擎的文件管理方法和装置,属于计算机技术领域。所述方法包括:在生成Blob文件和SST文件的过程中,监测所述SST文件的版本登记状态;根据所述SST文件不同的版本登记状态,利用不同的阶段信息,对所述SST文件对应的已生效的Blob文件进行标记;定期根据所述阶段信息,对已生效的Blob文件进行异常文件处理。采用本发明专利技术,可以有效避免SMR磁盘的存储空间发生泄漏。以有效避免SMR磁盘的存储空间发生泄漏。以有效避免SMR磁盘的存储空间发生泄漏。

【技术实现步骤摘要】
一种基于LSM-Tree存储引擎的文件管理方法和装置


[0001]本专利技术涉及计算机
,特别涉及一种基于LSM-Tree存储引擎的文件管理方法和装置。

技术介绍

[0002]叠瓦式磁盘(Shingled Magnetic Recording,简称SMR磁盘)是一种将磁道部分重叠以提高存储密度的存储介质,内部可以包括若干重叠磁道组成的顺序存储区和普通的随机存储区域。将SMR磁盘应用于云存储平台,可以有效降低云存储平台的产品成本,然而云存储平台的原有操作系统的性能目前还无法满足SMR磁盘的IO吞吐需求。
[0003]LSM-Tree存储引擎是一种可以有效支持SMR磁盘的嵌入式存储系统。进行数据存储时,LSM-Tree存储引擎可以将写入的Key-value形式的业务数据保存在内存表中,在内存表写满后再将其中的数据Flush到SST文件,最终通过登记SST文件的版本来提交并生效SST文件。而当SST文件的数量到达定值时,会进一步对多个SST文件执行Compaction,以将多个SST文件压缩成一个文件,Compaction新生成的SST文件也可以通过登记版本来提交并生效。从而LSM-Tree存储引擎可以查询到生效后的SST文件。
[0004]LSM-Tree存储引擎还支持KV分离的数据存储方式,即将业务数据中数据量较大的Value值分离出LSM-Tree,单独存储在Blob文件中,而SST文件可以保存业务数据中的Key值,以及Value值在Blob文件的存储位置,从而可以将Key值与Value值进行关联。
[0005]Blob文件同样是通过版本登记来生效文件的,且Blob文件的版本是单独管理的,为了保证数据查询的安全性,Blob文件的版本需要先于SST文件的版本进行登记,否则可能会出现数据不一致的问题。然而在系统异常情况下,可能会导致Blob文件版本生效但SST版本未生效问题,这样,Blob文件将因没有有效的SST文件与之对应而处于异常阶段,故而会导致SMR磁盘的存储空间泄露。

技术实现思路

[0006]为了解决现有技术的问题,本专利技术实施例提供了一种基于LSM-Tree存储引擎的文件管理方法和装置。所述技术方案如下:
[0007]第一方面,提供了一种基于LSM-Tree存储引擎的文件管理方法,所述方法包括:
[0008]在生成Blob文件和SST文件的过程中,监测所述SST文件的版本登记状态;
[0009]根据所述SST文件不同的版本登记状态,利用不同的阶段信息,对所述SST文件对应的已生效的Blob文件进行标记;
[0010]定期根据所述阶段信息,对已生效的Blob文件进行异常文件处理。
[0011]第二方面,提供了一种基于LSM-Tree存储引擎的文件管理装置,所述装置包括:
[0012]文件生成模块,用于在生成Blob文件和SST文件的过程中,监测所述SST文件的版本登记状态;
[0013]阶段标记模块,用于根据所述SST文件不同的版本登记状态,利用不同的阶段信
息,对所述SST文件对应的已生效的Blob文件进行标记;
[0014]文件处理模块,用于定期根据所述阶段信息,对已生效的Blob文件进行异常文件处理。
[0015]第三方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的基于LSM-Tree存储引擎的文件管理方法。
[0016]第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的基于LSM-Tree存储引擎的文件管理方法。
[0017]本专利技术实施例提供的技术方案带来的有益效果是:
[0018]本专利技术实施例中,在生成Blob文件和SST文件的过程中,监测SST文件的版本登记状态;根据SST文件不同的版本登记状态,利用不同的阶段信息,对SST文件对应的已生效的Blob文件进行标记;定期根据阶段信息,对已生效的Blob文件进行异常文件处理。这样,在SST文件不同的版本登记状态下,分别以不同阶段信息来标记已生效的Blob文件,从而在定期处理异常文件时,通过阶段信息可以很容易识别哪些Blob文件处于异常阶段,再通过对异常文件的处理可以释放出SMR磁盘中无效的Blob文件,可以有效避免SMR磁盘的存储空间发生泄漏。
附图说明
[0019]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1是本专利技术实施例提供的一种基于LSM-Tree存储引擎的文件管理方法流程图;
[0021]图2是本专利技术实施例提供的一种基于LSM-Tree存储引擎的文件管理流程示意图;
[0022]图3是本专利技术实施例提供的一种Blob文件的阶段变化原理图;
[0023]图4是本专利技术实施例提供的一种基于LSM-Tree存储引擎的文件管理装置结构图;
[0024]图5是本专利技术实施例提供的一种网络设备的结构示意图。
具体实施方式
[0025]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。
[0026]本专利技术实施例提供了一种基于LSM-Tree存储引擎的文件管理方法,该方法可以应用在配置有LSM-Tree存储引擎的存储集群,并主要由LSM-Tree存储引擎来执行。其中,存储集群具体可以是云存储平台,存储集群可以利用SMR磁盘来存储业务数据,并通过LSM-Tree存储引擎来管理SMR磁盘内的数据读写、更新和删除等。LSM-Tree存储引擎可以支持KV分离的存储方式,通过Blob文件和SST文件分别存储业务数据的Value值和Key值。LSM-Tree存储
引擎生成Blob文件和SST文件后,可以以登记文件版本的方式来生效Blob文件和SST文件,并可以将生效后的Blob文件和SST文件分别存储在SMR磁盘中的顺序存储区和随机存储区中。每个生效的Blob文件对应一个生效的SST文件,在执行多个SST文件的Compaction后,多个生效的Blob文件可以对应一个生效的SST文件。本实施例中以存储集群为云存储平台为例进行说明,其它情况与之类似,不再一一举例说明。
[0027]下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:
[0028]步骤101,在生成Blob文件和SST文件过程中,监测SST文件的版本登记状态。
[0029]在实施中,云存储平台在对外提供云存储服务时,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于LSM-Tree存储引擎的文件管理方法,其特征在于,所述方法包括:在生成Blob文件和SST文件的过程中,监测所述SST文件的版本登记状态;根据所述SST文件不同的版本登记状态,利用不同的阶段信息,对所述SST文件对应的已生效的Blob文件进行标记;定期根据所述阶段信息,对已生效的Blob文件进行异常文件处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述SST文件不同的版本登记状态,利用不同的阶段信息,对所述SST文件对应的Blob文件进行标记,包括:若所述SST文件未登记版本,则将所述SST文件对应的Blob文件标记为中间阶段,否则标记为最终阶段。3.根据权利要求2所述的方法,其特征在于,所述若所述SST文件未登记,则将所述SST文件对应的Blob文件标记为中间阶段,否则标记为最终阶段,包括:在完成业务数据的Flush处理,生成Blob文件时,标记所述Blob文件为中间阶段;在所述Blob文件对应的SST文件生成并登记后,将所述Blob文件的切换标记为最终阶段。4.根据权利要求2所述的方法,其特征在于,所述若所述SST文件未登记,则将所述SST文件对应的Blob文件标记为中间阶段,否则标记为最终阶段,包括:在开始执行SST文件的Compaction时,将所述SST文件对应的Blob文件切换标记为中间阶段;在完成SST文件的Compaction处理,生成并登记新SST文件后,将所述SST文件对应的Blob文件切换标记为最终阶段。5.根据权利要求2所述的方法,其特征在于,所述定期根据所述阶段信息,对已生效的Blob文件进行异常文件处理,包括:定期对标记为中间阶段的已生效的目标Blob文件,进行异常文件处理。6.根据权利要求5所述的方法,其特征在于,所述进行异常文件处理,包括:若不存在所述目标Blob文件对应的已生效的目标SST文件,则删除所述目标Blob文件,否则重新创建所述目标Blob文件。7.根据权利要求6所述的方法,其特征在于,所述重新创建所述目标Blob文件,包括:根据所述目标Blob文件创建新Blob文件和新SST文件,并删除所述目标Blob文件和目标SST文件。...

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

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

1