数据去重方法、装置、计算机设备及存储介质与流程

文档序号:18704128发布日期:2019-09-17 23:23阅读:179来源:国知局
数据去重方法、装置、计算机设备及存储介质与流程

本发明涉及大数据领域,尤其涉及一种数据去重方法、装置、计算机设备及存储介质。



背景技术:

数据去重又称重复数据删除(datadeduplication),是一种应用在存储系统中的全局识别和消除冗余数据的技术,近些年来成为存储系统研究的热点。然而,随着存储系统存储的数据量的逐渐上升,传统的数据去重方法的处理效率在逐渐下降,无法满足高效率的数据去重要求。



技术实现要素:

有鉴于此,本发明实施例提供了一种数据去重方法、装置、计算机设备及存储介质,用以解决目前数据去重效率较低的问题。

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

获取待比对数据;

基于所述待比对数据,采用消息摘要算法计算生成相对应的待比对指纹;

获取用户输入的查询指令,基于所述待比对指纹,根据所述查询指令查询是否存在与所述待比对指纹相同的现存指纹,得到查询结果,其中,所述查询指令包括标志位,所述现存指纹和所述待比对指纹采用相同的生成方式得到;

执行所述标志位所代表的操作,并基于所述查询结果变更所述现存指纹所对应的引用计数,完成数据去重。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述执行所述标志位所代表的操作,并基于所述查询结果变更所述现存指纹所对应的引用计数,完成数据去重,包括:

若所述标志位所代表的操作为读,则在根据所述查询指令和所述待比对指纹查询是否存在与所述待比对指纹相同的现存指纹之后,继续执行读操作,当所述查询结果为存在与所述待比对指纹相同的现存指纹时,读取与所述待比对指纹相同的现存指纹所对应的现存数据;

若所述标志位所代表的操作为写,则在根据所述查询指令和所述待比对指纹查询是否存在与所述待比对指纹相同的现存指纹之后,继续执行写操作,当所述查询结果为存在与所述待比对指纹相同的现存指纹时,将所述现存指纹所对应的引用计数作预加一;

若所述标志位所代表的操作为删除,则在根据所述查询指令和所述待比对指纹查询是否存在与所述待比对指纹相同的现存指纹之后,继续执行删除操作,当所述查询结果为存在与所述待比对指纹相同的现存指纹时,将所述现存指纹所对应的引用计数作预减一。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基于所述待比对指纹,根据所述查询指令查询是否存在与所述待比对指纹相同的现存指纹,得到查询结果,包括:

将所述待比对指纹和所述现存指纹从左至右进行字符串的比较;

当表示所述待比对指纹的字符串和表示所述现存指纹的字符串完全相同时,得到查询结果为存在与所述待比对指纹相同的现存指纹,其中,所述字符串完全相同是指表示所述待比对指纹的字符串的长度和表示所述现存指纹的字符串的长度相等,且从左至右的每一个字符均相同;

当表示所述待比对指纹的字符串和表示所述现存指纹的字符串不完全相同时,得到查询结果为不存在与所述待比对指纹相同的现存指纹。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述在获取用户输入的查询指令之前,还包括:

采用预设算法将每个所述现存指纹拆分成多个二次索引现存指纹,得到二次索引指纹库;

将所述二次索引指纹库中相同的二次索引现存指纹除去,得到每个所述现存指纹对应的目标二次索引现存指纹。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基于所述待比对指纹,根据所述查询指令查询是否存在与所述待比对指纹相同的现存指纹,得到查询结果,包括:

采用所述预设算法将所述待比对指纹拆分成多个二次索引待比对指纹;

根据所述查询指令,将所述二次索引待比对指纹与所述目标二次索引现存指纹进行匹配;

当匹配到任意一个所述二次索引待比对指纹与所述目标二次索引现存指纹完全相同时,得到查询结果为存在与所述待比对指纹相同的现存指纹。

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

待比对数据获取模块,用于获取待比对数据;

待比对指纹生成模块,用于基于所述待比对数据,采用消息摘要算法计算生成相对应的待比对指纹;

查询结果获取模块,用于获取用户输入的查询指令,基于所述待比对指纹,根据所述查询指令查询是否存在与所述待比对指纹相同的现存指纹,得到查询结果,其中,所述查询指令包括标志位,所述现存指纹和所述待比对指纹采用相同的生成方式得到;

引用计数变更模块,用于执行所述标志位所代表的操作,并基于所述查询结果变更所述现存指纹所对应的引用计数,完成数据去重。

第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据去重方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,包括:计算机程序,所述计算机程序被处理器执行时实现上述数据去重方法的步骤。

在本发明实施例中,首先获取待比对数据,基于待比对数据,采用消息摘要算法计算生成相对应的待比对指纹,采用消息摘要算法生成待比对指纹可以将待比对数据进行压缩,使得相同的待比对数据压缩后的待比对指纹相同,不同的待比对数据压缩后的待比对指纹不相同,在保证压缩后待比对指纹相同的前提下,有效提高了数据去重的效率;然后获取用户输入的查询指令,基于待比对指纹,根据查询指令查询是否存在与待比对指纹相同的现存指纹,并得到查询结果,通过采用待比对指纹和现存指纹的方式进行查询,能够明显提高查询效率,并且确保查询结果的准确性;最后执行标志位所代表的操作,并基于查询结果变更现存指纹所对应的引用计数,能够在查询是否存在与待比对指纹相同的现存指纹之后继续执行标志位所代表的操作,将原本需两次通讯过程完成的数据去重,采用一次通讯过程便完成,能够有效提高通讯效率,实现高效率的数据去重。

【附图说明】

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

图1是本发明一实施例中数据去重方法的一流程图;

图2是本发明一实施例中数据去重装置的一示意图;

图3是本发明一实施例中计算机设备的一示意图。

【具体实施方式】

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的相同的字段,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

图1示出本实施例中数据去重方法的一流程图。该数据去重方法可应用在数据去重平台上,在对存储系统进行数据去重时可采用该数据去重方法实现。该数据去重平台具体可应用在计算机设备上,其中,该计算机设备是可与用户进行人机交互的设备,包括但不限于电脑、智能手机和平板等设备。如图1所示,该数据去重方法包括如下步骤:

s10:获取待比对数据。

数据去重又称重复数据删除(datadeduplication),是一种应用在存储系统中的全局识别和消除冗余数据的技术,通常用于基于磁盘的备份系统,旨在减少存储系统中使用的存储容量。它的工作方式是在某个时间周期内查找不同文件中不同位置的重复可变大小数据块(数据块是一组或几组按顺序连续排列在一起的记录,是主存储器与输入设备、输出设备或外存储器之间进行传输的数据单位)。具体地,该本实施例可应用在分布式存储系统中,实现分布式存储系统高效率的数据去重。

在一实施例中,获取待比对数据。可以理解地,当需要在分布式存储系统中查找现存数据时,可以通过输入待比对数据的方式确定分布式存储系统中是否存在与待比对数据相同的现存数据。其中,待比对数据表示待与现存数据进行比对的数据,现存数据是指分布式存储系统中现有存储的数据。可以理解地,数据是可以进行划分的(按一组或几组按顺序连续排列在一起的方式进行划分),这里提及的待比对数据和现存数据都可以认为是一种按需划分的数据块,比如,在分布式存储系统中有256kb、512kb和1mb等可变大小的数据块,每一个数据块对应一现存数据。本实施例通过获取待比对数据,以通过该待比对数据查询分布式存储系统中是否存在与待比对数据相同的现存数据,高效率地完成数据去重。

s20:基于待比对数据,采用消息摘要算法计算生成相对应的待比对指纹。

其中,消息摘要算法是把任意长度的输入揉和而产生长度固定的伪随机输入的算法,该消息摘要算法具体有md5消息摘要算法(md5message-digestalgorithm)算法和sha-1算法(securehashalgorithm1,安全散列算法1)等。

在一实施例中,采用消息摘要算法计算生成待比对数据相对应的待比对指纹,能够为每一个待比对数据生成独一无二的待比对指纹,使得相同的待比对数据压缩后的待比对指纹相同,不同的待比对数据压缩后的待比对指纹不相同(对于消息摘要算法可能会产生数据冲突的问题可以采用如开放地址法、链地址法等解决),在保证压缩后待比对指纹是否相同的前提下,有效地对待比对数据进行了压缩,能够提高数据去重的效率。

s30:获取用户输入的查询指令,基于待比对指纹,根据查询指令查询是否存在与待比对指纹相同的现存指纹,得到查询结果,其中,查询指令包括标志位,现存指纹和待比对指纹采用相同的生成方式得到。

其中,标志位用于标志某一操作,具体的操作有读、写和删除等操作。在查询指令执行后时,将根据该标志位继续执行下一步的操作,而不必在查询操作后再发出指令执行下一步的操作。

可以理解地,待比对指纹和现存指纹生成时采用的消息摘要算法是相同的,这样能够保证相同的待比对数据和现存数据生成的待比对指纹和现存指纹相同。

在一实施例中,根据用户输入的查询指令,将在分布式存储系统中查询是否存在与待比对指纹相同的现存指纹,可以通过指纹的方式(包括待比对指纹和现存指纹)实现对待比对数据的快速、精确查询,能够提高数据去重的效率。

需要说明的是,对于分布式存储系统,其优势在于突破地理限制实现各个存储节点之间的连接,能够有效提高存储数据的能力。本实施例中,对分布式存储系统进行的数据去重,可以在任意一个存储节点上进行现存数据的查询,另外,当需要读取现存数据时,可以通过同一个存储节点实现对现存数据的读取。用户在同一个存储节点上同样能够实现对分布式存储系统的数据去重。

进一步地,在步骤s30中,获取用户输入的查询指令,基于待比对指纹,根据查询指令查询是否存在与待比对指纹相同的现存指纹,得到查询结果,具体包括:

s311:将待比对指纹和现存指纹从左至右进行字符串的比较。

在一实施例中,待比对指纹和现存指纹都是采用字符串的形式表示,在查询是否存在与待比对指纹相同的现存指纹时,将待比对指纹和现存指纹从左至右进行字符串的比较,以判断两者的字符串是否匹配得上。

s312:当表示待比对指纹的字符串和表示现存指纹的字符串完全相同时,得到查询结果为存在与待比对指纹相同的现存指纹,其中,字符串完全相同是指表示待比对指纹的字符串的长度和表示现存指纹的字符串的长度相等,且从左至右的每一个字符均相同。

可以理解地,当表示待比对指纹的字符串和表示现存指纹的字符串两者的字符串长度相等,且字符串从左至右的每一个字符均匹配相同时,根据信息摘要算法的特点,可以确定待比对指纹所对应的待比对数据和现存指纹所对应的现存数据相同,也即在分布式存储系统中存在与待比对指纹相同的现存指纹。

s313:当表示待比对指纹的字符串和表示现存指纹的字符串不完全相同时,得到查询结果为不存在与待比对指纹相同的现存指纹。

可以理解地,表示待比对指纹的字符串和表示现存指纹的字符串如果有任何一个字符匹配不成功,那么待比对指纹所对应的待比对数据和现存指纹所对应的现存数据是不相同的,也即在分布式存储系统中不存在与待比对指纹相同的现存指纹。

在步骤s311-s313中,采用字符串比较的方式确定分布式存储系统中是否存在与待比对指纹相同的现存指纹,该方式处理效率高,能够快速得到查询结果。

s40:执行标志位所代表的操作,并基于查询结果变更现存指纹所对应的引用计数,完成数据去重。

可以理解地,查询指令上附带有与用户的操作需求相关的标志位,该标志位能够根据其所代表的操作,无需用户在查询指令后再发出第二次操作指令,能够直接根据标志位执行其所对应的操作,该操作具体包括读、写和删除等。

在一实施例中,无论标志位所代表的操作具体是哪种,都需要先查询在分布式存储系统中是否存在与待比对指纹相同的现存指纹。本实施例通过标志位在查询操作过后将继续执行标志位所代表的操作,能够将原本需两次通讯过程实现的数据去重,采用一次通讯过程便实现,能够有效提高效率,实现高效率的数据去重。此外,本实施例中采用引用计数的方式,将资源现存数据的引用计数保存起来,当引用计数变为零时,将现存数据所对应的存储空间释放。通过该引用计数的方式能够实现存储空间自动清理的目的,有效地完成数据去重。

进一步地,在步骤s40中,执行标志位所代表的操作,并基于查询结果变更现存指纹所对应的引用计数,完成数据去重,具体包括:

s411:若标志位所代表的操作为读,则在根据查询指令和待比对指纹查询是否存在与待比对指纹相同的现存指纹之后,继续执行读操作,当查询结果为存在与待比对指纹相同的现存指纹时,读取与待比对指纹相同的现存指纹所对应的现存数据。

在一实施例中,标志位所代表的操作为读时,将根据存在与待比对指纹相同的现存指纹的查询结果,读取与待比对指纹相同的现存指纹所对应的现存数据。该过程只需一次通讯过程,在查询操作后继续执行读取操作,一次性读取所需的现存数据,能够提高读取的效率。可以理解地,读取操作不对引用计数起作用,若用户的操作需求为读,则引用计数无变化。

s412:若标志位所代表的操作为写,则在根据查询指令和待比对指纹查询是否存在与待比对指纹相同的现存指纹之后,继续执行写操作,当查询结果为存在与待比对指纹相同的现存指纹时,将现存指纹所对应的引用计数作预加一。

在一实施例中,标志位所代表的操作为写时,将根据存在与待比对指纹相同的现存指纹的查询结果,将现存指纹所对应的引用计数作预加一。可以理解地,增加引用计数的计数值能够表示现存数据被引用的次数增多,如原先一现存数据的引用计数为3,在经过用户多次的操作后该现存数据的引用计数为10,表示用户通过分布式存储系统引用了该现存数据10次,可以理解地,实际上如果一个分布式存储系统中同时存储有10个相同的现存数据将会造成存储空间的浪费和被占用,采用引用计数的方式能够仅保留一个现存数据即可,同时又可以表示该现存数据被引用的次数。

可以理解地,对于分布式存储系统,在同一时刻可能会有多个用户同时进行操作,为了防止不必要的数据冲突,本实施例将现存指纹所对应的引用计数作预加一处理,等过了预设时间段后才正式对引用计数加1。

s413:若标志位所代表的操作为删除,则在根据查询指令和待比对指纹查询是否存在与待比对指纹相同的现存指纹之后,继续执行删除操作,当查询结果为存在与待比对指纹相同的现存指纹时,将现存指纹所对应的引用计数作预减一。

在一实施例中,当标志位所代表的操作为删除时,将根据存在与待比对指纹相同的现存指纹的查询结果,将现存指纹所对应的引用计数作预减一。可以理解地,在分布式存储系统中,如果一个用户想要删除一现存数据,那么只会减掉该现存数据所对应的现存指纹的引用计数。只有当引用计数为0时,才认为在该分布式存储系统上目前没有用户需要该现存数据,此时现存数据从分布式存储系统上除去。

在步骤s411-s413中,通过标志位可以在查询操作后继续进行与用户需求相关的操作,根据不同的标志位所代表的操作对引用计数作相应的变更,能够快速有效地完成数据去重。

进一步地,在步骤s30之前,即在获取用户输入的查询指令之前,还包括:

s321:采用预设算法将每个现存指纹拆分成多个二次索引现存指纹,得到二次索引指纹库。

其中,二次索引现存指纹由现存指纹拆分得到。

其中,二次索引指纹库包括所有拆分得到的二次索引现存指纹。

在一实施例中,假设一现存指纹的字节大小为16kb,可以采用一种简单的算法:将该现存指纹从左至右均匀地分成四个4kb二次索引现存指纹。需要说明的是,不同字节大小的现存指纹一般采用不同的预设算法进行拆分,相同字节大小的现存指纹采用相同的预设算法进行拆分,例如,一现存指纹的字节大小为32kb,其进行拆分的算法可以是将该现存指纹从左至右均匀地分成四个8kb二次索引现存指纹,也可以是将该现存指纹从左至右均匀地分成八个4kb二次索引现存指纹,当确定了使用将该现存指纹从左至右均匀地分成四个8kb二次索引现存指纹的预设算法后,其他相同字节大小的现存指纹也应采用相同的预设算法,以保证一致性。

s322:将二次索引指纹库中相同的二次索引现存指纹除去,得到每个现存指纹对应的目标二次索引现存指纹。

可以理解地,除了初次写入分布式存储系统的现存数据,后续每次写入的数据均需要经过数据去重的处理过程,因此,可认为在经数据去重下的分布式存储系统是不存在重复的现存数据的,因此,现存数据所对应的现存指纹也不重复。可以理解地,由现存指纹得到的二次索引现存指纹可能存在重复的情况,对此,可将二次索引指纹库中相同的二次索引现存指纹除去,得到每个现存指纹对应的目标二次索引现存指纹。该除去二次索引现存指纹能够进一步释放存储空间,提高存储空间的利用率。

可以理解地,理论上存在除去二次索引现存指纹导致一个现存指纹所对应的二次索引现存指纹全部被除去,如四个4kb的二次索引现存指纹被去除,这种情况在理论上有可能发生,但是在实际中几乎不可能发生,因此可以忽略这种情况。

当二次索引现存指纹的量足够大时,能够去除较多冗余的数据。

在步骤s321-s322中,提供了一种得到目标二次索引现存指纹的具体实施方式,能够进一步提高存储空间的利用率,为后续根据该目标二次索引现存指纹实现更高效的数据去重。

进一步地,在步骤s30中,执行标志位所代表的操作,并基于查询结果变更现存指纹所对应的引用计数,完成数据去重,具体包括:

s331:采用预设算法将待比对指纹拆分成多个二次索引待比对指纹。

其中,二次索引待比对指纹由待比对指纹拆分得到。

其中,该预设算法须与步骤s321中对不同字节大小的现存指纹采用的各种预设算法对应相同。如一现存指纹的字节大小为32kb,其进行拆分的算法是将现存指纹从左至右均匀地分成四个8kb二次索引现存指纹,那么同样大小,32kb的待比对指纹拆分成多个二次索引待比对指纹也需采用相同的预设算法。

在一实施例中,采用与步骤s321中同样的预设算法对待比对指纹进行拆分处理,得到对应多个的二次索引待比对指纹,以能够为勾选根据二次索引待比对指纹快速查找是否存在相同的目标二次索引现存指纹提高实现的基础。

s332:根据查询指令,将二次索引待比对指纹与目标二次索引现存指纹进行匹配。

s333:当匹配到任意一个二次索引待比对指纹与目标二次索引现存指纹完全相同时,得到查询结果为存在与待比对指纹相同的现存指纹。

可以理解地,在将二次索引指纹库中相同的二次索引现存指纹除去后,剩余的二次索引现存指纹将唯一对应一现存指纹。

在一实施例中,根据查询指令,将待比对指纹拆分后对应的二次索引待比对指纹逐个在分布式存储系统中进行匹配,若匹配到任意一个二次索引待比对指纹与目标二次索引现存指纹完全相同时,则认为存在与待比对指纹相同的现存指纹,并可以根据匹配到的目标二次索引现存指纹查询到与待比对指纹相同的现存指纹。采用这种方式的匹配速度将更快,能够更快速地得到查询结果,更高效率地完成数据去重。

在步骤s331-s333中,提供了一种基于待比对指纹,根据查询指令查询是否存在与待比对指纹相同的现存指纹,得到查询结果的具体实施方式,通过采用二次索引待比对指纹和目标二次索引现存指纹进行匹配的方式,进一步提高了数据去重的效率。

在本发明实施例中,首先获取待比对数据,基于待比对数据,采用消息摘要算法计算生成相对应的待比对指纹,采用消息摘要算法生成待比对指纹可以将待比对数据进行压缩,使得相同的待比对数据压缩后的待比对指纹相同,不同的待比对数据压缩后的待比对指纹不相同,在保证压缩后待比对指纹相同的前提下,有效提高了数据去重的效率;然后获取用户输入的查询指令,基于待比对指纹,根据查询指令查询是否存在与待比对指纹相同的现存指纹,并得到查询结果,通过采用待比对指纹和现存指纹的方式进行查询,能够明显提高查询效率,并且确保查询结果的准确性;最后执行标志位所代表的操作,并基于查询结果变更现存指纹所对应的引用计数,能够在查询是否存在与待比对指纹相同的现存指纹之后继续执行标志位所代表的操作,将原本需两次通讯过程完成的数据去重,采用一次通讯过程便完成,能够有效提高通讯效率,实现高效率的数据去重。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

基于实施例中所提供的数据去重方法,本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。

图2示出与实施例中数据去重方法一一对应的数据去重装置的原理框图。如图2所示,该数据去重装置包括待比对数据获取模块10、待比对指纹生成模块20、查询结果获取模块30和引用计数变更模块40。其中,待比对数据获取模块10、待比对指纹生成模块20、查询结果获取模块30和引用计数变更模块40的实现功能与实施例中数据去重方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。

待比对数据获取模块10,用于获取待比对数据。

待比对指纹生成模块20,用于基于待比对数据,采用消息摘要算法计算生成相对应的待比对指纹。

查询结果获取模块30,用于获取用户输入的查询指令,基于待比对指纹,根据查询指令查询是否存在与待比对指纹相同的现存指纹,得到查询结果,其中,查询指令包括标志位,现存指纹和待比对指纹采用相同的生成方式得到。

引用计数变更模块40,用于执行标志位所代表的操作,并基于查询结果变更现存指纹所对应的引用计数,完成数据去重。

可选地,引用计数变更模块40包括读操作执行单元、写操作执行单元和删除操作执行单元。

读操作执行单元,用于当标志位所代表的操作为读时,在根据查询指令和待比对指纹查询是否存在与待比对指纹相同的现存指纹之后,继续执行读操作,当查询为存在与待比对指纹相同的现存指纹时,读取与待比对指纹相同的现存指纹所对应的现存数据。

写操作执行单元,用于当标志位所代表的操作为写时,在根据查询指令和待比对指纹查询是否存在与待比对指纹相同的现存指纹之后,继续执行写操作,当查询结果为存在与待比对指纹相同的现存指纹时,将现存指纹所对应的引用计数作预加一。

删除操作执行单元,用于当标志位所代表的操作为删除时,在根据查询指令和待比对指纹查询是否存在与待比对指纹相同的现存指纹之后,继续执行删除操作,当查询结果为存在与待比对指纹相同的现存指纹时,将现存指纹所对应的引用计数作预减一。

可选地,查询结果获取模块30包括字符串比较单元、第一查询结果获取单元和第二查询结果获取单元。

字符串比较单元,用于将待比对指纹和现存指纹从左至右进行字符串的比较。

第一查询结果获取单元,用于当表示待比对指纹的字符串和表示现存指纹的字符串完全相同时,得到查询结果为存在与待比对指纹相同的现存指纹,其中,字符串完全相同是指表示待比对指纹的字符串的长度和表示现存指纹的字符串的长度相等,且从左至右的每一个字符均相同。

第二查询结果获取单元,用于当表示待比对指纹的字符串和表示现存指纹的字符串不完全相同时,得到查询结果为不存在与待比对指纹相同的现存指纹。

可选地,数据去重装置还包括二次索引指纹库获取单元和目标二次索引现存指纹获取单元。

二次索引指纹库获取单元,用于采用预设算法将每个现存指纹拆分成多个二次索引现存指纹,得到二次索引指纹库。

目标二次索引现存指纹获取单元,用于将二次索引指纹库中相同的二次索引现存指纹除去,得到每个现存指纹对应的目标二次索引现存指纹。

可选地,查询结果获取模块30还包括二次索引待比对指纹获取单元、匹配单元和第三查询结果获取单元。

二次索引待比对指纹获取单元,用于采用预设算法将待比对指纹拆分成多个二次索引待比对指纹。

匹配单元,用于根据查询指令,将二次索引待比对指纹与目标二次索引现存指纹进行匹配。

第三查询结果获取单元,用于当匹配到任意一个二次索引待比对指纹与目标二次索引现存指纹完全相同时,得到查询结果为存在与待比对指纹相同的现存指纹。

在本发明实施例中,首先获取待比对数据,基于待比对数据,采用消息摘要算法计算生成相对应的待比对指纹,采用消息摘要算法生成待比对指纹可以将待比对数据进行压缩,使得相同的待比对数据压缩后的待比对指纹相同,不同的待比对数据压缩后的待比对指纹不相同,在保证压缩后待比对指纹相同的前提下,有效提高了数据去重的效率;然后获取用户输入的查询指令,基于待比对指纹,根据查询指令查询是否存在与待比对指纹相同的现存指纹,并得到查询结果,通过采用待比对指纹和现存指纹的方式进行查询,能够明显提高查询效率,并且确保查询结果的准确性;最后执行标志位所代表的操作,并基于查询结果变更现存指纹所对应的引用计数,能够在查询是否存在与待比对指纹相同的现存指纹之后继续执行标志位所代表的操作,将原本需两次通讯过程完成的数据去重,采用一次通讯过程便完成,能够有效提高通讯效率,实现高效率的数据去重。

本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例中数据去重方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器执行时实现实施例中数据去重装置中各模块/单元的功能,为避免重复,此处不一一赘述。

图3是本发明一实施例提供的计算机设备的示意图。如图3所示,该实施例的计算机设备50包括:处理器51、存储器52以及存储在存储器52中并可在处理器51上运行的计算机程序53,该计算机程序53被处理器51执行时实现实施例中的数据去重方法,为避免重复,此处不一一赘述。或者,该计算机程序53被处理器51执行时实现实施例中数据去重装置中各模型/单元的功能,为避免重复,此处不一一赘述。

计算机设备50可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备50可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图3仅仅是计算机设备50的示例,并不构成对计算机设备50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器51可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器52可以是计算机设备50的内部存储单元,例如计算机设备50的硬盘或内存。存储器52也可以是计算机设备50的外部存储设备,例如计算机设备50上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器52还可以既包括计算机设备50的内部存储单元也包括外部存储设备。存储器52用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器52还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

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

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