掌桥专利:专业的专利平台
掌桥专利
首页

数据去重方法及系统

文献发布时间:2024-05-31 01:29:11


数据去重方法及系统

技术领域

本发明涉及数据处理技术领域,尤其涉及一种数据去重方法及系统。

背景技术

超融合技术能够将物理硬件资源进行抽象化处理,形成一个统一的资源池,以提供更加高效、灵活、可靠的计算、存储和网络服务。在超融合存储中,每个超融合服务器节点都具备存储功能,多个节点可以组成一个存储集群,当数据写入时,系统会自动将数据复制到其他节点上,实现数据的多个副本。

在超融合存储设备中,相同的数据块在存储设备中占据了多次存储空间,导致存储空间的浪费,而且会降低存储设备的性能。目前针对存储数据重复问题,主要采用超融合存储去重技术进行数据去重。然而,在进行数据去重操作时,都会增加系统计算开销和存储访问时间,对服务器系统造成较大的资源消耗。

因此,现在亟需一种数据去重方法及系统来解决上述问题。

发明内容

针对现有技术存在的问题,本发明提供一种数据去重方法及系统。

本发明提供一种数据去重方法,包括:

将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器;

基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值;

基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器;

基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理。

根据本发明提供的一种数据去重方法,所述基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值,包括:

基于所述去重副本服务器,通过第一预设数据切片条件,对所述目标数据进行切片处理,得到多个第一切片数据;

基于所述去重副本服务器,通过第一预设数据标记方式,对各个所述第一切片数据进行数据标记,得到多个第一标记数据;

基于所述去重副本服务器,对所述第一标记数据进行哈希计算,得到所述目标数据对应的所述目标哈希指纹值。

根据本发明提供的一种数据去重方法,所述基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器,包括:

获取各个所述第一标记数据对应的数据标记值;

在确定所述目标哈希指纹值已存储在所述预设哈希指纹库时,将所述目标数据标记为待删除状态,并生成对应的所述待删除状态信息;

判断所述去重副本服务器的资源状态在当前时刻是否满足预设数据删除条件,若满足,将所述目标数据删除;

根据所述数据标记值、所述目标哈希指纹值和所述待删除状态信息,生成对应的去重操作日志信息;

将所述去重操作日志信息发送至所述主副本服务器;

在确定所述目标哈希指纹值未存储在所述预设哈希指纹库时,将所述目标哈希指纹值存储至所述预设哈希指纹库,获取哈希指纹值存储结果;

根据所述哈希指纹值存储结果,生成对应的哈希值存储日志信息;

将所述哈希值存储日志信息发送至所述主副本服务器;

基于所述主副本服务器,根据所述哈希值存储日志信息,对所述目标数据进行数据写入操作。

根据本发明提供的一种数据去重方法,在所述将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器之后,所述方法还包括:

基于所述主副本服务器,通过所述第一预设数据切片条件,对所述目标数据进行切片处理,得到多个第二切片数据;

基于所述主副本服务器,通过所述第一预设数据标记方式,对各个所述第二切片数据进行数据标记,得到多个第二标记数据;

所述基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理,包括:

在确定所述目标哈希指纹值已存储在所述预设哈希指纹库时,基于所述主副本服务器,根据所述待删除状态信息和所述数据标记值,将对应的所述第二标记数据进行去重处理。

根据本发明提供的一种数据去重方法,所述基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理,还包括:

基于所述主副本服务器,在获取到所述待删除状态信息之后,判断所述目标数据是否已被删除或所述目标数据是否已被执行更新操作,若已被删除或已被执行更新操作,则取消对所述目标数据进行去重处理。

根据本发明提供的一种数据去重方法,在所述将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器之前,所述方法还包括:

获取各个服务器的资源状态,将所述资源状态满足预设资源状态调节的服务器确定为所述去重副本服务器。

根据本发明提供的一种数据去重方法,所述去重操作日志信息还包括数据删除时间戳信息,其中,所述数据删除时间戳信息是基于所述去重副本服务器,对所述目标数据进行删除时的数据删除时间戳信息;

所述方法还包括:

在所述主副本服务器接收到所述去重操作日志信息,并对所述目标数据进行去重处理之后,若存在数据误删或进行数据恢复,则根据所述数据删除时间戳信息进行数据恢复操作。

本发明还提供一种数据去重系统,包括:

数据获取模块,用于将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器;

数据哈希模块,用于基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值;

第一数据去重模块,用于基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器;

第二数据去重模块,基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据去重方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据去重方法。

本发明提供的数据去重方法及系统,通过将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器,进而基于去重副本服务器,对目标数据进行哈希计算以及相应的哈希对比处理,并在确定目标数据为重复数据后,生成目标数据对应的待删除状态信息,从而将待删除状态信息发送至主副本服务器,使得主副本服务器直接根据待删除状态信息目标数据进行去重处理,减少了系统计算和存储访问时间开销,提高了服务器资源利用率。

附图说明

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

图1为本发明提供的数据去重方法的流程示意图;

图2为本发明提供的超融合存储多副本数据去重机制的示意图;

图3为本发明提供的去重操作状态的示意图;

图4为本发明提供的数据去重系统的结构示意图;

图5为本发明提供的数据去重系统的整体结构示意图;

图6为本发明提供的电子设备的结构示意图。

具体实施方式

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

超融合技术是指将服务器、存储设备和网络设备等物理硬件资源通过软件定义的方式进行融合,形成一个统一的资源池,从而提供更加高效、灵活、可靠的计算、存储和网络服务的技术。在超融合存储中,每个超融合服务器节点都具备存储功能,多个节点可以组成一个存储集群。当数据写入时,系统会自动将数据复制到其它节点上,实现数据的多个副本,这种方式可以保证即使部分节点发生故障,其它节点上的数据副本也可以保证数据的完整性和可靠性。

超融合的多副本机制保证了数据的可靠性和冗余性,但随之而来的是存储空间的容量牺牲,相同的数据块在存储设备中占据了多个存储空间,导致存储空间的浪费,而且会降低存储设备的性能,需要针对存储数据重复问题对超融合存储场景进行数据去重。

数据去重是指通过检测和删除重复的数据块或数据副本,来优化存储设备的空间利用率和管理效率,这种技术可以减少存储设备中的冗余数据,从而释放更多的存储空间供其它数据使用,在相关技术中,可基于哈希算法、数据块比较以及全文件比较等存储去重技术实现超融合存储去重,以提高存储空间的利用率和读写性能。

在相关技术中,超融合去重操作分为异步重复数据删除和同步重复数据删除,异步重复数据删除允许系统在后台异步地进行重复数据的检测和删除操作,而不会直接影响前台的数据写入和读取操作;同步重复数据删除是一种实时处理的技术,它在数据写入存储系统之前,先进行重复数据的检测和删除操作,只有当重复数据删除完成后,数据才会被写入到存储系统中。然而,相关技术中的去重操作,不管是异步重复数据删除和同步重复数据删除,在进行数据去重操作时,都会增加系统计算开销和存储访问时间(例如,哈希值计算,将消耗系统一定的计算能力),尤其是在业务繁忙的节点中,去重操作需要寻找合适的时间窗口才能进行,造成去重操作具有较大延后性。

图1为本发明提供的数据去重方法的流程示意图,如图1所示,本发明提供了一种数据去重方法,包括:

步骤101,将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器。

在本发明中,在进行数据写入操作时,将待写入的目标数据同时发送至主副本服务器和去重副本服务器。主副本服务器在接收到数据后,会记录数据的相关信息,进行数据写入前的相关处理,例如,数据切分和数据标记等。

去重副本服务器在接收到数据后,将对该数据进行去重操作。去重副本服务器将该数据与已有的数据进行比对,查找是否存在相同的数据块或者完全相同的数据,如果存在则标记为重复数据。进一步就,去重副本服务器会将去重结果返回给主副本服务器,主副本服务器将会根据去重结果,决定是否继续保存数据或者删除重复的数据块,保留唯一的数据。

步骤102,基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值。

在本发明中,通过去重副本服务器对目标数据进行哈希计算,以生成目标数据的哈希指纹值。哈希指纹值是一个固定长度的唯一标识符,可以用于快速比较数据的相似性或者是否完全相同。在本发明中,可根据实际需求,选择适合的哈希算法,例如,MD5、SHA-1、SHA-256等,这些哈希算法根据输入的数据生成固定长度的哈希值,即得到目标哈希指纹值,这个目标哈希指纹值可以用于后续的数据去重操作,比较目标数据的相似性或者判断是否完全相同。由于哈希指纹值的长度固定,可以节省存储空间,并提高数据去重的效率。相比相关技术中,各个服务器需要对接收到的数据进行去重操作,本发明将数据去重过程分配至一个特定的副本服务器(即去重副本服务器),仅通过这个去重副本服务器专门用于进行相应的哈希计算和去重操作,其它主副本服务器仅需根据去重副本服务器发送的相关去重结果,确定是否对数据进行存储还是删除。在一实施例中,可根据计算资源情况,设置一个或多个去重副本服务器,在减少计算资源的消耗的前提下,也在一定程度上提高数据去重效率。

步骤103,基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器。

在本发明中,去重副本服务器根据接收到的目标数据的哈希指纹值,查询预设哈希指纹库,检查目标哈希指纹值是否已经存在于预设哈希指纹库中。如果目标哈希指纹值已经存在于预设哈希指纹库中,说明目标数据为重复数据,需要进行去重处理,同时生成待删除状态信息。在本发明中,去重副本服务器根据目标哈希指纹值生成待删除状态信息,同时也包括相关的目标数据信息,如文件名、路径等。

进一步地,去重副本服务器将生成的待删除状态信息发送至主副本服务器。主副本服务器在接收到待删除状态信息后,可以根据这些信息进行进一步的处理,如更新目标数据的状态为删除状态,并进行相应的数据操作,实现对重复数据的快速识别和删除,提高数据存储效率和管理的准确性。

步骤104,基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理。

在本发明中,主副本服务器接收到来自去重副本服务器的待删除状态信息后,通过解析确定目标数据被标记为删除状态,则将目标数据进行去重处理,从而删除目标数据。如果目标数据未被标记为删除状态,则继续对目标数据进行数据写入操作。

图2为本发明提供的超融合存储多副本数据去重机制的示意图,可参考图2所示,本发明提供的数据去重方法,目的是在进行数据存储去重时,尽量减少服务器的计算和存储访问开销,在本发明中,首先从多个服务器中确定其中一个副本服务器作为去重副本服务器(如图2中的副本A)进行去重操作,其余副本服务器作为主副本服务器正常读写。去重副本服务器执行去重操作时,记录去重操作日志,然后将去重日志发送给其它副本服务器,其余副本服务器接收并复用去重日志,完成相应的去重操作。

本发明提供的数据去重方法,通过将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器,进而基于去重副本服务器,对目标数据进行哈希计算以及相应的哈希对比处理,并在确定目标数据为重复数据后,生成目标数据对应的待删除状态信息,从而将待删除状态信息发送至主副本服务器,使得主副本服务器直接根据待删除状态信息目标数据进行去重处理,减少了系统计算和存储访问时间开销,提高了服务器资源利用率。

在上述实施例的基础上,所述基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值,包括:

基于所述去重副本服务器,通过第一预设数据切片条件,对所述目标数据进行切片处理,得到多个第一切片数据;

基于所述去重副本服务器,通过第一预设数据标记方式,对各个所述第一切片数据进行数据标记,得到多个第一标记数据;

基于所述去重副本服务器,对所述第一标记数据进行哈希计算,得到所述目标数据对应的所述目标哈希指纹值。

在本发明中,去重副本服务器首先将内存中的数据按一定长度进行切片,切分条件可以根据数据的特性和业务需求等因素进行确定,从而将目标数据划分为多个较小的数据块,得到多个第一切片数据。

进一步地,去重副本服务器将切片得到的数据进行标记,使得服务器中的每个数据切片的标记值都是唯一的,在后续去重过程中,通过去重副本服务器中的数据切片相关标记信息,可以快速确定主副本服务器中相同标记的数据切片,以完成去重处理。

在本发明中,对去重副本服务器的数据切片(已完成数据标记)进行哈希计算,得到唯一哈希值(即目标哈希指纹值),若该哈希值在指纹库(即预设哈希指纹库)不存在,则将该哈希值存入指纹库,完成后通过主副本服务器将数据写入存储系统。在本发明中,主副本所在服务器不进行哈希计算操作,从而减少了计算资源的消耗。

在上述实施例的基础上,所述基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器,包括:

获取各个所述第一标记数据对应的数据标记值;

在确定所述目标哈希指纹值已存储在所述预设哈希指纹库时,将所述目标数据标记为待删除状态,并生成对应的所述待删除状态信息;

判断所述去重副本服务器的资源状态在当前时刻是否满足预设数据删除条件,若满足,将所述目标数据删除;

根据所述数据标记值、所述目标哈希指纹值和所述待删除状态信息,生成对应的去重操作日志信息;

将所述去重操作日志信息发送至所述主副本服务器;

在确定所述目标哈希指纹值未存储在所述预设哈希指纹库时,将所述目标哈希指纹值存储至所述预设哈希指纹库,获取哈希指纹值存储结果;

根据所述哈希指纹值存储结果,生成对应的哈希值存储日志信息;

将所述哈希值存储日志信息发送至所述主副本服务器;

基于所述主副本服务器,根据所述哈希值存储日志信息,对所述目标数据进行数据写入操作。

在本发明中,在进行去重处理之前,去重副本服务器会获取各个第一标记数据对应的数据标记值。这些标记值用来表示数据分块的唯一性。在确定目标哈希指纹值已存储在预设哈希指纹库时,去重副本服务器将目标数据标记为待删除状态,并生成相应的待删除状态信息,表示该目标数据需要进行去重处理,需要说明的是,在本发明中,对于各个第一切片数据对应的哈希指纹值,若根据预设哈希指纹库判断获知有部分的第一切片数据对应的哈希指纹值已存在,此时,只需将已存在的这部分第一切片数据标记为待删除状态。同时,在确定去重副本服务器当前处于空闲状态时(或当前资源状态满足预设数据删除条件,即确定去重副本服务器当前可进行去重处理),在去重副本服务器中将目标数据进行删除。

进一步地,去重副本服务器根据数据标记值、目标哈希指纹值和待删除状态信息,生成对应的去重操作日志信息,该日志信息用于记录删除操作的详细过程,包括删除的时间、目标数据的标识、删除状态等,进而将去重操作日志信息发送至主副本服务器,使得主副本服务器对去重操作日志信息进行解析后,无需进行哈希计算即可执行相应的去重处理。

在本发明中,如果目标哈希指纹值未存储在预设哈希指纹库中,去重副本服务器将该哈希指纹值存储至预设哈希指纹库,并获取哈希指纹值存储结果。同时,根据哈希指纹值存储结果,去重副本服务器会生成对应的哈希值存储日志信息,该日志记录了存储操作的详细过程,包括存储的时间、目标哈希指纹值和存储状态等。

进一步地,主副本服务器基于来自去重副本服务器的哈希值存储日志信息,在确定目标数据为新数据时,对目标数据进行数据写入操作,保证数据的完整性和一致性。

在上述实施例的基础上,在所述将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器之后,所述方法还包括:

基于所述主副本服务器,通过所述第一预设数据切片条件,对所述目标数据进行切片处理,得到多个第二切片数据;

基于所述主副本服务器,通过所述第一预设数据标记方式,对各个所述第二切片数据进行数据标记,得到多个第二标记数据;

所述基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理,包括:

在确定所述目标哈希指纹值已存储在所述预设哈希指纹库时,基于所述主副本服务器,根据所述待删除状态信息和所述数据标记值,将对应的所述第二标记数据进行去重处理。

在本发明中,将目标数据按一定长度进行切片处理,由于主副本服务器和去重副本服务器接收到的目标数据是相同的,则两个服务器都进行相同的切片操作,生成的切片数据也都是保持一致的。相应地,主副本服务器和去重副本服务器在对切片数据进行数据标记时,两个服务器之间相同数据切片的标记值相同且唯一。

在本发明中,主副本服务器和去重副本服务器中在对各自的切片数据进行数据标记时,相同切片数据的标志信息也都保持一致。

进一步地,基于去重副本服务器,将自身计算得到数据哈希值与指纹库中已有的哈希值进行比对,如果不同,则将该切片数据哈希值记录到指纹库中;如果相同,则将该切片数据标记为待删除状态,不再参与后续业务,直到去重副本服务器处于空闲时,再将该切片数据进行删除。同时,去重副本服务器的将待删除的重复切片数据的标记值、哈希值和数据删除时间戳记录下来,形成日志信息发送给主副本服务器。主副本服务器接收到日志后,对日志进行解析,并根据日志解析结果进行去重操作,按照日志解析结果中的被标记删除的切片数据,找到相对应的分片数据并删除。图3为本发明提供的去重操作状态的示意图,可参考图3所示,在本发明中,在初始状态(即未进行去重操作前),存在重复数据(如3A和5A),为去重副本服务器中的待删除重复数据,这些重复数据只保留一个,只有保留的数据参与业务,待删除的数据不参与业务,在读取该数据时,会读取到一个指针,该指针指向唯一副本数据。

在上述实施例的基础上,所述基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理,还包括:

基于所述主副本服务器,在获取到所述待删除状态信息之后,判断所述目标数据是否已被删除或所述目标数据是否已被执行更新操作,若已被删除或已被执行更新操作,则取消对所述目标数据进行去重处理。

在本发明中,对于主副本服务器中的待删除数据,当去重副本服务器完成去重操作后,主副本服务器尚未同步去重,在未同步这个期间内,主副本服务器对应的待删除数据若发生了变化,例如,已被其它操作删除,导致去重处理时获取不到该数据,由于该数据本来就会被去重操作删除,提前被删除不会影响去重副本数据和去重操作,此时自动跳过该数据的去重操作;如果是该数据被执行了更新操作,该数据被读取到内存修改后,会被重新进行标记,即该数据成为新数据,在本次去重时也会忽略该数据,不会按照去重日志进行去重操作。

在上述实施例的基础上,在所述将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器之前,所述方法还包括:

获取各个服务器的资源状态,将所述资源状态满足预设资源状态调节的服务器确定为所述去重副本服务器。

在本发明中,在进行去重操作之前,需要判断服务器的数据读写功能是否满足后续哈希计算条件,因此,在确定去重副本服务器时,选择服务器集群中相对不繁忙的服务器(即资源状态满足预设资源资源状态,如CPU占用率,或处于空闲状态的服务器)作为去重副本服务器,以牺牲了该服务器部分资源来保证主副本服务器的业务运行。

同时,在确定去重副本服务器的时候,首先检查该服务器存储副本虚拟机的数量分布,在保证主副本服务器资源充足且正常运行的情况下,将虚拟机迁移至主副本服务器,这样尽可能避免了去重操作对去重副本服务器自身业务的影响。

在上述实施例的基础上,所述去重操作日志信息还包括数据删除时间戳信息,其中,所述数据删除时间戳信息是基于所述去重副本服务器,对所述目标数据进行删除时的数据删除时间戳信息;

所述方法还包括:

在所述主副本服务器接收到所述去重操作日志信息,并对所述目标数据进行去重处理之后,若存在数据误删或进行数据恢复,则根据所述数据删除时间戳信息进行数据恢复操作。

在本发明中,如果主副本服务器在去重处理过程中,发现数据误删或需要进行数据恢复操作,主副本服务器可以根据数据删除时间戳信息进行相应的恢复操作,确保数据的完整性和准确性。

下面对本发明提供的数据去重系统进行描述,下文描述的数据去重系统与上文描述的数据去重方法可相互对应参照。

图4为本发明提供的数据去重系统的结构示意图,如图4所示,本发明提供了一种数据去重系统,包括数据获取模块401、数据哈希模块402、第一数据去重模块403和第二数据去重模块404,其中,数据获取模块401用于将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器;数据哈希模块402用于基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值;第一数据去重模块403用于基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器;第二数据去重模块404基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理。

在本发明中,在进行数据写入操作时,数据获取模块401将待写入的目标数据同时发送至主副本服务器和去重副本服务器。主副本服务器在接收到数据后,会记录数据的相关信息,并通过数据处理模块(如数据切分模块和数据标记模块)进行数据写入前的相关处理,例如,数据切分和数据标记等。

去重副本服务器在接收到数据后,将对该数据进行去重操作。去重副本服务器将该数据与已有的数据进行比对,查找是否存在相同的数据块或者完全相同的数据,如果存在则标记为重复数据。进一步就,去重副本服务器会将去重结果返回给主副本服务器,主副本服务器将会根据去重结果,决定是否继续保存数据或者删除重复的数据块,保留唯一的数据。

具体地,在本发明中,通过去重副本服务器中的通过数据哈希模块402对目标数据进行哈希计算,以生成目标数据的哈希指纹值。哈希指纹值是一个固定长度的唯一标识符,可以用于快速比较数据的相似性或者是否完全相同。在本发明中,可根据实际需求,选择适合的哈希算法,例如,MD5、SHA-1、SHA-256等,这些哈希算法根据输入的数据生成固定长度的哈希值,即得到目标哈希指纹值,这个目标哈希指纹值可以用于后续的数据去重操作,比较目标数据的相似性或者判断是否完全相同。由于哈希指纹值的长度固定,可以节省存储空间,并提高数据去重的效率。相比相关技术中,各个服务器需要对接收到的数据进行去重操作,本发明将数据去重过程分配至一个特定的副本服务器(即去重副本服务器),仅通过这个去重副本服务器专门用于进行相应的哈希计算和去重操作,其它主副本服务器仅需根据去重副本服务器发送的相关去重结果,确定是否对数据进行存储还是删除。在一实施例中,可根据计算资源情况,设置一个或多个去重副本服务器,在减少计算资源的消耗的前提下,也在一定程度上提高数据去重效率。

进一步地,在本发明中,去重副本服务器中的第一数据去重模块403根据接收到的目标数据的哈希指纹值,查询预设哈希指纹库,检查目标哈希指纹值是否已经存在于预设哈希指纹库中。如果目标哈希指纹值已经存在于预设哈希指纹库中,说明目标数据为重复数据,需要进行去重处理,同时生成待删除状态信息。在本发明中,去重副本服务器中的第一数据去重模块403根据目标哈希指纹值生成待删除状态信息,同时也包括相关的目标数据信息,如文件名、路径等。

进一步地,去重副本服务器将生成的待删除状态信息发送至主副本服务器。主副本服务器在接收到待删除状态信息后,可以根据这些信息进行进一步的处理,如更新目标数据的状态为删除状态,进行相应的数据操作,实现对重复数据的快速识别和删除,提高数据存储效率和管理的准确性。

在本发明中,主副本服务器接收到来自去重副本服务器的待删除状态信息后,通过第二数据去重模块404解析确定目标数据被标记为删除状态,则将目标数据进行去重处理,从而删除目标数据。如果目标数据未被标记为删除状态,则继续对目标数据进行数据写入操作。

图5为本发明提供的数据去重系统的整体结构示意图,可参考图图5所示,去重副本服务器和主副本服务器各自的数据切分模块和数据标记模块,将自身接收到的同一目标数据执行相同的数据切片和数据标记处理。进一步地,去重副本服务器中的数据哈希模块将对标记后的数据切片进行哈希计算,并通过将计算得到的哈希值与哈希指纹库进行对比,进而将哈希指纹库已存储的哈希值对应的数据切片标记为待删除状态,此时,主副本服务器无需进行哈希计算,等待接收去重副本服务器发送的日志信息。进一步地,去重副本服务器通过自身的第一数据去重模块,将上述步骤确定的待删除状态的数据切片进行删除,并通过去重日志模块生成对应的去重操作日志。接着,去重副本服务器中的去重日志模块将生成的去重操作日志发送至主副本服务器的去重日志模块,主副本服务器的去重日志模块主要用于对去重操作日志进行解析,以确定主副本服务器是否对目标数据(即已进行数据标记的数据切片)进行去重操作,在确定目标数据为重复数据后,即可通过第二数据去重模块进行去重操作。

本发明提供的数据去重系统,通过将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器,进而基于去重副本服务器,对目标数据进行哈希计算以及相应的哈希对比处理,并在确定目标数据为重复数据后,生成目标数据对应的待删除状态信息,从而将待删除状态信息发送至主副本服务器,使得主副本服务器直接根据待删除状态信息目标数据进行去重处理,减少了系统计算和存储访问时间开销,提高了服务器资源利用率。

本发明提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。

图6为本发明提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(Processor)601、通信接口(Communications Interface)602、存储器(Memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。处理器601可以调用存储器603中的逻辑指令,以执行数据去重方法,该方法包括:将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器;基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值;基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器;基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理。

此外,上述的存储器603中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据去重方法,该方法包括:将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器;基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值;基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器;基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据去重方法,该方法包括:将待进行数据写入操作的目标数据分别发送至主副本服务器和去重副本服务器;基于所述去重副本服务器,对所述目标数据进行哈希计算,得到所述目标数据对应的目标哈希指纹值;基于所述去重副本服务器,判断所述目标哈希指纹值是否已存储在预设哈希指纹库中,若已存储,生成所述目标数据对应的待删除状态信息,并将所述待删除状态信息发送至所述主副本服务器;基于所述主副本服务器,根据所述待删除状态信息,对所述目标数据进行去重处理。

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

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 支持数据去重的高效数据重加密方法及系统、云存储系统
  • 用于云端密文存储的具有所有权管理的数据去重系统及其数据去重方法
  • 在不可信存储系统中进行数据去重和压缩的方法和系统
技术分类

06120116626912