一种数据存储方法、系统、设备以及介质技术方案

技术编号:30681468 阅读:10 留言:0更新日期:2021-11-06 09:11
本发明专利技术公开了一种数据存储方法,包括以下步骤:响应于接收到写请求,根据所述写请求中携带的逻辑地址确定对应的逻辑block;判断所述对应的逻辑block是否有线程维护;响应于对应的逻辑block没有所述线程维护,判断当前所有线程的数量是否达到阈值;响应于当前所有线程的数量未达到阈值,创建新的线程;将所述写请求中待写入的数据写入空白的物理block中,并利用所述新的线程记录所述空白的物理block以及所述待写入的数据在所述对应的逻辑block中的位置。本发明专利技术还公开了一种系统、计算机设备以及可读存储介质。本发明专利技术提出的方案能够减小写放大。小写放大。小写放大。

【技术实现步骤摘要】
一种数据存储方法、系统、设备以及介质


[0001]本专利技术涉及存储领域,具体涉及一种数据存储方法、系统、设备以及存储介质。

技术介绍

[0002]目前大数据的存储装置大多将NAND FLASH作为存储介质,而NAND FLASH的特点是只有擦除数据后才能重新写入数据。NAND FLASH的擦除单位为BLOCK,写数据和读数据单位为PAGE,但是存储系统中HOST维护数据的基本单位通常是LBA,所以需要有FTL算法来维护。
[0003]目前FTL算法通常有4K MAP、PAGE MAP、BLOCK MAP三种。4K MAP是指FTL维护算法的基本逻辑单位是4K,将HOST的LBA都转换为以4K为单位的映射。同理PAGE MAP和BLOCK MAP是指FTL维护算法的基本逻辑单位是NAND FLASH的PAGE和BLOCK大小。
[0004]BLOCK MAP算法适合应用于硬件资源不是很丰富,产品成本比较低的存储产品中,因为BLOCK MAP用的存储映射表需要的空间比较小。目前BLOCK MAP算法中通常只用了一个线程去记录当前的写现场,如果下一条命令是跨LBA的时候,由于当前内存中只有一个线程去记录写现场,所以需要结束这个线程,结束线程的方法是REBUILD数据,即将所有这个逻辑BLOCK内有效的数据搬移到一个物理BLOCK中,才能释放线程,但是这样会增加写放大。

技术实现思路

[0005]有鉴于此,为了克服上述问题的至少一个方面,本专利技术实施例提出一种数据存储方法,包括以下步骤:<br/>[0006]响应于接收到写请求,根据所述写请求中携带的逻辑地址确定对应的逻辑block;
[0007]判断所述对应的逻辑block是否有线程维护;
[0008]响应于所述对应的逻辑block没有所述线程维护,判断当前所有线程的数量是否达到阈值;
[0009]响应于当前所有线程的数量未达到阈值,创建新的线程;
[0010]将所述写请求中待写入的数据写入空白的物理block中,并利用所述新的线程记录所述空白的物理block以及所述待写入的数据在所述对应的逻辑block中的位置。
[0011]在一些实施例中,还包括:
[0012]响应于所述对应的逻辑block有线程维护,将所述待写入的数据写入新的物理block中,并利用所述线程记录所述新的物理block以及所述待写入的数据在所述对应的逻辑block中的位置。
[0013]在一些实施例中,还包括:
[0014]响应于所述对应的逻辑block中所有位置均有对应的数据,将所述线程中记录的所有的物理block中的数据进行合并;
[0015]将合并后的数据存储到同一个物理block中并记录所述对应的逻辑block与所述同一个物理block的映射关系;
[0016]释放所述线程。
[0017]在一些实施例中,将所述线程中记录的所有的物理block中的数据进行合并,进一步包括:
[0018]响应于所述线程记录的若干个物理block中的数据在所述对应的逻辑block中位置相同,将若干个物理block中的最新的物理block存储的数据合并到所述同一个物理block。
[0019]在一些实施例中,还包括:
[0020]将所述所有的物理block中的数据清空。
[0021]在一些实施例中,还包括:
[0022]响应于当前所有线程的数量达到阈值,选择其中一个线程作为待释放线程;
[0023]将所述待释放线程中记录的所有的物理block中的数据进行合并;
[0024]将合并后的数据存储到同一个物理block中并记录所述待释放线程维护的逻辑block与所述同一个物理block的映射关系;
[0025]释放所述待释放线程。
[0026]在一些实施例中,将所述待释放线程中记录的所有的物理block中的数据进行合并,进一步包括:
[0027]响应于所述待释放线程记录的若干个物理block中的数据在所述维护的逻辑block中位置相同,将若干个物理block中的最新的物理block存储的数据合并到所述同一个物理block;
[0028]确定所述维护的逻辑block中尚未有对应的数据的位置的大小;
[0029]从其他物理block中获取与所述位置的大小相同的数据合并到所述同一个物理block。
[0030]基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种数据存储系统,包括:
[0031]确定模块,配置为响应于接收到写请求,根据所述写请求中携带的逻辑地址确定对应的逻辑block;
[0032]第一判断模块,配置为判断所述对应的逻辑block是否有线程维护;
[0033]第二判断模块,配置为响应于所述对应的逻辑block没有所述线程维护,判断当前所有线程的数量是否达到阈值;
[0034]创建模块,配置为响应于当前所有线程的数量未达到阈值,创建新的线程;
[0035]记录模块,将所述写请求中待写入的数据写入空白的物理block中,并利用所述新的线程记录所述空白的物理block以及所述待写入的数据在所述对应的逻辑block中的位置。
[0036]基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种计算机设备,包括:
[0037]至少一个处理器;以及
[0038]存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种数据存储方法的步骤。
[0039]基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理
器执行时执行如上所述的任一种数据存储方法的步骤。
[0040]本专利技术具有以下有益技术效果之一:本专利技术提出的方案在接收到写请求后,首先根据写请求中携带的LBA(逻辑地址)确定对应的逻辑block,若该逻辑block没有线程在维护,同时当前线程的总数量则没有超过阈值,则创建一个新的线程,利用新的线程维护该逻辑block,这样不需要REBUILD当前线程,从而减小写放大。
附图说明
[0041]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0042]图1为本专利技术的实施例提供的数据存储方法的流程示意图;
[0043]图2为本专利技术的实施例提供的数据存储系统的结构示意图;
[0044]图3为本专利技术的实施例提供的计算机设备的结构示意图;
[0045]图4为本专利技术的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括以下步骤:响应于接收到写请求,根据所述写请求中携带的逻辑地址确定对应的逻辑block;判断所述对应的逻辑block是否有线程维护;响应于所述对应的逻辑block没有所述线程维护,判断当前所有线程的数量是否达到阈值;响应于当前所有线程的数量未达到阈值,创建新的线程;将所述写请求中待写入的数据写入空白的物理block中,并利用所述新的线程记录所述空白的物理block以及所述待写入的数据在所述对应的逻辑block中的位置。2.如权利要求1所述的方法,其特征在于,还包括:响应于所述对应的逻辑block有线程维护,将所述待写入的数据写入新的物理block中,并利用所述线程记录所述新的物理block以及所述待写入的数据在所述对应的逻辑block中的位置。3.如权利要求2所述的方法,其特征在于,还包括:响应于所述对应的逻辑block中所有位置均有对应的数据,将所述线程中记录的所有的物理block中的数据进行合并;将合并后的数据存储到同一个物理block中并记录所述对应的逻辑block与所述同一个物理block的映射关系;释放所述线程。4.如权利要求3所述的方法,其特征在于,将所述线程中记录的所有的物理block中的数据进行合并,进一步包括:响应于所述线程记录的若干个物理block中的数据在所述对应的逻辑block中位置相同,将若干个物理block中的最新的物理block存储的数据合并到所述同一个物理block。5.如权利要求3所述的方法,其特征在于,还包括:将所述所有的物理block中的数据清空。6.如权利要求1所述的方法,其特征在于,还包括:响应于当前所有线程的数量达到阈值,选择其中一个线程作为待释放线程;将所述待释放线程中记录的所有的物理block中的数据进行合并;将合并后...

【专利技术属性】
技术研发人员:张真
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1