CN108090125A - 一种非查询式的重复数据删除方法及装置 - Google Patents
一种非查询式的重复数据删除方法及装置 Download PDFInfo
- Publication number
- CN108090125A CN108090125A CN201711119662.0A CN201711119662A CN108090125A CN 108090125 A CN108090125 A CN 108090125A CN 201711119662 A CN201711119662 A CN 201711119662A CN 108090125 A CN108090125 A CN 108090125A
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- memory node
- data
- minimum
- data block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种非查询式的重复数据删除方法及装置,涉及通信技术领域。该方法包括:从元数据服务器内存储的数据块,超块以及每个数据块对应的指纹中,确定多个最小的指纹;将多个最小的指纹与全局布隆过滤器阵列进行匹配,当确定与多个最小的指纹匹配的存储节点的数量非零时,确定第一存储节点;将超块发送至所述第一存储节点,根据从超块内选择的具有最小指纹的数据块从第一存储节点内选择与最小指纹对应的容器编号;当确定与容器编号对应的最小指纹以及与最小指纹对应的数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的数据块删除。
Description
技术领域
本发明涉及通信技术领域,更具体的涉及一种非查询式的重复数据删除方法及装置。
背景技术
现代信息技术和互联网的发展,每天会产生大量的数据,社会正在进入一个大数据时代,需要管理的数据也越来越复杂。因此重复数据删除技术的发展解决了数据暴增带来的一些问题。同时集群重复数据删除技术也解决了单节点重复数据删除的处理能力不足的问题。但是针对集群重复数据删除也带来了一些问题,如何保证存储节点不存在数据偏移带来的系统性能的下降是一个尚需解决的问题。目前所有的重复数据路由策略几乎都是基于查询的方式进行路由节点的查询,在查询的过程中需要将数据的指纹信息发送到存储节点进行查询计算,选择最优的节点。因此客户端服务器需要等待,查询结果的反馈之后才能确定将数据发送到哪个节点。同时在存储节点利用Jaccard定理判定数据的相似性。这样的查询效率,相对于布隆过滤器的高效查询效率来说是较为低下的。
无状态(英文为:stateless)的路由策略则是一种非查询式的路由策略,但是这种路由方法选择每个数据指纹的前64字节作为超块的代表性ID,然后通过取模哈希的方法来确定路由节点。这样的方法仅仅是较少了通信开销,并没有考虑负载均衡和重删率的问题。所以该策略只有在存储节点数量少的情况下有相对较好的效果。但是该方法的扩展性并不好,针对大规模的存储节点来说会造成数据偏移,重删率也会较低,并不是一个好的路由策略。
ExtremeBinning的路由策略从本质上讲也是一种无状态的路由策略,但是该方法把整个文件作为路由路由单位,然后将整个文件利用基于内容的分块方式分成大小不同的数据块,然后选择文件的代表指纹ID作为选择节点的单位。代表性ID的选择基于Broder理论,Broder理论表示两个集合的相似性即Jaccard距离可由Min哈希命中概率来表示,当Min哈希命中时,则两个集合的相似性很大。因此在选择文件作为路由粒度的时候,能够取得很好的效果,但是由于文件的大小不一定,所以整个系统的吞吐量是一个随机的概率。
发明内容
本发明实施例提供一种非查询式的重复数据删除方法及装置,无需将数据块的指纹发送到存储节点进行查询,只需要查询客户端服务器内存中维护的全局布隆过滤器阵列即可确定路由节点。
发明实施例提供一种非查询式的重复数据删除方法,该方法包括:
从元数据服务器内存储的数据块,超块以及每个所述数据块对应的指纹中,确定多个最小的所述指纹;
将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,当确定与多个最小的所述指纹匹配的存储节点的数量非零时,根据确定的与多个所述存储节点匹配的数量以及所述存储节点的容量,确定第一存储节点;所述全局布隆过滤器阵列的每一行表示一个所述存储节点维护的布隆过滤器,所述布隆过滤器保存了所述存储节点上存储的所述超块的代表指纹;
将所述超块发送至所述第一存储节点,根据从所述超块内选择的具有最小指纹的数据块从所述第一存储节点内选择与所述最小指纹对应的容器编号;
当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的所述数据块删除。
优选地,所述当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块未存储在缓存数据库中时,从容器内读取与所述最小指纹以及与所述最小指纹对应的所述数据块,并根据LRU更新所述缓存数据库。
优选地,所述从元数据服务器内存储的数据块,超块以及每个所述数据块对应的指纹,确定多个具有最小所述指纹的所述数据块之前,还包括:
收到客户端发送的数据块超块以及每个所述数据块对应的指纹,所述超块内包括多个所述数据块,所述数据块为所述客户端对接收到的待处理数据按照定长块方式划分确定的。
优选地,所述当确定与多个所述存储节点匹配的数量为零时,将多个所述存储节点中选择的具有最小存储容量的所述存储节点确定为第一存储节点。
优选地,所述将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,具体包括:
通过hash算法确定所述全局布隆过滤器阵列中每一行内存储的多个最小的所述指纹的数量,所述数量为所述全局布隆过滤器阵列中每一行对应的存储节点与多个最小的所述指纹的匹配度。
优选地,所述将所述超块发送至所述第一存储节点之后,还包括:
将所述第一存储节点的容量信息发送至客户端服务器,以使所述客户端服务器根据所述第一存储节点的容量信息更新内存中维护的索引表中对应的所述第一存储节点的容量信息。
本发明实施例还一种非查询式的重复数据删除装置,该装置包括:
第一确定单元,用于从元数据服务器内存储的数据块,超块以及每个所述数据块对应的指纹中,确定多个最小的所述指纹;
第二确定单元,用于将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,当确定与多个最小的所述指纹匹配的存储节点的数量非零时,根据确定的与多个所述存储节点匹配的数量以及所述存储节点的容量,确定第一存储节点;所述全局布隆过滤器阵列的每一行表示一个所述存储节点维护的布隆过滤器,所述布隆过滤器保存了所述存储节点上存储的所述超块的代表指纹;
发送单元,用于将所述超块发送至所述第一存储节点,根据从所述超块内选择的具有最小指纹的数据块从所述第一存储节点内选择与所述最小指纹对应的容器编号;
删除单元,用于当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的所述数据块删除。
优选地,所述删除单元还用于:
当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块未存储在缓存数据库中时,从容器内读取与所述最小指纹以及与所述最小指纹对应的所述数据块,并根据LRU更新所述缓存数据库。
优选地,所述第二确定单元具体用于:
通过hash算法确定所述全局布隆过滤器阵列中每一行内存储的多个最小的所述指纹的数量,所述数量为所述全局布隆过滤器阵列中每一行对应的存储节点与多个最小的所述指纹的匹配度。
优选地,所述发送单元还用于:
将所述第一存储节点的容量信息发送至客户端服务器,以使所述客户端服务器根据所述第一存储节点的容量信息更新内存中维护的索引表中对应的所述第一存储节点的容量信息。
本发明实施例提供了一种非查询式的重复数据删除方法,该方法包括:从元数据服务器内存储的数据块,超块以及每个所述数据块对应的指纹中,确定多个最小的所述指纹;将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,当确定与多个最小的所述指纹匹配的存储节点的数量非零时,根据确定的与多个所述存储节点匹配的数量以及所述存储节点的容量,确定第一存储节点;所述全局布隆过滤器阵列的每一行表示一个所述存储节点维护的布隆过滤器,所述布隆过滤器保存了所述存储节点上存储的所述超块的代表指纹;将所述超块发送至所述第一存储节点,根据从所述超块内选择的具有最小指纹的数据块从所述第一存储节点内选择与所述最小指纹对应的容器编号;当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的所述数据块删除。上述方法中,无需将数据块的指纹发送到存储节点进行查询,只需要查询客户端服务器内存中维护的全局布隆过滤器阵列即可确定路由节点。从而解决了现有的路由策略,通过选择特征指纹,发送到存储节点,然后通过相应计算选择最优的存储节点作为路由节点,然而将数据指纹发送到存储节点查询的过程中消耗大量的通信时间,而且客户端服务器需要等到查询结果后进行下一步操作的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种非查询式的重复数据删除方法流程示意图;
图2为本发明实施例提供的系统结构图;
图3为本发明实施例提供的存储节点的索引结构示意图;
图4为本发明实施例一提供的一种非查询式的重复数据删除方法流程示意图;
图5为本发明实施例提供的三种路由策略的重删率对比示意图;
图6为本发明实施例提供的系统负载均衡情况示意图;
图7为本发明实施例的一种非查询式的重复数据删除装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种非查询式的重复数据删除方法流程示意图,如图1所示,该方法主要包括以下步骤:
步骤101,从元数据服务器内存储的数据块,超块以及每个所述数据块对应的指纹中,确定多个最小的所述指纹;
步骤102,将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,当确定与多个最小的所述指纹匹配的存储节点的数量非零时,根据确定的与多个所述存储节点匹配的数量以及所述存储节点的容量,确定第一存储节点;所述全局布隆过滤器阵列的每一行表示一个所述存储节点维护的布隆过滤器,所述布隆过滤器保存了所述存储节点上存储的所述超块的代表指纹;
步骤103,将所述超块发送至所述第一存储节点,根据从所述超块内选择的具有最小指纹的数据块从所述第一存储节点内选择与所述最小指纹对应的容器编号;
步骤104,当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的所述数据块删除。
图2为本发明实施例提供的系统结构示意图,如图2所示,本发明实施例提供的一种非查询式的重复数据删除方法,主要通过元数据服务器,客户端服务器和存储节点三部分组成。具体地,客户端服务器主要对用户上传的数据流进行数据分块,指纹计算以及超块的组合;元数据服务器主要保存了系统中所存储的文件的元数据信息,包括了原始数据的指纹信息,所有分块之后的数据块的指纹信息,以及这些数据块存储的节点,用于恢复数据。存储节点存储了包括所有分块之后的数据以及这些块的指纹信息。
在客户端服务器维护一个全局布隆过滤器阵列,全局布隆过滤器阵列阵列的每一行则为一个存储节点中维护的布隆过滤器,保存了该节点上存储的所有超块的代表性ID。当数据上传到客户端服务器之后,客户端服务器会对数据进行分块和超块的组合,然后选择k个最小块指纹在内存中维护的全局布隆过滤器阵列进行查询。之所以选择k个最小快指纹是为了提高哈希的命中概率。
同时在客户端服务器内存中也维护了各个节点的容量信息,是为了通过计算得到最优节点,内容信息的更新是在数据发送到存储节点之后进行重复数据删除后返回给客户端服务器的。另外还需保证各个客户端服务器内存中全局布隆过滤器阵列的一致性,因为每个客户端服务器上传的数据是各自独立的,但是存储节点的数据是所有客户端服务器共同维护的。所以假如全局布隆过滤器阵列不一致会导致整个系统的信息混乱,无法恢复数据。
图3为本发明实施例提供的存储节点的索引结构示意图,如图3所示,全局布隆过滤器阵列存储了该存储节点中所有超块代表性ID,针对每一个超块,需要匹配每一行的布隆过滤器,因为该索引保存在客户端服务器的内存中,所以查询速度相对于查询的方式能够节省大量的查询时间,同时利用超块最小k个最指纹的匹配个数和节点容量信息能够从所有节点中选择最优的节点。
以下结合图1,图2和图3来介绍本发明实施例提供的一种非查询式的重复数据删除方法:
在步骤101,因为在客户端服务器上维护的每个存储节点中保存了超块的最小ID的全局布隆过滤器阵列,所以客户端服务器会对接收的待处理数据进行数据块划分,在本发明实施例中,对待处理数据进行数据块划分的具体方法不做限定,在实际应用中,对待处理数据进行数据块划分可以包括定长分块,CDC切分和滑动块切分。
进一步地,当对待处理数据进行数据块划分之后,可以将成千个数据块组成一个超块,同时,确定超块的代表指纹。
具体地,数据指纹是数据块的本质特征,理想状态是每个唯一数据块具有唯一的数据指纹,不同的数据块具有不同的数据指纹;数据指纹通常是对数据块内容进行相关数学运算获得,从当前研究成果来看Hash函数比较接近与理想目标,比如MD5、SHA1、SHA-256、SHA-512、为one-Way、RabinHash等。另外,还有许多字符串Hash函数也可以用来计算数据块指纹。
需要说明的是,在将成千个数据块组成一个超块时,均需要计算每个数据块的指纹,在本发明实施例中,对计算数据块的指纹的时间先后顺序不做规定,即,可以在将成千个数据块组成一个超块后,计算每个数据块的指纹;也可以在确定每个数据块的指纹之后,在将成千个数据块组成一个超块。
在本发明实施例中,需要从超块包括的多个数据块对应的指纹中,确定多个最小的指纹。其中,对确定具有最小的指纹的方法不做具体地限定。
在步骤102中,全局布隆过滤器阵列的每一行表示一个存储节点维护的布隆过滤器,而布隆过滤器内保存了存储节点上存储的超块的代表指纹。
具体地,将多个最小的指纹与全局布隆过滤器阵列进行匹配,在本发明实施例中,将多个最小的指纹与全局布隆过滤器阵列进行匹配具体包括:通过hash算法确定全局布隆过滤器阵列中每一行内存储的多个最小的指纹的数量,数量为全局布隆过滤器阵列中每一行对应的存储节点与多个最小的指纹的匹配度。
比如,将选择的k个指纹利用布隆过滤器算法,将这k个指纹和阵列中的每一行进行匹配(即通过hash算法计算该指纹是否已经保存于这一行布隆过滤器中,若存在则匹配成功,若不存在则匹配失败),得到每一行的匹配个数(C0,C1,…Cn)。该匹配个数即为每一行对应的存储节点和这k个指纹的匹配程度。
进一步地,当确定与多个最小的所述指纹匹配的存储节点的数量非零时,根据确定的与多个存储节点匹配的数量和每个存储节点的容量,确定第一存储节点。当确定与多个存储节点匹配的数量为零时,将多个存储节点中选择的具有最小存储容量的存储节点确定为第一存储节点。
在步骤103中,将超块发送至第一存储节点,根据从超块内选择的具有最小指纹的数据块从第一存储节点内选择与最小指纹对应的容器编号。
在步骤104中,当确定与容器编号对应的最小指纹以及与最小指纹对应的数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的所述数据块删除。即无需读入磁盘中的容器,而可以直接进行重复数据删除。进一步地,当确定与容器编号对应的最小指纹以及与最小指纹对应的数据块未存储在缓存数据库中时,从容器内读取与最小指纹以及与最小指纹对应的数据块,并根据LRU更新缓存数据库。
进一步地,将超块发送至第一存储节点之后,将第一存储节点的容量信息发送至客户端服务器,以使客户端服务器根据第一存储节点的容量信息更新内存中维护的索引表中对应的所述第一存储节点的容量信息。即在将超块发送到存储节点之后,将该存储节点的存储容量反馈给所有的客户端服务器,客户端服务器更新内存中维护的索引表中对应该节点的容量信息,同时将发送的超块的最小块指纹群发给所有客户端服务器,将该最小块指纹映射到该节点对应的那一行布隆过滤器,这样就保证了所有客户端服务器内存中的全局布隆过滤器阵列同步更新。
图4为本发明实施例一提供的一种非查询式的重复数据删除方法流程示意图;如图4所示,该方法主要包括:
步骤401,在客户端服务器对数据流进行数据分块,指纹计算和超块组合
步骤402,选择超块中k个最小块指纹;
步骤403,查询客户端服务器中维护的BloomFilter阵列,得到每一个节点对应的匹配个数。
步骤401,若所有匹配个数都为0,则执行步骤405,否则执行步骤406;
步骤405,则从容量信息表中选择存储容量最小的节点作为路由节点;
步骤406,利用Hi/Vi选择最优节点作为路由节点;
步骤407,发送超块到存储节点;
步骤408,利用最小块指纹ID查询对应的Container;
步骤409,确定路由节点之后,将该超块的最小块指纹发送给所有的客户端服务器;
步骤410,更新在BloomFilter阵列中路由节点对应的那一行;
步骤411,若该Container已经在缓存中,则执行步骤412,否则执行步骤413;
步骤412,直接进行重复数据删除;
步骤413,则读入Container;
步骤414,进行重复数据删除,并利用LRU更新缓存;
步骤415,将非重复数据写入磁盘中对应的Container;
步骤416,更新客户端服务器内存中的容量信息。
图5为本发明实施例提供的三种路由策略的重删率对比示意图,图6为本发明实施例提供的系统负载均衡情况示意图;以下结合图5,图6以及实验数据,来进一步验证本发明实施例提供的一种非查询式的重复数据删除方法无需到存储节点进行查询,因此在整个数据路由过程中节省了大量的系统通信带来的时间,更加高效快速。
实验采用了仿真验证,对数据的指纹信息进行处理。
本实验的数据集为Linux内核文件作为处理数据,选择了Linux3.0.1-Linux4.6版本的总计34.7G的数据按照定长分块的方法将所有数据分成4k大小的数据块,并利用MD5算法计算每个数据块的指纹。利用单机模拟了集群重复数据删除系统,具体配置信息为处理器:IntelCorei3-21303.40GHz,内存4.00GB。
通过实验的到数据如下:(下列图5和图6中allbf曲线为本方法的实验数据),重删率的标准是计算节点的删除的重复数据占所有数据的百分比,公式如下:
重删率=重复数据/所有数据*100%
如图5所示,由于实验条件的限制,采用了7个节点作为路由节点,每个存储节点单独计算各自的重删率,这里采用每个超块的大小为4Mb。从图中可以看出基于全局BloomFilter的负载均衡路由策略相比于无状态的路由策略重删率提高30%左右,而相比于有转态的路由策略重删率下降10%左右。
由于无状态路由再小规模集群的负载均衡比较好但是扩展性太差,但是有状态路由和本方法都够适用于大规模的集群,所以此处之对比有转态路由和本方法的负载均衡情况,采用的对比参数是各个节点中剩余的非重复数据数量,因为每个数据块的大小是相等的,所以可以用各个节点数量的曲线图来表示负载均衡的情况。
从图6中可以看出本方法负载均衡的情况较为理想,因为不会出现数据偏移过大的情况,和有状态的路由策略都能够实现较好的负载均衡。另外本方法在每个客户端服务器内存中占用的大小仅仅为13.16Kb并不会对系统的性能造成影响,在存储节点采用了哈希表的方法维护节点中的数据,每个节点占用内存大小约为7.5Kb左右,而有状态的路由策略每个节点需要占用1.8Mb的内存空间。
基于同一发明构思,本发明实施例提供了一种非查询式的重复数据删除装置,由于该装置解决技术问题的原理与了一种非查询式的重复数据删除方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
图7为本发明实施例的一种非查询式的重复数据删除装置结构示意图,如图7所示,该装置包括第一确定单元301,第二确定单元302,发送单元303和删除单元304。
第一确定单元301,用于从元数据服务器内存储的数据块,超块以及每个所述数据块对应的指纹中,确定多个最小的所述指纹;
第二确定单元302,用于将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,当确定与多个最小的所述指纹匹配的存储节点的数量非零时,根据确定的与多个所述存储节点匹配的数量以及所述存储节点的容量,确定第一存储节点;所述全局布隆过滤器阵列的每一行表示一个所述存储节点维护的布隆过滤器,所述布隆过滤器保存了所述存储节点上存储的所述超块的代表指纹;
发送单元303,用于将所述超块发送至所述第一存储节点,根据从所述超块内选择的具有最小指纹的数据块从所述第一存储节点内选择与所述最小指纹对应的容器编号;
删除单元304,用于当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的所述数据块对应的所述数据块删除。
优选地,所述删除单元304还用于:
当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块未存储在缓存数据库中时,从容器内读取与所述最小指纹以及与所述最小指纹对应的所述数据块,并根据LRU更新所述缓存数据库。
优选地,所述第二确定单元302具体用于:
通过hash算法确定所述全局布隆过滤器阵列中每一行内存储的多个最小的所述指纹的数量,所述数量为所述全局布隆过滤器阵列中每一行对应的存储节点与多个最小的所述指纹的匹配度。
优选地,所述发送单元303还用于:
将所述第一存储节点的容量信息发送至客户端服务器,以使所述客户端服务器根据所述第一存储节点的容量信息更新内存中维护的索引表中对应的所述第一存储节点的容量信息。
应当理解,以上一种非查询式的重复数据删除装置包括的单元仅为根据该设备装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种非查询式的重复数据删除装置所实现的功能与上述实施例提供的一种非查询式的重复数据删除方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种非查询式的重复数据删除方法,其特征在于,该方法包括:
从元数据服务器内存储的数据块,超块以及每个所述数据块对应的指纹中,确定多个最小的所述指纹;
将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,当确定与多个最小的所述指纹匹配的存储节点的数量非零时,根据确定的与多个所述存储节点匹配的数量以及所述存储节点的容量,确定第一存储节点;所述全局布隆过滤器阵列的每一行表示一个所述存储节点维护的布隆过滤器,所述布隆过滤器保存了所述存储节点上存储的所述超块的代表指纹;
将所述超块发送至所述第一存储节点,根据从所述超块内选择的具有最小指纹的数据块从所述第一存储节点内选择与所述最小指纹对应的容器编号;
当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的所述数据块删除。
2.如权利要求1所述的方法,其特征在于,所述当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块未存储在缓存数据库中时,从容器内读取与所述最小指纹以及与所述最小指纹对应的所述数据块,并根据LRU更新所述缓存数据库。
3.如权利要求1所述的方法,其特征在于,所述从元数据服务器内存储的数据块,超块以及每个所述数据块对应的指纹,确定多个具有最小所述指纹的所述数据块之前,还包括:
收到客户端发送的数据块超块以及每个所述数据块对应的指纹,所述超块内包括多个所述数据块,所述数据块为所述客户端对接收到的待处理数据按照定长块方式划分确定的。
4.如权利要求1所述的方法,其特征在于,所述当确定与多个所述存储节点匹配的数量为零时,将多个所述存储节点中选择的具有最小存储容量的所述存储节点确定为第一存储节点。
5.如权利要求1所述的方法,其特征在于,所述将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,具体包括:
通过hash算法确定所述全局布隆过滤器阵列中每一行内存储的多个最小的所述指纹的数量,所述数量为所述全局布隆过滤器阵列中每一行对应的存储节点与多个最小的所述指纹的匹配度。
6.如权利要求1所述的方法,其特征在于,所述将所述超块发送至所述第一存储节点之后,还包括:
将所述第一存储节点的容量信息发送至客户端服务器,以使所述客户端服务器根据所述第一存储节点的容量信息更新内存中维护的索引表中对应的所述第一存储节点的容量信息。
7.一种非查询式的重复数据删除装置,其特征在于,该装置包括:
第一确定单元,用于从对数据流进行分块后得到的数据块,超块以及每个所述数据块对应的指纹中,确定多个最小的所述指纹;
第二确定单元,用于将多个最小的所述指纹与全局布隆过滤器阵列进行匹配,当确定与多个最小的所述指纹匹配的存储节点的数量非零时,根据确定的与多个所述存储节点匹配的数量以及所述存储节点的容量,确定第一存储节点;所述全局布隆过滤器阵列的每一行表示一个所述存储节点维护的布隆过滤器,所述布隆过滤器保存了所述存储节点上存储的所述超块的代表指纹;
发送单元,用于将所述超块发送至所述第一存储节点,根据从所述超块内选择的具有最小指纹的数据块从所述第一存储节点内选择与所述最小指纹对应的容器编号;
删除单元,用于当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块存储在缓存数据库中时,则将与所述最小指纹以及与所述最小指纹对应的所述数据块删除。
8.如权利要求7所述的装置,其特征在于,所述删除单元还用于:
当确定与所述容器编号对应的所述最小指纹以及与所述最小指纹对应的所述数据块未存储在缓存数据库中时,从容器内读取与所述最小指纹以及与所述最小指纹对应的所述数据块,并根据LRU更新所述缓存数据库。
9.如权利要7所述的装置,其特征在于,所述第二确定单元具体用于:
通过hash算法确定所述全局布隆过滤器阵列中每一行内存储的多个最小的所述指纹的数量,所述数量为所述全局布隆过滤器阵列中每一行对应的存储节点与多个最小的所述指纹的匹配度。
10.如权利要求7所述的装置,其特征在于,所述发送单元还用于:
将所述第一存储节点的容量信息发送至客户端服务器,以使所述客户端服务器根据所述第一存储节点的容量信息更新内存中维护的索引表中对应的所述第一存储节点的容量信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711119662.0A CN108090125B (zh) | 2017-11-14 | 2017-11-14 | 一种非查询式的重复数据删除方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711119662.0A CN108090125B (zh) | 2017-11-14 | 2017-11-14 | 一种非查询式的重复数据删除方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108090125A true CN108090125A (zh) | 2018-05-29 |
CN108090125B CN108090125B (zh) | 2021-05-25 |
Family
ID=62172144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711119662.0A Expired - Fee Related CN108090125B (zh) | 2017-11-14 | 2017-11-14 | 一种非查询式的重复数据删除方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108090125B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408475A (zh) * | 2018-10-19 | 2019-03-01 | 广州鼎甲计算机科技有限公司 | 重复数据删除过程中的数据处理方法和系统 |
CN111291126A (zh) * | 2020-02-28 | 2020-06-16 | 深信服科技股份有限公司 | 数据回收方法、装置、设备及存储介质 |
CN112104725A (zh) * | 2020-09-09 | 2020-12-18 | 中国联合网络通信集团有限公司 | 容器镜像去重方法、系统、计算机设备及存储介质 |
CN112529613A (zh) * | 2020-11-27 | 2021-03-19 | 广州华多网络科技有限公司 | 用户连续登录数据的处理、虚拟资源的转移方法和装置 |
CN113076068A (zh) * | 2021-04-27 | 2021-07-06 | 哈尔滨工业大学(深圳) | 一种数据存储方法、装置、电子设备及可读存储介质 |
CN114706861A (zh) * | 2022-06-08 | 2022-07-05 | 天津南大通用数据技术股份有限公司 | 一种在列存储引擎中按列动态分组存储的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706825A (zh) * | 2009-12-10 | 2010-05-12 | 华中科技大学 | 一种基于文件内容类型的重复数据删除方法 |
CN102222085A (zh) * | 2011-05-17 | 2011-10-19 | 华中科技大学 | 一种基于相似性与局部性结合的重复数据删除方法 |
US8239394B1 (en) * | 2005-03-31 | 2012-08-07 | Google Inc. | Bloom filters for query simulation |
CN103970744A (zh) * | 2013-01-25 | 2014-08-06 | 华中科技大学 | 一种可扩展的重复数据检测方法 |
CN105897921A (zh) * | 2016-05-27 | 2016-08-24 | 重庆大学 | 一种结合指纹抽样和减少数据碎片的数据块路由方法 |
CN106066896A (zh) * | 2016-07-15 | 2016-11-02 | 中国人民解放军理工大学 | 一种应用感知的大数据重复删除存储系统及方法 |
CN106610790A (zh) * | 2015-10-26 | 2017-05-03 | 华为技术有限公司 | 一种重复数据删除方法及装置 |
-
2017
- 2017-11-14 CN CN201711119662.0A patent/CN108090125B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239394B1 (en) * | 2005-03-31 | 2012-08-07 | Google Inc. | Bloom filters for query simulation |
CN101706825A (zh) * | 2009-12-10 | 2010-05-12 | 华中科技大学 | 一种基于文件内容类型的重复数据删除方法 |
CN102222085A (zh) * | 2011-05-17 | 2011-10-19 | 华中科技大学 | 一种基于相似性与局部性结合的重复数据删除方法 |
CN103970744A (zh) * | 2013-01-25 | 2014-08-06 | 华中科技大学 | 一种可扩展的重复数据检测方法 |
CN106610790A (zh) * | 2015-10-26 | 2017-05-03 | 华为技术有限公司 | 一种重复数据删除方法及装置 |
CN105897921A (zh) * | 2016-05-27 | 2016-08-24 | 重庆大学 | 一种结合指纹抽样和减少数据碎片的数据块路由方法 |
CN106066896A (zh) * | 2016-07-15 | 2016-11-02 | 中国人民解放军理工大学 | 一种应用感知的大数据重复删除存储系统及方法 |
Non-Patent Citations (5)
Title |
---|
DEEPAVALI BHAGWAT ET AL.: "Extreme Binning: Scalable,Parallel Deduplication", 《IEEE XPLORE》 * |
卢永菁: "一种高性能重复数据删除系统设计及研究", 《万方学位论文数据库》 * |
陈春玲 等: "Bloom_Filter在重复数据删除技术中应用的研究", 《计算机技术与发展》 * |
陈晓 等: "集群重复数据删除策略的研究", 《软件开发》 * |
黄国强: "针对虚拟机备份的分布式重复数据删除系统的设计与实现", 《万方学位论文数据库》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408475A (zh) * | 2018-10-19 | 2019-03-01 | 广州鼎甲计算机科技有限公司 | 重复数据删除过程中的数据处理方法和系统 |
CN109408475B (zh) * | 2018-10-19 | 2019-07-26 | 广州鼎甲计算机科技有限公司 | 重复数据删除过程中的数据处理方法和系统 |
CN111291126A (zh) * | 2020-02-28 | 2020-06-16 | 深信服科技股份有限公司 | 数据回收方法、装置、设备及存储介质 |
CN111291126B (zh) * | 2020-02-28 | 2023-09-05 | 深信服科技股份有限公司 | 数据回收方法、装置、设备及存储介质 |
CN112104725A (zh) * | 2020-09-09 | 2020-12-18 | 中国联合网络通信集团有限公司 | 容器镜像去重方法、系统、计算机设备及存储介质 |
CN112104725B (zh) * | 2020-09-09 | 2022-05-27 | 中国联合网络通信集团有限公司 | 容器镜像去重方法、系统、计算机设备及存储介质 |
CN112529613A (zh) * | 2020-11-27 | 2021-03-19 | 广州华多网络科技有限公司 | 用户连续登录数据的处理、虚拟资源的转移方法和装置 |
CN112529613B (zh) * | 2020-11-27 | 2024-07-26 | 广州华多网络科技有限公司 | 用户连续登录数据的处理、虚拟资源的转移方法和装置 |
CN113076068A (zh) * | 2021-04-27 | 2021-07-06 | 哈尔滨工业大学(深圳) | 一种数据存储方法、装置、电子设备及可读存储介质 |
CN114706861A (zh) * | 2022-06-08 | 2022-07-05 | 天津南大通用数据技术股份有限公司 | 一种在列存储引擎中按列动态分组存储的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108090125B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090125A (zh) | 一种非查询式的重复数据删除方法及装置 | |
Liao et al. | Multi-dimensional index on hadoop distributed file system | |
CN108089816A (zh) | 一种基于负载均衡的查询式重复数据删除方法及装置 | |
CN106233259B (zh) | 在分散存储网络中检索多世代存储数据的方法和系统 | |
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
CN105045877B (zh) | 数据库数据分片存储方法和装置、数据查询方法和装置 | |
CN105320773B (zh) | 一种基于Hadoop平台的分布式重复数据删除系统和方法 | |
CN110291518A (zh) | 合并树无用单元指标 | |
US20160299919A1 (en) | Management of Intermediate Data Spills during the Shuffle Phase of a Map-Reduce Job | |
CN110100230A (zh) | 利用云对象存储的文件系统层次结构和功能 | |
CN110383261A (zh) | 用于多流存储装置的流选择 | |
CN110268394A (zh) | Kvs树 | |
CN110268399A (zh) | 用于维护操作的合并树修改 | |
Frey et al. | Probabilistic deduplication for cluster-based storage systems | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN104603774A (zh) | 迁移目的地文件服务器和文件系统迁移方法 | |
CN106021256A (zh) | 使用基于云的对象存储的消除重复分布式文件系统 | |
CN105701156B (zh) | 一种分布式文件系统管理方法及装置 | |
US10862672B2 (en) | Witness blocks in blockchain applications | |
CN103959264A (zh) | 在存储云中使用去重复来管理不可变冗余文件 | |
CN104184812B (zh) | 一种基于私有云的多点数据传输方法 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN108932256A (zh) | 分布式数据重分布控制方法、装置及数据管理服务器 | |
CN103793493A (zh) | 一种处理车载终端海量数据的方法和系统 | |
CN107239485A (zh) | 数据库操作方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210525 Termination date: 20211114 |