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

文档序号:11063313阅读:422来源:国知局
一种重复数据删除方法及装置与制造工艺

本发明涉及数据处理技术领域,尤其涉及一种重复数据删除方法及装置。



背景技术:

随着计算机的发展,移动智能终端已经深切的改变了人们的生活。近几年来,移动智能终端的计算能力与存储能力得到了飞速发展。

目前移动智能终端的存储系统,具体以下特点:

第一,存储系统中存在数据重复,例如应用的安装以及更新产生的重复数据的冗余度大概在45%左右。

第二,智能终端采用闪存(flash)的永久性存储介质,写操作的性能较差,并且擦除操作次数有限。

由于存储系统的重复数据的存在,对系统的可靠性造成很大影响,因此迫切需要对存储系统中的重复数据进行管理。

重复数据删除技术,简称去重操作,是目前主流的一种存储技术。在现有技术中的重删技术中,通过内存中建立一个巨大的块数据索引表来维持分块数据的索引。在进行重复数据删除时,将数据对象进行分块处理,并计算分块处理结果中各分块的指纹,将各分块的指纹存储在数据块指纹值索引表(即指纹库)中,后续在存储数据时先查询该块数据指纹值索引表,若查询到与待存储数据的指纹值相同的分块指纹,则不存储待存储数据,只存储在数据块索引表中没有查询到相同指纹的新块,从而避免存储内容重复的块,也就是相当于实现了内容重复的数据块的删除。

目前重复数据删除技术主要应用于计算机等设备的主存储系统以及备份存储系统,该类设备的存储系统中后端存储一般采用磁盘(英文:Hard Disk Draver,简称:HDD),而移动智能终端的后端存储一般采用闪存(flash),因此该类设备相比智能终端的存储系统来说,计算资源以及主存储资源较充足。另外,flash存储介质的擦除次数是有限的,若重复数据较多的话会造成大量的写操作,降低flash的使用寿命,会影响移动智能终端的系统可靠性。由于现有技术提供的重复数据指纹查询操作对计算资源以及存储资源要求较高,因此将现有重复数据删除技术应用到智能终端,严重影响移动智能终端的系统可靠性。



技术实现要素:

本发明提供一种重复数据删除方法及装置,提高了移动智能终端的系统可靠性。

第一方面,本发明实施例提供了一种重复数据删除方法,该方法包括:

将待处理文件进行划分数据块处理,并计算划分得到的各数据块的数据指纹;

针对每个数据块分别执行:

将当前数据块的数据指纹与热点哈希表中的数据指纹进行匹配,若匹配一致,则确定所述当前数据块为重复数据;若匹配不一致,将所述当前数据块的数据指纹与哈希指纹表中的数据指纹进行匹配且匹配一致时,确定所述当前数据块为重复数据;其中,所述热点哈希表中各个哈希表项的数据指纹为在至少一个文件中重复出现次数达到设定门限值的数据指纹,所述哈希指纹表的数据指纹为已存储的各数据块的数据指纹。

本发明实施例中热点哈希表区别于一般的哈希表,并非存储唯一数据块的数据指纹,而是仅存储重复次数高的数据指纹,其数据量规模较小,数据指纹与热点哈希表中匹配的数据量较小,因此减少了指纹查找开销,可减小对内存的占用。另在,通过热点哈希表以及哈希指纹表能够在存储过程中降低文件数据块的重复率,减少了基于flash的存储介质的写操作,减少擦除次数,延长 了flash的使用寿命,并增加了系统的可靠性。

结合第一方面,在第一方面的第一种可能的实现方式中,所述哈希指纹表存储在随机访问存储器RAM中,所述热点哈希表存储在相变存储器PCM中。

通过基于RAM+PCM的指纹缓存结构和基于数据块重复出现次数的指纹缓存方案,可以有效地减轻指纹的内存需求和对应用性能的影响,由于通过维护热点哈希表,将把绝大多数的哈希查找操作定向到RAM中,因而降低了在主存储器中的哈希查找操作,与将全部指纹放在RAM中相比,减轻了内存需求,同时又无需将每次的哈希查找都实施于性能较差的Flash上。另外移动智能终端存储系统的重复数据删除比例在15%以上,延长闪存的使用寿命30%左右,同时提高存储子系统的性能20%以上。

结合第一方面或第一方面的第一种可能的实现方式,该方法还包括:

将所述当前数据块的数据指纹与热点哈希表中的数据指纹进行匹配且匹配一致时,更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数。从而能够对每个数据指纹的重复出现次数实时更新,提高了匹配的准确性。

具体的,所述热点哈希表中各个哈希表项依据哈希表项的数据指纹的重复出现次数在所述热点哈希表中顺序存储;所述方法还包括:

在更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数后,调整所述所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹在所述热点哈希表中的存储位置。从而能够存储热点哈希指纹表的存储空间满的时候,能够直接的尾项的哈希指纹即可,不需要再去对哈希指纹的重复出现次数进行排序,节省了操作步骤,从而节省了操作时间。

可选地,所述方法还包括:

将所述当前数据块的数据指纹与哈希指纹表中的数据指纹进行匹配且匹配一致时,更新所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数;

在所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数达到设定门限值时,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中。

可选地,在将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中之前,还包括:

确定存储所述热点哈希表的存储器的存储空间空闲。

具体的,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中,可以通过如下方式实现:

确定存储所述热点哈希表的存储器的存储空间已满,查找所述热点哈希表中待淘汰的哈希指纹,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹,替换所述待淘汰的哈希指纹保存在所述热点哈希表中。

第二方面,本发明实施例提供了一种重复数据删除装置,包括:

存储单元,用于存储热点哈希表和哈希指纹表;

处理单元,用于将待处理文件进行划分数据块处理,并计算划分得到的各数据块的数据指纹;针对每个数据块分别执行:将当前数据块的数据指纹与热点哈希表中的数据指纹进行匹配,若匹配一致,则确定所述当前数据块为重复数据;若匹配不一致,将所述当前数据块的数据指纹与哈希指纹表中的数据指纹进行匹配且匹配一致时,确定所述当前数据块为重复数据;其中,所述热点哈希表中各个哈希表项的数据指纹为在至少一个文件中重复出现次数达到设定门限值的数据指纹,所述哈希指纹表的数据指纹为已存储的各数据块的数据指纹。

可选地,所述存储单元包括:第一存储子单元和第二存储子单元;

所述哈希指纹表存储在所述第一存储子单元中,所述热点哈希表存储在所述第二存储子单元中。

其中,所述第一存储子单元可以为随机访问存储器RAM,所述第二存储子单元可以为相变存储器PCM。

可选地,所述处理单元,还用于将所述当前数据块的数据指纹与热点哈希表中的数据指纹进行匹配且匹配一致时,更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数。

可选地,所述热点哈希表中各个哈希表项依据哈希表项的数据指纹的重复出现次数在所述热点哈希表中顺序存储;所述处理单元,还用于在更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数后,调整所述所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹在所述热点哈希表中的存储位置。

可选地,所述处理单元,还用于将所述当前数据块的数据指纹与哈希指纹表中的数据指纹进行匹配且匹配一致时,更新所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数;

在所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数达到设定门限值时,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中。

可选地,所述处理单元,在将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中之前,还用于确定存储所述热点哈希表的存储器的存储空间空闲。

可选地,所述处理单元,在将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表时,具体用于:

确定存储所述热点哈希表的存储器的存储空间已满,查找所述热点哈希表中待淘汰的哈希指纹,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹,替换所述待淘汰的哈希指纹保存在所述热点哈希表中。

第三方面,本发明实施例还提供了一种存储架构,该存储架构中包括RAM、PCM以及Flash/eMMC;

RAM用于存储热点哈希表,PCM用于存储哈希指纹表,Flash/eMMC用于存储数据块。其中,所述热点哈希表中各个哈希表项的数据指纹为在至少一 个文件中重复出现次数达到设定门限值的数据指纹,所述哈希指纹表的数据指纹为已存储的各数据块的数据指纹。

通过基于RAM+PCM的指纹缓存结构和基于数据块重复出现次数的指纹缓存方案,可以有效地减轻指纹的内存需求和对应用性能的影响,由于通过维护热点哈希表,将把绝大多数的哈希查找操作定向到RAM中,因而降低了在主存储器中的哈希查找操作,与将全部指纹放在RAM中相比,减轻了内存需求,同时又无需将每次的哈希查找都实施于性能较差的Flash上。

附图说明

图1为本发明实施例提供的移动智能终端的部分结构的框图;

图2为本发明实施例提供的存储子系统存储结构示意图;

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

图4为本发明实施例提供的另一种重复数据删除方法流程图;

图5为本发明实施例提供的申请新物理块流程图;

图6为本发明实施例提供的数据指纹匹配过程示意图;

图7为本发明实施例提供的重复数据删除装置示意图。

具体实施方式

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

本发明实施例提供一种重复数据删除方法及装置,应用于移动智能终端,提高了智能移动终端的系统的可靠性。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。

现有的存储架构中,一般由随机访问存储器(英文:Random Access Memory,简称:RAM)、flash以及HDD构成。指纹库一般存储在RAM中。

本发明针对的移动智能终端可以包括手机、平板电脑、个人数字助理(英文:Personal Digital Assistant,简称:PDA)、销售终端(英文:Point of Sales,简称:POS)、车载电脑等。

图1示出的是与本发明实施例相关的移动智能终端100的部分结构的框图。参考图1,移动智能终端100包括、RF(Radio Frequency,射频)电路110、存储子系统120、输入单元130、显示单元140、传感器150、音频电路160、无线保真(英文:wireless fidelity,简称:WiFi)模块170、处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的移动智能终端结构并不构成对移动智能终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图1对移动智能终端100的各个构成部件进行具体的介绍:

RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理。

存储子系统120可用于存储软件程序以及模块,处理器180通过运行存储在存储子系统120的软件程序以及模块,从而执行移动智能终端100的各种功能应用以及数据处理。存储子系统120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图象播放功能等)等;存储数据区可存储根据移动智能终端100的使用所创建的数据(比如音频数据)等。此外,存储子系统120中后端的存储器一般为flash或者嵌入式多媒体卡(英文:Embedded Multi Media Card,简称:eMMC)。

输入单元130可用于接收输入的数字或字符信息,以及产生与移动智能终端100的用户设置以及功能控制有关的键信号输入。显示单元140可用于显示由用户输入的信息或提供给用户的信息以及移动智能终端100的各种菜单。移 动智能终端100还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。音频电路160、扬声器161,麦克风162可提供用户与移动智能终端100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路110以发送给比如另一移动智能终端,或者将音频数据输出至存储子系统120以便进一步处理。

WiFi属于短距离无线传输技术,移动智能终端100通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。

处理器180是移动智能终端100的控制中心,利用各种接口和线路连接整个移动智能终端的各个部分,通过运行或执行存储在存储子系统120内的软件程序和/或模块,以及调用存储在存储子系统120内的数据,执行移动智能终端100的各种功能和处理数据,从而对移动智能终端进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。

移动智能终端100还包括给各个部件供电的电源190(比如电池)。

尽管未示出,移动智能终端100还可以包括摄像头、蓝牙模块等,在此不再赘述。

本发明针对的移动智能终端后端的存储器一般为flash或者嵌入式多媒体卡。本发明实施例中提供了一种移动智能终端的存储子系统,该存储子系统中包括非易失性存储器以及flash/eMMC等等。可选地,该存储子系统中包括RAM、相变存储器(Phase Change Memory,简称:PCM)以及flash/eMMC,如图2所示。相变存储器能够存储阵列能够保存大量数据,PCM具有良好的 非易失性。PCM具有随机存储速度快的特点。这使得存储器中的代码可以直接执行。PCM读取反应时间与最小单元一比特的NOR闪存相当,而它的带宽可以媲美DRAM。PCM的反应时间短,且无需单独的擦除步骤。

其中,图2中LBA1表示为数据指纹HASH1分配的逻辑地址,HASH1重复出现次数为7;LBA2为表示为数据指纹HASH2分配的逻辑地址,HASH2重复出现次数为9;LBAm表示为数据指纹HASHm分配的逻辑地址,HASHm的重复出现次数为28;LBAn表示为数据指纹HASHn分配的逻辑地址,HASHn的重复出现次数为57;page表示内存中的每一项存储的数据。PCM中存储的每个数据指纹对应的哈希指纹表项包括逻辑地址,数据指纹。还可以包括数据指纹对应的重复出现次数。另外本发明实施例中数据指纹对应的重复出现次数还可以单独的表项保存。本发明实施例中以存储在哈希指纹表项中为例进行说明。

本发明实施例中将已存储的数据块的数据指纹形成的哈希指纹表均存储在PCM中,并将数据块重复出现次数达到门限值的数据指纹形成热点哈希表并存储在RAM中,热点哈希表中的数据指纹数据量较少,因此减少指纹的查找开销;由于有效地管理了移动智能终端上的冗余数据,从而减少了其基于Flash的存储系统的数据写入,从根本上提升了移动智能终端的性能和可靠性。

基于此,本发明实施例提供了一种重复数据删除方法,如图3所示,该方法通过处理器180执行,但本发明实施例不仅限于通过处理器180实现,其他能够实现如下功能的设备均适用于本发明。

重复数据删除方法包括:

步骤301,将待处理文件进行划分数据块处理。

本步骤301中,待处理文件指的是一次存储动作下包括的所有文件,可以是单文件、多文件、单个卷及多虚拟数据等。此外,可根据待处理文件的内容或者备份场景选择划分方法,常用的划分方法如定长划分、滑块划分等。一般的,定长划分是最简捷的方法,性能比较高,适合用于将稳定的文件划分成数 据块。分块的大小可根据用户配置进行设置。默认大小值可以为4KB。

步骤302,计算所述待处理文件中各数据块的数据指纹。

本步骤302中,对数据块进行计算获取数据指纹的方法有很多,一般的,MD5和SHA1算法计算所得的数据指纹的碰撞几率比较小,因此,本实施例中可以采用MD5算法或SHA1算法计算待处理文件中各数据块的数据指纹。

步骤303,根据各数据块的数据指纹、热点哈希表以及哈希指纹表对所述待处理文件的各数据块进行去重操作。

其中,所述热点哈希表中各个哈希表项的数据指纹为在至少一个文件中重复出现次数达到设定门限值的数据指纹,所述哈希指纹表的数据指纹为已存储的各数据块的数据指纹;所述热点哈希表与所述哈希指纹表存储于不同的存储器中。

本步骤303中,所述热点哈希表中的数据指纹为在至少一个文件中重复出现次数达到设定门限值的数据指纹。其中,该至少一个文件可以指当前待处理的文件,也可以指获取到该热点哈希表的其它文件,例如,已经处理过的历史文件,或者是历史文件和当前待处理文件二者的结合。

本发明实施例中热点哈希表区别于一般的哈希表,并非存储唯一数据块的数据指纹,而是仅存储重复次数高的数据指纹,其数据量规模较小,数据指纹与热点哈希表中匹配的数据量较小,并且与存储所有数据块的数据指纹的哈希指纹表分开存储,因此减少了指纹查找开销,可减小对内存的占用。另在,通过热点哈希表以及哈希指纹表能够在存储过程中降低文件数据块的重复率,减少了基于flash的存储介质的写操作,减少擦除次数,延长了flash的使用寿命,并增加了系统的可靠性。

可选地,所述哈希指纹表存储在RAM中,所述热点哈希表存储在PCM中。

通过基于RAM+PCM的指纹缓存结构和基于数据块重复出现次数的指纹缓存方案,可以有效地减轻指纹的内存需求和对应用性能的影响,由于通过维 护热点哈希表,将把绝大多数的哈希查找操作定向到RAM中,因而降低了在主存储器中的哈希查找操作,与将全部指纹放在RAM中相比,减轻了内存需求,同时又无需将每次的哈希查找都实施于性能较差的Flash上。另外移动智能终端存储系统的重复数据删除比例在15%以上,延长闪存的使用寿命30%左右,同时提高存储子系统的性能20%以上。由于移动智能终端中的冗余数据所占比例是很高的,将多份冗余数据只保留一份,减少了基于Flash的存储介质的写操作,最终将减少其擦除,因此延长了使用寿命,增加了系统的可靠性。

具体的,步骤303中所述根据各数据块的数据指纹、热点哈希表以及哈希指纹表对所述待处理文件的各数据块进行去重操作,可以通过如下方式实现,参见图4:

针对每个数据块分别执行:

步骤303a,将当前数据块的数据指纹与热点哈希表中的数据指纹进行匹配,当匹配不一致时,执行步骤303b;当匹配一致时,执行步骤303c。

步骤303b,将所述当前数据块的数据指纹与哈希指纹表中的数据指纹进行匹配,当匹配一致时,执行步骤303c。当匹配不一致时,执行步骤303d。

步骤303c,确定所述当前数据块为重复数据。然后获取内存中包括的与所述当前数据块的数据指纹匹配一致的数据的地址。数据的地址为逻辑地址LBA。

步骤303d,申请新物理块流程。

其中,参见图5,步骤303d中申请新物理块流程,可以包括如下子步骤:

步骤303d1,申请新物理块,并获取所述新物理块地址PBA。

步骤303d2,写入数据块到所述新物理块地址PBA。

步骤303d3,获取所述新物理块逻辑地址LBA。

步骤303d4,初始化所述当前数据块的数据指纹的出现次数。例如设置哈希指纹的出现次数RefCount=0。

步骤303d5,生成哈希表项保存在哈希指纹表中。例如返回的哈希表项为 <LBA,HASH,0>。其中HASH表示所述当前数据块的数据指纹。0表示所述当前数据块的数据指纹的出现次数为0。

可选地,如图6所示,在步骤303a,将所述当前数据块的数据指纹与热点哈希表中的数据指纹进行匹配,当匹配一致时,执行步骤303c获取所述当前数据块的地址之前,还包括:

步骤303a1,更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数。

可选地,所述热点哈希表中各个哈希表项依据哈希表项的数据指纹的重复出现次数在所述热点哈希表中顺序存储;

则在步骤303a1,更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数后,参见图6,还包括:

步骤303a2,调整所述所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹在所述热点哈希表中的存储位置。具体可以将链表项向前移动至适当顺序对应的位置。

可选地,在步骤303b,将所述当前数据块的数据指纹与哈希指纹表中的数据指纹进行匹配,当匹配一致时,执行步骤303c之前,还可以包括,如图6所示:

步骤303b1,更新所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数;

步骤303b2,在所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数达到设定门限值时,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中。

具体的,在将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中之前,还可以包括:

确定存储所述热点哈希表的存储器的存储空间空闲。

可选地,在所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指 纹的重复出现次数达到设定门限值时,确定存储所述热点哈希表的存储器的存储空间已满,查找所述热点哈希表中待淘汰的数据指纹,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹替换所述待淘汰的数据指纹保存在所述热点哈希表中。

其中,所述热点哈希表中待淘汰的哈希指纹,可以是热点哈希表中数据指纹的重复出现次数最小的数据指纹。

还可以在确定存储所述热点哈希表的存储器的存储空间已满时,调高所述设定门限值,并将重复出现次数小于调高后的设定门限值的数据指纹从热点哈希表中删除。

所述热点哈希表中各个哈希表项依据哈希表项的数据指纹的重复出现次数在所述热点哈希表中顺序存储;在更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数后,调整所述所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹在所述热点哈希表中的存储位置。从而能够存储热点哈希指纹表的存储空间满的时候,能够直接的尾项的哈希指纹即可,不需要再去对哈希指纹的重复出现次数进行排序,查找重复出现次数最小的数据指纹,节省了操作步骤,从而节省了操作时间。

基于与方法实施例同样的发明构思,本发明实施例提供了一种重复数据删除装置,如图7所示,包括:

存储单元701,用于存储热点哈希表和哈希指纹表;

处理单元702,用于将待处理文件进行划分数据块处理,并计算划分得到的各数据块的数据指纹;针对每个数据块分别执行:将当前数据块的数据指纹与热点哈希表中的数据指纹进行匹配,若匹配一致,则确定所述当前数据块为重复数据;若匹配不一致,将所述当前数据块的数据指纹与哈希指纹表中的数据指纹进行匹配且匹配一致时,确定所述当前数据块为重复数据。

其中,所述热点哈希表中各个哈希表项的数据指纹为在至少一个文件中重复出现次数达到设定门限值的数据指纹,所述哈希指纹表的数据指纹为已存储 的各数据块的数据指纹。

其中,存储单元701具体可以通过图1所示的存储子系统120实现,处理单元702具体可以通过图1所示的处理器180实现。

可选地,所述存储单元701包括:第一存储子单元701a和第二存储子单元701b;

所述哈希指纹表存储在所述第一存储子单元701a中,所述热点哈希表存储在所述第二存储子单元701b中。

其中,所述第一存储子单元701a可以为随机访问存储器RAM,所述第二存储子单元701b可以为相变存储器PCM。

可选地,所述处理单元702,还用于将所述当前数据块的数据指纹与热点哈希表中的数据指纹进行匹配且匹配一致时,更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数。

可选地,所述热点哈希表中各个哈希表项依据哈希表项的数据指纹的重复出现次数在所述热点哈希表中顺序存储;所述处理单元702,还用于在更新所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数后,调整所述所述热点哈希表中与所述当前数据块的数据指纹匹配的数据指纹在所述热点哈希表中的存储位置。

可选地,所述处理单元702,还用于将所述当前数据块的数据指纹与哈希指纹表中的数据指纹进行匹配且匹配一致时,更新所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数;

在所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹的重复出现次数达到设定门限值时,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中。

可选地,所述处理单元702,在将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表中之前,还用于确定存储所述热点哈希表的存储器的存储空间空闲。

可选地,所述处理单元702,在将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹保存在所述热点哈希表时,具体用于:

确定存储所述热点哈希表的存储器的存储空间已满,查找所述热点哈希表中待淘汰的哈希指纹,将所述哈希指纹表中与所述当前数据块的数据指纹匹配的数据指纹,替换所述待淘汰的哈希指纹保存在所述热点哈希表中。

本发明实施例还提供了一种存储架构,该存储架构中包括RAM、PCM以及Flash/eMMC;

RAM用于存储热点哈希表,PCM用于存储哈希指纹表,Flash/eMMC用于存储数据块。其中,所述热点哈希表中各个哈希表项的数据指纹为在至少一个文件中重复出现次数达到设定门限值的数据指纹,所述哈希指纹表的数据指纹为已存储的各数据块的数据指纹。

通过基于RAM+PCM的指纹缓存结构和基于数据块重复出现次数的指纹缓存方案,可以有效地减轻指纹的内存需求和对应用性能的影响,由于通过维护热点哈希表,将把绝大多数的哈希查找操作定向到RAM中,因而降低了在主存储器中的哈希查找操作,与将全部指纹放在RAM中相比,减轻了内存需求,同时又无需将每次的哈希查找都实施于性能较差的Flash上。

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

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

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

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

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

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

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