一种重复数据删除方法和装置与流程

文档序号:16246092发布日期:2018-12-11 23:35阅读:232来源:国知局
一种重复数据删除方法和装置与流程

本申请涉及数据处理领域,特别是涉及一种重复数据删除方法和装置。

背景技术

在当今的大数据时代,海量的数据存储占用大量的存储空间,其中,可能包括大量的冗余数据,例如重复数据。在这种情况下,重复数据删除(datadeduplication,简称ddp)是一种可减少数据占用存储空间的核心技术。

目前使用的ddp算法可以包括强哈希(hash)算法,以及弱hash算法结合数据逐字节比较的方式。其中,弱hash算法结合数据逐字节比较的方式是常用的ddp算法,其主要是将新写入的数据计算一个数据指纹,然后将该数据指纹与已存储的数据指纹对比,如果二者匹配成功,再读取已存储的数据指纹对应的数据,将其与新写入的数据逐字节比较来确定数据是否完全相同,如果相同,则新写入的数据不写入磁盘。

由于在采用弱hash算法结合数据逐字节比较的方式进行重复数据删除时,需要从磁盘中读取已存储的数据指纹对应的数据,而从磁盘读取数据具有读取速度慢、读取时延较长的特点,因此,传统的重复数据删除方法效率低。



技术实现要素:

为了解决上述技术问题,本申请提供了一种重复数据删除方法和装置,该方法可以优先从高速缓冲存储器中读取目标数据,从而减少从磁盘中读取目标数据的次数,提高数据读取速度,提升重复数据删除的效率。

本申请实施例公开了如下技术方案:

第一方面,本申请实施例提供了一种重复数据删除方法,高速缓冲存储器中存储有数据指纹与存储数据的缓存块的对应关系,所述方法包括:

计算待处理数据对应的第一数据指纹;

若已存储的数据指纹中存在与所述第一数据指纹匹配的第二数据指纹,判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中是否存在目标数据;

若存在,从所述第二数据指纹对应的缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

可选的,若判断所述高速缓冲存储器中所述第二数据指纹对应的缓存区域中不存在目标数据,所述方法还包括:

从磁盘中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

可选的,所述高速缓冲存储器包括第一缓存区域和第二缓存区域,所述第一缓存区域中的缓冲块所缓存的数据是根据高速缓冲存储器确定的,所述第二缓存区域中的缓冲块所缓存的数据是由重复数据删除模块确定的。

可选的,所述第二缓存区域中的缓冲块所缓存的数据是重复数据删除率满足预设条件的数据。

可选的,所述高速缓冲存储器数据指纹与存储数据的缓存块的对应关系是由所述重复数据删除模块建立的。

第二方面,本申请实施例提供了一种重复数据删除装置,其特征在于,高速缓冲存储器中存储有数据指纹与存储数据的缓存块的对应关系,所述装置包括计算单元、判断单元和第一比较单元:

所述计算单元,用于计算待处理数据对应的第一数据指纹;

所述判断单元,用于若已存储的数据指纹中存在与所述第一数据指纹匹配的第二数据指纹,判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中是否存在目标数据;

所述第一比较单元,用于若所述判断单元判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中存在所述目标数据,从所述第二数据指纹对应的缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

可选的,若所述判断单元判断所述高速缓冲存储器中所述第二数据指纹对应的缓存区域中不存在目标数据,所述装置还包括第二比较单元:

所述第二比较单元,用于从磁盘中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

可选的,所述高速缓冲存储器包括第一缓存区域和第二缓存区域,所述第一缓存区域中的缓冲块所缓存的数据是根据高速缓冲存储器确定的,所述第二缓存区域中的缓冲块所缓存的数据是由重复数据删除模块确定的。

可选的,所述第二缓存区域中的缓冲块所缓存的数据是重复数据删除率满足预设条件的数据。

可选的,所述高速缓冲存储器数据指纹与存储数据的缓存块的对应关系是由所述重复数据删除模块建立的。

由上述技术方案可以看出,本申请实施例具有以下优点:

在确定是否需要对待处理数据进行重复数据删除时,可以在高速缓冲存储器中存储有数据指纹与存储数据的缓存块的对应关系,当获取到待处理数据时,计算待处理数据对应的第一数据指纹;若已存储的数据指纹中存在与所述第一数据指纹匹配的第二数据指纹,可以优先判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中是否存在目标数据;若存在,则从所述第二数据指纹对应的缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据,无需从磁盘中读取目标数据与待处理数据进行比较。可见,与传统的方法相比,该方法可以优先从高速缓冲存储器中读取目标数据,从而减少从磁盘中读取目标数据的次数,由于从高速缓冲存储器读取目标数据的速度明显高于从磁盘中读取目标数据的速度,因此,该方法可以提高数据读取速度,提升重复数据删除的效率。

附图说明

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

图1为本申请实施例提供的一种重复数据删除方法的流程图;

图2为本申请实施例提供的一种高速缓冲存储器的示例图;

图3为本申请实施例提供的一种重复数据删除方法的流程图;

图4为本申请实施例提供的一种重复数据删除装置的结构框图。

具体实施方式

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

ddp技术对于减少存储空间的占用,特别是针对存储空间成本较高的全闪存存储阵列(allflasharray,简称afa)是非常重要的。在传统的采用弱hash算法结合数据逐字节比较的方式进行重复数据删除时,需要从磁盘中读取已存储的数据指纹对应的数据,而从磁盘读取数据具有读取速度慢、读取时延较长的特点,因此,传统的重复数据删除方法效率低。

为此,本申请实施例提供一种重复数据删除方法,该方法在进行数据逐字节比较时,可以优先从高速缓冲存储器中读取目标数据,从而减少从磁盘中读取目标数据的次数,由于从高速缓冲存储器读取目标数据的速度明显高于从磁盘中读取目标数据的速度,因此,该方法可以提高数据读取速度,提升重复数据删除的效率。

下面结合附图,详细说明本申请实施例提供的关系标签的推荐方法。

参见图1,图1为本申请实施例提供的一种重复数据删除方法的流程图,在该方法中,高速缓冲存储器中存储有数据指纹与存储数据的缓存块的对应关系,在此基础上,该方法包括:

s101、计算待处理数据对应的第一数据指纹。

在本实施例中,待处理数据可以是需要确定是否为已经写入磁盘的数据,即待处理数据可以是需要确定是否为可以被删除、是否需要写入磁盘的数据。

数据指纹可以是用于标识不同数据的。计算数据指纹的算法可以包括多种,根据算法自身的特点,一般情况下,针对不同的数据,使用有些算法计算数据指纹时,不同数据对应的数据指纹可能相同的概率比较小,例如强hash算法;然而,使用有些算法计算数据指纹时,不同数据对应的数据指纹可能相同的概率比较大,例如弱hash算法。

当新写入一个数据时,需要判断该新写入的数据是否需要写入磁盘,该新写入的数据可以作为待处理数据。当获取到待处理数据后,可以计算该待处理数据对应的数据指纹,例如为第一数据指纹。

具体的,在本实施例中,可以利用弱hash算法计算待处理数据对应的第一数据指纹。

s102、若已存储的数据指纹中存在与所述第一数据指纹匹配的第二数据指纹,判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中是否存在目标数据。

在得到待处理数据对应的第一数据指纹后,可以将第一数据指纹与已存储的数据指纹比对,若已存储的数据指纹中存在与所述第一数据指纹匹配的第二数据指纹,还需继续判断高速缓冲存储器(cache)中所述第二数据指纹对应的缓存块中是否存在目标数据。

需要说明的是,由于本实施例采用的是若hash算法计算第一数据指纹,使得不同数据对应相同数据指纹的概率比较大,也就是说,即使第一数据指纹与第二数据指纹相同,也不能说明待处理数据与第二数据指纹对应的数据完全相同,不能确定待处理数据是否应该被删除。因此,还需要进一步将待处理数据与第二数据指纹对应的数据逐字节比较。

在本实施例中,由于cache中可能缓存有第二数据指纹对应的数据,且cache具有读取数据速度快的特点,为了尽量避免从磁盘中读取第二数据指纹对应的数据,减少读取磁盘的次数,本实施例将重复数据删除与cache相结合,即在需要将待处理数据与第二数据指纹对应的数据逐字节比较的情况下,优先从cache中读取第二数据指纹对应的数据,仅在cache中未缓存有第二数据指纹对应的数据时才会从磁盘中读取,从而减少读取磁盘的次数,提高重复数据删除的效率。

由于cache中存储有数据指纹与存储数据的缓存块的对应关系,这样,可以根据该对应关系确定第二数据指纹对应的缓存块,进而确定该缓存块中是否存在目标数据,若存在则执行s103。

其中,cache中数据指纹与存储数据的缓存块的对应关系如图2所示,cache中数据指纹与存储数据的缓存块的对应关系是由重复数据删除(ddp)模块建立的。

s103、若存在,从所述第二数据指纹对应的缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

若cache中第二数据指纹对应的缓存块中存在目标数据,则从该缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,若待处理数据与目标数据的字节完全相同,则说明磁盘中已经写入了与该待处理数据完全相同的数据,该待处理数据是重复数据,该待处理数据不会被写入磁盘,需要将该待处理数据删除。

若cache中第二数据指纹对应的缓存块中不存在目标数据,则从磁盘中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

由上述技术方案可以看出,在确定是否需要对待处理数据进行重复数据删除时,可以在高速缓冲存储器中存储有数据指纹与存储数据的缓存块的对应关系,当获取到待处理数据时,计算待处理数据对应的第一数据指纹;若已存储的数据指纹中存在与所述第一数据指纹匹配的第二数据指纹,可以优先判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中是否存在目标数据;若存在,则从所述第二数据指纹对应的缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据,无需从磁盘中读取目标数据与待处理数据进行比较。可见,与传统的方法相比,该方法可以优先从高速缓冲存储器中读取目标数据,从而可以减少从磁盘中读取目标数据的次数,由于从高速缓冲存储器读取目标数据的速度明显高于从磁盘中读取目标数据的速度,因此,该方法可以提高数据读取速度,提升重复数据删除的效率。

接下来将对如何建立cache中数据指纹与存储数据的缓存块的对应关系,以将cache用于重复数据删除进行介绍。

待处理数据是重复数据说明磁盘中已经写入了与待处理数据完全相同的数据,而磁盘中与待处理数据完全相同的数据可能已经被读取过,也可能未被读取过。由于cache本身具有缓存数据的功能,cache利用自身缓存功能所缓存的数据是存储在磁盘中被读取过的数据,从而实现待处理数据优先与cache中缓存的这些数据比较。

另外,在一些情况下,有一些数据虽然已经被写入磁盘,但是并没有被读取过,而cache利用自身缓存功能能够缓存的数据是被读取过的数据,因此,依靠cache自身缓存功能难以将这些未被读取过的数据缓存至cache,从而难以实现待处理数据优先与cache中缓存的这些数据比较,在这种情况下,可以利用ddp模块对cache进行管理,以便将已经被写入磁盘且未被读取的数据缓存至cache。

为此,在本实施例中,cache可以被划分为两个缓存区域,例如,第一缓存区域和第二缓存区域,其中,第一缓存区域中的缓冲块所缓存的数据是根据cache自身的缓存功能确定的,例如依赖cache本来的预取、缓存、淘汰策略来确定缓存哪些数据,如图2中右侧所示。一般情况下,第一缓存区域可以占用cache中较大存储空间,例如可以占用cache的80%以上。

第二缓存区域中的缓冲块所缓存的数据是由ddp模块确定的,如图2中左侧所示。ddp模块可以将多次被写入的数据即ddp率满足预设条件的数据放入第二缓存区域,所述第二预设条件可以是ddp率大于阈值,这些数据即ddp率较高的数据,可以作为热点数据,这种热点数据再次被写入的概率也非常高,因此,将热点数据放入cache的第二缓存区域,可以大幅提升主机读热点数据的命中率,提高重复数据删除速度。

需要说明的是,在本实施例中,将数据放入cache中相应的缓存块中后,无论针对cache中的哪个缓存区域,cache中缓存数据的缓存块与数据指纹建立对应关系都可以是由ddp模块建立的。

具体的,可以利用ddp模块确定缓存块中的数据对应的数据指纹,进而将缓存数据的缓存块与数据指纹建立对应关系,这样,在s102之后如果有第一数据指纹需要与第二数据指纹对应的目标数据进行逐字节比较,可以从cache中读取第二数据指纹对应的目标数据,从而减少读盘次数,甚至针对ddp率较高的待处理数据可以大幅提升主机读热点数据的命中率,达到提高重复数据删除速度的目的。

下面结合具体应用场景对本申请实施例的重复数据删除方法进行详细介绍。在该场景中,主机请求新写入数据,该数据可以作为待处理数据,ddp模块在接收到主机请求后,执行图1对应的重复数据删除方法,参见图3,该重复数据删除流程包括:

s301、ddp模块接收主机请求。

s302、利用弱hash算法计算待处理数据对应的第一数据指纹。

s303、判断已存储的数据指纹中是否存在与所述第一数据指纹匹配的第二数据指纹,若存在,执行s304。

s304、判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中是否存在目标数据,若存在,则执行s305,若不存在,则执行s306。

s305、从所述第二数据指纹对应的缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

s306、从磁盘中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

与传统的方法相比,该方法可以优先从高速缓冲存储器中读取目标数据,从而减少从磁盘中读取目标数据的次数,由于从高速缓冲存储器读取目标数据的速度明显高于从磁盘中读取目标数据的速度,因此,该方法可以提高数据读取速度,提升重复数据删除的效率。

基于前述实施例提供的重复数据删除方法,本申请实施例提供了一种重复数据删除装置400,高速缓冲存储器中存储有数据指纹与存储数据的缓存块的对应关系,所述装置400包括计算单元401、判断单元402和第一比较单元403:

所述计算单元401,用于计算待处理数据对应的第一数据指纹;

所述判断单元402,用于若已存储的数据指纹中存在与所述第一数据指纹匹配的第二数据指纹,判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中是否存在目标数据;

所述第一比较单元403,用于若所述判断单元判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中存在所述目标数据,从所述第二数据指纹对应的缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

可选的,若所述判断单元判断所述高速缓冲存储器中所述第二数据指纹对应的缓存区域中不存在目标数据,所述装置还包括第二比较单元:

所述第二比较单元,用于从磁盘中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据。

可选的,所述高速缓冲存储器包括第一缓存区域和第二缓存区域,所述第一缓存区域中的缓冲块所缓存的数据是根据高速缓冲存储器确定的,所述第二缓存区域中的缓冲块所缓存的数据是由重复数据删除模块确定的。

可选的,所述第二缓存区域中的缓冲块所缓存的数据是重复数据删除率满足预设条件的数据。

可选的,所述高速缓冲存储器数据指纹与存储数据的缓存块的对应关系是由所述重复数据删除模块建立的。

由上述技术方案可以看出,本申请实施例具有以下优点:

在确定是否需要对待处理数据进行重复数据删除时,可以在高速缓冲存储器中存储有数据指纹与存储数据的缓存块的对应关系,当获取到待处理数据时,计算待处理数据对应的第一数据指纹;若已存储的数据指纹中存在与所述第一数据指纹匹配的第二数据指纹,可以优先判断所述高速缓冲存储器中所述第二数据指纹对应的缓存块中是否存在目标数据;若存在,则从所述第二数据指纹对应的缓存块中读取所述目标数据并将所述待处理数据与所述目标数据逐字节比较,以便在确定所述待处理数据与所述目标数据字节完全相同时删除所述待处理数据,无需从磁盘中读取目标数据与待处理数据进行比较。可见,与传统的方法相比,该方法可以优先从高速缓冲存储器中读取目标数据,从而减少从磁盘中读取目标数据的次数,由于从高速缓冲存储器读取目标数据的速度明显高于从磁盘中读取目标数据的速度,因此,该方法可以提高数据读取速度,提升重复数据删除的效率。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-onlymemory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

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