一种数据块填充方法、装置、设备及可读存储介质

文档序号:1755019 发布日期:2019-11-29 浏览:1次 >En<

阅读说明:本技术 一种数据块填充方法、装置、设备及可读存储介质 (A kind of data block fill method, device, equipment and readable storage medium storing program for executing ) 是由 吕玉彬 戚勇 于 2019-08-09 设计创作,主要内容包括:本发明公开了一种数据块填充方法、装置、设备及可读存储介质,该方法包括:确定任一存在空白的数据页的数据块为目标数据块;如果所述目标数据块未被写入数据的持续时间达到预设时间段,并且所述目标数据块中空白的数据页的数量大于k,则向所述目标数据块中填充k个数据页的无效数据;其中,k为基于所述目标数据块所属存储设备确定的、所述目标数据块中存在被损坏风险的数据所属数据页的个数。本申请不仅保证了目标数据块中实际有效的数据的可靠性;而且在目标数据块中空白的数据页的数量大于k时仅通过填充k个数据页的无效数据即可达到保证数据可靠性的目的,减少了写入至目标数据块中的无效数据,从而节省了目标数据块中的存储空间。(The invention discloses a kind of data block fill method, device, equipment and readable storage medium storing program for executing, this method comprises: determining that any there are the data block of the data page of blank is target data block;If the duration that the target data block is not written into data reaches preset time period, and the quantity of the data page of blank is greater than k in the target data block, then k number is filled into the target data block according to the invalid data of page;Wherein, k is the number that there is the affiliated data page of data for being damaged risk in target data block determining based on storage equipment belonging to the target data block, described.The application not only ensure that the reliability of actually active data in target data block;And only passes through filling k number when the quantity of the data page of blank is greater than k in target data block and can reach the purpose for guaranteeing data reliability according to the invalid data of page, reduce the invalid data being written into target data block, to save the memory space in target data block.)

一种数据块填充方法、装置、设备及可读存储介质

技术领域

本发明涉及固态硬盘技术领域,更具体地说,涉及一种数据块填充方法、装置、设备及可读存储介质。

背景技术

固态硬盘的数据块(block,固态硬盘内存储数据的单位,是擦出操作的基本单位)是存储数据的基本单位之一,每个数据块有n(n为大于1的整数)个数据页(page,固态硬盘内存储数据的单位,是写和读的基本单位),数据页是读写的最小单位。每个数据块内的数据页是依次写入的,如果某一个数据块的所有数据页都已写入数据,则可以称这种类型的数据块的状态为关闭状态(close),如果某些数据块不是所有的数据页都写入了数据,则可以称这些数据块为打开状态(open)。

但是如果某数据块长期处于打开状态,则会导致其包含的部分数据页的数据不稳定,进而在ECC(Error Checking and Correction,固态硬盘的纠错过程)过程中错误位的个数显著增加;为了避免这种情况,现有技术一般在数据块处于打开状态的时间较长时直接填无效数据将处于打开状态的数据块填满,使得该数据块达到关闭状态,保证其中数据的稳定性。但是这种方式一次性填充的无效数据过多,会造成数据块中存储空间的浪费。

发明内容

本发明的目的是提供一种数据块填充方法、装置、设备及可读存储介质,用于解决现有技术中填充数据块的方式存在的浪费存储空间的问题。

为了实现上述目的,本发明提供如下技术方案:

一种数据块填充方法,包括:

确定任一存在空白的数据页的数据块为目标数据块;

如果所述目标数据块未被写入数据的持续时间达到预设时间段,并且所述目标数据块中空白的数据页的数量大于k,则向所述目标数据块中填充k个数据页的无效数据;其中,k为基于所述目标数据块所属存储设备确定的、所述目标数据块中存在被损坏风险的数据所属数据页的个数。

优选的,确定任一存在空白的数据页的数据块为目标数据块之后,还包括:

如果接收到掉电信号,并且所述目标数据块中空白的数据页的数量大于k,则向所述目标数据块中填充k个数据页的无效数据。

优选的,向所述目标数据块中填充k个数据页的无效数据之前,还包括:

获取预先存储的包含有无效数据标记的k个数据页的无效数据。

优选的,还包括:

设置定时器,并控制所述定时器在每次向所述目标数据块中写入数据的时刻开始进行计时;

对应的,判断所述目标数据块未被写入数据的持续时间是否达到预设时间段,包括:

判断所述定时器在最后一次向所述目标数据块写入数据的时刻开始进行计时至当前时刻的计时时长是否达到预设时间段。

优选的,向所述目标数据块中填充k个数据页的无效数据之后,还包括:

接收数据写请求,并将与所述数据写请求对应的数据写入至所述目标数据块中。

一种数据块填充装置,包括:

确定模块,用于:确定任一存在空白的数据页的数据块为目标数据块;

第一填充模块,用于:如果所述目标数据块未被写入数据的持续时间达到预设时间段,并且所述目标数据块中空白的数据页的数量大于k,则向所述目标数据块中填充k个数据页的无效数据;其中,k为基于所述目标数据块所属存储设备确定的、所述目标数据块中存在被损坏风险的数据所属数据页的个数。

优选的,还包括:

第二填充模块,用于:确定任一存在空白的数据页的数据块为目标数据块之后,如果接收到掉电信号,并且所述目标数据块中空白的数据页的数量大于k,则向所述目标数据块中填充k个数据页的无效数据。

优选的,还包括:

获取模块,用于:向所述目标数据块中填充k个数据页的无效数据之前,获取预先存储的包含有无效数据标记的k个数据页的无效数据。

一种数据块填充设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上任一项所述数据块填充方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述数据块填充方法的步骤。

本发明提供了一种数据块填充方法、装置、设备及可读存储介质,其中,该方法包括:确定任一存在空白的数据页的数据块为目标数据块;如果所述目标数据块未被写入数据的持续时间达到预设时间段,并且所述目标数据块中空白的数据页的数量大于k,则向所述目标数据块中填充k个数据页的无效数据;其中,k为基于所述目标数据块所属存储设备确定的、所述目标数据块中存在被损坏风险的数据所属数据页的个数。本发明公开的技术方案,对于任一个存在空白的数据页的目标数据块,如果目标数据块未被写入数据的持续时间达到预设时间段且目标数据块中空白的数据页的数量大于k,则向目标数据块中填充k个数据页的无效数据,其中,k为目标数据块中存在被损坏风险的数据所属数据页的个数,从而通过这种方式,使得k个数据页的无效数据代替目标数据块中有效的数据成为状态不稳定的数据,从而即使目标数据块中状态不稳定的数据出现损坏等情况,也不会对目标数据块中实际有效的数据造成影响,从而保证了目标数据块中实际有效的数据的可靠性;并且,在目标数据块中空白的数据页的数量大于k时仅通过填充k个数据页的无效数据即可达到保证其中实际有效的数据的可靠性的目的,减少了写入至目标数据块中的无效数据,从而节省了目标数据块中的存储空间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种数据块填充方法的流程图;

图2为本发明实施例提供的一种数据块填充装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,其示出了本发明实施例提供的一种数据块填充方法的流程图,可以包括:

S11:确定任一存在空白的数据页的数据块为目标数据块。

需要说明的是,本发明实施例提供的一种数据块填充方法的执行主体可以为对应的数据块填充装置;其中,空白的数据页即为未写入任何数据的数据页,存在空白的数据页的数据块为打开状态,任一打开状态的数据块均可以作为目标数据块,以对该目标数据块进行对应的数据填充操作。

S12:如果目标数据块未被写入数据的持续时间达到预设时间段,并且目标数据块中空白的数据页的数量大于k,则向目标数据块中填充k个数据页的无效数据(dummy数据);其中,k为基于目标数据块所属存储设备确定的、目标数据块中存在被损坏风险的数据所属数据页的个数。

发明人发现在数据块处于较长时间的打开状态时,距离当前时刻最近的时间写入至数据块中的部分数据(即最新写入至数据块中的部分数据)具有不稳定性,容易出现损坏等情况,假设具有不稳定性的部分数据占用的数据页为k个,如果某打开状态的数据块写到了第m个数据页,那么最后写入该数据块的k个数据页中的数据,也就是第(m–k+1)个至第m个数据页内的数据状态不稳定。并且,具有不稳定性的部分数据所属(或者说占用)的数据页的个数与数据块所属存储设备(固态硬盘等)的特性(nand特性)相关,也就是说不同的存储设备中打开状态的数据块中具有不稳定性的数据所占的数据页的个数不同,因此本实施例中可以通过实验等方式确定出目标数据块所属存储设备中数据块在打开状态时具有不稳定性的数据所占的数据页个数,并确定该个数为k的值;预设时间段可以用t表示,t也是由数据块所属存储设备的特性(nand的retention(SSD数据存储时间过长引起的数据错误)特性)决定的,不同的存储设备对应数据块在执行步骤S12时t的取值不同,因此本实施例中可以通过实验等方式确定出目标数据块所属存储设备中数据块在打开状态并且持续无数据写入时,由最后一次写入数据时刻开始至因不稳定性造成最后k个数据页的数据损坏等情况的前一时刻之间的时间段为预设时间段。

本实施例中,在确定出目标数据块最后一次写入数据至当前时刻的时间间隔(并且该时间间隔内未向目标数据块写入任何数据)达到预设时间段时,为了避免目标数据块中的数据因不稳定性出现损坏等情况,向目标数据块中填充k个数据页的无效数据,由此,即使因目标数据块长期处于打开状态造成最后写入其中的k个数据页的数据出现损坏等情况,也是k个数据页的无效数据出现损坏等情况,不会影响目标数据块中有效的实际的数据;不同于现有技术中通过将目标数据块填满从而使得目标数据块从打开状态变为关闭状态,而是仅需将会存在不稳定可能的k个数据页用无效数据填充,从而避免对实际的有效的数据的影响的同时,减少填充的数据量。

本发明公开的技术方案,对于任一个存在空白的数据页的目标数据块,如果目标数据块未被写入数据的持续时间达到预设时间段且目标数据块中空白的数据页的数量大于k,则向目标数据块中填充k个数据页的无效数据,其中,k为目标数据块中存在被损坏风险的数据所属数据页的个数,从而通过这种方式,使得k个数据页的无效数据代替目标数据块中有效的数据成为状态不稳定的数据,从而即使目标数据块中状态不稳定的数据出现损坏等情况,也不会对目标数据块中实际有效的数据造成影响,从而保证了目标数据块中实际有效的数据的可靠性;并且,在目标数据块中空白的数据页的数量大于k时仅通过填充k个数据页的无效数据即可达到保证其中实际有效的数据的可靠性的目的,减少了写入至目标数据块中的无效数据,从而节省了目标数据块中的存储空间。

本发明实施例提供的一种数据块填充方法,确定任一存在空白的数据页的数据块为目标数据块之后,还可以包括:

如果接收到掉电信号,并且目标数据块中空白的数据页的数量大于k,则向目标数据块中填充k个数据页的无效数据。

接收到掉电信号则说明需要对目标数据块所属存储设备的系统进行掉电操作,由于掉电之前处于打开状态的数据块中最后k个数据页的数据也可能因不稳定性,在再次上电之后出现错误,因此本实施例中在接收到掉电信号且目标数据块中空白的数据页的数量大于k时,也需要向目标数据块中填充k个数据页的无效数据,从而进一步保证目标数据块中实际有效的数据的稳定性。并且,由于向目标数据块填充无效数据的操作需要在掉电操作实现之前完成,而本实施例中填充的无效数据相对于现有技术中同等情况下填充的无效数据要少,从而避免了无效数据的填充对掉电操作造成的不良影响,如延迟掉电操作的实现等。

需要说明的是,接收到掉电信号和/或目标数据块未被写入数据的持续时间达到预设时间段,还是接收到掉电信号时,均执行如果目标数据块中空白的数据页的数量大于k,则向目标数据块中填充k个数据页的无效数据的操作,从而通过这种方式保证目标数据块中数据的可靠性。

另外,无论是目标数据块未被写入数据的持续时间达到预设时间段,还是接收到掉电信号,如果目标数据块未被写入数据的持续时间达到预设时间段,并且目标数据块中空白的数据页的数量不大于k,则直接将目标数据块填充满使其成为关闭状态即可,从而与本申请数据块填充方法的相应步骤结合,保证目标数据块中数据的稳定性。

本发明实施例提供的一种数据块填充方法,向目标数据块中填充k个数据页的无效数据之前,还可以包括:

获取预先存储的包含有无效数据标记的k个数据页的无效数据。

为了在需要由目标数据块中获取数据时能够有效区分实际有效的数据和为了保证数据可靠性填充的无效数据,本申请中填充至目标数据块的无效数据可以使预先存储的包含有无效数据标记的数据,从而通过无效数据标记即可快速定位到无效数据,进而实现实际有效的数据和无效数据的区分,具体来说,无效数据标记可以根据实际需要进行设定,如特殊符号等,在此不做具体限定。

本发明实施例提供的一种数据块填充方法,还可以包括:

设置定时器,并控制定时器在每次向目标数据块中写入数据的时刻开始进行计时;

对应的,判断目标数据块未被写入数据的持续时间是否达到预设时间段,可以包括:

判断定时器在最后一次向目标数据块写入数据的时刻开始进行计时至当前时刻的计时时长是否达到预设时间段。

本实施例中可以通过预先设置的定时器确定目标数据块未被写入数据的持续时间段是否达到预设时间段,具体是每次写目标数据块写入数据后均由0开始进行计时,进而基于计时所得时长实现后续步骤;其中,利用定时器实现计时实现逻辑简单,能够节省现成资源,从而提高了数据块填充方法的实现效率。

本发明实施例提供的一种数据块填充方法,向目标数据块中填充k个数据页的无效数据之后,还可以包括:

接收数据写请求,并将与数据写请求对应的数据写入至目标数据块中。

需要说明的是,在为了保证数据可靠性向目标数据块中填充无效数据后,如果需要向目标数据块中进行写数据,也即如果接收到数据写请求,则可以直接向目标数据块中k个无效数据之后的数据页中继续实现数据写请求对应的写操作,从而实现对目标数据块的重复利用,提高了数据块中存储空间的利用率。

可见,本申请公开的技术方案,通过分析存储设备确定出对应的预设时间段及k的取值,进而在接收到掉电信号或者目标数据块未被写入数据的持续时间达到预设时间段时,如果目标数据块空白的数据页的个数大于k,则向目标数据块中填充k个数据页的无效数据,从而由无效数据替代有效数据具有不稳定性,避免因不稳定性对有效数据造成的损坏等;并且在目标数据块的空白的数据页的个数大于k的情况下,仅需向其中填充k个数据页的无效数据即可保证其中数据的可靠性,从而减少了填充的无效数据的数据量,尤其对于小数据量分散写的情况,能够大大提高目标数据块的利用率,减小过多无效数据的引入,增加了对存储设备的有效利用率;并且,减小了掉电过程中填充无效数据带来的开销,缩短了掉电操作所需时间,增强了系统效率,同时减小了异常掉电出现电容电量不足的概率,增加系统的稳定性、健壮性。

本发明实施例还提供了一种数据块填充装置,如图2所示,可以包括:

确定模块11,用于:确定任一存在空白的数据页的数据块为目标数据块;

第一填充模块12,用于:如果目标数据块未被写入数据的持续时间达到预设时间段,并且目标数据块中空白的数据页的数量大于k,则向目标数据块中填充k个数据页的无效数据;其中,k为基于目标数据块所属存储设备确定的、目标数据块中存在被损坏风险的数据所属数据页的个数。

本发明实施例提供的一种数据块填充装置,还可以包括:

第二填充模块,用于:确定任一存在空白的数据页的数据块为目标数据块之后,如果接收到掉电信号,并且目标数据块中空白的数据页的数量大于k,则向目标数据块中填充k个数据页的无效数据。

本发明实施例提供的一种数据块填充装置,还可以包括:

获取模块,用于:向目标数据块中填充k个数据页的无效数据之前,获取预先存储的包含有无效数据标记的k个数据页的无效数据。

本发明实施例提供的一种数据块填充装置,还可以包括:

设置模块,用于:设置定时器,并控制定时器在每次向目标数据块中写入数据的时刻开始进行计时;

对应的,第一填充模块里及第二填充模块可以包括:

判断单元,用于:判断定时器在最后一次向目标数据块写入数据的时刻开始进行计时至当前时刻的计时时长是否达到预设时间段。

本发明实施例提供的一种数据块填充装置,还可以包括:

写模块,用于:向目标数据块中填充k个数据页的无效数据之后,接收数据写请求,并将与数据写请求对应的数据写入至目标数据块中。

本发明实施例还提供了一种数据块填充设备,可以包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上任一项数据块填充方法的步骤。

本发明实施例还提供了一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项数据块填充方法的步骤。

需要说明的是,本发明实施例提供的一种数据块填充装置、设备及可读存储介质中相关部分的说明请参见本发明实施例提供的一种数据块填充方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种系统间数据迁移的方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类