CN106445413A - 集群***中数据处理方法及装置 - Google Patents
集群***中数据处理方法及装置 Download PDFInfo
- Publication number
- CN106445413A CN106445413A CN201610827845.7A CN201610827845A CN106445413A CN 106445413 A CN106445413 A CN 106445413A CN 201610827845 A CN201610827845 A CN 201610827845A CN 106445413 A CN106445413 A CN 106445413A
- Authority
- CN
- China
- Prior art keywords
- data block
- eigenvalue
- physical node
- node
- fingerprint
- 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
- 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/0608—Saving storage space on 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/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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Mathematical Physics (AREA)
- Software Systems (AREA)
Abstract
本发明实施例对接收的数据流进行重复数据查询的时候,会根据代表数据流的第一特征值,确定每个第一特征值在所述集群***中对应的第一物理节点,然后将代表数据流的第一特征值发送到确定的物理节点上进行重复数据查询,重复数据的查询流程不会因为集群***中节点数的增加而改变,因此不会因为集群***中节点数的增加而使每个节点的计算量也随之增加。
Description
技术领域
本发明实施例涉及存储技术,尤其涉及集群***中数据处理方法及装置。
背景技术
重复数据删除(简称为重删)也称为智能压缩或单一实例存储,是一种可自动搜索重复数据,将相同数据只保留唯一的一个副本,并使用指向单一副本的指针替换掉其他重复副本,以达到消除冗余数据、降低存储容量需求的存储技术。
集群重复数据删除(简称为集群重删)是指把多个重删物理节点组织起来提高重删的性能和容量的一种技术。现有技术中的集群重删技术,通常接收数据流的物理节点将数据流进行分块得到若干个数据块,将得到的数据块进行分组,针对每个分组,从分组中的数据块的元数据信息中抽样出一部分元数据信息发送到集群***中的所有物理节点中去查询;集群***中的每个物理节点中存储有已知的数据块以及对应的元数据信息,将抽样出的元数据信息与各个物理节点中已存储的元数据信息进行比对,从查询结果中获取重复数据块最多的目标物理节点,然后将抽样出的元数据信息对应的数据分组中的所有数据块信息发送到所述目标物理节点进行重复数据查询。
发明人通过研究发现,现有技术的集群重删技术中,需要将抽样的元数据信息发送到所有物理节点上去查询,导致在重删过程中,物理节点间交互次数太多,当集群***中的物理节点较多的情况下,每个物理节点在执行重删时,计算量会随着集群***中物理节点的增加而增加,导致***重删性能下降。
发明内容
本发明实施例提供集群***中数据处理方法及装置,有效提高集群***的重删性能。
为实现发明目的,本发明实施例第一方面提供一种集群***中数据处理方法,包括:
将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹,按照第一算法获取代表所述数据流的n个第一特征值;其中,所述m为大于等于1的整数,n为大于等于1且小于等于m的整数;
根据第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一物理节点;将所述每个第一特征值发送到对应的所述第一物理节点进行查询;
接收来自所述n个第一特征值对应的第一物理节点的至少一条响应消息,从所述响应消息中获取第一特征值对应的存储地址;
在所述接收的所有存储地址中获取第一存储地址;将所述第一存储地址指向的存储区域中存储的数据块指纹与所述数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二物理节点;将所述每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
结合第一方面,在第一方面的第一种可能方式中,在所述接收的所有存储地址中获取第一存储地址,包括:从所述响应消息中获取第一特征值对应的存储地址,统计所述响应消息中携带的每个存储地址的命中次数,选择命中次数最多的s个存储地址作为第一存储地址,其中,s大于等于1。
结合第一方面的第一种可能方式,在第二种可能方式中,还包括:按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址,当满足预设的存储条件时,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址指向的存储区域中。
结合第一方面的第二种可能方式,在第三种可能方式中,所述满足预设的存储条件包括:将所述新数据块存储到所述当前物理节点的缓存中,当所述当前物理节点的缓存中的数据达到第二预置阈值时,则满足所述预设的存储条件。
本发明实施例的第二方面提供一种集群***中数据处理装置,包括:
划分单元,用于将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹;其中,所述m为大于等于1的整数;
特征值获取单元,用于按照第一算法获取代表所述数据流的n个第一特征值,,其中,n为大于等于1且小于等于m的整数;
确定单元,用于根据第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一物理节点;
发送单元,用于将每个所述第一特征值发送到对应的所述第一物理节点上进行查询;
接收单元,用于接收来自所述第一物理节点的响应消息从所述响应消息中获取第一存储地址;
查询单元,用于将所述第一存储地址指向的存储区域中数据块指纹与所述接收的数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
更新单元,用于将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二物理节点;将所述每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
结合第二方面,在第一种可能的实现方式中,所述接收单元包括:
统计子单元,用于统计所述响应消息中携带的每个存储地址的命中次数;
地址获取子单元,用于根据所述统计子单元的统计结果选择命中次数最多的s个存储地址作为第一存储地址,其中,s大于等于1。
结合第二方面和第二方面的第一种可能方式,在第二种可能的实现方式中,还包括:
写入地址获取单元,用于按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址;
写入单元,用于当满足预设存储条件时,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域。
结合第二方面的第二种可能方式,第三种可能的实现方式中,所述写入单元具体用于,将所述新数据块存储到所述当前物理节点的缓存中,当所述当前物理节点的缓存中的数据达到第二预置阈值时,则满足所述预设的存储条件,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域。
本发明实施例第三方面还提供一种集群***中的数据处理装置,包括处理器,存储器,总线,所述处理器、存储器通过总线进行相互通信;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的所述程序;
所述处理器用于执行所述存储器中的所述程序;
其中所述程序包括:
划分单元,用于将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹;其中,所述m为大于等于1的整数;
确定单元,用于根据第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一物理节点;
发送单元,用于将每个所述第一特征值发送到对应的所述第一物理节点上进行查询;
接收单元,用于接收来自所述第一物理节点的响应消息从所述响应消息中获取获取第一存储地址;
查询单元,用于将所述第一存储地址指向的存储区域中数据块指纹与所述接收的数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
更新单元,用于将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二物理节点;将所述每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
结合第三方面,在第一种可能的实现方式中,所述接收单元包括:
统计子单元,用于从所述响应消息中获取第一特征值对应的存储地址,统计所述响应消息中携带的每个存储地址的命中次数;
地址获取子单元,用于根据所述统计子单元的统计结果选择命中次数最多的s个存储地址作为第一存储地址,其中,s大于等于1。
结合第二方面和第二方面的第一种可能方式,在第二种可能的实现方式中,还包括:
写入地址获取单元,用于按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址;
写入单元,用于当满足预设存储条件时,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域。
结合第二方面的第二种可能方式,第三种可能的实现方式中,所述写入单元具体用于,将所述新数据块存储到所述当前物理节点的缓存中,当所述当前物理节点的缓存中的数据达到第二预置阈值时,则满足所述预设的存储条件,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域。
本发明实施例第四方面提供了一种执行数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于:
将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹,按照第一算法获取代表所述数据流的n个第一特征值;其中,所述m为大于等于1的整数,n为大于等于1且小于等于m的整数;
根据第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一物理节点;将所述每个第一特征值发送到对应的所述第一物理节点进行查询;
接收来自所述n个第一特征值对应的第一物理节点的至少一条响应消息,从所述响应消息中获取第一特征值对应的存储地址;
在所述接收的所有存储地址中获取第一存储地址;将所述第一存储地址指向的存储区域中存储的数据块指纹与所述数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二物理节点;将所述每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
本发明实施例中,在对接收的数据流进行重复数据查询的时候,根据代表数据流的第一特征值,确定每个第一特征值在所述集群***中对应的第一物理节点,然后将代表数据流的第一特征值发送到确定的物理节点上进行重复数据查询,所确定的进行重复数据查询的物理节点不会因为集群***中节点数的增加而增加,因此不会因为集群***中节点数的增加而使每个节点的计算量也随之增加,有效提高了集群***的重删性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种集群***中数据处理方法的实施例的流程图;
图2为本发明实施例提供的物理节点接收到数据流之后进行分块和抽样的示意图;
图3为本发明实施例提供的一种物理节点内部结构示意图;
图4为本发明提供的另一种集群***中数据处理方法实施例的流程图;
图5为本发明提供的另一种集群***中数据处理方法实施例的流程图;
图6为本发明实施例提供的另一种物理节点内部结构的示意图;
图7为本发明提供的另一种集群***中数据处理方法实施例的流程图;
图8为本发明实施例提供的一种数据迁移的示意图;
图9为本发明实施例所提供的一种集群***中的数据处理装置的结构图;
图10为发明实施例所提供的另一种集群***中的数据处理装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例可应用于存储的集群***中,集群***中包括多个物理节点。其中,具有重删引擎的物理节点可以作为本发明实施例的执行主体,在接收到重删任务后执行本发明实施例的方法。
图1为本发明集群***中数据处理方法一个实施例的流程图,如图1所示,本实施例的方法可以包括:
步骤10,将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹;其中,所述m为大于等于1的整数;
在集群***中,只要物理节点上安装有执行本发明实施例的数据处理方法的装置,则都可以作为执行集群重删任务的节点。
当前物理节点接收到数据流之后,将数据流中的数据进行划分得到m个数据块,获取每个数据块的指纹。
步骤11,按照第一算法获取代表所述数据流的n个第一特征值;n为大于等于1且小于等于m的整数;
其中,通过预先设定的算法获取代表所述数据流的n个第一特征值;其中,为了描述方便,将获取代表数据流的第一特征值的算法称为第一算法,将代表所接收数据流的特征值称为第一特征值;
所述的第一算法本发明实施例并不限定,只要能获取代表所述数据流的第一特征值都可以,例如,直接从划分得到的数据块中进行抽样,将抽取得到的n个数据块计算其特征值,将计算得到的特征值作为代表所接收的数据流的特征值。
可选地,为了使抽样的数据更均匀,本发明实施例按照第一算法获取代表所述数据流的n个第一特征值可以包括下面的步骤:
将根据接收到的数据流的得到的数据块的指纹进行分组而得到n个第一指纹分组,每个第一指纹分组包括至少两个所述数据块的指纹;
针对每个所述第一指纹分组,获取代表每个指纹分组的第一特征值,从而得到n个第一特征值。
其中,如果n等于1的话,说明将接收的数据流所得的数据块对应的指纹做了一个第一指纹分组,从划分得到的数据块对应的指纹中,直接抽样一个指纹作为第一指纹分组的第一特征值。
本发明实施例可以将多个连续的数据块组成一个第一指纹分组,当然,为获取第一指纹分组的数据块划分方法有多种,本实施例不做限定。
如按照本发明实施例中讲到的通过对数据流划分数据块,然后将数据块对应的指纹进行分组的方式来获得第一特征值的话,相应的,从每个指纹分组中获取一个第一特征值的方法也可以多种,只要第一特征值能代表所对应的第一指纹分组就可以;例如:可以通过选择数据块指纹中最大的一个指纹作为第一特征值;或者,从一个第一指纹分组中随机选取一个或多个数据块的指纹信息作为第一特征值,本发明实施例在此不做限定。
本实施例中也可以采用选取第一指纹分组中所有数据块指纹信息中,指纹最小的值也就是最小指纹,作为代表该最小指纹所属的指纹分组的第一特征值。
步骤12,根据第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一物理节点;
本发明实施例中,为了描述方便,将确定的第一特征值所对应的物理节点称为第一物理节点,确定第一物理节点的算法称为第二算法;如果一个第一特征值对应一个第一物理节点的话,n个第一特征值可以对应n个第一物理节点,当然并不限于此;
第二算法也可以有多种,例如:对第一特征值执行开方取整运算直到值小于m,对最后结果进行取整后,得到对应的第一物理节点。
本实施例中采用的第二算法还可以是:将第一特征值对集群***中所有的物理节点的个数取模,得到第一特征值在所述集群***中对应的第一物理节点。
步骤13,将每个所述第一特征值发送到对应的所述第一物理节点上进行查询;接收来自所述n个第一特征值对应的第一物理节点的至少一条响应消息,从所述响应消息中获取第一存储地址;
本发明实施例中,集群***中的每个或者大多数的物理节点都存储有索引表,索引表中存储了特征值和所述特征值所代表的已经存储的数据块所在的存储地址之间的对应关系;所述索引表按照预先设定的策略存储在所述集群***中的物理节点上,其中,不同的存储地址指向的存储区域中存储有数据块以及数据块对应的指纹信息。
需要说明的是:每个物理节点上的索引表可以是一个完整的索引表,包括了集群***中已存储的数据的所有特征值和所述特征值所代表的已经存储的数据块所在的存储地址之间的对应关系,也可以是按照设定的策略,在每个物理节点上存储有完整的索引表的一部分,以减少在物理节点上查询重复块时的计算量,本实施例中可以采用后者的方式,索引表中的每一项索引是如何存储到物理节点中将在后面详细描述。
本发明实施例中按照设定的策略将索引表保存到物理节点上,某个物理节点的索引表中的数据和这个物理节点上的数据并没有直接关系,索引表只是按照设定的分配策略存储到某个物理节点而已。
具体实现中,由于一个存储地址对应的存储区域可能会有多个分组的数据,每个组选取一个特征值的话,就会出现一个存储地址对应多个不同特征值的情况,因此索引表中同一个存储地址可能会对应多个不同的特征值,但同一个特征值对应一个存储地址。当多个第一特征值在索引表中进行查询时,就很可能得到多个对应的存储地址,从与第一特征值对应的存储地址中选择出第一存储地址时,可以预设选择第一存储地址的规则,用户可以根据实际情况设定,本实施例不做限定。
比如,可以从所述响应消息中获取第一特征值对应的存储地址,统计所述响应消息中携带的每个存储地址的命中次数,选择命中次数最多的s个存储地址作为所述第一存储地址,其中,s大于等于1。
在具体实现中,当第一物理节点接收到携带有第一特征值的查询请求时,会根据本地存放的索引表来匹配和第一特征值相同的特征值,将匹配到的特征值对应的存储地址,通过响应消息反馈给发送查询请求的物理节点。每个第一特征值会对应一个第一物理节点,因此会有多个第一物理节点接收到查询请求,并根据查询请求在本地进行查询。若查询到存储地址则返回给发送查询请求的节点,在发送查询请求的节点,可能会收到由不同第一物理节点返回的多个存储地址;若没有查到,就反馈一个空值,例如0,或者不反馈,具体如何表示没有查询到,可以由用户自己设置。
若在将所述每个第一特征值发送到对应的所述第一物理节点上进行查询之后,若没有接收到所述第一物理节点反馈的存储地址的情况下,则将所述数据流划分得到的数据块作为不重复数据块,然后执行步骤15。
步骤14,将所述第一存储地址指向的存储区域中已经存储的数据块指纹与所述接收的数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
其中,具体实现时,当前物理节点将收到的数据流进行处理后的数据块和指纹信息存放在缓存中,在进行数据块指纹比较时,可采用多种方法,例如:方法一,可以采用将第一存储地址对应的存储区域中的数据块加载到当前物理节点的缓存中,然后与所述接收到的数据流对应的数据块的指纹进行比较,进行重复块查询;方法二,向所述第一存储地址指向的物理节点发送查询指令,所述查询指令中携带所述数据流划分得到的m个数据块的指纹,接收所述第一存储地址指向的物理节点返回的查询结果。方法一可以使当前节点缓存中的存储的指纹信息都能参与重复数据查询,能够进一步提高重删率。
所述索引表中的索引项也可以在初始化时,用户可以根据***中已经存储的数据,预先在索引表中存储了已知的特征值和已知的特征值所代表的数据块存储地址之间的对应关系;本发明实施例对具体方式不做限定。所述的索引表在初始化时也可以为空,而在重复数据查询时,将得到的新数据块存储到存储***中的同时,将得到的特征值和特征值所代表的新数据块的存储地址***到索引表中,使索引表不断更新,因此,本发明实施例还包括:
步骤15,将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二物理节点;将所述每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
本发明实施例中,将查询到的不重复数据块作为新数据块,当查询到的新数据块达到一定的大小而需要进行存储时,新数据块在***中的存储位置需要在索引表中体现,因此索引表需要不断更新。在新数据块得到存储地址后,获取代表新数据块的特征值,为了描述方便,称为第二特征值;按照第二算法来确定第二物理节点;将每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点上,从而实现集群***中的索引项得到不断更新。
其中,获得第二特征值的方法,可以是和获得第一特征值的算法相同,例如采用第一算法;保证第一特征值集合是第二特征值集合的子集,或者第二特征值集合是第一特征值集合的情况下,也可以采用其他算法。
下面结合具体实现方式的举例,对本实施例的方案进行详细说明。附图2为当前物理节点接收到数据流之后进行分块和抽样的示意图。本实施例中多个数据块在一起可以被看做是一个大数据块(super-chunk),因此在具体实现中,为了使分组更准确,采用对数据块对应的指纹进行分组,在一个分组中的指纹所对应的数据块就是一个大数据块,从每一个指纹分组中获取一个第一特征值,第一特征值也可称为大数据块特征值(super-chunkID,SID),当然,也可以通过直接对数据流划分得到的数据块进行分组,参见图2,当前物理节点接收到数据流之后,将接收的数据划分为数据块,几个连续的数据块被划分为一个分组,即附图中的super-chunk,分组的方式可以采用变长分块或定长分块等方式,本实施例不做限定,从每个super-chunk中获取一个数据块,所获取的数据块对应的指纹作为代表每个super-chunk的SID。
以集群***中的物理节点为例,物理节点的内部结构举例示意图可以参见图3。每个物理节点中可以包括缓存以及存储区域,具体实现中,为了提高查询的性能,物理节点的缓存中存储有索引表,索引表中存储有第二特征值和所述第二特征值所代表的已经存储的数据块的存储地址之间的对应关系。如前面所述,每个物理节点上的索引表可以是一个完整的索引表,包括了集群***中所有第二特征值和所述第二特征值所代表的已经存储的数据块的指纹的存储地址之间的对应关系,也可以是按照设定的策略,在每个物理节点上存储有完整的索引表的一部分,在具体实现中,为减少内存的使用,可以采用后一种方式,按照预先设定的策略,在每个物理节点上存储有完整的索引表的一部分,例如:针对特征值A为例,采用A与集群***中所有物理节点的总数取模来确定一个物理节点,将A与A所代表的已经存储的数据块的存储地址之间的对应关系存储到确定的物理节点上;而在做重复数据查询时,将得到的第一特征值与集群***中物理节点的总数取模,得到与第一特征值对应的第一物理节点。
每个物理节点上包括了存储装置使每个物理节点具有长时间保存数据的能力,存储装置可以是磁盘也可以是其他存储装置,例如SSD等,每个物理节点上的存储装置被称为单一实例库(single instance repository,SIR),图3中以磁盘为例。物理节点的存储装置中有很多存储区域,每个存储区域在具体实现上可以形象地认为是一个存储数据的容器(container),每个存储容器会有一个在集群***中独一无二的编号,我们可以称为是存储容器编号(container ID,CID),这个容器编号表明了这个存储容器在集群***中的位置,例如:在集群***中哪个物理节点上的哪个存储区域。那么,前面所述的已经存储的数据块的存储地址在具体实现中,就表现为CID,表明了数据块存储在哪个物理节点上的哪个存储区域,而前面提到的索引表中特征值和特征值所代表的已经存储的数据块的存储地址之间的对应关系在具体实现中就可以体现为SID和CID之间的对应关系;每个存储区域中除了存储数据块,还可以存储数据块对应的指纹信息。每个物理节点的缓存中还可以包括缓冲存储区域(container buffer),用于暂时存储判断得到的新数据块。
现有技术中抽样的指纹信息发到所有节点上去查询,这样当集群***中节点数增加的情况下,计算量会越来越大。实验表明,当集群***中的节点数超过16个时,***重删性能会大幅度下降。本发明实施例中,不同于现有技术将抽样的特征值发到所有节点上去查询,而是对接收的数据流进行重复数据查询的时候,会根据代表数据流的第一特征值,确定每个第一特征值在所述集群***中对应的第一物理节点,然后将代表数据流的第一特征值发送到确定的物理节点上进行重复数据查询,重复数据的查询流程不会因为集群***中节点数的增加而改变,因此不会因为集群***中节点数的增加而使每个节点的计算量也随之增加。
参见图4,本发明还提供另一种集群数据处理方法的实施例,和附图1对应的集群***中数据处理方法不同的是,在集群***中的重复数据查询结束后,需要确定接收的数据流中是否有新数据块并将新数据块进行存储,其他步骤和附图1对应的实施例相同,因此,在附图1对应的实施例的基础上,还可以进一步包括:
步骤46,按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址;
其中,新数据块的存储策略可以由用户预先设置,可以有多种策略,例如:策略一,先获取集群***中各物理节点的负载信息,根据负载信息来选择数据迁入的物理节点,从选择的数据迁入物理节点中获取所述新数据块以及新数据块的指纹写入的存储地址,这样可以使各个物理节点的负载均衡;策略二,也可以不对负载信息进行判断,直接从当前物理节点中获取新数据块以及新数据块的指纹写入的存储地址,这种方式可以减少节点间交换。因此,具体的存储策略用户可以根据实际情况进行设置,本发明实施例不做限制。
如果采用策略一,根据负载信息来进行数据写入的方式有多种,例如,可以预先设定一个阈值,可以称为第一预设阈值,当集群***中所有物理节点平均负载值超过预设的第一预设阈值时,从负载值低于所述平均负载值的物理节点中选择数据写入节点,从所说数据写入节点中获取所述新数据块以及所述新数据块的指纹写入的存储地址,当所述集群***中所有物理节点平均负载值小于或等于所述第一预设阈值时,从所述当前物理节点中获取所述新数据块以及所述新数据块的指纹的存储地址。
另一种根据负载值来进行数据迁移的方法,可以包括:
A1:获得所述集群***中物理节点的负载信息,当所述集群***中任意两个物理节点间的负载差别大于第一阈值时,从负载相对较小的物理节点中选择数据迁入节点,从所说数据迁入节点中获取所述新数据块以及所述新数据块的指纹写入的存储地址;
A2:当所述集群***中任意两个物理节点间的负载差别小于或等于所述第一阈值时,从所述当前物理节点中获取所述新数据块以及所述新数据块的指纹的存储地址。
其中,对负载信息的获取可以是由当前物理节点,也可以是第三方获取负载信息后,当前物理节点直接从第三方获取负载信息。
步骤47,当满足预设存储条件时,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域;
可选地,满足预设的存储条件可以包括:将所述新数据块存储到所述当前物理节点的缓存中,当所述当前物理节点的缓存中的数据达到第二预置阈值时,则满足所述预设的存储条件。
如前面附图3举例所述,在每个物理节点上可以包括container buffer,用于暂时存储判断得到的新数据块,当container buffer中已经存储数据大小超过第二阈值时,可以看作是满足预设的存储条件,用户可以根据实际情况来设定第二阈值,本实施例不做限定。
其中,本发明实施例中在获取到新数据块的存储地址之后,将第二特征值和第二特征值所代表的数据块的存储地址之间的对应关系存储到对应第二物理节点的具体时机,本发明实施例不做限定。
附图4所对应的实施例所提供的集群***中的数据处理方法,在将新数据块进行存储时,实现了负载均衡,提高了***性能。
在图1对应的数据处理方法的基础上,参见图5,针对集群***中包含虚拟节点的情况,本发明提供另一个实施例,集群***中物理节点从逻辑上划分为至少一个虚拟节点,每个物理节点上存储有包括集群***中所有虚拟节点和所有物理节点之间的对应关系(VPT),其中,本发明实施例假设每个物理节点从逻辑上划分为至少一个虚拟节点,重复数据查询的方法包括:
步骤50,将当前物理节点收到的数据流进行处理后得到m个数据块,获取每个数据块的指纹;
步骤51,按照第一算法获取代表所述数据流的n个第一特征值;n为大于等于1且小于等于m的整数;
步骤50和51中对数据流的处理方式以及第一特征值的获取方式和图1对应的实施例方式相同,在此不再赘述。
步骤52,按照第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一虚拟节点;根据查询所述当前物理节点上的虚拟节点和物理节点之间的对应关系,得到所述第一虚拟节点对应的第一物理节点;每个第一特征值对应一个第一虚拟节点,而一个第一虚拟节点有可能同时对应几个第一特征值;
其中,为表述方便,将第一特征值确定的对应的虚拟节点称为第一虚拟节点;集群存储***中每个物理节点可以被划分为至少一个虚拟节点,具体的方案实现中,每个物理节点可以划分为两个或者更多的虚拟节点,每个虚拟节点有一个唯一的编号,可以在每个物理节点上保存一个集群***中的虚拟节点和物理节点的对应关系,表明了虚拟节点位于哪个物理节点上;
步骤53,将每个所述第一特征值发送到对应的第一物理节点中的第一虚拟节点上进行查询,接收来自所述第一物理节点的响应消息,从所述响应消息中获取第一特征值对应的存储地址;在所述第一特征值对应的存储地址中选取第一存储地址。
其中,本发明实施例中,集群***中的每个或者大多数的物理节点都存储有索引表,索引表中存储了预先已经得到的特征值和所述特征值所代表的已经存储的数据块所在的存储地址之间的对应关系;所述索引表按照预先设定的策略存储在所述集群***中的物理节点上,当物理节点被划分为虚拟节点后,索引表可以存储到物理节点上所划分出的虚拟节点上,索引表中每一项索引时如何存储到虚拟节点中将在后面详细描述。
数据块集群***中没有虚拟节点的情况下,索引表中的存储地址会具体到哪个物理节点上的哪块存储区域,当集群***中有虚拟的情况,存储地址会具体到哪个虚拟节点中的哪块存储区域。
同样,每个虚拟节点上的索引表可以是一个完整的索引表,包括了集群***中所有特征值和所述特征值所代表的已经存储的数据块的指纹的存储地址之间的对应关系;也可以按照设定的策略,在每个虚拟节点上存储有完整的索引表的一部分,以减少内存的使用。
其中,按照第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一虚拟节点,同样,所述第二算法也有多种,只要能使一个第一特征值对应到集群***中唯一一个虚拟节点就可以,例如:针对第一特征值A为例,数据块而在做重复数据查询时,将得到的第一特征值与集群***中所有虚拟节点的个数取模,得到与第一特征值对应的第一虚拟节点,然后根据虚拟节点和物理节点的对应关系确定第一虚拟节点对应的第一物理节点,找到了第一物理节点,我们就找到了第一物理节点上的第一虚拟节点。
每个虚拟节点上包括了很多存储区域,每个存储区域在具体实现上可以形象地认为是一个存储数据的container,每个container会有一个在集群***中的唯一编号CID,这个编号表明了存储区域在集群***中哪个虚拟节点上的哪个存储区域。每个存储区域中除了存储数据块,还可以存储数据块对应的指纹信息。
每个物理节点的缓存中还可以包括缓冲存储区域(container buffer),用于暂时存储判断得到的新数据块。
和附图1对应的实施例类似,具体实现中,索引表中同一个存储地址可能对应多个不同的特征值,但一个特征值对应一个存储地址。当多个第一特征值在索引表中进行查询,就很可能得到多个对应的存储地址,从与第一特征值对应的存储地址中选择出第一存储地址时,可以预先设置选择第一存储地址的规则,用户可以根据实际情况设定,可参考附图1对应的方法中选择第一存储地址的描述,本实施例不做限定。
本发明实施例中,当物理节点接收到查询请求后,会在本地的虚拟节点上进行查询,若查询到存储地址,则由物理节点将查询结果反馈给发送查询请求的节点。在具体实现中,物理节点接收到查询请求后,在本地的虚拟节点上进行查询,会将查询结果放到响应消息中反馈给发送查询请求的物理节点,若查询到,将查询到存储地址放入响应消息中,若没有查到则在响应消息中反馈一个空值;在具体实现中,在没有查询到的情况下,也可以不反馈。具体如何实现,由用户根据实际情况设置。
若当前物理节点没有接收来自所述n个第一特征值对应的第一物理节点返回的存储地址,则将所述数据流划分得到的数据块作为不重复数据块。
步骤54,将所述第一存储地址指向的存储区域中已经存储的数据块指纹与所述接收的数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
其中,具体实现时,当前物理节点将收到的数据流进行处理后的数据块和指纹信息存放在缓存中,在进行数据块指纹比较时,可采用多种方法,可参见附图1对应的方法中的描述。
步骤55,将获取到的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二虚拟节点;根据虚拟节点和物理节点之间的对应关系,确定第二虚拟节点所在的第二物理节点,将每个所述第二特征值和所述第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点上的第二虚拟节点中。
以集群***中的物理节点为例,物理节点被划分为两个虚拟节点为例,物理节点的内部结构举例示意图可以参见附图6。附图6中,一个物理节点(physical node,PN)划分为两个虚拟节点(virtual node,VN),一个虚拟节点上包括了索引表和具有长时间存储数据能力的存储装置。每个物理节点上同时存储有虚拟节点和物理节点的对应表(VPT)。
现有技术中会将抽样的指纹信息发送到所有节点上去查询,假设在一个节点上进行查询的计算量为z的话,m个物理节点的话,计算量是z乘以m,而本实施例所提供的具有虚拟节点的集群***的重删方法,在对接收到的数据流进行重复数据查询的时候,根据代表数据流的第一特征值,确定每个第一特征值在所述集群***中对应的第一物理节点,然后将代表数据流的第一特征值发送到确定的虚拟节点上进行重复数据查询,所确定的虚拟节点不会因为集群***中物理节点的增加而增加,重复数据的查询流程不会因为集群***中节点数量的增加而改变,有效提高了集群***的重删性能。
参见附图7,本发明还提供一种集群***中数据处理方法的实施例,和附图5对应的集群***中数据处理方法不同的是,在集群***中的重复数据查询结束后,需要确定接收的数据流中是否有新数据块并将新数据块进行存储,其他步骤和附图5对应的实施例相同,因此,在附图5对应的实施例的基础上,还可以进一步包括:
步骤76,按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址;
其中,新数据块的存储策略可以有用户预先设置,可以有多种,可以参见图4对应实施例中对新数据块以及所述新数据块对应的指纹写入存储地址如何选择的描述,所不同的是,当确定了数据迁入的物理节点之后,再考虑物理节点内部的虚拟节点的负载,从选择的数据迁入物理节点中的负载较低的虚拟节点中获取所述新数据块以及新数据块的指纹写入的存储地址。
步骤77,当满足预设存储条件时,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域;
如前面附图6举例所述,在每个物理节点上可以包括container buffer,用于暂时存储判断得到的新数据块,当container buffer中已经存储数据大小超过第二阈值时,可以看作是满足预设的存储条件,用户可以根据实际情况来设定第二阈值,本实施例不做限定。
其中,在获取到新数据块的存储地址之后,将第二特征值和第二特征值所代表的数据块的存储地址之间的对应关系存储到对应第二物理节点的具体时机,本发明实施例不做限定。
附图7对应的实施例所提供的集群***中的数据处理方法,对虚拟节点上的索引表不断更新,进一步提高了查找到重复数据的概率。
参见附图8,在集群***中包括虚拟节点的基础上,提出了集群***的物理节点数据迁移的方案。例如,附图8中,描述了一个物理节点被扩展为两个物理节点的情况下,进行数据迁移的示意图。
当满足数据迁移条件时,将物理节点PN1中的其中一个虚拟节点整体搬移到另一个的物理节点PN2上,包括:搬移虚拟节点VN1上的索引表以及归属VN1的单一实例库中的数据到PN2;更新集群***中被迁移虚拟节点和物理节点的对应关系,并通知所述集群***中其他物理节点更新所述被迁移节点和物理节点的对应关系。新增的PN2中会存放一个更新后的集群***中所有虚拟节点和所有物理节点之间的对应关系。
其中,数据迁移条件,可以是集群***中的物理节点进行扩容时,需要往新增的物理节点中迁入数据;也可以是为了负载均衡,将负载重的物理节点上的数据迁移到负载轻的物理节点中,本发明实施例对数据迁移的条件不做限定。
当集群***中不划分虚拟节点,对物理节点中的数据迁移时,由于数据块及数据块的指纹存储地址发生了变化,需要对数据块的逻辑地址和CID的对应关系,且所涉及的CID中的数据可能会存放在很多物理节点上,因此,计算量非常大;而利用本发明实施例所提供的集群***,在进行数据迁移的时候,因为是虚拟节点上的数据整体搬移,索引表中的CID表示的是数据存储在虚拟节点上的位置,因此,只要虚拟节点的标识不改变,CID并不需要修改,而仅修改所涉及的虚拟节点和物理节点之间的对应关系就可以,简化了扩展节点时的操作流程,计算量将大大减小。
本发明实施例应用于存储的集群***中,集群***中包括多个存储节点,本发明实施例提供了集群***中的数据处理装置用于执行前面所描述的集群***中数据处理方法,该装置可以设置在集群***中物理节点中,或者设置在集群***的管理器中,也可以作为单独的一个节点设置在集群***中,本发明实施例对该数据处理装置的具体设置位置不做限定。
参见附图9,本发明实施例提供一种集群***中的数据处理装置900,包括:
划分单元90,用于将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹;其中,所述m为大于等于1的整数;
特征值获取单元91,用于按照第一算法获取代表所述数据流的n个第一特征值;n为大于等于1且小于等于m的整数;
其中,为获取第一特征值的第一算法,参见前面方法中的描述,在此不再赘述。
确定单元92,用于根据第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一物理节点;
其中,确定单元92实现确定第一物理节点的方式很多,例如,对第一特征值执行开方取整运算直到值小于m,对最后结果进行取整后,得到对应的第一物理节点;也可以将所述每个第一特征值对所述集群***中所有物理节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一物理节点;本发明实施例可以采用后者,因此:
确定单元92具体用于将所述每个第一特征值对所述集群***中所有物理节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一物理节点;
发送单元93,用于将每个所述第一特征值发送到对应的所述第一物理节点上进行查询;
集群***中的其他节点接收到发送单元93发送的查询请求后,会根据本地存放的索引表来查询是否有和第一特征值对应的存储地址,本发明实施例中,集群***中的每个或者大多数的物理节点都存储有索引表,索引表中存储了特征值和所述特征值所代表的已经存储的数据块所在的存储地址之间的对应关系;所述索引表按照预先设定的策略存储在所述集群***中的物理节点上,其中,不同的存储地址指向的存储区域中存储有数据块以及数据块对应的指纹信息。
接收单元94,用于接收来自所述n个第一特征值对应的第一物理节点的至少一条响应消息,从所述响应消息中获取第一存储地址;
其中,接收单元94可以包括:统计子单元941,用于从所述响应消息中获取第一特征值对应的存储地址,统计所述响应消息中携带的每个存储地址的命中次数;地址获取子单元942,用于根据统计子单元941的统计结果,选择命中次数最多的s个存储地址作为第一存储地址,其中,s大于等于1;
查询单元95,用于将所述第一存储地址指向的存储区域中已经存储的数据块指纹与所述接收的数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
更新单元96,用于将通过所述查询单元95获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二物理节点;将所述每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
更新单元96获取代表所述新数据块的第二特征值的算法,可以是与获取第一特征值相同的第一算法,但并不限于此。
其中,每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系作为索引表中的一个索引项,本发明实施例中更新单元96按照设定的策略将索引表保存到物理节点上,某个物理节点的索引表中的数据和这个物理节点上的数据并没有直接关系,索引表只是按照设定的分配策略存储到某个物理节点而已。关于索引表的描述可以参见前面方法的描述,在此不再赘述。
其中,参见前面方法的描述,特征值获取单元91在具体实现时按照第一算法获取代表所属数据流的n个第一特征值的方式有多种,例如,特征值获取单元91可以包括:指纹分组子单元911和获取子单元912;
指纹分组子单元911,用于将所述数据流m个数据块的指纹进行分组而得到n个第一指纹分组,每个第一指纹分组包括至少两个数据块的指纹;
获取子单元912,用于获取代表每个指纹分组的第一特征值,从而得到所述n个第一特征值。
其中,获取子单元912具体可以用于从所述每个指纹分组中,选取最小的指纹作为代表该最小指纹所属的指纹分组的第一特征值;
其中,集群***中的数据处理装置的接收单元94还可以用于,例如,在将所述每个第一特征值发送到对应的所述第一物理节点上进行查询之后,若没有接收到所述第一物理节点反馈的存储地址的情况下,则将所述数据流划分得到的数据块作为不重复数据块,触发更新单元96。
本发明实施例所提供的装置,可以设置于集群***中的存储节点上的控制器中,用于执行前面描述数据处理的方法,各个单元功能的详细描述可参见方法实施例中的描述,在此不再赘述。
通过本发明实施例所提供的集群***中的数据处理装置,在对接收到数据流进行重复数据查询的时候,会根据代表数据流的第一特征值,确定每个第一特征值在所述集群***中对应的第一物理节点,然后将代表数据流的第一特征值发送到确定的物理节点上进行重复数据查询,重复数据的查询流程不会因为集群***中节点数的增加而改变,因此不会因为集群***中节点数的增加而使每个节点的计算量也随之增加。
当查询单元95查询到不重复的数据,可以将这些不重复的数据看做新数据块,将新数据块存储到单一实例库中,因此,本发明实施例还可以包括:
写入地址获取单元97,用于按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址;
写入单元98,用于当满足预设存储条件时,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域;
其中,写入地址获取单元97的新数据块的存储策略可以有多种,例如,写入地址获取单元97包括:
负载信息获取子单元971,用于获取集群***中各物理节点的负载信息;
地址选择子单元972,用于根据负载信息来选择数据迁入的物理节点,从选择的数据迁入物理节点中获取所述新数据块以及新数据块的指纹写入的存储地址;
其中,对于地址选择子单元972可以根据负载信息来选择新数据写入的存储地址的方法有多种,例如:根据负载信息获取子单元971所获取的负载信息判断集群***中所有物理节点平均负载值超过预设的第一预设阈值时,从负载值低于所述平均负载值的物理节点中选择数据写入节点,从所说数据写入节点中获取所述新数据块以及所述新数据块的指纹写入的存储地址,当所述集群***中所有物理节点平均负载值小于或等于所述第一预设阈值时,从所述当前物理节点中获取所述新数据块以及所述新数据块的指纹的存储地址。
当然,对于写入地址获取单元97的新数据块的存储策略,也可以不对负载信息进行判断,直接从当前物理节点中选择地址,因此,写入地址获取单元97可以具体用于从当前物理节点中获取新数据块以及新数据块的指纹写入的存储地址。
其中,写入单元98可以用于,例如:将所述新数据块存储到所述当前物理节点的缓存中,当所述当前物理节点的缓存中的数据达到第二预置阈值时,则满足所述预设的存储条件,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域。
针对集群***中包含虚拟节点的情况,集群***中物理节点从逻辑上划分为至少一个虚拟节点,每个物理节点上包括集群***中所有虚拟节点和所有物理节点之间的对应关系(VPT),其中,本发明实施例假设每个物理节点从逻辑上划分为至少一个虚拟节点,那么:
确定单元92在具体可以用于,按照第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一虚拟节点;根据查询所述当前物理节点上的虚拟节点和物理节点之间的对应关系,得到所述第一虚拟节点对应的第一物理节点;
更新单元96具体用于将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二虚拟节点;根据所述虚拟节点和物理节点之间的对应关系,确定第二虚拟节点所在的第二物理节点,在获取到新数据块的存储地址之后,将每个所述每个第二特征值和所述第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点上的第二虚拟节点中。
确定单元92实现按照第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一虚拟节点的功能时,可通过将所述每个第一特征值对所述集群***中所有虚拟节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一虚拟节点。
针对集群***中包含虚拟节点的情况,执行集群***中物理节点上的数据迁移方案,写入单元98还用于当满足数据迁移条件时,将需要迁移数据的物理节点中至少一个虚拟节点整体迁移到目标物理节点;所述更新单元96还用于更新所述当前物理节点上被迁移虚拟节点和物理节点之间的对应关系,并通知所述集群***中其他物理节点更新所述被迁移节点和物理节点的对应关系。
数据迁移条件用户可以预先设置,可以是集群***中的物理节点进行扩容时,需要往新增的物理节点中迁入数据;也可以是为了负载均衡,将负载重的物理节点上的数据迁移到负载轻的物理节点中,本发明实施例对数据迁移的条件不做限定。
集群***中的数据处理装置可以实现对物理节点上的虚拟节点整体搬移,被迁移到新的物理节点上的虚拟节点的编号不会改变,索引表中的特征值对应的数据存储地址表示的是数据存储在虚拟节点上的位置,因此,只要虚拟节点的标识不改变,数据存储地址并不需要修改,而仅修改所涉及的虚拟节点和物理节点之间的对应关系就可以,简化了扩展节点时的操作流程,计算量将大大减小。
参见图10,本发明实施例还提供一种集群***中的数据处理装置100,该装置可以设置于集群***中的存储节点中,包括处理器101,存储器102,网络控制器103,磁盘控制器104,处理器101、主存储器102、网络控制器103和磁盘控制器104通过总线105相连;
其中,存储控制器102用于存储程序1021;
处理器101,用于执行主存储器102中的程序1021;
处理器101通过网络控制器103与集群***中的其他节点进行通信,通过磁盘控制器104与本地节点的具有长时间保存数据能力的存储装置,例如附图10中的磁盘,进行通信。其中,磁盘控制器104所控制的存储装置并不限制于磁盘,也可以是其他存储介质组成的装置;
其中,存储器102在具体实现中可以是主存储器,例如内存,具体的表现形式本发明实施例不做限定。
具体地,程序1021可以包括程序代码,所述程序代码包括计算机操作指令。
处理器102可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
参见附图9,程序1021可以包括:
划分单元90,用于将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹;其中,所述m为大于等于1的整数;
特征值获取单元91,用于按照第一算法获取代表所述数据流的n个第一特征值;n为大于等于1且小于等于m的整数;
其中,为获取第一特征值的第一算法,参见前面方法中的描述,在此不再赘述。
确定单元92,用于根据第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一物理节点;
其中,确定单元92实现确定第一物理节点的方式很多,例如,对第一特征值执行开方取整运算直到值小于m,对最后结果进行取整后,得到对应的第一物理节点;也可以将所述每个第一特征值对所述集群***中所有物理节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一物理节点;本发明实施例采用后者,因此:
确定单元92具体用于将所述每个第一特征值对所述集群***中所有物理节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一物理节点;
发送单元93,用于将每个所述第一特征值发送到对应的所述第一物理节点上进行查询;
集群***中的其他节点接收到发送单元93发送的查询请求后,会根据本地存放的索引表来查询是否有和第一特征值对应的存储地址,本发明实施例中,集群***中的每个或者大多数的物理节点都存储有索引表,索引表中存储了特征值和所述特征值所代表的已经存储的数据块所在的存储地址之间的对应关系;所述索引表按照预先设定的策略存储在所述集群***中的物理节点上,其中,不同的存储地址指向的存储区域中存储有数据块以及数据块对应的指纹信息。
接收单元94,用于接收来自所述n个第一特征值对应的第一物理节点的至少一条响应消息,从所述响应消息中获取第一存储地址;
其中,接收单元94可以包括:统计子单元941,用于从所述响应消息中获取第一特征值对应的存储地址,统计所述响应消息中携带的每个存储地址的命中次数;地址获取子单元942,用于根据统计子单元941的统计结果选择命中次数最多的s个存储地址作为第一存储地址,其中,s大于等于1;
查询单元95,用于将所述第一存储地址指向的存储区域中已经存储的数据块指纹与所述接收的数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
更新单元96,用于将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二物理节点;将所述每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
更新单元96获取代表所述新数据块的第二特征值的算法,可以是与获取第一特征值相同的第一算法,但并不限于此。
其中,每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系作为索引表中的一个索引项,本发明实施例中更新单元96按照设定的策略将索引表保存到物理节点上,某个物理节点的索引表中的数据和这个物理节点上的数据并没有直接关系,索引表只是按照设定的分配策略存储到某个物理节点而已。关于索引表的描述可以参见前面方法的描述,在此不再赘述。
其中,参见前面方法的描述,特征值获取单元91在具体实现时按照第一算法获取代表所属数据流的n个第一特征值的方式有多种,例如,特征值获取单元91可以包括:指纹分组子单元911和获取子单元912;
指纹分组子单元911,用于将所述数据流m个数据块的指纹进行分组而得到n个第一指纹分组,每个第一指纹分组包括至少两个数据块的指纹;
获取子单元912,用于获取代表每个指纹分组的第一特征值,从而得到所述n个第一特征值。
其中,获取子单元912具体可以用于从所述每个指纹分组中,选取最小的指纹作为代表该最小指纹所属的指纹分组的第一特征值;
其中,集群***中的数据处理装置的接收单元94还可以用于,例如,在将所述每个第一特征值发送到对应的所述第一物理节点上进行查询之后,若没有接收到所述第一物理节点反馈的存储地址的情况下,则将所述数据流划分得到的数据块作为不重复数据块,触发更新单元96。
本发明实施例所提供的装置,可以设置于集群***中的存储节点上的控制器中,用于执行前面描述数据处理的方法,各个单元功能的详细描述可参见方法实施例中的描述,在此不再赘述。
通过本发明实施例所提供的集群***中的数据处理装置,在对接收到数据流进行重复数据查询的时候,会将抽样的特征值发送到确定的物理节点上进行重复数据查询,重复数据的查询流程不会因为集群***中节点数的增加而改变,因此不会因为集群***中节点数的增加而使每个节点的计算量也随之增加。
当查询单元95查询到不重复的数据,可以将这些不重复的数据看做新数据块,将新数据块存储到单一实例库中,因此,本发明实施例还可以包括:
写入地址获取单元97,用于按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址;
写入单元98,用于当满足预设存储条件时,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域;
其中,写入地址获取单元97的新数据块的存储策略可以有多种,例如,写入地址获取单元97包括:
负载信息获取子单元971,用于获取集群***中各物理节点的负载信息;
地址选择子单元972,用于根据负载信息来选择数据迁入的物理节点,从选择的数据迁入物理节点中获取所述新数据块以及新数据块的指纹写入的存储地址;
其中,对于地址选择子单元972可以根据负载信息来选择新数据写入的存储地址的方法有多种,例如:根据负载信息获取子单元971所获取的负载信息判断集群***中所有物理节点平均负载值超过预设的第一预设阈值时,从负载值低于所述平均负载值的物理节点中选择数据写入节点,从所说数据写入节点中获取所述新数据块以及所述新数据块的指纹写入的存储地址,当所述集群***中所有物理节点平均负载值小于或等于所述第一预设阈值时,从所述当前物理节点中获取所述新数据块以及所述新数据块的指纹的存储地址。
当然,对于写入地址获取单元97的新数据块的存储策略,也可以不对负载信息进行判断,直接从当前物理节点中选择地址,因此,写入地址获取单元97可以具体用于从当前物理节点中获取新数据块以及新数据块的指纹写入的存储地址。
其中,写入单元98可以用于,例如:将所述新数据块存储到所述当前物理节点的缓存中,当所述当前物理节点的缓存中的数据达到第二预置阈值时,则满足所述预设的存储条件,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域。
针对集群***中包含虚拟节点的情况,集群***中物理节点从逻辑上划分为至少一个虚拟节点,每个物理节点上包括集群***中所有虚拟节点和物理节点之间的对应关系(VPT),其中,本发明实施例假设每个物理节点从逻辑上划分为至少一个虚拟节点,那么:
确定单元92在具体可以用于,按照第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一虚拟节点;根据查询所述当前物理节点上的虚拟节点和物理节点之间的对应关系,得到所述第一虚拟节点对应的第一物理节点;
更新单元96具体用于将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二虚拟节点;根据所述虚拟节点和物理节点之间的对应关系,确定第二虚拟节点所在的第二物理节点,在获取到新数据块的存储地址之后,将每个所述每个第二特征值和所述第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点上的第二虚拟节点中。
确定单元92实现按照第二算法确定所述n个第一特征值中的每个特征值在所述集群***中对应的第一虚拟节点的功能时,可通过将所述每个第一特征值对所述集群***中所有虚拟节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一虚拟节点。
针对集群***中包含虚拟节点的情况,执行集群***中物理节点上的数据迁移方案,写入单元98还用于当满足数据迁移条件时,将需要迁移数据的物理节点中至少一个虚拟节点整体迁移到目标物理节点;所述更新单元96还用于更新所述当前物理节点上被迁移虚拟节点和物理节点之间的对应关系,并通知所述集群***中其他物理节点更新所述被迁移节点和物理节点的对应关系。
数据迁移条件用户可以预先设置,可以是集群***中的物理节点进行扩容时,需要往新增的物理节点中迁入数据;也可以是为了负载均衡,将负载重的物理节点上的数据迁移到负载轻的物理节点中,本发明实施例对数据迁移的条件不做限定。
集群***中的数据处理装置可以实现对物理节点上的虚拟节点整体搬移,被迁移到新的物理节点上的虚拟节点的编号不会改变,索引表中的特征值对应的数据存储地址表示的是数据存储在虚拟节点上的位置,因此,只要虚拟节点的标识不改变,数据存储地址并不需要修改,而仅修改所涉及的虚拟节点和物理节点之间的对应关系就可以,简化了扩展节点时的操作流程,计算量将大大减小。
本发明实施例还提供一种数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于:
将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹,按照第一算法获取代表所述数据流的n个第一特征值;其中,所述m为大于等于1的整数,n为大于等于1且小于等于m的整数;
根据第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一物理节点;将所述每个第一特征值发送到对应的所述第一物理节点进行查询;
接收来自所述n个第一特征值对应的第一物理节点的至少一条响应消息,从所述响应消息中获取第一存储地址;将所述第一存储地址指向的存储区域中存储的数据块指纹与所述数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
将获取的不重复的数据块作为新数据块,获取代表所述新数据块的至少一个第二特征值;按照所述第二算法确定所述第二特征值中每个第二特征值对应的第二物理节点;将所述每个第二特征值和所述每个第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
本发明实施例所提供的进行数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (30)
1.一种集群***中数据处理方法,其特征在于,包括:
将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹,按照第一算法获取代表所述数据流的n个第一特征值;其中,所述m为大于等于1的整数,n为大于等于1且小于等于m的整数;
根据第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一物理节点;将所述每个第一特征值发送到对应的所述第一物理节点进行查询;
接收来自所述n个第一特征值对应的第一物理节点的响应消息,从所述响应消息中获取第一存储地址;
将所述第一存储地址指向的存储区域中存储的数据块指纹与所述数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
将获取的不重复的数据块作为新数据块,获取代表所述新数据块的第二特征值;按照所述第二算法确定所述第二特征值对应的第二物理节点;将所述第二特征值和所述第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
2.根据权利要求1所述的方法,其特征在于:所述集群***中每个物理节点从逻辑上划分为至少一个虚拟节点;每个物理节点上包括所述集群***中虚拟节点和物理节点之间的对应关系;
所述根据第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一物理节点,包括:
根据所述第二算法确定所述n个第一特征值中每个第一特征值在所述集群***中对应的第一虚拟节点;根据查询所述虚拟节点和物理节点之间的对应关系,得到所述第一虚拟节点对应的第一物理节点;
所述按照所述第二算法确定所述第二特征值对应的第二物理节点;将所述第二特征值和所述第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点上,包括:
按照所述第二算法确定所述第二特征值对应的第二虚拟节点;根据所述虚拟节点和物理节点之间的对应关系,确定第二虚拟节点所在的第二物理节点,将所述第二特征值和所述第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点上的第二虚拟节点中。
3.根据权利要求2所述的方法,其特征在于,所述根据第二算法确定所述n个第一特征值中每个第一特征值在所述集群***中对应的第一虚拟节点,包括:
将所述每个第一特征值对所述集群***中所有虚拟节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一虚拟节点。
4.根据权利要求2或3所述的方法,其特征在于,还包括:
当满足数据迁移条件时,将需要迁移的数据的物理节点中至少一个虚拟节点整体迁移到目标物理节点;
更新所述当前物理节点上被迁移虚拟节点和物理节点之间的对应关系,并通知所述集群***中其他物理节点更新所述被迁移节点和物理节点的对应关系。
5.根据权利要求1所述的方法,其特征在于,所述根据第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一物理节点,包括:
将所述每个第一特征值对所述集群***中所有物理节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一物理节点。
6.根据权利要求1-5任一所述的方法,其特征在于,所述获取代表所述新数据块的第二特征值,包括:按照所述第一算法获取代表所述新数据块的第二特征值。
7.根据权利要求1-6任一所述方法,其特征在于,所述按照第一算法获取代表所述数据流的n个第一特征值,包括:
将所述数据流m个数据块的指纹进行分组而得到n个第一指纹分组,每个第一指纹分组包括至少两个数据块的指纹;
获取代表每个指纹分组的第一特征值,从而得到所述n个第一特征值。
8.根据权利要求1-5任一所述的方法,其特征在于,从所述响应消息中获取所述第一存储地址,包括:从所述响应消息中获取第一特征值对应的存储地址,统计所述响应消息中携带的每个存储地址的命中次数,选择命中次数最多的s个存储地址作为所述第一存储地址,其中,s大于等于1。
9.根据权利要求1-5任一所述的方法,其特征在于,还包括:
按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址,当满足预设的存储条件时,将所述新数据块以及所述新数据块的指纹写入所述选择的存储地址指向的存储区域中。
10.根据权利要求9所述的方法,其特征在于,所述按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址包括:
获得所述集群***中物理节点的负载信息,根据所述负载信息选择数据迁入的物理节点,从所述数据迁入的物理节点中获取所述新数据块以及所述新数据块的指纹写入的存储地址。
11.根据权利要求10所述的方法,其特征在于,所述获得所述集群***中物理节点的负载信息,根据所述负载信息选择数据迁入节点,从所说数据迁入节点中获取所述新数据块以及所述新数据块的指纹写入的存储地址,包括:
获得所述集群***中物理节点的负载信息,当集群***中所有物理节点平均负载值超过预设的第一预设阈值时,从负载值低于所述平均负载值的物理节点中选择数据迁入节点,从所说数据迁入节点中获取所述新数据块以及所述新数据块的指纹写入的存储地址;
当所述集群***中所有物理节点平均负载值小于或等于所述第一预设阈值时,从所述当前物理节点中获取所述新数据块以及所述新数据块的指纹的存储地址。
12.根据权利要求9所述的方法,其特征在于,所述按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址包括:
从所述当前物理节点中获取所述新数据块以及所述新数据块的指纹的存储地址。
13.根据权利要求9所述的方法,其特征在于,所述满足预设的存储条件包括:将所述新数据块存储到所述当前物理节点的缓存中,当所述当前物理节点的缓存中的数据达到第二预置阈值时,则满足所述预设的存储条件。
14.根据权利要求7所述的方法,其特征在于,所述获取代表每个指纹分组的第一特征值,包括:从所述每个指纹分组中,选取最小的指纹作为代表该最小指纹所属的指纹分组的第一特征值。
15.根据权利要求1-14任一所述方法,其特征在于:所述将所述第一存储地址指向的存储区域中存储的数据块指纹与所述数据流划分得到的数据块的指纹进行比较,查询重复的数据块,包括:
加载所述第一存储地址指向的存储区域中数据块指纹到所述当前物理节点,与所述数据流划分得到的m个数据块的指纹进行比较,查询重复的数据块。
16.根据权利要求1-14任一所述方法,其特征在于:所述将所述第一存储地址指向的存储区域中存储的数据块指纹与所述数据流划分得到的数据块的指纹进行比较,查询重复的数据块,包括:
向所述第一存储地址指向的物理节点发送查询指令,所述查询指令中携带所述数据流划分得到的m个数据块的指纹,接收所述第一存储地址指向的物理节点返回的查询结果。
17.根据权利要求1-14任一所述的方法,其特征在于,在将所述每个第一特征值发送到对应的所述第一物理节点上进行查询之后,还包括:若没有接收来自所述n个第一特征值对应的第一物理节点返回的存储地址,则将所述数据流划分得到的数据块作为不重复数据块。
18.一种集群***中数据处理装置,其特征在于,包括:
划分单元,用于将当前物理节点接收的数据流进行划分得到m个数据块,获取每个数据块的指纹,其中,所述m为大于等于1的整数;
特征值获取单元,用于按照第一算法获取代表所述数据流的n个第一特征值,其中,n为大于等于1且小于等于m的整数;
确定单元,用于根据第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一物理节点;
发送单元,用于将所述每个第一特征值发送到对应的所述第一物理节点上进行查询;
接收单元,用于接收来自所述n个第一特征值对应的第一物理节点的响应消息,从所述响应消息中获取第一存储地址;
查询单元,用于将所述第一存储地址指向的存储区域中存储的数据块指纹与所述数据流划分得到的数据块的指纹进行比较,查询重复的数据块;
更新单元,用于将通过所述查询单元获取的不重复的数据块作为新数据块,获取代表所述新数据块的第二特征值;按照所述第二算法确定所述第二特征值对应的第二物理节点;将所述第二特征值和所述第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点。
19.根据权利要求18所述的装置,其特征在于,还包括:
写入地址获取单元,用于按照预设的存储策略,选择将所述新数据块以及所述新数据块的指纹写入的存储地址;
写入单元,用于当满足预设的存储条件时,将所述新数据块以及所述新数据块的指纹写入所述选择的存储地址对应的存储区域。
20.根据权利要求19所述的装置,其特征在于,所述集群***中每个物理节点从逻辑上划分为至少一个虚拟节点,每个物理节点上包括所述集群***中虚拟节点和物理节点之间的对应关系;
所述确定单元具体用于,按照所述第二算法确定所述n个第一特征值中的每个第一特征值在所述集群***中对应的第一虚拟节点;根据查询所述虚拟节点和物理节点之间的对应关系,得到所述第一虚拟节点对应的第一物理节点;
所述更新单元具体用于,将通过所述查询单元获取的不重复的数据块作为新数据块,获取代表所述新数据块的第二特征值;按照所述第二算法确定所述第二特征值对应的第二虚拟节点;根据所述虚拟节点和物理节点之间的对应关系,确定第二虚拟节点所在的第二物理节点,将所述第二特征值和所述第二特征值所代表的数据块的存储地址之间的对应关系存储到对应的第二物理节点上的第二虚拟节点中。
21.根据权利要求20所述的装置,其特征在于,所述写入单元,还用于当满足数据迁移条件时,将需要迁移数据的物理节点中至少一个虚拟节点整体迁移到目标物理节点;
所述更新单元还用于,更新所述当前物理节点上被迁移虚拟节点和物理节点之间的对应关系,并通知所述集群***中其他物理节点更新所述被迁移节点和物理节点的对应关系。
22.根据权利要求18所述的装置,其特征在于,所述确定单元具体用于,将所述每个第一特征值对所述集群***中所有物理节点的个数取模,得到所述每个第一特征值在所述集群***中对应的第一物理节点。
23.根据权利要求18-21任一所述的装置,其特征在于,所述特征值获取单元包括:
指纹分组子单元,用于将所述数据流m个数据块的指纹进行分组而得到n个第一指纹分组,每个第一指纹分组包括至少两个数据块的指纹;
获取子单元,用于获取代表每个指纹分组的第一特征值,从而得到所述n个第一特征值。
24.根据权利要求18-21任一所述的装置,其特征在于,所述接收单元包括:
统计子单元,用于从所述响应消息中获取第一特征值对应的存储地址,统计所述响应消息中携带的每个存储地址的命中次数;
地址获取子单元,用于根据所述统计子单元的统计结果,选择命中次数最多的s个存储地址作为第一存储地址,其中,s大于等于1。
25.根据权利要求19-21任一所述的装置,其特征在于,所述写入地址获取单元,包括:
负载信息获取子单元,用于获得所述集群***中物理节点的负载信息;
地址选择子单元,用于根据所述负载信息获取子单元所获得的负载信息选择数据迁入的物理节点,从所述数据迁入的物理节点中获取所述新数据块以及新数据块的指纹写入的存储地址。
26.根据权利要求19-21任一所述的装置,其特征在于,所述写入地址获取单元具体用于,从所述当前物理节点中获取所述新数据块以及所述新数据块的指纹的存储地址。
27.根据权利要求25所述的装置,其特征在于,所述写入单元具体用于,将所述新数据块存储到所述当前物理节点的缓存中,当所述当前物理节点的缓存中的数据达到第二预置阈值时,则满足所述预设的存储条件,将所述新数据块以及所述新数据块的指纹写入所选择的存储地址对应的存储区域。
28.根据权利要求18-27任一所述的装置,其特征在于,所述接收单元还用于,在将所述每个第一特征值发送到对应的所述第一物理节点上进行查询之后,若没有接收来自所述n个第一特征值对应的第一物理节点返回的存储地址,则将所述数据流划分得到的数据块作为不重复数据块。
29.一种集群***中的数据处理装置,其特征在于,包括处理器,存储器,总线,所述处理器和所述存储器通过总线进行相互通信;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的所述程序,执行如权利要求1-17任一所述的方法。
30.一种执行数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行如权利要求1-17任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610827845.7A CN106445413B (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/086413 WO2014089767A1 (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
CN201280003372.9A CN103547329B (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
CN201610827845.7A CN106445413B (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280003372.9A Division CN103547329B (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106445413A true CN106445413A (zh) | 2017-02-22 |
CN106445413B CN106445413B (zh) | 2019-10-25 |
Family
ID=49970062
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610827845.7A Active CN106445413B (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
CN201280003372.9A Active CN103547329B (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280003372.9A Active CN103547329B (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
Country Status (12)
Country | Link |
---|---|
US (1) | US8892529B2 (zh) |
EP (3) | EP2765524B1 (zh) |
JP (1) | JP5824167B2 (zh) |
KR (2) | KR101575062B1 (zh) |
CN (2) | CN106445413B (zh) |
AU (1) | AU2012389110B2 (zh) |
BR (1) | BR112014009477B1 (zh) |
CA (1) | CA2843922C (zh) |
DK (2) | DK3217298T3 (zh) |
ES (2) | ES2700431T3 (zh) |
WO (1) | WO2014089767A1 (zh) |
ZA (1) | ZA201401528B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291396A (zh) * | 2017-06-27 | 2017-10-24 | 北京华云网际科技有限公司 | 分布式块存储***中的io数据的写入方法和装置 |
CN108664217A (zh) * | 2018-04-04 | 2018-10-16 | 安徽大学 | 一种降低固态盘存储***写性能抖动的缓存方法及*** |
CN110837515A (zh) * | 2019-11-06 | 2020-02-25 | 北京天融信网络安全技术有限公司 | 一种基于数据库的数据处理方法及电子设备 |
CN114185485A (zh) * | 2021-11-04 | 2022-03-15 | 浙江大华存储科技有限公司 | 静态电压表的节点处理方法、装置、计算机设备和存储介质 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016035194A1 (ja) * | 2014-09-04 | 2016-03-10 | 富士通株式会社 | 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム |
CN104239518B (zh) | 2014-09-17 | 2017-09-29 | 华为技术有限公司 | 重复数据删除方法和装置 |
CN105490903B (zh) * | 2014-09-19 | 2019-07-19 | ***股份有限公司 | 一种基于总线模式的集群架构 |
US10346075B2 (en) | 2015-03-16 | 2019-07-09 | Hitachi, Ltd. | Distributed storage system and control method for distributed storage system |
CN106294357B (zh) * | 2015-05-14 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 数据处理方法和流计算*** |
US10657274B2 (en) * | 2015-06-29 | 2020-05-19 | Samsng Electronics Co., Ltd. | Semiconductor device including memory protector |
WO2017042978A1 (ja) * | 2015-09-11 | 2017-03-16 | 株式会社日立製作所 | 計算機システム、ストレージ装置、及びデータの管理方法 |
US10359942B2 (en) * | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
US9946486B1 (en) | 2016-11-29 | 2018-04-17 | Veritas Technologies Llc | Duplication between disparate deduplication systems |
US10795860B1 (en) * | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | WAN optimized micro-service based deduplication |
CN107193503B (zh) * | 2017-05-27 | 2020-05-29 | 杭州宏杉科技股份有限公司 | 一种数据重删方法及存储设备 |
US11416447B2 (en) | 2017-06-08 | 2022-08-16 | Hitachi Vantara Llc | Deduplicating distributed erasure coded objects |
US10055198B1 (en) * | 2017-06-13 | 2018-08-21 | Sap Se | Systems and methods for probably approximate intent matching of procurement rules |
US10936543B1 (en) | 2017-07-21 | 2021-03-02 | EMC IP Holding Company LLC | Metadata protected sparse block set for SSD cache space management |
US11461269B2 (en) | 2017-07-21 | 2022-10-04 | EMC IP Holding Company | Metadata separated container format |
US11113153B2 (en) | 2017-07-27 | 2021-09-07 | EMC IP Holding Company LLC | Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network |
US11093453B1 (en) | 2017-08-31 | 2021-08-17 | EMC IP Holding Company LLC | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication |
CN110134331B (zh) * | 2019-04-26 | 2020-06-05 | 重庆大学 | 路由路径规划方法、***及可读存储介质 |
CN113220214A (zh) | 2020-02-06 | 2021-08-06 | 伊姆西Ip控股有限责任公司 | 多节点存储***及其数据去重方法 |
CN114265551B (zh) * | 2021-12-02 | 2023-10-20 | 阿里巴巴(中国)有限公司 | 存储集群中的数据处理方法、存储集群、存储节点及设备 |
CN115604358A (zh) * | 2022-09-21 | 2023-01-13 | 网易(杭州)网络有限公司(Cn) | 业务处理方法、***、装置、管理服务器及存储介质 |
US20240103976A1 (en) * | 2022-09-23 | 2024-03-28 | Dell Products L.P. | Distributed and deduplicating file system for storing backup data to object storage |
CN115904738B (zh) * | 2023-01-05 | 2023-06-06 | 摩尔线程智能科技(北京)有限责任公司 | 数据处理装置集群的管理***和控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252663A (ja) * | 2003-02-19 | 2004-09-09 | Toshiba Corp | ストレージ装置、分担範囲決定方法及びプログラム |
WO2011006859A1 (en) * | 2009-07-16 | 2011-01-20 | International Business Machines Corporation | An integrated approach for deduplicating data in a distributed environment that involves a source and a target |
CN102323958A (zh) * | 2011-10-27 | 2012-01-18 | 上海文广互动电视有限公司 | 重复数据删除方法 |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
CN102479245A (zh) * | 2010-11-30 | 2012-05-30 | 英业达集团(天津)电子技术有限公司 | 数据区块的切分方法 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及*** |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996025801A1 (en) * | 1995-02-17 | 1996-08-22 | Trustus Pty. Ltd. | Method for partitioning a block of data into subblocks and for storing and communicating such subblocks |
US8412682B2 (en) * | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US8166012B2 (en) * | 2007-04-11 | 2012-04-24 | Emc Corporation | Cluster storage using subsegmenting |
US8195636B2 (en) * | 2009-04-29 | 2012-06-05 | Netapp, Inc. | Predicting space reclamation in deduplicated datasets |
US8321648B2 (en) * | 2009-10-26 | 2012-11-27 | Netapp, Inc | Use of similarity hash to route data for improved deduplication in a storage server cluster |
US8244992B2 (en) * | 2010-05-24 | 2012-08-14 | Spackman Stephen P | Policy based data retrieval performance for deduplicated data |
US8370315B1 (en) * | 2010-05-28 | 2013-02-05 | Symantec Corporation | System and method for high performance deduplication indexing |
CN201804331U (zh) * | 2010-09-21 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种基于协处理器的重复数据删除*** |
US8898119B2 (en) * | 2010-12-15 | 2014-11-25 | Netapp, Inc. | Fingerprints datastore and stale fingerprint removal in de-duplication environments |
US8442941B2 (en) * | 2011-01-19 | 2013-05-14 | Microsoft Corporation | Scalable database workload replay with mode selections |
US9047304B2 (en) * | 2011-11-28 | 2015-06-02 | International Business Machines Corporation | Optimization of fingerprint-based deduplication |
US8712978B1 (en) * | 2012-06-13 | 2014-04-29 | Emc Corporation | Preferential selection of candidates for delta compression |
-
2012
- 2012-12-12 EP EP12878640.7A patent/EP2765524B1/en active Active
- 2012-12-12 WO PCT/CN2012/086413 patent/WO2014089767A1/zh active Application Filing
- 2012-12-12 ES ES16191349T patent/ES2700431T3/es active Active
- 2012-12-12 KR KR1020147006220A patent/KR101575062B1/ko active IP Right Grant
- 2012-12-12 JP JP2014551502A patent/JP5824167B2/ja not_active Expired - Fee Related
- 2012-12-12 DK DK16191349.6T patent/DK3217298T3/da active
- 2012-12-12 AU AU2012389110A patent/AU2012389110B2/en active Active
- 2012-12-12 EP EP16191349.6A patent/EP3217298B1/en active Active
- 2012-12-12 CN CN201610827845.7A patent/CN106445413B/zh active Active
- 2012-12-12 CN CN201280003372.9A patent/CN103547329B/zh active Active
- 2012-12-12 EP EP18174218.0A patent/EP3460683B1/en active Active
- 2012-12-12 CA CA2843922A patent/CA2843922C/en active Active
- 2012-12-12 DK DK12878640.7T patent/DK2765524T3/en active
- 2012-12-12 KR KR1020157034080A patent/KR101657561B1/ko active IP Right Grant
- 2012-12-12 ES ES12878640.7T patent/ES2625690T3/es active Active
- 2012-12-12 BR BR112014009477A patent/BR112014009477B1/pt active IP Right Grant
-
2013
- 2013-12-24 US US14/140,403 patent/US8892529B2/en active Active
-
2014
- 2014-02-27 ZA ZA2014/01528A patent/ZA201401528B/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252663A (ja) * | 2003-02-19 | 2004-09-09 | Toshiba Corp | ストレージ装置、分担範囲決定方法及びプログラム |
WO2011006859A1 (en) * | 2009-07-16 | 2011-01-20 | International Business Machines Corporation | An integrated approach for deduplicating data in a distributed environment that involves a source and a target |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
CN102479245A (zh) * | 2010-11-30 | 2012-05-30 | 英业达集团(天津)电子技术有限公司 | 数据区块的切分方法 |
CN102323958A (zh) * | 2011-10-27 | 2012-01-18 | 上海文广互动电视有限公司 | 重复数据删除方法 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及*** |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291396A (zh) * | 2017-06-27 | 2017-10-24 | 北京华云网际科技有限公司 | 分布式块存储***中的io数据的写入方法和装置 |
CN107291396B (zh) * | 2017-06-27 | 2018-04-13 | 北京华云网际科技有限公司 | 分布式块存储***中的io数据的写入方法和装置 |
CN108664217A (zh) * | 2018-04-04 | 2018-10-16 | 安徽大学 | 一种降低固态盘存储***写性能抖动的缓存方法及*** |
CN108664217B (zh) * | 2018-04-04 | 2021-07-13 | 安徽大学 | 一种降低固态盘存储***写性能抖动的缓存方法及*** |
CN110837515A (zh) * | 2019-11-06 | 2020-02-25 | 北京天融信网络安全技术有限公司 | 一种基于数据库的数据处理方法及电子设备 |
CN114185485A (zh) * | 2021-11-04 | 2022-03-15 | 浙江大华存储科技有限公司 | 静态电压表的节点处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103547329B (zh) | 2016-11-02 |
EP3460683A1 (en) | 2019-03-27 |
ES2625690T3 (es) | 2017-07-20 |
CA2843922C (en) | 2016-11-15 |
KR101657561B1 (ko) | 2016-09-19 |
US8892529B2 (en) | 2014-11-18 |
AU2012389110A1 (en) | 2014-06-26 |
JP2015503174A (ja) | 2015-01-29 |
WO2014089767A1 (zh) | 2014-06-19 |
EP3217298A1 (en) | 2017-09-13 |
CN106445413B (zh) | 2019-10-25 |
DK3217298T3 (da) | 2019-01-02 |
KR101575062B1 (ko) | 2015-12-07 |
EP2765524A4 (en) | 2015-06-03 |
DK2765524T3 (en) | 2017-05-22 |
KR20150140863A (ko) | 2015-12-16 |
EP2765524A1 (en) | 2014-08-13 |
AU2012389110B2 (en) | 2016-03-17 |
JP5824167B2 (ja) | 2015-11-25 |
ZA201401528B (en) | 2015-09-30 |
EP3217298B1 (en) | 2018-08-29 |
ES2700431T3 (es) | 2019-02-15 |
EP2765524B1 (en) | 2017-02-22 |
CA2843922A1 (en) | 2014-06-12 |
EP3460683B1 (en) | 2021-08-11 |
BR112014009477B1 (pt) | 2018-10-16 |
CN103547329A (zh) | 2014-01-29 |
BR112014009477A2 (pt) | 2017-05-09 |
KR20140101720A (ko) | 2014-08-20 |
US20140201169A1 (en) | 2014-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445413A (zh) | 集群***中数据处理方法及装置 | |
CN105630955B (zh) | 一种高效动态的数据集合成员管理方法 | |
CN103858125B (zh) | 重复数据处理方法、装置及存储控制器和存储节点 | |
CN103995855B (zh) | 存储数据的方法和装置 | |
CN103631933B (zh) | 一种面向分布式去重***的数据路由方法 | |
CN104731799B (zh) | 内存数据库管理装置 | |
CN106407224B (zh) | 一种键值存储***中文件压实的方法和装置 | |
CN103677674B (zh) | 一种数据处理方法及装置 | |
CN107209714A (zh) | 分布式存储***及分布式存储***的控制方法 | |
CN104750432B (zh) | 一种数据存储方法及装置 | |
CN109726137A (zh) | 固态硬盘垃圾回收任务的管理方法、控制器和固态硬盘 | |
CN106980680A (zh) | 数据存储方法及存储设备 | |
CN103530067B (zh) | 一种数据操作的方法和设备 | |
CN110007860A (zh) | 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置 | |
CN106453092B (zh) | 一种路由更新方法和装置 | |
WO2021016728A1 (zh) | 存储***中数据处理方法、装置及计算机存储可读存储介质 | |
CN107239226A (zh) | 一种数据去重方法及终端、服务器 | |
CN106383670A (zh) | 一种数据处理方法及存储设备 | |
CN1322707C (zh) | 话单剔重方法 | |
JP6163187B2 (ja) | クラスタシステムデータ処理方法及び装置 | |
CN106708432A (zh) | 一种基于密度平衡的近邻迁移分区方法 | |
CN106776613A (zh) | 数据迁移方法及装置 | |
Tulkinbekov et al. | Deduplication Adapted CaseDB for Edge Computing | |
CN106021460A (zh) | 数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |