一种数据重删方法及装置与流程

文档序号:11406697阅读:186来源:国知局
一种数据重删方法及装置与流程

本申请涉及存储领域,尤其涉及一种数据重删技术。



背景技术:

重删技术是一种自动搜索重复数据,并将相同数据保留唯一副本的存储技术。通过重删处理,可消除存储系统的冗余数据,降低对存储容量的需求。

目前比较流行的重删技术是基于hash(译为散列或哈希)算法实现的在线重删技术。如,计算数据块的散列值,通过散列值匹配,保留新增数据,删除重复数据。然而,散列值计算以及匹配过程需要消耗大量的系统资源,尤其是对已进行重删的数据块再一次进行重删处理,更大大增加了系统资源的消耗,降低了重删的效率。



技术实现要素:

有鉴于此,本申请提供一种数据重删方法及装置,用以提高重删效率。

具体地,本申请是通过如下技术方案实现的:

根据本申请的第一方面,提供一种数据重删方法,所述方法应用于存储设备,所述存储设备包括预配置的逻辑地址映射表,所述逻辑地址映射表包括若干条逻辑地址映射记录;所述逻辑地址映射记录包括已写入数据的逻辑地址、物理地址以及预设标识位的映射关系;其中,未完成重删处理的已写入数据对应的逻辑地址映射记录中,所述预设标识位的取值为第一预设值,所述方法包括:

从所述逻辑地址映射表中依次读取逻辑地址映射记录;

判断读取到的逻辑地址映射记录中的所述预设标识位的取值是否为第一预设值;

如果所述标识位的取值是第一预设值,则基于预设的重删策略对所述逻辑地址映射对应的已写入数据进行重删处理。

根据本申请的第二方面,提供一种数据重删装置,所述装置应用于存储设备,所述存储设备包括预配置的逻辑地址映射表,所述逻辑地址映射表包括若干条逻辑地址映射记录;所述逻辑地址映射记录包括已写入数据的逻辑地址、物理地址以及预设标识位的映射关系;其中,未完成重删处理的已写入数据对应的逻辑地址映射记录中,所述预设标识位的取值为第一预设值,所述装置包括:

从所述逻辑地址映射表中依次读取逻辑地址映射记录;

判断读取到的逻辑地址映射记录中的所述预设标识位的取值是否为第一预设值;

如果所述标识位的取值是第一预设值,则基于预设的重删策略对所述逻辑地址映射对应的已写入数据进行重删处理。

本申请提出一种重删处理的方法,通过在逻辑地址映射表的逻辑地址映射记录中增加标识重删状态的预设标识位,存储设备在判断读取到的逻辑地址映射记录中的所述预设标识位的取值为第一预设值后,可基于预设的重删策略对该逻辑地址映射对应的已写入数据进行重删处理。

由于增加了标识待重删数据的重删状态的预设标识位,存储设备可区分出未经重删处理的已写入数据,然后再对该未经重删处理的已写入数据进行重删处理,因此大大降低了重删处理的资源消耗量,提高了重删处理的效率。

附图说明

图1是本申请一示例性实施例示出的一种相关数据重删技术中的重删示意图;

图2是本申请一示例性实施例示出的一种数据重删方法的流程图;

图3是是本申请一示例性实施例示出的一种数据重删方法中的重删示意图;

图4是本申请一示例性实施例示出的一种数据重删装置所在设备的硬件结构图;

图5是本申请一示例性实施例示出的一种数据重删装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

重删技术是一种自动搜索重复数据,并将相同数据保留唯一副本的存储技术。通过重删处理,可消除存储系统的冗余数据,降低对存储容量的需求。

通常,重删技术可包括在线重删和后台重删。

其中,在线重删是指,存储设备在接收到写io请求后,可先对写io请求中的目标数据进行重删处理,再基于重删处理后的状态,确定是否写入该目标数据。

后台重删是指,存储设备读取本地已写入的目标数据,再对读取到的目标数据进行重删处理。

需要说明的是,在线重删与后台重删的重删处理过程基本相同,只是在线重删主要针对写io请求中的待写入数据进行重删处理,而后台重删则是通过逻辑地址映射表中的逻辑地址映射记录对应的已写入数据进行重删处理。

为了更好地理解本申请,下面详细介绍下相关技术中的数据重删处理的流程。

参见图1,图1是本申请一示例性实施例示出的一种相关数据重删技术中的重删示意图。

其中,图1的(a1)为逻辑地址映射表。该逻辑地址映射表包括若干条记载已写入数据的逻辑地址与物理地址的逻辑地址映射记录。

图1的中的(b1)为重删映射表。该重删映射表包括若干条已完成重删处理的已写入数据的散列值与物理地址的重删映射记录。

在重删时,存储设备可计算目标数据(如data_0)的散列值(如h_x),然后可在重删映射表中查找与计算得的散列值(如h_x)匹配重删映射记录,通过重删映射记录确定与该散列值(如h_x)对应的已完成重删处理的已写入数据的物理地址(如b_x1)。

存储设备可通过上述物理地址b_x1,读取该已完成重删处理的已写入数据(如图b2所示的data_0),并在判断该读取到的已完成重删处理的已写入数据与目标数据相同后,将目标数据对应的逻辑地址映射记录中的该目标数据的物理地址(如b_x)修改为上述已完成重删处理的已写入数据的物理地址(如b_x1)。

然而,在上述相关的数据重删技术中,由于很难确认目标数据是否已经过在线或者后台重删处理,从而造成对已完成重删处理的目标数据又进行后台重删处理,大大占用了设备的资源,降低了后台重删的效率。

此外,由于上述相关的重删技术缺乏自动控制在线重删或者后台重删的启停及切换的机制,大大降低了重删调度的灵活性。

本申请提出一种重删处理的方法,通过在逻辑地址映射表的逻辑地址映射记录中增加标识重删状态的预设标识位,存储设备在判断读取到的逻辑地址映射记录中的所述预设标识位的取值为第一预设值后,可基于预设的重删策略对该逻辑地址映射对应的已写入数据进行重删处理。

一方面,由于增加了标识目标数据的重删状态的预设标识位,存储设备可确定出未经过重删处理的目标数据,然后再对该目标数据进行重删处理,因此大大降低了重删处理的资源消耗量,提高了重删处理的效率。

另一方面,由于存储设备可统计预设标识位取值为第一预设值的逻辑地址映射记录的数目,或者当前io性能指标来判断当前存储设备的存储空间的占用率,或者存储设备当前的io性能状态,以动态进行后台重删与在线重删的重删调度。

参见图2,图2是本申请一示例性实施例示出的一种数据重删方法的流程图。该数据重删的方法可应用于存储设备,可包括如下所示步骤。

步骤201:从所述逻辑地址映射表中依次读取逻辑地址映射记录;

步骤202:判断读取到的逻辑地址映射记录中的所述预设标识位的取值是否为第一预设值;

步骤203:如果所述标识位的取值是第一预设值,则基于预设的重删策略对所述逻辑地址映射对应的已写入数据进行重删处理。

其中,上述存储设备储存有逻辑地址映射表和重删映射表。

参见图3,图3是本申请一示例性实施例示出的一种数据重删方法中的重删示意图。

图3(a1)为本申请提出的逻辑地址映射表,该逻辑地址映射表中包含若干条逻辑地址映射记录。该逻辑地址映射记录包括已写入数据的逻辑地址、已写入数据的物理地址以及预设标识位的映射关系。

上述预设标识位用以标识已写入数据的重删处理状态,预设标识位的取值不同,其对应的已写入的数据的重删处理状态不同。例如,对于未进行重删处理的数据,标识位的取值为第一预设值,例如可以为0。对于已进行重删处理的数据,标识位的取值可为第二预设值,例如可为1。对于散列值冲突(即一个散列值对应两个不同的已完成重删处理的已写入数据)的数据,可认为该数据未经过重删处理,标识位的取值可为第一预设值,例如可为0。当然,对于散列值冲突的数据,标识位的取值也可以为第三预设值等,只要能标识出散列值冲突的数据为未经过重删处理的数据即可。

通常情况下,在上述逻辑地址映射记录中,已写入数据的逻辑地址的长度为8个字节,即64bit,已写入数据的物理地址的长度也为8个字节。在设计逻辑地址映射记录时,可将该物理地址长度中分出1个bit作为标识位,也可在逻辑地址长度中分出1个bit作为标识位。在这里,只是对在逻辑地址映射记录设置标志位进行示例性地说明,不对其进行特别地限定。

需要说明的是,在逻辑地址映射表中划分出一个bit作为标识位,一方面,可节省内存空间,不带来更多的内存空间消耗;

另一方面,由于是通过在逻辑地址映射表中划分一个bit作为标识位来扩展逻辑地址映射表,而不是通过增加其他表或者其他映射关系来标识已写入数据的重删处理状态,从而效地减少对于识别待重删处理的目标数据的重删状态的步骤,提高了重删处理的效率。

更为重要的是,逻辑地址映射表作为存储设备的核心元数据,在cache中一般会存储有该逻辑地址映射表所在内存的地址信息等,因此将该预设标识位设置在逻辑地址映射表上,可有效地提高存储设备访问已写入数据的重删处理状态的速率。

参见图3,图3(b1)为重删映射表。该重删映射表包括若干条重删映射记录。重删映射记录包括已完成重删处理的已写入数据的散列值与该已完成重删处理的已写入数据的物理地址的映射关系。

上述预设的重删策略可包括:存储设备可计算待重删处理的目标数据的散列值,并可将计算得到的散列值与所述重删映射表中的散列值依次进行匹配。

如果存储设备在上述重删映射表中未匹配到该散列值,存储设备可将该目标数据对应的逻辑地址映射记录中的所述预设标识位的取值为所述第二预设值。

在一种可选的实现方式中,针对在线重删,存储设备可为该目标数据分配存储空间,并写入该目标数据。存储设备可为该目标数据生成逻辑地址为该目标数据的逻辑地址、物理地址为该分配的存储空间的地址、预设标识位的取值为第二预设值的逻辑地址映射记录,并将该逻辑地址映射记录添加至逻辑地址映射表。

在另一种可选的实现方式中,针对后台重删,存储设备可在重删映射表中增加该目标数据的散列值和该目标数据的物理地址的重删映射记录。同时,存储设备将逻辑地址映射表中的针对该目标数据的逻辑地址映射记录的预设标识位取值设置为第二预设值。

如果在重删映射表中匹配到所述散列值,存储设备可读取与所述散列值存在映射关系的物理地址对应的已完成重删处理的已写入数据,并可比较所述目标数据和读取到的所述已完成重删处理的已写入数据。

如果该目标数据和读取到的该已完成重删处理的已写入数据不同,存储设备可将该目标数据对应的逻辑地址映射记录中的所述预设标识位的取值为所述第一预设值。

在一种可选的实现方式中,针对在线重删,存储设备可为该目标数据分配存储空间,并生成逻辑地址为该目标数据的逻辑地址、物理地址为该分配的存储空间的地址、预设标识位的取值为第一预设值的逻辑地址映射记录,并将该逻辑地址映射记录添加至逻辑地址映射表中。

在另一种可选的实现方式中,针对后台重删,如果该目标数据和读取到的该已完成重删处理的已写入数据不同,存储设备可将逻辑地址映射表中与该目标数据对应的逻辑地址映射记录中的预设标识位的取值设置为第一预设值。

如果该目标数据和读取到的该已完成重删处理的已写入数据的数据相同,存储设备可将该目标数据对应的逻辑地址映射记录中的预设标识位的取值设置为第二预设值,物理地址设置为已完成重删处理的已写入数据的物理地址。

在一种可选的实现方式中,针对在线重删,存储设备可丢弃该目标数据,同时,生成针对该目标数据的逻辑地址映射记录,该生成的逻辑地址映射记录中的逻辑地址为该目标数据的逻辑地址,物理地址为该已完成重删处理的已写入数据的物理地址,预设标识位取值为第二预设值。

在另一种可选的实现方式中,针对后台重删,如果该目标数据和读取到的该已完成重删处理的已写入数据的数据相同,存储设备可将与该目标数据对应的逻辑地址记录中的物理地址修改为已完成重删处理的已写入数据的物理地址,预设标识位取值为第二预设值。同时,存储设备可回收该目标数据。

需要说明的是,对于在线重删来说,上述待重删处理的目标数据可为io写请求中的待写入数据。对于后台重删来说,上述待重删处理的目标数据可为逻辑地址映射记录对应的已写入数据。

在本申请实施例中,存储设备可对在线或者后台重删处理未成功的待写入数据或者未进行在线重删的待写入数据,生成预设标识位取值为第一预设值的逻辑地址映射记录。在后台重删的过程中,存储设备可基于预设的重删策略,只对逻辑地址映射表中的预设标识位为第一预设值的逻辑地址映射记录对应的已写入数据进行后台重删处理。由于不再会对已完成重删处理的数据再进行后台重删处理,所以可大大提高了后台重删的效率。

下面分别从在线重删和后台重删两个方面,对本申请提出的数据重删方法进行详细地说明。

1)在线重删

在本申请实施例中,为了在满足存储设备当前io性能的同时,减少数据的写入,存储设备在接收到写io请求后,可判断是否满足在线重删的触发条件,如果满足,则可进行在线重删。

在实现时,存储设备可统计当前各io性能指标,并可判断统计到的各io性能指标是否分别满足预配置的性能指标阈值,如果各io性能指标均满足预配置的性能指标阈值,则表明当前存储设备有足够的资源进行在线重删,通过在线重删,减少数据的写入。

如果任一io性能指标未满足预配置的性能指标阈值,存储设备可不开启在线重删,将接收到的写io请求中携带的待写入数据写入至本地,同时为该待写入数据生成预设标识位取值为第一预设值的逻辑地址映射记录。

其中,上述io性能可包括io数量、io延时和io吞吐量等,这里只是对io性能进行示例性地说明,不对其进行具体地限定。

上述预配置的性能指标阈值可包括io数量阈值,io延时阈值和io吞吐量阈值等,可由用户进行配置等,这里只是对性能指标阈值及其配置方式进行示例性地说明,不对其进行具体地限定。

在确定各io性能指标均满足预配置的性能指标阈值后,存储设备可计算接收到的写io请求中携带的待写入数据的散列值。

需要说明的是,存储设备可通过哈希散列值的计算方法来计算该已写入数据的散列值,也可以通过其他散列值的计算方法来进行计算,这里不对已写入数据的散列值的计算进行特别地限定。

在计算得到上述散列值后,存储设备可将计算得到的散列值与上述重删映射表中的散列值依次进行匹配。

如果在该重删映射表中未匹配到该散列值,存储设备可为该待写入数据分配存储空间,并可写入该待写入数据。存储设备可为该待写入数据生成逻辑地址为该待写入数据的逻辑地址,物理地址为该分配的存储空间的地址、预设标识位取值为第二预设值的逻辑地址映射记录。

如果在该重删映射表中匹配到该散列值,则可读取与该散列值对应的物理地址,并通过该物理地址,读取已完成重删处理的已写入数据。

存储设备可比较该待写入数据和已完成重删处理的已写入数据是否相同。如果该待写入数据和已完成重删处理的已写入数据相同,则可为该待写入数据生成逻辑地址为该待写入数据的逻辑地址、物理地址为该已完成重删处理的已写入数据的物理地址、预设标志位取值为第二预设值的逻辑地址映射记录。同时,存储设备可丢弃该待写入数据。

如果该待写入数据和已完成重删处理的已写入数据不相同,存储设备可为该待写入数据分配存储空间,并可写入该待写入数据。存储设备可为该待写入数据生成逻辑地址为该待写入数据的逻辑地址,物理地址为该分配的存储空间的地址、预设标识位取值为第一预设值的逻辑地址映射记录。

例如,如图3所示,假设上述待入数据为data_0,存储设备可计算data_0的散列值,假设计算得到的该散列值为h_x。存储设备可在如图3(b1)所示的重删映射表中,查找与该h_x匹配的重删映射记录,并通过该重删映射记录,确定与该h_x对应的已完成重删处理的数据的物理地址,如b_x1。

如图3的(b2)所示,存储设备可读取b_x1对应的已完成重删处理的已写入数据data_0。在存储设备确定该待写入数据data_0和读取到的已完成重删处理的已写入数据data_0相同后,可为该待写入数据生成如图3(a1)所示的逻辑地址映射记录。该逻辑地址映射记录中的逻辑地址为该待写入数据的逻辑地址addr_0,物理地址为该已完成重删处理的已写入数据的物理地址b_x1,标识位取值为第二预设值1。存储设备可将该逻辑地址映射记录添加至逻辑地址映射表。同时,存储设备可丢弃该待写入数据。

如果上述待写入数据为data_1,存储设备可计算data_1的散列值,假设计算得到的该散列值为h_y。存储设备可在如图3(b1)所示的重删映射表中,查找与该h_y匹配的重删映射记录,并通过该重删映射记录,确定与该h_y对应的已完成重删处理的数据的物理地址,如b_y1。

存储设备可读取b_y1对应的已完成重删处理的已写入数据data_m。在存储设备确定该已写入数据data_m和读取到的已完成重删处理的已写入数据data_0不同后,存储设备可为该待写入数据分配分配存储空间,并可写入该待写入数据。存储设备可为该待写入数据生成如图3(a1)所示的逻辑地址映射记录,该逻辑地址映射记录中的逻辑地址为该待写入数据的逻辑地址(如addr_1),物理地址为该分配的存储空间的地址(如b_y)、预设标识位取值为第一预设值(如0)的逻辑地址映射记录。存储设备可将该逻辑地址映射记录添加至上述逻辑地址映射表。

如果上述待写入数据为data_2,存储设备可计算data_2的散列值,假设计算得到的该散列值为h_q。存储设备可在如图3(b1)所示的重删映射表中,查找与该h_q匹配的重删映射记录。在存储设备确认未查找到与该h_q匹配的重删映射记录后,存储设备可为该待写入数据分配存储空间,并可写入该待写入数据。存储设备可为该待写入数据生成如图3(a1)所示的逻辑地址映射记录,该逻辑地址映射记录中的逻辑地址为该待写入数据的逻辑地址(如addr_2),物理地址为该分配的存储空间的地址(如b_q)、预设标识位取值为第二预设值(如1)的逻辑地址映射记录。

2)后台重删

为了根据存储设备当前存储空间占用率来进行后台重删的启停控制等,实现及时降低存储设备当前存储空间占用率,存储设备可基于后台重删的触发条件,来判定是否进行后台重删。

后台重删的触发条件可包括:存储设备可统计上述逻辑地址映射表中的预设标识位取值为第一预设值的逻辑地址映射记录的数目。存储设备可判断统计到的逻辑地址映射记录的数目是否达到预设阈值,如果该统计到的逻辑地址映射记录的数目达到预设阈值,则表明存储设备当前的存储空间占用率过高,可开启后台重删,以降低存储空间占用率。如果该统计到的逻辑地址映射记录的数目未达到预设阈值,则表明存储设备当前的存储空间还够满足存储需求,此时可不开启后台重删。

在确定统计到的逻辑地址映射记录的数目达到预设阈值后,存储设备可从上述逻辑地址映射表中依次读取逻辑地址映射记录。然后,存储设备可判断读取到的逻辑地址映射记录中的预设标识位的取值是否为第一预设值。如果该标识位的取值为第一预设值,则表明需要对该逻辑地址映射记录对应的已写入数据进行重删处理。

在重删处理时,存储设备可计算该已写入数据的散列值,并可将该计算得到的散列值与上述重删映射表中的散列值依次进行匹配。

如果在该重删映射表中未匹配到上述散列值,则可将上述已写入数据对应的逻辑地址映射记录中的标识位取值设置为第二预设值,同时在重删映射表中,增加该已写入数据的散列值与该已写入数据的物理地址的重删映射记录。

如果在该重删映射表中匹配到该散列值,则可读取与该散列值对应的已完成重删处理的已写入数据的物理地址。并基于该物理地址,读取该已完成重删处理的已写入数据。

存储设备可比较该已写入数据和该已完成重删处理的已写入数据是否相同,如果该已写入数据和该已完成重删处理的已写入数据相同,则可将该已写入数据对应的逻辑地址映射记录中的标识位取值设置为第二预设值,并将该逻辑地址映射记录中的该已写入数据的物理地址修改为已完成重删处理的已写入数据的物理地址。

如果该已写入数据和该已完成重删处理的已写入数据不相同,存储设备可不更改该已写入数据对应的逻辑地址映射记录,该逻辑地址映射记录的标识位取值仍为第一预设值。

例如,如图3所示,如果上述读取到的逻辑地址映射记录所对应的已写入数据为图3(a2)所示的data_0,存储设备可计算data_0的散列值,假设计算得到的该散列值为h_x。存储设备可在如图3(b1)所示的重删映射表中,查找与该h_x匹配的重删映射记录,并通过该重删映射记录,确定与该h_x对应的已完成重删处理的数据的物理地址,如b_x1。

如图3(b2)所示,存储设备可读取b_x1对应的已完成重删处理的已写入数据data_0。在存储设备该已写入数据data_0和读取到的已完成重删处理的数据data_0相同后,可将该已写入数据data_0对应的逻辑地址映射记录中的data_0对应的物理地址b_x修改为已完成重删处理的已写入数据对应的物理地址b_x1,并将该预设标识位的取值修改为第二预设值,如第二预设值可为1。存储设备可回收所述已写入数据data_0。

如果上述读取到的逻辑地址映射记录所对应的已写入数据为图3(a2)所示的data_1,存储设备可计算data_1的散列值,假设计算得到的该散列值为h_y。存储设备可在如图3(b1)所示的重删映射表中,查找与该h_y匹配的重删映射记录,并通过该重删映射记录,确定与该h_y对应的已完成重删处理的数据的物理地址,如b_y1。

存储设备可读取b_y1对应的已完成重删处理的已写入数据data_m。在存储设备确定该已写入数据data_m和读取到的已完成重删处理的已写入数据data_0不同后,可不对该已写入数据对应的逻辑地址映射记录进行修改,该逻辑地址映射记录的标识位取值仍为第一预设值(如0)。

如果上述读取到的逻辑地址映射记录所对应的已写入数据为图3(a2)所示的data_2,存储设备可计算data_2的散列值,假设计算得到的该散列值为h_q。存储设备可在如图3的b1所示的重删映射表中,查找与该h_q匹配的重删映射记录。在存储设备确认未查找到与该h_q匹配的重删映射记录后,存储设备可将该已写入数据对应的逻辑地址映射记录中的预设标识位取值修改为第二预设值(如1)。

在本申请实施例中,如果该已写入数据和该已完成重删处理的已写入数据不同,则可表明出现散列值冲突的情况,存储设备可确定该已写入数据的重删处理未成功。存储设备可不更改该已写入数据对应的标识位取值为第一预设值的逻辑地址映射记录。

本申请提出一种重删处理的方法,通过在逻辑地址映射表的逻辑地址映射记录中增加标识重删状态的预设标识位,存储设备在判断读取到的逻辑地址映射记录中的所述预设标识位的取值为第一预设值后,可基于预设的重删策略对该逻辑地址映射对应的已写入数据进行重删处理。

一方面,由于增加了标识待重删数据的重删状态的预设标识位,存储设备可确定出未经过在线或者后台重删处理的已写入数据,然后再对该已写入数据进行后台重删处理,因此大大降低了后台重删处理的资源消耗量,提高了后台重删处理的效率。

另一方面,由于存储设备可统计预设标识位取值为第一预设值的逻辑地址映射记录的数目,或者当前io性能指标来判断当前存储设备的存储空间占用率,或者存储设备当前的io性能状态,以动态进行后台重删与在线重删启停和切换等重删调度。

与前述数据重删方法的实施例相对应,本申请还提供了数据重删装置的实施例。

本申请数据重删装置的实施例可以应用在存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在存储设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请数据重删装置所在存储设备的一种硬件结构图,除了图4所示的处理器、内存、网络出接口、以及非易失性存储器之外,实施例中装置所在的存储设备通常根据该存储设备的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图5,图5是本申请一示例性实施例示出的一种数据重删装置的框图。所述装置应用于存储设备,所述存储设备储存包括逻辑地址映射表,所述逻辑地址映射表包括若干条逻辑地址映射记录,所述逻辑地址映射记录包括已写入数据的逻辑地址、物理地址以及预设标识位的映射关系;其中,未完成重删处理的已写入数据对应的逻辑地址映射记录中所述预设标识位的取值为第一预设值,所述装置包括:读取单元510、判断单元520和重删处理单元530。

读取单元510,用于从所述逻辑地址映射表中依次读取逻辑地址映射记录;

判断单元520,用于判断读取到的逻辑地址映射记录中的所述预设标识位的取值是否为第一预设值;

重删处理单元530,用于如果所述标识位的取值是第一预设值,则基于预设的重删策略对所述逻辑地址映射对应的已写入数据进行重删处理。

在一种可选的实现方式中,所述装置还包括:标记单元540,用于响应于接收到的写io请求,基于预设的重删策略对所述写io请求中携带的待写入数据进行重删处理,如果针对所述待写入数据未重删处理成功;或者,未针对所述写io请求中携带的待写入数据进行重删处理,在所述逻辑地址映射表中为该待写入数据生成所述预设标识位的取值为所述第一预设值的所述逻辑地址映射记录。

在另一种可选的实现方式中,所述存储设备还包括预配置的重删映射表;所处重删映射表包括若干条重删映射记录;其中,所述重删映射记录包括已完成重删处理的已写入数据的散列值和物理地址的映射关系;

所述预设的重删策略包括:计算待重删处理的目标数据的散列值;将计算得到的散列值与所述重删映射表中的散列值依次进行匹配;如果在所述重删映射表中匹配到所述散列值,读取与所述散列值存在映射关系的物理地址对应的已完成重删处理的已写入数据;比较所述目标数据和读取到的所述已完成重删处理的已写入数据;如果所述目标数据和读取到的所述已完成重删处理的已写入数据不同,则将该目标数据对应的逻辑地址映射记录中的所述预设标识位的取值为所述第一预设值。

在另一种可选的实现方式中,所述预设的重删策略还包括:如果在所述重删映射表中未匹配到所述散列值,则将该目标数据对应的逻辑地址映射记录中的所述预设标识位的取值为所述第二预设值。

在另一种可选的实现方式中,所述预设的重删策略还包括:如果所述目标数据和所述已完成重删处理的已写入数据的数据相同,则将该目标数据对应的逻辑地址映射记录中的所述预设标识位的取值设置为所述第二预设值,物理地址设置为已完成重删处理的已写入数据的物理地址。

在另一种可选的实现方式中,所述装置还包括第一触发单元550,用于统计所述逻辑地址映射表中所述预设标识位取值为第一预设值的逻辑地址映射记录的数目;判断统计的所述逻辑地址映射记录的数目是否达到预设阈值,如果是,执行从所述逻辑地址映射表中依次读取逻辑地址映射记录的步骤。

在另一种可选的实现方式中,所述装置还包括:第二触发单元560,用于统计当前各io性能指标;判断统计到的所述各io性能指标是否分别满足预配置的性能指标阈值,如果是,执行基于预设的重删策略对所述写io请求中携带的待写入数据进行重删的步骤;如果否,不针对所述写io请求中携带的待写入数据进行重删处理。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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