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

文档序号:67721 发布日期:2021-10-01 浏览:21次 >En<

阅读说明:本技术 一种数据存储的方法、装置、设备及可读介质 (Data storage method, device, equipment and readable medium ) 是由 白建 于 2021-06-11 设计创作,主要内容包括:本发明提供了一种数据存储的方法、装置、设备及可读介质,该方法包括:将待存储的数据存储到第一数组中;将硬盘按照预设比例划分为三个区域,并将三个区域对应的地址存储到第二数组中;将第一数组中的每个数据存储到第二数组中的一区域对应的地址中;响应于第一数组中的每个数据全部存储完更新第一数组中的数据,并将更新后第一数组中的每个数据存储到第二数组中的下一个区域对应的地址中。通过使用本发明的方案,能够减少运算次数,降低运算复杂度,提高存储性能,可维护性强,维护成本低。(The invention provides a data storage method, a device, equipment and a readable medium, wherein the method comprises the following steps: storing data to be stored in a first array; dividing the hard disk into three areas according to a preset proportion, and storing addresses corresponding to the three areas into a second array; storing each data in the first array into an address corresponding to an area in the second array; and responding to the fact that all the data in the first array are stored, updating the data in the first array, and storing each data in the updated first array into the address corresponding to the next area in the second array. By using the scheme of the invention, the operation times can be reduced, the operation complexity can be reduced, the storage performance can be improved, the maintainability is strong, and the maintenance cost is low.)

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

技术领域

本领域涉及计算机领域,并且更具体地涉及一种数据存储的方法、装置、设备及可读介质。

背景技术

不同厂商公布的SSD固态硬盘性能、可靠性等指标都是各自为政,很难进行横向对比。为此,美国电子器件工程联合委员会(JEDEC)公布了备受期待的固态硬盘标准规范JESD218和JESD219解决了这个问题。

为了实现SSD的行业标准的目标,JEDEC JC-64.8固态硬盘小组委员会率先提供了有意义的,实际的,耐用性和可靠性指标,以便客户更好地选择正确的SSD应用程序和工作负载。2010年9月,JEDEC宣布发布两个被广泛期待的固态硬盘标准:JESD218固态硬盘(SSD)要求和耐久性测试方法以及JESD219固态硬盘耐久性工作负载。

传统实现JESD219的方式是使用第三方工具产生数据。但是第三方工具专门安装配置,每换一个环境都要重新安装配置,配置复杂,专业度要求较高,第三方工具使用专门的脚本来控制产生的数据格式,掌握脚本语法需要重新学习,第三方工具需要在特定平台才能运行,很难覆盖所有场景,容易遗漏问题。

发明内容

有鉴于此,本发明实施例的目的在于提出一种数据存储的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够减少运算次数,降低运算复杂度,提高存储性能,可维护性强,维护成本低。

基于上述目的,本发明的实施例的一个方面提供了一种数据存储的方法,包括以下步骤:

将待存储的数据存储到第一数组中;

将硬盘按照预设比例划分为三个区域,并将三个区域对应的地址存储到第二数组中;

将第一数组中的每个数据存储到第二数组中的一区域对应的地址中;

响应于第一数组中的每个数据全部存储完更新第一数组中的数据,并将更新后第一数组中的每个数据存储到第二数组中的下一个区域对应的地址中。

根据本发明的一个实施例,第一数组为A={{0.5K,4},{1K,1},{1.5K,1},{2K,1},{2.5K,1},{3K,1},{3.5K,1},{4K,67},{8K,10},{16K,7},{32K,3},{64K,3}},其中第一数组中的每个数据包括数据块大小和数据块个数。

根据本发明的一个实施例,第二数组为B={第一区域,第二区域,第一区域,第三区域,第一区域,第二区域,第一区域,第三区域,第一区域,第二区域}。

根据本发明的一个实施例,将硬盘按照预设比例划分为三个区域包括:

将硬盘的50%存储空间划分为第一区域;

将硬盘的剩余30%存储空间划分为第二区域;

将硬盘的剩余20%存储空间划分为第三区域。

根据本发明的一个实施例,将待存储的数据存储到第一数组中包括:

依次获取第一数组中每个数据存储的数据块大小和数据块个数;

依次将待存储的数据按照获取到的数据块大小和数据块个数存储到第一数组中;

响应于第一数组未能将待存储的数据全部进行存储,将剩余的数据在第一数组更新时存储到第一数组中。

根据本发明的一个实施例,将第一数组中的每个数据存储到第二数组中的一区域对应的地址中包括:

读取第一数组中的未存储的第一个数据的数据块大小和数据块个数;

读取第二数组中的一个数据以得到数据待存储的区域;

基于读取到的待存储的区域产生一个随机数,并将随机数和读取得到的第一个数据块大小做对齐处理;

将随机数作为数据存储的起始逻辑地址,将未存储的第一个数据写入到读取到的待存储的区域中。

根据本发明的一个实施例,将随机数作为数据存储的起始逻辑地址,将未存储的第一个数据写入到读取到的待存储的区域中包括:

将未存储的第一个数据中的第一个数据块写入到读取到的待存储的区域中;

判断写入次数是否小于读取到的数据块个数;

相应于写入次数小于读取到的数据块个数,将未存储的第一个数据中的第二个数据块写入到读取到的待存储的区域中,直到写入次数等于读取到的数据块个数。

本发明的实施例的另一个方面,还提供了一种数据存储的装置,装置包括:

第一存储模块,第一存储模块配置为将待存储的数据存储到第一数组中;

划分模块,划分模块配置为将硬盘按照预设比例划分为三个区域,并将三个区域对应的地址存储到第二数组中;

第二存储模块,第二存储模块配置为将第一数组中的每个数据存储到第二数组中的一区域对应的地址中;

更新模块,更新模块配置为响应于第一数组中的每个数据全部存储完更新第一数组中的数据,并将更新后第一数组中的每个数据存储到第二数组中的下一个区域对应的地址中。

本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:

至少一个处理器;以及

存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。

本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。

本发明具有以下有益技术效果:本发明实施例提供的数据存储的方法,通过将待存储的数据存储到第一数组中;将硬盘按照预设比例划分为三个区域,并将三个区域对应的地址存储到第二数组中;将第一数组中的每个数据存储到第二数组中的一区域对应的地址中;响应于第一数组中的每个数据全部存储完更新第一数组中的数据,并将更新后第一数组中的每个数据存储到第二数组中的下一个区域对应的地址中的技术方案,能够减少运算次数,降低运算复杂度,提高存储性能,可维护性强,维护成本低。

附图说明

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

图1为根据本发明一个实施例的数据存储的方法的示意性流程图;

图2为根据本发明一个实施例的数据存储的装置的示意图;

图3为根据本发明一个实施例的计算机设备的示意图;

图4为根据本发明一个实施例的计算机可读存储介质的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

基于上述目的,本发明的实施例的第一个方面,提出了一种数据存储的方法的一个实施例。图1示出的是该方法的示意性流程图。

如图1中所示,该方法可以包括以下步骤:

S1将待存储的数据存储到第一数组中。

第一数组为A={{0.5K,4},{1K,1},{1.5K,1},{2K,1},{2.5K,1},{3K,1},{3.5K,1},{4K,67},{8K,10},{16K,7},{32K,3},{64K,3}},其中第一数组中的0.5K,1K等数据表示数据块大小,数据块大小后面的数字表示数据块个数,例如{0.5K,4}表示0.5K大小的数据块有4个。例如,待存储的数据有3条,分别为10K、100K和500K,则将10K中的前4个0.5K的数据块存储到数组A中的第一部分,后面的1个1K的数据块存储到第二部分,后面的1个1.5K的数据块存储到第三部分,依次类推,直到10K数据全部存储完成,然后将100K的数据接着存储到第一数组A后面还没有存储数据的位置,直到第一数组A全部存满,此时500K的数据还有一部分没有存储,那么等到第一数组A更新数据时,接着将没有存储的数据写入到第一数组A中。

S2将硬盘按照预设比例划分为三个区域,并将三个区域对应的地址存储到第二数组中。

将硬盘的区域空间分为第一区域a、第二区域b、第三区域c三个区域。其中a区域占整个存储空间大小的50%,b区域占整个存储空间大小的30%。c区域占整个存储空间大小的20%,此时第二数组B={a,b,a,c,a,b,a,c,a,b}。

S3将第一数组中的每个数据存储到第二数组中的一区域对应的地址中。

以第一数组最开始存储到第二数组对应的区域为例,读取第一数组A中{0.5K,4},读取第二数组B中的a区域,根据a区域产生一个随机数,该随机数作为数据存储的起始逻辑地址,将该逻辑地址与第一数组A中的第一个0.5K数据块对齐,将第一个0.5K数据存储到a区域对应的硬盘中,然后存储第二个0.5K,直到4个0.5K数据块存储完,然后读取第一数组A中的{1K,1},将1K的数据块顺序存储到a区域中,然后在从第一数组A中读取数据,直到第一数组A中的数据全部存储完成。

S4响应于第一数组中的每个数据全部存储完更新第一数组中的数据,并将更新后第一数组中的每个数据存储到第二数组中的下一个区域对应的地址中。

当第一数组A中的数据全部存储完成后,将第一数组A中的数据进行更新,也就是说,将还没有存储到第一数组A中的待存储的数据继续存储到第一数组A中,然后从第一数组A中的第一个数据开始存储,此时需要读取第二数组B中的第二个数据,如上例,读到b区域,将更新后的第一数组A中的数据按照上述方法存储到b区域中,直到全部数据存储到硬盘中,如果第二数组B中的数据读到了最后一个,那么下一次存储则从第一个开始读取,如此往复。

通过本发明的技术方案,能够满足JESD219规定,能够减少运算次数,降低运算复杂度,提高存储性能,可维护性强,维护成本低。

在本发明的一个优选实施例中,第一数组为A={{0.5K,4},{1K,1},{1.5K,1},{2K,1},{2.5K,1},{3K,1},{3.5K,1},{4K,67},{8K,10},{16K,7},{32K,3},{64K,3}},其中第一数组中的每个数据包括数据块大小和数据块个数,也就是说,第一数组中的0.5K,1K等数据表示数据块大小,数据块大小后面的数字表示数据块个数,例如{0.5K,4}表示0.5K大小的数据块有4个。

在本发明的一个优选实施例中,第二数组为B={第一区域,第二区域,第一区域,第三区域,第一区域,第二区域,第一区域,第三区域,第一区域,第二区域}。

在本发明的一个优选实施例中,将硬盘按照预设比例划分为三个区域包括:

将硬盘的50%存储空间划分为第一区域;

将硬盘的剩余30%存储空间划分为第二区域;

将硬盘的剩余20%存储空间划分为第三区域。将硬盘的区域空间分为第一区域a、第二区域b、第三区域c三个区域。其中a区域占整个存储空间大小的50%,b区域占整个存储空间大小的30%。c区域占整个存储空间大小的20%,此时第二数组B={a,b,a,c,a,b,a,c,a,b}。

在本发明的一个优选实施例中,将待存储的数据存储到第一数组中包括:

依次获取第一数组中每个数据存储的数据块大小和数据块个数;

依次将待存储的数据按照获取到的数据块大小和数据块个数存储到第一数组中;

响应于第一数组未能将待存储的数据全部进行存储,将剩余的数据在第一数组更新时存储到第一数组中。例如,待存储的数据有3条,分别为10K、200K和600K,则将10K中的前4个0.5K的数据块存储到数组A中的第一部分,后面的1个1K的数据块存储到第二部分,后面的1个1.5K的数据块存储到第三部分,依次类推,直到10K数据全部存储完成,然后将200K的数据接着存储到第一数组A后面还没有存储数据的位置,直到第一数组A全部存满,此时600K的数据还有一部分没有存储,那么等到第一数组A更新数据时,接着将没有存储的数据写入到第一数组A中。

在本发明的一个优选实施例中,将第一数组中的每个数据存储到第二数组中的一区域对应的地址中包括:

读取第一数组中的未存储的第一个数据的数据块大小和数据块个数;

读取第二数组中的一个数据以得到数据待存储的区域;

基于读取到的待存储的区域产生一个随机数,并将随机数和读取得到的第一个数据块大小做对齐处理;

将随机数作为数据存储的起始逻辑地址,将未存储的第一个数据写入到读取到的待存储的区域中。

在本发明的一个优选实施例中,将随机数作为数据存储的起始逻辑地址,将未存储的第一个数据写入到读取到的待存储的区域中包括:

将未存储的第一个数据中的第一个数据块写入到读取到的待存储的区域中;

判断写入次数是否小于读取到的数据块个数;

相应于写入次数小于读取到的数据块个数,将未存储的第一个数据中的第二个数据块写入到读取到的待存储的区域中,直到写入次数等于读取到的数据块个数。

通过本发明的技术方案,能够减少运算次数,降低运算复杂度,提高存储性能,可维护性强,维护成本低。

需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。

基于上述目的,本发明的实施例的第二个方面,提出了一种数据存储的装置,如图2所示,装置200包括:

第一存储模块,第一存储模块配置为将待存储的数据存储到第一数组中。

第一数组为A={{0.5K,4},{1K,1},{1.5K,1},{2K,1},{2.5K,1},{3K,1},{3.5K,1},{4K,67},{8K,10},{16K,7},{32K,3},{64K,3}},其中第一数组中的0.5K,1K等数据表示数据块大小,数据块大小后面的数字表示数据块个数,例如{0.5K,4}表示0.5K大小的数据块有4个。例如,待存储的数据有3条,分别为10K、100K和500K,则将10K中的前4个0.5K的数据块存储到数组A中的第一部分,后面的1个1K的数据块存储到第二部分,后面的1个1.5K的数据块存储到第三部分,依次类推,直到10K数据全部存储完成,然后将100K的数据接着存储到第一数组A后面还没有存储数据的位置,直到第一数组A全部存满,此时500K的数据还有一部分没有存储,那么等到第一数组A更新数据时,接着将没有存储的数据写入到第一数组A中。

划分模块,划分模块配置为将硬盘按照预设比例划分为三个区域,并将三个区域对应的地址存储到第二数组中。

将硬盘的区域空间分为第一区域a、第二区域b、第三区域c三个区域。其中a区域占整个存储空间大小的50%,b区域占整个存储空间大小的30%。c区域占整个存储空间大小的20%,此时第二数组B={a,b,a,c,a,b,a,c,a,b}。

第二存储模块,第二存储模块配置为将第一数组中的每个数据存储到第二数组中的一区域对应的地址中。

以第一数组最开始存储到第二数组对应的区域为例,读取第一数组A中{0.5K,4},读取第二数组B中的a区域,根据a区域产生一个随机数,该随机数作为数据存储的起始逻辑地址,将该逻辑地址与第一数组A中的第一个0.5K数据块对齐,将第一个0.5K数据存储到a区域对应的硬盘中,然后存储第二个0.5K,直到4个0.5K数据块存储完,然后读取第一数组A中的{1K,1},将1K的数据块顺序存储到a区域中,然后在从第一数组A中读取数据,直到第一数组A中的数据全部存储完成。

更新模块,更新模块配置为响应于第一数组中的每个数据全部存储完更新第一数组中的数据,并将更新后第一数组中的每个数据存储到第二数组中的下一个区域对应的地址中。

当第一数组A中的数据全部存储完成后,将第一数组A中的数据进行更新,也就是说,将还没有存储到第一数组A中的待存储的数据继续存储到第一数组A中,然后从第一数组A中的第一个数据开始存储,此时需要读取第二数组B中的第二个数据,如上例,读到b区域,将更新后的第一数组A中的数据按照上述方法存储到b区域中,直到全部数据存储到硬盘中,如果第二数组B中的数据读到了最后一个,那么下一次存储则从第一个开始读取,如此往复。

在本发明的一个优选实施例中,第一数组为A={{0.5K,4},{1K,1},{1.5K,1},{2K,1},{2.5K,1},{3K,1},{3.5K,1},{4K,67},{8K,10},{16K,7},{32K,3},{64K,3}},其中第一数组中的每个数据包括数据块大小和数据块个数。

在本发明的一个优选实施例中,第二数组为B={第一区域,第二区域,第一区域,第三区域,第一区域,第二区域,第一区域,第三区域,第一区域,第二区域}。

在本发明的一个优选实施例中,将硬盘按照预设比例划分为三个区域包括:

将硬盘的50%存储空间划分为第一区域;

将硬盘的剩余30%存储空间划分为第二区域;

将硬盘的剩余20%存储空间划分为第三区域。

在本发明的一个优选实施例中,将待存储的数据存储到第一数组中包括:

依次获取第一数组中每个数据存储的数据块大小和数据块个数;

依次将待存储的数据按照获取到的数据块大小和数据块个数存储到第一数组中;

响应于第一数组未能将待存储的数据全部进行存储,将剩余的数据在第一数组更新时存储到第一数组中。

在本发明的一个优选实施例中,将第一数组中的每个数据存储到第二数组中的一区域对应的地址中包括:

读取第一数组中的未存储的第一个数据的数据块大小和数据块个数;

读取第二数组中的一个数据以得到数据待存储的区域;

基于读取到的待存储的区域产生一个随机数,并将随机数和读取得到的第一个数据块大小做对齐处理;

将随机数作为数据存储的起始逻辑地址,将未存储的第一个数据写入到读取到的待存储的区域中。

在本发明的一个优选实施例中,将随机数作为数据存储的起始逻辑地址,将未存储的第一个数据写入到读取到的待存储的区域中包括:

将未存储的第一个数据中的第一个数据块写入到读取到的待存储的区域中;

判断写入次数是否小于读取到的数据块个数;

相应于写入次数小于读取到的数据块个数,将未存储的第一个数据中的第二个数据块写入到读取到的待存储的区域中,直到写入次数等于读取到的数据块个数。

基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图3示出的是本发明提供的计算机设备的实施例的示意图。如图3所示,本发明实施例包括如下装置:至少一个处理器S21;以及存储器S22,存储器S22存储有可在处理器上运行的计算机指令S23,指令由处理器执行时实现以下方法:

将待存储的数据存储到第一数组中;

将硬盘按照预设比例划分为三个区域,并将三个区域对应的地址存储到第二数组中;

将第一数组中的每个数据存储到第二数组中的一区域对应的地址中;

响应于第一数组中的每个数据全部存储完更新第一数组中的数据,并将更新后第一数组中的每个数据存储到第二数组中的下一个区域对应的地址中。

基于上述目的,本发明实施例的第四个方面,提出了一种计算机可读存储介质。图4示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图4所示,计算机可读存储介质存储S31有被处理器执行时执行如上方法的计算机程序S32。

此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。

此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种双机卷镜像管理方法、装置、设备及可读存储介质

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类