一种固态硬盘垃圾回收带宽的流控方法及装置与流程

文档序号:16246066发布日期:2018-12-11 23:35阅读:158来源:国知局
一种固态硬盘垃圾回收带宽的流控方法及装置与流程

本发明涉及固态硬盘技术领域,尤其涉及一种固态硬盘垃圾回收带宽的流控方法及装置。

背景技术

以三层存储单元tlc颗粒为主存颗粒的动态随机存取存储dram-less固态硬盘,在使用时,主要存在以下几种业务数据速率的竞争。

1、在固态硬盘的起始状态时,直接将存储数据写入单层存储单元slc的高速缓冲存储器cache中,此时固态硬盘中只存在读写,故固态硬盘中无速率竞争。

2、当slccache快写满时,需启动数据迁移,此时固态硬盘中即存在读写,又存在数据的迁移,故固态硬盘中主要是读写速率和数据迁移速率之间的竞争。当数据迁移完成后,又恢复到起始状态。

3、当固态硬盘容量快写满时,需要对固态硬盘进行垃圾回收处理,将有效数据都整理到一起,清理出其中无效数据的容量空间。此时固态硬盘中即存在读写,又存在数据迁移,同时还存在垃圾回收,故固态硬盘中主要是读写速率、数据迁移速率以及垃圾回收速率之间的竞争。

其中,目前的固态硬盘的流控方案主要针对的是消费类硬盘的使用需求,在硬盘剩余容量触发垃圾回收的条件时,为实现快速垃圾回收,达到释放出有效空间的目的,不对垃圾回收的速率进行限定,也就是不对垃圾回收的带宽进行限定。

然而,在视频监控的存储中,一旦因为固态硬盘进行垃圾回收而导致其读写速率不稳定,就会引发录像丢失或者录像回放时出现卡顿的问题。所以视频监控在进行存储时,为满足其持续写入的需求,需要其读写速率不能有较大的波动。由于消费类硬盘不是实时处于读写状态,且并未对垃圾回收的带宽进行限定,因此现有的固态硬盘的流控方案中存在因未对垃圾回收的带宽进行限制,及不能根据读写速率的需求对垃圾回收的带宽进行调整,而导致的读写速率不稳定的问题。



技术实现要素:

本发明公开了一种固态硬盘垃圾回收限制带宽的流控方法及装置,用于解决现有技术中存在的因未对固态硬盘垃圾回收的带宽进行限制,及不能根据读写速率的需求对垃圾回收的带宽进行调整,而导致的读写速率不稳定的问题。

依据本发明的一个方面,提供了一种固态硬盘垃圾回收带宽的流控方法,所述方法包括:

在进行垃圾回收时,如果调整流控时刻到达,根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量;

根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量;

根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽;

根据所述第二限制带宽,对所述固态硬盘用于垃圾回收的带宽进行调整。

由上述可知,在本发明方案中,当固态硬盘的垃圾回收触发后,可结合固态硬盘进行读写操作的第一限制带宽以及当前已被占用的数据块中存储有效数据的数据块的第一数量,并根据预算公式,计算获取垃圾回收时的第二限制带宽。由于上述过程中是根据固态硬盘进行读写操作的第一限制带宽,来确定所述固态硬盘用于垃圾回收的第二限制带宽,因此可优先保证固态硬盘进行读写操作时的速率不受影响,所以通过计算获取的垃圾回收时的第二限制带宽,可根据固态硬盘进行读写操作时的速率需求,对其用于垃圾回收的带宽进行限制。所以本发明方案能够保证在固态硬盘进行读写操作时,读写速率保持稳定的情况下,对其用于垃圾回收的带宽进行限制,并根据获取的第二限制带对其用于垃圾回收的带宽进行动态调整,避免了固态硬盘因触发垃圾回收而对读写的速率造成影响。

具体地,所述根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量包括:

根据公式bvalid=vtotal/vblock,确定当前已被占用的数据块中存储有效数据的数据块的第一数量,其中,bvalid表示所述第一数量,vtotal表示所述第一页数,vblock表示所述第二页数。

数据在进行存储时,会优先存储于数据块所包含的数据页中,因此即便固态硬盘中的数据块被多次轮回覆盖,也可通过统计当前已被占用的数据块中存储有效数据的数据页的第一页数,以及任一数据块所包含的数据页的第二页数,快速准确的确定出当前已被占用的数据块中存储有效数据的数据块的第一数量。

具体地,所述根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量包括:

根据公式bg=btotal-bfree-bvalid,确定所述固态硬盘中当前可释放的数据块的第四数量,其中,bg表示所述第四数量,bvalid表示所述第一数量,btotal表示所述第二数量,bfree表示所述第三数量。

由于固态硬盘中全部数据块的第二数量是固定的,固态硬盘中存储有效数据的数据块的第一数量可通过计算获得,且未被占用的数据块的第三数量可直接从保存有当前free块的计数中获取,因此即使固态硬盘被不断的实时写入,根据上述公式,也可准确的确定出固态硬盘进行垃圾回收时可释放的空间。

具体地,所述根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘进行垃圾回收时的第二限制带宽包括:

根据公式确定所述固态硬盘用于垃圾回收的第二限制带宽,其中,vglimit表示所述第二限制带宽,violimit标表示所述第一限制带宽,bg表示所述第四数量,bi表示所述预设参数,且所述预设参数为触发所述固态硬盘启动垃圾回收的第一预设阈值与触发所述固态硬盘停止读写的第二预设阈值的差值。

在上述公式中,表示固态硬盘触发垃圾回收后,回收当前可释放的数据块的第四数量所用的第一时间,表示固态硬盘触发垃圾回收后,到停止读写前,持续写入到该剩余容量所用的第二时间。因此若防止固态硬盘读写停止,且避免垃圾回收对读写速率有影响,则必须至少保证上述第一时间与第二时间达到平衡,并以此计算得到固态硬盘进行垃圾回收时的第二限制带宽,既能够使读写速率保持稳定,又能够以最快的速率进行垃圾回收,实现了在触发垃圾回收的情况下,提高其读写速率的稳定性。

依据本发明的另一个方面,还提供了一种固态硬盘垃圾回收带宽的流控装置,所述装置包括:

第一确定模块,用于在进行垃圾回收时,如果调整流控时刻到达,根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量;

第二确定模块,用于根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量;

第三确定模块,用于根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽;

调整模块,用于根据所述第二限制带宽,对所述固态硬盘用于垃圾回收的带宽进行调整。

具体地,所述第一确定模块,具体用于根据公式bvalid=vtotal/vblock,确定当前已被占用的数据块中存储有效数据的数据块的第一数量,其中,bvalid表示所述第一数量,vtotal表示所述第一页数,vblock表示所述第二页数。

具体地,所述第二确定模块,具体用于根据公式bg=btotal-bfree-bvalid,确定所述固态硬盘中当前可释放的数据块的第四数量,其中,bg表示所述第四数量,bvalid表示所述第一数量,btotal表示所述第二数量,bfree表示所述第三数量。

具体地,所述第三确定模块,具体用于根据公式确定所述固态硬盘用于垃圾回收的第二限制带宽,其中,vglimit表示所述第二限制带宽,violimit标表示所述第一限制带宽,bg表示所述第四数量,bi表示所述预设参数,且所述预设参数为触发所述固态硬盘启动垃圾回收的第一预设阈值与触发所述固态硬盘停止读写的第二预设阈值的差值。

本本发明的有益效果如下:

本发明提供了一种固态硬盘垃圾回收限制带宽的流控方法及装置,该方法包括:在进行垃圾回收时,如果调整流控时刻到达,根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量;根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量;根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽;根据所述第二限制带宽,对所述固态硬盘用于垃圾回收的带宽进行调整。因此本发明方案可在保证读写与垃圾回收保持平衡,且读写速率不受垃圾回收影响的情况下,获取固态硬盘用于垃圾回收时的限制带宽,以此实现对固态硬盘用于垃圾回收时的带宽进行限制,并根据固态硬盘进行读写操作时的速率需求,对固态硬盘用于垃圾回收的带宽进行动态调整。与现有技术相比,既能够保证固态硬盘的读写速率保持稳定,又能够保证固态硬盘以最快的速率进行垃圾回收,从而克服了现有技术中存在的因未对固态硬盘用于垃圾回收的带宽进行限制,及不能根据读写速率的需求对垃圾回收的带宽进行调整,而导致的读写速率不稳定的问题。

附图说明

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

图1为本发明实施例中数据块中数据存储的示意图;

图2为本发明实施例提供的固态硬盘垃圾回收带宽的流控方法的流程图;

图3为本发明实施例提供的固态硬盘垃圾回收带宽进行调整的过程流程图;

图4为本发明实施例提供的固态硬盘垃圾回收带宽的流控装置的结构框图;

图5为本发明实施例提供的一种电子设备。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

实施例一:

在视频监控的存储中,视频监控数据会根据固态硬盘的存储容量进行轮回覆盖,即当逻辑地址写完后会重新回到起始逻辑地址进行录像覆盖。当固态硬盘的实际存储容量触发垃圾回收的阈值时,则需要进行垃圾回收,即将数据块中存储的无效数据进行擦除。其中,当有录像被锁定,或者多次覆盖后,有效数据会越来越多,此时数据块中的数据存储的形式如图1所示。

由于现有的固态硬盘的流控方案中主要针对的是消费类硬盘的使用需求,为实现快速垃圾回收,达到释放出有效空间的目的,因此不对垃圾回收的带宽进行限定。然而对视频数据进行存储时,需要持续写入,且需要其读写速率不能有较大的波动,所以现有的固态硬盘的流控方案并不适用于存储视频监控的固态硬盘。

因此,为克服上述技术问题,本发明实施例提供了一种固态硬盘垃圾回收带宽的流控方法,可适用于对存储视频监控的固态硬盘进行垃圾回收,如图2所示,通过本发明实施例提供的方法对固态硬盘进行垃圾回收的带宽进行调整时,具体包括以下步骤:

步骤s201:在进行垃圾回收时,如果调整流控时刻到达,根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量。

在进行垃圾回收时,首先要确定固态硬盘中可释放的存储容量。在本发明实施例中,采用全局数据块block池信息结构体记录block池的相关信息,比如存储有效数据的数据页的数量以及每一个数据块对应的编号。因此在不能直接获取到固态硬盘中可释放的存储容量的情况下,可根据全局数据块block池信息结构体记录的存储有效数据的数据页的数量,计算出当前已被占用的数据块中存储有效数据所占用的存储空间。

由于每个数据块存储容量相同,因此存储有效数据数据块的数量即可表示当前已被占用的数据块中存储有效数据所占用的空间,所以在确定当前已被占用的数据块中存储有效数据所占用的空间时,只需确定当前已被占用的数据块中存储有效数据的数据块的第一数量即可。

因此可从全局数据块block池信息结构体中,获取存储有效数据的数据页的第一页数,并根据任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量。

步骤s202:根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量。

同样的,为确定固态硬盘中当前可释放的存储空间,只需确定当前数据块中存储无效数据的数据块的第四数量即可。其中,由于固态硬盘中全部数据块的第二数量是固定的,固态硬盘中存储有效数据的数据块的第一数量可通过计算获得,且未被占用的数据块的第三数量可直接从保存有当前free块的计数中获取,因此即使固态硬盘被不断的实时写入,根据上述公式,也可准确的确定出固态硬盘进行垃圾回收时可释放的空间。

由于全局数据块block池信息结构体记录有每一个数据块对应的编号。因此可根据第二预设算法,及上述第一数量,即可确定所述固态硬盘中当前可释放的数据块的第四数量。

例如与当前待存储数据的数据块对应的第一编号为500,与当前待存储数据的数据块对应的第二编号为1000,则该固态硬盘中未被占用的数据块的编号即为第500号至1000号,固态硬盘中全部数据块的第一数量为1000个,未被占用的数据块的第三数量为[(1000-500)+1]个。

其中,需要说明的是,在本发明实施例中,对当前待存储数据的数据块对应的第一编号,及与当前待存储数据的数据块对应的第二编号并不进行具体限定,上述仅为是使得描述更加清楚,列举的实例而已。

步骤s203:根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽。

第三预设算法为固态硬盘触发垃圾回收后,根据固态硬盘回收当前可释放的数据块的第四数量所用的第一时间,以及固态硬盘触发垃圾回收后,到停止读写前,持续写入到该剩余容量所用的第二时间,为保证第一时间与第二是时间保持平衡所得到的等式,因此计算得到固态硬盘进行垃圾回收的第二限制带宽,可根据固态硬盘进行读写操作时的速率需求,对其用于垃圾回收时的带宽进行限制。实现了既能时读写速率保持稳定,又能够以最快的速率进行垃圾回收,可在固态硬盘触发垃圾回收的情况下,提高其读写速率的稳定性。

步骤s204:根据所述第二限制带宽,对所述固态硬盘用于垃圾回收的带宽进行调整。

通过根据固态硬盘进行读写操作时的速率需求,对其用于垃圾回收时的带宽进行调整,可防止固态硬盘因进行垃圾回收而导致其读写速率不稳定,引发录像丢失或者录像回放时出现卡顿的问题。

因此,本发明提供的固态硬盘垃圾回收带宽的流控方法,旨在保证读写与垃圾回收保持平衡,且读写速率不受垃圾回收影响的情况下,获取固态硬盘用于垃圾回收的限制带宽,以此实现对固态硬盘用于垃圾回收的带宽进行限制,并根据固态硬盘进行读写操作时的速率需求,对固态硬盘用于垃圾回收的带宽进行动态调整。既实现了能够保证固态硬盘的读写速率保持稳定,又能够保证固态硬盘以最快的速率进行垃圾回收,克服了现有技术中存在的因未对固态硬盘用于垃圾回收的带宽进行限制,及不能根据读写速率的需求对垃圾回收的带宽进行调整,而导致的读写速率不稳定的问题。

另外,由于增大固态硬盘的预留空间,可以减小垃圾回收的触发次数。因此在本发明实施例中,还可根据触发固态硬盘用于垃圾回收的第二预设阈值,调节固态硬盘中的预留空间的比例,使预留空间大于触发固态硬盘用于垃圾回收的第二预设阈值,以此来减小垃圾回收的触发次数。

实施例二:

在上述是实施例的基础上,在本发明实施例中,步骤s201根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量时,具体包括:

可根据公式bvalid=vtotal/vblock,确定当前已被占用的数据块中存储有效数据的数据块的第一数量。其中,bvalid表示所述第一数量,vtotal表示所述第一页数,vblock表示所述第二页数。

由于数据在进行存储时,会优先存储于数据块所包含的数据页中,且全局数据块block池信息结构体中记录有存储有效数据的数据页的数量,因此在计算存储有效数据的数据块的第一数量时,可直接从全局数据块block池信息结构体中获取存储有效数据的数据页的第一页数,然后再结合任一数据块所包含的数据页的第二页数,再带入上述公式,即可确定当前已被占用的数据块中存储有效数据的数据块的第一数量时。当然需要说明的是,在本发明实施例中,每一个数据块中所包含的数据页的第二页数相同。

所以即便视频监控数据会根据固态硬盘中数据块的存储容量进行轮回覆盖,也能够通过第一预设算法准确快速的确定出当前已被占用的数据块中存储有效数据的数据块的第一数量。

实施例三:

在上述实施例的基础上,在本发明实施例中,步骤s202根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量包括:

根据公式bg=btotal-bfree-bvalid,确定所述固态硬盘中当前可释放的数据块的第四数量,其中,bg表示所述第四数量,bvalid表示所述第一数量,btotal表示所述第二数量,bfree表示所述第三数量。

由上述实施例可知,由于全局数据块block池信息结构体记录有每一个数据块对应的编号,因此可根据与用于存储数据的最后一个数据块对应的第二编号,确定固态硬盘中全部数据块的第二数量btotal,同时还可根据与当前待存储数据的数据块对应的第一编号,及与用于存储数据的最后一个数据块对应的第二编号,确定未被占用的数据块的第三数量bfree。因此通过对每一个数据块进行编号,可提高其统计效率和精确性。

上述实施例二中,描述了如何确定当前已被占用的数据块中存储有效数据的数据块的第一数量bvalid的过程,所以结合本发明实施例中的第二预设算法,即可确定所述固态硬盘中当前可释放的数据块的第四数量。

所以即便全局数据块block池信息结构体记录信息实时进行更新,也可根据第二预设算法准确快速的确定出固态硬盘进行垃圾回收时可释放的数据块的第四数量。

实施例四:

在上述实施例的基础上,在本发明实施例中,步骤s203根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽具体包括:

根据公式确定所述固态硬盘用于垃圾回收的第二限制带宽,其中,vglimit表示所述第二限制带宽,violimit标表示所述第一限制带宽,bg表示所述第四数量,bi表示所述预设参数。

在本发明实施例中,所述预设参数为触发所述固态硬盘停止读写的第一预设阈值与触发所述固态硬盘进行垃圾回收的第二预设阈值的差值,因此上述公式可变形为:公式其中bl表示触发所述固态硬盘启动垃圾回收的第一预设阈值,bc表示触发所述固态硬盘停止读写的第二预设阈值。

所以在上述变形后的公式中,即表示固态硬盘触发垃圾回收后,回收当前可释放的数据块的第四数量所用的第一时间,而则表示固态硬盘触发垃圾回收后,到停止读写前,持续写入到该剩余容量所用的第二时间。因此为防止固态硬盘读写停止,且避免垃圾回收对读写速率有影响,所以应该至少保证上述第一时间与第二时间达到平衡,即保证

其中,对上述公式进行移项,可得到公式由于bg=btotal-bfree-bvalid,bvalid=vtotal/vblock,因此将bg带入上述公式中,可得到公式由于btotal、vblock、bl、bc都是预先配置固定值,而bfree可根据全局数据块block池信息结构体记录信息获取,bvalid也可根据公式bvalid=vtotal/vblock计算获取,因此公式可认定为vglimit与violimit之间的函数关系,为保证固态硬盘在进行读写操作时的速率保持稳定,因此需预先优先保证固态硬盘进行读写操作时的带宽,则固态硬盘进行读写操作的第一限制带宽violimit相当于该函数的自变量,vglimit相当于该函数的因变量。

其中,需要说明的是,固态硬盘进行读写操作的第一限制带宽violimit,为理想情况下,固态硬盘进行读写操作时的最快速率,而固态硬盘用于垃圾回收的第二限制带宽vglimit,为理想情况下,固态硬盘进行垃圾回收时的最快速率。因此,通过上述公式计算得到固态硬盘用于垃圾回收的第二限制带宽,为理想情况下,根据固态硬盘进行读写操作时的速率需求,与读写保持平衡的垃圾回收时的限制带宽。

因此本发明的方案能够保证在固态硬盘进行读写操作时,速率保持稳定的情况下,对其用于垃圾回收的带宽进行限制,并根据固态硬盘进行读写操作时的速率需求,其用于垃圾回收的带宽进行动态调整。因此与现有技术相比,既能够保证读写速率的稳定,又能够以最快的速率进行垃圾回收,可在触发垃圾回收的情况下,提高读写速率的稳定性,克服了现有技术中存在的因未对固态硬盘用于垃圾回收的带宽进行限制,及不能根据读写需求对垃圾回收的带宽进行调整,而导致的读写速率不稳定的问题。

实施例五:

图3为本发明实施例中对固态硬盘垃圾回收带宽进行调整的流程图,如图3所示,在本发明实施例中,在对固态硬盘用于垃圾回收的带宽进行调整时,首先判断是否触发垃圾回收,如果是,则获取触发所述固态硬盘启动垃圾回收的阈值bl及触发所述固态硬盘停止读写的阈值bc,然后根据全局数据块池信息结构体获取未被占用的数据块bfree以及当前状态下的存储有效数据的数据页的总数vtotal,根据公式bvalid=vtotal/vblock,计算得到当前已被占用的数据块中存储有效数据的数据块的数量bvalid,最后将bl、bc、bfree以及bvalid带入公式在优先保证固态硬盘进行读写操作时的带宽不受影响的情况下,计算得到固态硬盘用于垃圾回收的限制带宽。

实施例六:

依据本发明实施例的另一个方面,还提供了一种固态硬盘垃圾回收带宽的流控装置,如图4所示,为本发明实施例中流控装置的结构示意图,该装置包括:

第一确定模块401,用于在进行垃圾回收时,如果调控流控时刻到达,根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量;

第二确定模块402,用于根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量;

第三确定模块403,用于根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽;

调整模块404,用于根据所述第二限制带宽,对所述固态硬盘用于垃圾回收的带宽进行调整。

具体地,所述第一确定模块401,具体用于根据公式bvalid=vtotal/vblock,确定当前已被占用的数据块中存储有效数据的数据块的第一数量,其中,bvalid表示所述第一数量,vtotal表示所述第一页数,vblock表示所述第二页数。

具体地,所述第二确定模块402,具体用于根据公式bg=btotal-bfree-bvalid,确定所述固态硬盘中当前可释放的数据块的第四数量,其中,bg表示所述第四数量,bvalid表示所述第一数量,btotal表示所述第二数量,bfree表示所述第三数量。

具体地,所述第三确定模块403,具体用于根据公式确定所述固态硬盘用于垃圾回收的第二限制带宽,其中,vglimit表示所述第二限制带宽,violimit标表示所述第一限制带宽,bg表示所述第四数量,bi表示所述预设参数,且所述预设参数为触发所述固态硬盘启动垃圾回收的第一预设阈值与触发所述固态硬盘停止读写的第二预设阈值的差值。

由上述可知,本发明实施例提供的装置,旨在保证读写与垃圾回收的平衡,且读写速率不受垃圾回收影响的情况下,获取固态硬盘用于垃圾回收的限制带宽,以此实现对固态硬盘用于垃圾回收的带宽进行限制,并根据固态硬盘进行读写操作时的速率需求,对固态硬盘用于垃圾回收的带宽进行动态调整。使得既能够保证固态硬盘的读写速率保持稳定,又能够保证固态硬盘以最快的速率进行垃圾回收,克服了现有技术中存在的因未对固态硬盘用于垃圾回收的带宽进行限制,及不能根据读写速率的需求对垃圾回收的带宽进行调整,而导致的读写速率不稳定的问题,提高其读写速率的稳定性。

实施例七:

依据本发明的另一个方面,还提供了一种电子设备,图5为本发明实施例提供的一种电子设备,所述电子设备包括:处理器51和存储器52;

在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器51代表的一个或多个处理器51和存储器52代表的存储器52的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。

可选的,处理器51可以是cpu(中央处埋器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)。

所述处理器51,用于读取所述存储器52中的程序,执行下列过程:

在进行垃圾回收时,如果调整流控时刻到达,根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量;

根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量;

根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽;

根据所述第二限制带宽,对所述固态硬盘用于垃圾回收的带宽进行调整。

具体地,所述处理器51,具体用于根据公式bvalid=vtotal/vblock,确定当前已被占用的数据块中存储有效数据的数据块的第一数量,其中,bvalid表示所述第一数量,vtotal表示所述第一页数,vblock表示所述第二页数。

具体地,所述处理器51,具体用于根据公式bg=btotal-bfree-bvalid,确定所述固态硬盘中当前可释放的数据块的第四数量,其中,bg表示所述第四数量,bvalid表示所述第一数量,btotal表示所述第二数量,bfree表示所述第三数量。

具体地,所述处理器51,具体用于根据公式确定所述固态硬盘用于垃圾回收的第二限制带宽,其中,vglimit表示所述第二限制带宽,violimit标表示所述第一限制带宽,bg表示所述第四数量,bi表示所述预设参数,且所述预设参数为触发所述固态硬盘启动垃圾回收的第一预设阈值与触发所述固态硬盘停止读写的第二预设阈值的差值。

实施例八:

依据本发明实施例的另一个方面,还提供了一种计算机可读存储介质,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行上述固态硬盘垃圾回收限制带宽的流控方法中的步骤:

在进行垃圾回收时,如果调整流控时刻到达,根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量;

根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量;

根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽;

根据所述第二限制带宽,对所述固态硬盘用于垃圾回收的带宽进行调整。

具体地,根据当前已被占用的数据块中存储有效数据的数据页的第一页数、任一数据块所包含的数据页的第二页数以及第一预设算法,确定当前已被占用的数据块中存储有效数据的数据块的第一数量包括:

根据公式bvalid=vtotal/vblock,确定当前已被占用的数据块中存储有效数据的数据块的第一数量,其中,bvalid表示所述第一数量,vtotal表示所述第一页数,vblock表示所述第二页数。

具体地,根据固态硬盘中全部数据块的第二数量、未被占用的数据块的第三数量、所述第一数量以及第二预设算法,确定所述固态硬盘中当前可释放的数据块的第四数量包括:

根据公式bg=btotal-bfree-bvalid,确定所述固态硬盘中当前可释放的数据块的第四数量,其中,bg表示所述第四数量,bvalid表示所述第一数量,btotal表示所述第二数量,bfree表示所述第三数量。

具体地,根据第三预设算法、所述第四数量以及预先保存的所述固态硬盘进行读写操作的第一限制带宽和预设参数,确定所述固态硬盘用于垃圾回收的第二限制带宽包括:

根据公式确定所述固态硬盘用于垃圾回收的第二限制带宽,其中,vglimit表示所述第二限制带宽,violimit标表示所述第一限制带宽,bg表示所述第四数量,bi表示所述预设参数,且所述预设参数为触发所述固态硬盘启动垃圾回收的第一预设阈值与触发所述固态硬盘停止读写的第二预设阈值的差值。

上述实施例中的计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(mo)等、光学存储器如cd、dvd、bd、hvd等、以及半导体存储器如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd)等。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人体一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人体可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1