CN106021460A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN106021460A CN106021460A CN201610327050.XA CN201610327050A CN106021460A CN 106021460 A CN106021460 A CN 106021460A CN 201610327050 A CN201610327050 A CN 201610327050A CN 106021460 A CN106021460 A CN 106021460A
- Authority
- CN
- China
- Prior art keywords
- data
- container
- eigenvalue
- storage address
- storage
- 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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供数据处理方法和装置,通过本发明实施例,当发现当前接收的数据流中数据散列值超过预设的第一阈值时,将数据流中的部分或全部数据不做重删,直接进行存储,而避免数据流中的数据被分散存储到多个存储区域中,而会集中地存储到存储区域中,尤其是数据存储量大的场景下,从整体上有效提高重删率。
Description
技术领域
本发明实施例涉及存储技术,尤其涉及数据处理方法及装置。
背景技术
重复数据删除(简称为重删)也称为智能压缩或单一实例存储,是一种可自动搜索重复数据,将相同数据只保留唯一的一个副本,并使用指向单一副本的指针替换掉其他重复副本,以达到消除冗余数据、降低存储容量需求的存储技术。
现有技术在重复数据删除的方案中,将接收到的数据进行分块得到数据分块,然后将数据分块组成若干的数据分段,使用某种方法计算出每个数据分段的特征值,用计算得到的特征值来代表数据分段。将数据分段的特征值与***中已经存储的数据的特征值进行匹配,将匹配到的***中的特征值对应的存储地址指向的存储区域作为相似的存储区域,将相似的存储区域中的数据加载到缓存中,对接收到的数据进行重复数据查询。
发明人在研究中发现,现有的重复数据删除中,例如,第一次接收的数据作为了新数据进行了存储;当第二次接收的数据相对于第一次接收的数据有变化时,会将变化的数据作为新数据单独进行存储;而在第三次接收到与第二次接收的相同数据时,与第三次接收到的数据最相似的数据很可能还是第一次接收的数据,那么相对于第一次所变化的数据,还是会认为变化的数据是新数据并进行存储,而事实上,所述变化的数据已经进了存储,由此可以看出现有技术的重删处理中,存储的数据越多,数据将会分散到的存储区域就越多,而整个重删性能却会下降。
发明内容
本发明实施例提供了数据处理方法和装置,有效提高了存储***的重删率。
为实现发明目的,本发明实施例第一方面提供了一种数据处理方法,包括:
接收数据流,获取代表所述数据流中数据的特征值;
根据设置的索引表查找与每个所述特征值对应的第一存储地址;所述索引表中存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;
根据设置的策略从所述第一存储地址中获取n个的第二存储地址,n大于等于1;
当所述第二存储地址的数量超过设置的第一阈值时,将接收到的所述数据流中的数据直接看做新数据存储到存储空间中。
结合第一方面,在第一方面的第一种可能方式,还包括:
当所述第二存储地址的数量没有超过设置的第一阈值时,将所述数据流中数据与所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据。
结合第一方面的第一种可能方式,在第二中可能方式中,所述接收数据流之后,还包括:对所述数据流中数据进行分段获得m个数据分段,其中,m为大于1的整数;
所述将所述数据流中数据与n个所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据,包括:
所述将所述数据流中数据与n个所述第二存储地址指向的存储空间中的数据进行比对,针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,且S大小超过了设置的第二阈值,则直接将所述数据分段中的所有数据作为新数据存储到存储空间中;其中,S为大于等于1小于n的整数。
结合第一方面的第二种可能方式,第三种可能方式中,所述将所述数据流中数据与所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据,还包括:
针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,但S大小没有超过设置的第二阈值,则将所述数据分段中没有在n个所述第二存储地址指向的存储空间中查找到的数据看作新数据存储到存储空间中。
结合第一方面或第一方面的第一种或第一种的第二种可能方式,在第四种可能方式中,所述新数据存储到存储空间中,包括:
将新数据存储在缓存的中;选择用于写入缓存中数据的目标存储地址,当满足预设的写入条件时,将所述缓存中的数据写入选择的所述目标存储地址所指向的存储空间中,其中,所述被写入的数据大小和所述目标存储地址指向的存储空间大小相同。
结合第一方面的第四种可能方式,在第五种可能方式中,还包括:在将缓存中的数据写入选择的所述目标存储地址指向的存储空间中时,记录被写入数据的存储空间的数据写入时间;
所述根据设置的选择策略从所述第一存储地址中获取相似的第二存储地址,包括:
统计所述第一存储地址的命中次数,对所有命中的所述第一存储地址进行筛选,所述筛选包括:对命中次数相同的所述第一存储地址,根据记录的所述第一存储地址指向的存储空间中写入数据的时间,选取存入数据时间最晚的所述第一存储地址作为用于选取相似的第二存储地址的对象;根据设置的选择策略从筛选后的所述第一存储地址中选取相似的第二存储地址。
本发明实施例第二方面提供了一种数据处理装置,包括:
接收单元,用于接收数据流;
特征值获取单元,用于获取代表所述数据流中的数据的特征值;
第一地址获取单元,用于根据设置的索引表查找与每个所述特征值对应的第一存储地址;所述索引表中的存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;
第二地址获取单元,用于根据设置的策略从所述第一存储地址中获取n个第二存储地址,n大于等于1;
第一判断单元,用于当判断所述第二存储地址的数量超过设置的第一阈值,则将接收的所述数据流中数据直接看作新数据;
存储单元,将所述新数据存储到存储空间中。
结合第二方面,第一种可能方式中,还用于当判断所述第二存储地址的数量没有超过设置的第一阈值,则触发查找单元;
所述查找单元,用于将所述数据流中数据与所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据。
结合第二方面的第一种可能方式,第二种可能方式中,还包括:分段单元,用于对所述数据流中数据进行分段获得m个数据分段,其中,m为大于1的整数;
所述查找单元,包括:
比对子单元,用于将所述数分段中的数据与n个所述第二存储地址指向的存储空间中的数据进行比对,查找是否有相同的数据,发送查找结果;
第二判断子单元,用于接收所述比对单元发送的查找结果,针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,且S大小超过了设置的第二阈值,则直接将所述数据分段中的所有数据作为新数据通过所述存储单元存储到存储空间中;其中,S为大于等于1小于n的整数。
结合第二方面的第二种可能方式,第三种可能方式中,所述第二判断子单元,还用于:针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,但S大小没有超过设置的第二阈值,则将所述数据分段中没有在n个所述第二存储地址指向的存储空间中查找到的数据看作新数据通过所述存储单元存储到存储空间中。
结合第二方面或第二方面的第一种、第二种或第三种可能方式,第四种可能方式中,所述存储单元,包括:
缓存子单元,用于将新数据存储在缓存的中;
存储子单元,用于选择用于写入缓存中数据的目标存储地址,当满足预设的写入条件时,将所述缓存中的数据写入选择的所述目标存储地址所指向的存储空间中,其中,所述被写入的数据大小和所述目标存储地址指向的存储空间大小相同。
结合第二方面的第四种可能方式,第五种可能方式中,所述存储子单元还用于在将缓存中的数据写入选择的所述目标存储地址指向的存储区域中时,记录被写入数据的存储区域的数据写入时间;
所述第二地址获取单元,具体用于统计所述第一存储地址的命中次数,对所有命中的所述第一存储地址进行筛选,所述筛选包括:对命中次数相同的所述第一存储地址,根据记录的所述第一存储地址指向的存储空间中写入数据的时间,选取存入数据时间最晚的所述第一存储地址作为用于选取相似的第二存储地址的对象;根据设置的选择策略从筛选后的所述第一存储地址中选取相似的第二存储地址。
通过本发明实施例,当发现当前接收的数据流中数据散列值超过预设的第一阈值时,将数据流中的部分或全部数据不做重删,直接进行存储,而避免数据流中的数据被分散存储到多个存储区域中,因对数据进行了聚合,因此尤其是数据存储量大的场景下,从整体上来看,数据的重删率会得到显著提高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的数据处理方法实施例的流程图;
图2本发明提供的物理节点内部结构实施例示意图;
图3为本发明提供的数据处理装置实施例的结构图;
图4为本发明提供的另一种数据处理装置实施例的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例可应用于存储***中,存***中可以包括多个物理节点,也可以仅包括一个物理节点,本发明实施例对此并不局限。其中,具有重删引擎的物理节点可以作为本发明实施例的执行主体,在接收到重删任务后执行本发明实施例的方法。
图1为本发明实施例所提供的一种数据处理方法的流程图,如图1所述,该方法可以包括:
步骤10,接收数据流;
步骤11,获取代表所述数据流中数据的特征值;
其中,获取所接收到的数据流中数据的特征值的方法,可以通过很多方法获得,例如:将数据划分为数据分块,将多个数据分块组成一个数据分段,从而获得多个数据分段,每个数据分段中的数据分块的哈希值中,抽取最小的哈希值作为所属数据分段的特征值。除此,还有很多方法可获得数据流的特征值,可参考现有技术,本发明实施例不做限定。
步骤12,根据设置的索引表查找与每个所述特征值对应的第一存储地址;所述索引表中存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;
其中,不同的存储地址指向的存储区域中存储有数据块以及数据块对应的指纹信息。具体实现中,由于一个存储地址指向的存储区域可能会有多个分组的数据,每个组选取一个特征值的话,就会出现一个存储地址对应多个不同特征值的情况,因此索引表中同一个存储地址可能会对应多个不同的特征值,但同一个特征值对应一个存储地址。本发明实施例中,存储地址指向的存储区域和存储地址指向的存储空间意思相同,只是不同的表达方式而已。
步骤13,根据设置的策略从所述第一存储地址中获取n个的第二存储地址,n大于等于1;
其中,相似的第二存储地址意味着第二存储地址指向的存储区域中所存储的数据与所接收的数据流中的数据比较相似,可能的重复数据比较多。
所述索引表按照设定的策略存储在所述存储中的存储器中,同的存储地址指向的存储区域中存储有数据块以及数据块对应的指纹信息。由于一个存储地址对应的存储区域会有若干的数据,从存储区域中的数据中选择多个特征值,就会出现一个存储地址对应多个不同特征值的情况,因此索引表中同一个存储地址可能会对应多个不同的特征值,但同一个特征值对应一个存储地址。当所述接收的数据流的多个特征值在索引表中进行查询时,就很可能得到多个对应的第一存储地址,所述与接收的数据流的特征值对应的第一存储地址,称为命中的第一存储地址。
在得到的多个第一存储地址中选择第二存储地址的策略可以有多种,由用户设置,例如:
从所述第一存储地址中选取命中次数超过预设第三阈值的第一存储地址作为相似的第二存储地址;或者,将命中的所有不同的第一存储地址均看做第二存储地址;或者,统计不同第一存储地址的命中次数,将命中次数从高到底排序,且将命中次数相同的不同的第一存储地址在排序时的序列号相同;然后选择序列号在前N个第一存储地址;例如,存储地址1命中次数是3,存储地址2命中次数是4,存储地址3命中次数也是4,那么在对存储地址1、2和3进行排序的时候,存储地址2和3的序列号都是2,如果预设策略是选择前2个第一存储地址作为第二存储地址的话,第二存储地址就是3个,包括:存储地址1、2和3。
步骤14,当所述第二存储地址的数量超过设置的第一阈值时,将接收到的所述数据流中的数据直接看做新数据存储到存储空间中。
其中,新数据为在存储***中没有存储的数据;当然,在具体实现中,新数据是执行主体在重复数据查找过程中,认为存储***中没有存储的数据,并不是从客观上来看存储***中一定没有的数据;
其中,用户设置第一阈值,当第二存储地址的数量超过第一阈值时,意味着很有可能接收的数据流中的数据已经分散地存在于超过第一阈值的数量的第二存储地址中,因此,第一阈值也可以叫做数据流的散列值;在此情况下,当接收的数据流中还包括新数据的话,新数据可能会再存储在除第二存储地址外的其他存储地址指向的存储区域中,而在本发明实施例中,在此情况下,将接收的数据流中数据看做新数据进行存储,避免接收的数据流中的数据被分散存储到多个存储地址指向的存储区域中。
其中,在本发明实施例中,当所述第二存储地址数量超过预设的第一阈值时,将接受到的所述数据流中部分或全部数据看做新数据,而具体需要将所接收的数据中多少数据作为新数据,用户可以根据实际情况进行设置,例如按照数据的百分比来设置等,本发明实施例不做限定。
发明实施例中的物理节点的内部结构举例示意图可以参见图2,在执行重删任务的物理节点上还包括了存储装置使每个物理节点具有长时间保存数据的能力,存储装置可以是磁盘也可以是其他存储装置,例如SSD等,每个物理节点上的存储装置被称为单一实例库(single instance repository,SIR)。物理节点的存储装置中有很多存储区域,在廉价冗余磁盘阵列(Redundant Arrays ofInexpensive Disks,RAID)***中,一个存储区域可以看做一个条带,每个存储区域在具体实现上可以形象地认为是一个存储数据的容器(container),每个存储容器会有一个编号,我们可以称为是存储容器编号(container ID,CID),这个容器编号表明了这个存储容器在存储***中的位置,例如:在存储***中哪个物理节点上的哪个存储区域。那么,前面所述的已经存储的数据块的存储地址在具体实现中,就表现为CID,表明了数据块存储在哪个物理节点上的哪个存储区域,特征值可以而前面提到的索引表中特征值和特征值所代表的已经存储的数据块的存储地址之间的对应关系在具体实现中就可以体现为特征值和CID之间的对应关系;每个存储区域中除了存储数据块,还可以存储数据块对应的指纹信息。
物理节点的存储装置中有很多存储区域,每个存储区域在具体实现上可以形象地认为是一个存储数据的容器(container),每个存储容器会有一个编号,我们可以称为是存储容器编号(container ID,CID),这个容器编号表明了这个存储容器在存储***中的位置,例如:在存储***中哪个物理节点上的哪个存储区域。那么,前面所述的已经存储的数据块的存储地址在具体实现中,就表现为CID,表明了数据块存储在哪个物理节点上的哪个存储区域,前面提到的索引表中特征值和特征值所代表的已经存储的数据块的存储地址之间的对应关系在具体实现中就可以体现为特征值和CID之间的对应关系;每个存储区域中除了存储数据块,还可以存储数据块对应的指纹信息。
将新数据存储到缓存中的container buffer中的数据整体写入到物理节点的存储装置container中,用于存储数据的缓存中每一个存储区域的大小和迁移数据的目标物理节点上每个存储区域的大小相同,也就是每个containerbuffer的大小和每个container的大小相同;通常在一个container存满数据之后,数据才会写入新的container。其中,当前物理节点的缓存中存储区域用于暂时存储重复数据删除过程中所查找到的新数据,也就是说缓存中的一个存储区域中的数据包括当前物理节点在重复数据查找过程中所认为的新数据,而无论获得新数据的方法是否相同。
因此,将接受到的所述数据流中部分或全部数据看作新数据存储到存储空间中,可以通过下面的方法实现:
将接收的所述数据流中的部分或全部数据看作新数据存储在缓存的中;选择用于写入缓存中数据的目标存储地址,当满足预设的写入条件时,将所述缓存中的数据写入选择的所述目标存储地址所指向的存储区域中,其中,所述被写入的数据大小和所述目标存储地址指向的存储区域大小相同。
在具体实现中,缓存中有至少一个container buffer,当一个container buffer的数据存满时,就可以将container buffer中的数据写入在存储装置中选择的存储地址对应的container中。
步骤15,将代表所述新数据的特征值与所述新数据的存储地址的对应关系***到所述索引表中。
物理节点上存放有索引表,索引表中存储有特征值和特征值所代表的已经存储的数据块的存储地址之间的对应关系。
通过上述实施例可以看出,当发现当前接收的数据流中数据散列值超过预设的第一阈值时,将数据流中的部分或全部数据不做重删,直接进行存储,而避免数据流中的数据被分散存储到多个存储区域中,对当次重复数据删除中的重删率是下降的,但由于接收的数据流并没有丢失,会集中地存储到存储区域中,在下一次数据重复删除时,就会提高重删率,因此从整体上来看,数据的重删率会得到显著提高,尤其是数据存储量大的场景下。例如:第一次接收的数据为123,作为新数据存储后,第二次接收的数据为124,现有技术会将4作为新数据单独存储在一个存储区域中,而在第三次接收到数据124时,最相似的存储区域任然是存储数据123的区域,那么,任然会将4作为新数据;而本发明实施例中的方案,满足一定条件时,将第二次接收的数据124直接作为新数据存储在一个存储区域中,当第三次接收到数据124时,就会查找到最相似的存储区域中已经包含了124,因此,4将不会再次作为新数据存储了。
当所述第二存储地址的数量没有超过所述第一阈值的情况下,本发明实施还包括:
步骤16,当所述第二存储地址的数量没有超过设置的第一阈值时,将所述数据流中数据与所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据。
本发明实施例中步骤10接收到数据流之后,还可以包括:
步骤10a,对接收的数据流进行分段获得m个数据分段,其中,m为大于1的整数;
对应的,步骤16中所述将所述数据流中数据与n个所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据,包括:
所述将所述数据流中数据与n个所述第二存储地址指向的存储空间中的数据进行比对,针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,且S大小超过了设置的第二阈值,则直接将所述数据分段中的所有数据作为新数据存储到存储空间中;并跳转到步骤15,其中,S为大于等于1小于n的整数;
其中,通过跳转到步骤15,将满足条件的数据分段的特征值与所述判断得到的数据分段中的数据的存储地址的对应关系***到所述索引表中;
步骤16中所述将所述数据流中数据与n个所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据,还可以包括:
针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,但S大小没有超过设置的第二阈值,则将所述数据分段中没有在n个所述第二存储地址指向的存储空间中查找到的数据看作新数据存储到存储空间中,跳转到步骤15;
其中,通过跳转到步骤15,实现将数据分段中的新数据和数据分段中新数据的存储地址之间的对应关系***到索引表中。
本发明实施例在重复数据查找过程中,除了判断数据流的散列值,还会判断数据分段的散列值,当发现数据分段中的数据存在存储区域太过分散,就将数据分段中的数据看做新数据来处理,从而更好地是数据聚合,而使后续重删时,更准确地判断是否是重复数据,提高重删率。
本发明实施例中,选择第二存储地址时,可以对作为选择第二存储地址的对象的第一存储地址进行筛选,然后在筛选后的第一存储地址再按照设置的策略从筛选后的第一存储地址中选取相似的第二存储地址,因此,本发明实施例中,还包括:
在将缓存中的数据写入选择的所述目标存储地址指向的存储空间中时,记录被写入数据的存储空间的数据写入时间;
相应地,本发明实施例中步骤13中所述根据设置的选择策略从所述第一存储地址中获取相似的第二存储地址,可以包括:
统计所述第一存储地址的命中次数,对所有命中的所述第一存储地址进行筛选,所述筛选包括:对命中次数相同的所述第一存储地址,根据记录的所述第一存储地址对应空间中写入数据的时间,选取存入数据时间最晚的所述第一存储地址作为用于选取相似的第二存储地址的对象;根据设置的选择策略从筛选后的所述第一存储地址中选取相似的第二存储地址。
在具体实现中,由于写入数据时间最晚的存储区域,意味着该区域的数据相对较新,从数据冷热来区分的话,很可能写入时间最晚的数据更热,所以,在命中次数相同的第一存储地址中,优选写入数据时间最晚的存储地址,例如,第一存储地址1命中次数5次,第一存储地址2命中次数3次,第一存储地址3命中次数3次,第一存储地址4命中次数3次,第一存储地址5命中次数2次,那么按照本发明实施例的方法,首先通过将命中次数为3次的第一存储地址进行筛选,假如第一存储地址3的数据存入时间最晚,那么,筛选后作为选取第二存储地址的对象就只包括了:第一存储地址1,第一存储地址3,第一存储地址5了,然后,按照设定的选择策略,从第一存储地址1、3、5中选取相似的第二存储地址。
本发明实施例当发现当前接收的数据流中数据散列值超过预设的第一阈值时,将数据流中的部分或全部数据不做重删,直接进行存储,实现在存储装置中的过于分散的数据进行聚合,尤其对海量数据存储情况下,从整体上提高了重删率。
本发明实施例还提供了一种数据处理装置,可应用于存储***中,设置于存储***中的物理节点中,用于执行前面方法实施例所描述的数据处理方法,在具体实现时,数据处理装置可以是一个重删引擎。
参见图3,本发明实施例提供的数据处理装置,可以包括:
接收单元30,用于接收数据流;
特征值获取单元31,用于获取代表所述数据流中的数据的特征值;
其中,特征值获取单元31在具体实现时,获取所接收到的数据流中数据的特征值的方法有多种,可参考方法实施例中的描述;
第一地址获取单元32,用于根据设置的索引表查找与每个所述特征值对应的第一存储地址;所述索引表中的存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;
第二地址获取单元33,用于根据设置的策略从所述第一存储地址中获取n个第二存储地址,n大于等于1;
其中,相似的第二存储地址意味着第二存储地址指向的存储区域中所存储的数据与所接收的数据流中的数据比较相似,可能的重复数据比较多。
所述索引表按照设定的策略存储在所述存储中的存储器中,同的存储地址指向的存储区域中存储有数据块以及数据块对应的指纹信息。由于一个存储地址对应的存储区域会有若干的数据,从存储区域中的数据中选择多个特征值,就会出现一个存储地址对应多个不同特征值的情况,因此索引表中同一个存储地址可能会对应多个不同的特征值,但同一个特征值对应一个存储地址。当所述接收的数据流的多个特征值在索引表中进行查询时,就很可能得到多个对应的第一存储地址,所述与接收的数据流的特征值对应的第一存储地址,称为命中的第一存储地址。
在得到的多个第一存储地址中选择第二存储地址的策略可以有多种,本发明实施例不作限定。
第一判断单元34,用于当判断所述第二存储地址的数量超过设置的第一阈值,则将接收的所述数据流中数据直接看作新数据;
其中,在本发明实施例中,第一判断单元34具体用于当所述第二存储地址数量超过预设的第一阈值时,将接受到的所述数据流中部分或全部数据看做新数据;
而具体需要将所接收的数据中多少数据作为新数据,用户可以根据实际情况进行设置,例如按照数据的百分比来设置等,本发明实施例不做限定。
存储单元35,用于将所述新数据存储到存储空间中;
其中,可选的,存储单元35包括:
缓存子单元351,用于将新数据存储在缓存的中;
存储子单元352,用于选择用于写入缓存中数据的目标存储地址,当满足预设的写入条件时,将所述缓存中的数据写入选择的所述目标存储地址所指向的存储空间中,其中,所述被写入的数据大小和所述目标存储地址指向的存储空间大小相同。
可选的,所述存储子单元352还用于在将缓存中的数据写入选择的所述目标存储地址指向的存储区域中时,记录被写入数据的存储区域的数据写入时间;
在此基础上,第二地址获取单元33,具体用于统计所述第一存储地址的命中次数,对所有命中的所述第一存储地址进行筛选,所述筛选包括:对命中次数相同的所述第一存储地址,根据记录的所述第一存储地址指向的存储空间中写入数据的时间,选取存入数据时间最晚的所述第一存储地址作为用于选取相似的第二存储地址的对象;根据设置的选择策略从筛选后的所述第一存储地址中选取相似的第二存储地址。
通过本发明实施例所提供的装置,当第一判断单元发现当前接收的数据流中数据散列值超过预设的第一阈值时,将数据流中的数据不做重删,而直接看做新数据由存储单元对新数据进行存储,避免数据流中的数据被分散存储到多个存储区域中,对当次重复数据删除中的重删率是下降的,但由于接收的数据流并没有丢失,会集中地存储到存储区域中,在下一次数据重复删除时,就会提高重删率,因此从整体上来看,数据的重删率会得到显著提高,尤其是数据存储量大的场景下。
可选的,本发明实施例所提供的数据处理装置还可以包括查找单元36;
第一判断单元34,还用于当判断所述第二存储地址的数量没有超过设置的第一阈值,则触发查找单元;
查找单元36,用于将所述数据流中数据与所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据。
可选的,本发明实施例中还可以包括:
分段单元31a,用于对所述数据流中数据进行分段获得m个数据分段,其中,m为大于1的整数;
查找单元36在对数据进行重复数据查找的时候,可以数据分段为单位判断数据分段中的数据是否过于分散,因此,在数据处理装置中还包括了分段单元31a的情况下,查找单元36可以包括
比对子单元361,用于将所述数分段中的数据与n个所述第二存储地址指向的存储空间中的数据进行比对,查找是否有相同的数据,发送查找结果;
第二判断子单元362,用于接收所述比对单元发送的查找结果,针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,且S大小超过了设置的第二阈值,则直接将所述数据分段中的所有数据作为新数据通过所述存储单元存储到存储空间中;其中,S为大于等于1小于n的整数。
可选的,第二判断单元362还可以用于,针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,但S大小没有超过设置的第二阈值,则将所述数据分段中没有在n个所述第二存储地址指向的存储空间中查找到的数据看作新数据通过所述存储单元存储到存储空间中。
可选的,在本发明实施例中还可以包括:
索引更新单元37,用于将代表所述新数据的特征值与所述新数据的存储地址的对应关系***到所述索引表中。
通过本发明所提供的数据处理装置,可以对数据流中的数据在存储***中太分散的情况下,对数据不做重删,直接进行存储;并可以对数据流中的数据分段也进行判断,当数据分段中的数据过于分散的情况下,对数据分段中的数据不进行重删,从而有效避免了数据流中的数据分散到太多的存储区域中,从而从整体上提高重删率。
参见图4,本发明实施例还提供一种数据处理装置400,包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;
其中,存储器41用于存储程序401;
处理器40,用于执行存储器41中的程序401;其中,处理器40通过通信接口43接收数据流;
在具体实现中,程序401可以包括程序代码,所述程序代码包括计算机操作指令。
处理器102可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
参见附图3,程序401可以包括:
接收单元30,用于接收数据流;
特征值获取单元31,用于获取代表所述数据流中的数据的特征值;
其中,特征值获取单元31在具体实现时,获取所接收到的数据流中数据的特征值的方法有多种,可参考方法实施例中的描述;
第一地址获取单元32,用于根据设置的索引表查找与每个所述特征值对应的第一存储地址;所述索引表中的存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;
第二地址获取单元33,用于根据设置的策略从所述第一存储地址中获取n个第二存储地址,n大于等于1;
其中,相似的第二存储地址意味着第二存储地址指向的存储区域中所存储的数据与所接收的数据流中的数据比较相似,可能的重复数据比较多。
所述索引表按照设定的策略存储在所述存储中的存储器中,同的存储地址指向的存储区域中存储有数据块以及数据块对应的指纹信息。由于一个存储地址对应的存储区域会有若干的数据,从存储区域中的数据中选择多个特征值,就会出现一个存储地址对应多个不同特征值的情况,因此索引表中同一个存储地址可能会对应多个不同的特征值,但同一个特征值对应一个存储地址。当所述接收的数据流的多个特征值在索引表中进行查询时,就很可能得到多个对应的第一存储地址,所述与接收的数据流的特征值对应的第一存储地址,称为命中的第一存储地址。
在得到的多个第一存储地址中选择第二存储地址的策略可以有多种,本发明实施例不作限定。
第一判断单元34,用于当判断所述第二存储地址的数量超过设置的第一阈值,则将接收的所述数据流中数据直接看作新数据;
其中,在本发明实施例中,第一判断单元34具体用于当所述第二存储地址数量超过预设的第一阈值时,将接受到的所述数据流中部分或全部数据看做新数据;
而具体需要将所接收的数据中多少数据作为新数据,用户可以根据实际情况进行设置,例如按照数据的百分比来设置等,本发明实施例不做限定。
存储单元35,用于将所述新数据存储到存储空间中;
其中,可选的,存储单元35包括:
缓存子单元351,用于将新数据存储在缓存的中;
存储子单元352,用于选择用于写入缓存中数据的目标存储地址,当满足预设的写入条件时,将所述缓存中的数据写入选择的所述目标存储地址所指向的存储空间中,其中,所述被写入的数据大小和所述目标存储地址指向的存储空间大小相同。
可选的,所述存储子单元352还用于在将缓存中的数据写入选择的所述目标存储地址指向的存储区域中时,记录被写入数据的存储区域的数据写入时间;
在此基础上,第二地址获取单元33,具体用于统计所述第一存储地址的命中次数,对所有命中的所述第一存储地址进行筛选,所述筛选包括:对命中次数相同的所述第一存储地址,根据记录的所述第一存储地址指向的存储空间中写入数据的时间,选取存入数据时间最晚的所述第一存储地址作为用于选取相似的第二存储地址的对象;根据设置的选择策略从筛选后的所述第一存储地址中选取相似的第二存储地址。
可选的,本发明实施例所提供的数据处理装置还可以包括查找单元36;
第一判断单元34,还用于当判断所述第二存储地址的数量没有超过设置的第一阈值,则触发查找单元;
查找单元36,用于将所述数据流中数据与所述第二存储地址指向的存储空间中的数据进行比对,查找重复数据。
可选的,本发明实施例中还可以包括:
分段单元31a,用于对所述数据流中数据进行分段获得m个数据分段,其中,m为大于1的整数;
查找单元36在对数据进行重复数据查找的时候,可以数据分段为单位判断数据分段中的数据是否过于分散,因此,在数据处理装置中还包括了分段单元31a的情况下,查找单元36可以包括
比对子单元361,用于将所述数分段中的数据与n个所述第二存储地址指向的存储空间中的数据进行比对,查找是否有相同的数据,发送查找结果;
第二判断子单元362,用于接收所述比对单元发送的查找结果,针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,且S大小超过了设置的第二阈值,则直接将所述数据分段中的所有数据作为新数据通过所述存储单元存储到存储空间中;其中,S为大于等于1小于n的整数。
可选的,第二判断单元362还可以用于,针对任一个所述数据分段,如果所述数据分段中有数据存在于S个不同的所述第二存储地址指向的存储空间中,但S大小没有超过设置的第二阈值,则将所述数据分段中没有在n个所述第二存储地址指向的存储空间中查找到的数据看作新数据通过所述存储单元存储到存储空间中。
可选的,在本发明实施例中还可以包括:
索引更新单元37,用于将代表所述新数据的特征值与所述新数据的存储地址的对应关系***到所述索引表中。
通过本发明所提供的数据处理装置,可以对数据流中的数据在存储***中太分散的情况下,对数据不做重删,直接进行存储;并可以对数据流中的数据分段也进行判断,当数据分段中的数据过于分散的情况下,对数据分段中的数据不进行重删,从而有效避免了数据流中的数据分散到太多的存储区域中,从而从整体上提高重删率。
本发明实施例所提供的进行数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种数据处理方法,其特征在于,包括:
接收数据流;
划分所述数据流获得数据分段;
确定所述数据分段中有数据存在于S个容器中,且S大小超过了设置的阈值,则将所述数据分段中的所有数据作为新数据存储到新的容器中;其中,S为大于等于1的整数。
2.一种数据处理方法,其特征在于,包括:
接收数据流;
划分所述数据流得到多个数据分段;
根据设置的策略获得n个容器;n大于等于1;
如果所述n个容器的数量超过预设的第一阈值,将所述多个数据分段中的至少一个不进行重复数据删除而作为新数据存储到容器中。
3.根据权利要求2所述的方法,其特征在于,
所述根据设置的策略获得n个容器,具体包括:
获得所述多个数据分段的特征值;
根据设置的索引表查找与每个所述特征值对应的r个容器;所述索引表中存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;其中r为整数,并且r不小于n;
从所述r个容器中选取命中次数超过预设第二阈值的n个容器。
4.根据权利要求2所述的方法,其特征在于,
所述根据设置的策略获得n个容器,具体包括:
获得所述多个数据分段的特征值;
根据设置的索引表查找与每个所述特征值对应的r个容器;所述索引表中存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;其中r为整数,并且r不小于n;
统计所述r个容器的命中次数,将命中次数从高到底排序,且将命中次数相同的不同的容器在排序时的序列号相同;
选择前n个序列号对应的容器。
5.一种数据处理装置,其特征在于,包括:
接收单元,用于接收数据流;
划分单元,用于划分所述数据流获得数据分段;
确定单元,用于确定所述数据分段中有数据存在于S个容器中,且S大小超过了设置的阈值,则将所述数据分段中的所有数据作为新数据存储到新的容器中;其中,S为大于等于1的整数。
6.一种数据处理装置,其特征在于,包括:
接收单元,用于接收数据流;
划分单元,用于划分所述数据流得到多个数据分段;
获得单元,根据设置的策略获得n个容器;n大于等于1;如果所述n个容器的数量超过预设的第一阈值,将所述多个数据分段中的至少一个不进行重复数据删除而作为新数据存储到容器中。
7.根据权利要求6所述的方法,其特征在于,
所述获得单元具体用于:
获得所述多个数据分段的特征值,根据设置的索引表查找与每个所述特征值对应的r个容器,从所述r个容器中选取命中次数超过预设第二阈值的n个容器;其中,所述索引表中存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;其中r为整数,并且r不小于n。
8.根据权利要求6所述的方法,其特征在于,
所述获得单元具体用于:
获得所述多个数据分段的特征值,根据设置的索引表查找与每个所述特征值对应的r个容器,统计所述r个容器的命中次数,将命中次数从高到底排序,且将命中次数相同的不同的容器在排序时的序列号相同,选择前n个序列号对应的容器;其中,所述索引表中存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;其中r为整数,并且r不小于n。
9.一种数据处理装置,其特征在于,所述数据处理装置包括接口和处理器;其中,所述接口,用于接收数据流;
所述处理器,用于划分所述数据流获得数据分段,确定所述数据分段中有数据存在于S个容器中,且S大小超过了设置的阈值,则将所述数据分段中的所有数据作为新数据存储到新的容器中;其中,S为大于等于1的整数。
10.一种数据处理装置,其特征在于,所述数据处理装置包括接口和处理器;其中,所述接口,用于接收数据流;
所述处理器,用于划分所述数据流得到多个数据分段,根据设置的策略获得n个容器;n大于等于1;如果所述n个容器的数量超过预设的第一阈值,将所述多个数据分段中的至少一个不进行重复数据删除而作为新数据存储到容器中。
11.根据权利要求10所述的数据处理装置,其特征在于,所述处理器具体用于,获得所述多个数据分段的特征值,根据设置的索引表查找与每个所述特征值对应的r个容器,从所述r个容器中选取命中次数超过预设第二阈值的n个容器;其中,所述索引表中存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;其中r为整数,并且r不小于n。
12.根据权利要求10所述的数据处理装置,其特征在于,
所述处理器具体用于,获得所述多个数据分段的特征值,根据设置的索引表查找与每个所述特征值对应的r个容器,统计所述r个容器的命中次数,将命中次数从高到底排序,且将命中次数相同的不同的容器在排序时的序列号相同,选择前n个序列号对应的容器;其中,所述索引表中存储有特征值与所述特征值所代表的数据所在存储地址之间的对应关系;其中r为整数,并且r不小于n。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610327050.XA CN106021460B (zh) | 2012-12-28 | 2012-12-28 | 数据处理方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610327050.XA CN106021460B (zh) | 2012-12-28 | 2012-12-28 | 数据处理方法及装置 |
CN201280004663.XA CN103502957B (zh) | 2012-12-28 | 2012-12-28 | 数据处理方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280004663.XA Division CN103502957B (zh) | 2012-12-28 | 2012-12-28 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106021460A true CN106021460A (zh) | 2016-10-12 |
CN106021460B CN106021460B (zh) | 2020-09-08 |
Family
ID=57127996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610327050.XA Active CN106021460B (zh) | 2012-12-28 | 2012-12-28 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106021460B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040062247A1 (en) * | 2002-09-26 | 2004-04-01 | Farla Rob C. | Cyclic buffering of a datastream |
CN101000579A (zh) * | 2006-12-21 | 2007-07-18 | 威盛电子股份有限公司 | 多来源数据处理方法 |
CN101079900A (zh) * | 2006-05-02 | 2007-11-28 | 捷讯研究有限公司 | 用于对移动内容分段的***和方法 |
CN101271429A (zh) * | 2007-03-23 | 2008-09-24 | 华为技术有限公司 | 一种数据存储方法及装置 |
EP2063351A2 (en) * | 2007-11-20 | 2009-05-27 | Hitachi, Ltd. | Methods and apparatus for deduplication in storage system |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
-
2012
- 2012-12-28 CN CN201610327050.XA patent/CN106021460B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040062247A1 (en) * | 2002-09-26 | 2004-04-01 | Farla Rob C. | Cyclic buffering of a datastream |
CN101079900A (zh) * | 2006-05-02 | 2007-11-28 | 捷讯研究有限公司 | 用于对移动内容分段的***和方法 |
CN101000579A (zh) * | 2006-12-21 | 2007-07-18 | 威盛电子股份有限公司 | 多来源数据处理方法 |
CN101271429A (zh) * | 2007-03-23 | 2008-09-24 | 华为技术有限公司 | 一种数据存储方法及装置 |
EP2063351A2 (en) * | 2007-11-20 | 2009-05-27 | Hitachi, Ltd. | Methods and apparatus for deduplication in storage system |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
Non-Patent Citations (1)
Title |
---|
王俊伟: "《大规模多媒体存储***中数据放置与调度策略的研究》", 《中国博士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN106021460B (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103502957B (zh) | 数据处理方法及装置 | |
CN103547329B (zh) | 集群***中数据处理方法及装置 | |
CN105589812B (zh) | 磁盘碎片整理方法、装置及主机 | |
CN100476742C (zh) | 基于对象存储设备的负载平衡方法 | |
CN107102819B (zh) | 向固态硬盘写入数据的方法及设备 | |
US20090112945A1 (en) | Data processing apparatus and method of processing data | |
CN108897761A (zh) | 一种聚簇存储方法及装置 | |
CN105224532B (zh) | 数据处理方法及装置 | |
CN103858125B (zh) | 重复数据处理方法、装置及存储控制器和存储节点 | |
CN103631940A (zh) | 一种应用于hbase数据库的数据写入方法及*** | |
CN103631933B (zh) | 一种面向分布式去重***的数据路由方法 | |
CN106610903A (zh) | 层级化存储器***、存储器控制器和去重及存储器层级化方法 | |
CN108304112A (zh) | 数据处理方法和装置 | |
CN109542339B (zh) | 数据分层访问方法、装置、多层存储设备和存储介质 | |
CN107707600A (zh) | 一种数据存储方法及装置 | |
CN108241692A (zh) | 数据的查询方法及装置 | |
CN102538801A (zh) | 一种导航地图中路网数据的处理方法及装置 | |
CN108090125A (zh) | 一种非查询式的重复数据删除方法及装置 | |
CN106155913B (zh) | 缓存命中率分析的方法及设备 | |
CN105893471A (zh) | 一种数据处理方法及电子设备 | |
CN109600268A (zh) | 一种基于贪婪算法的sdn矩阵网络探针部署方法及设备 | |
CN106021460A (zh) | 数据处理方法及装置 | |
CN106503010A (zh) | 一种数据库更改写入分区的方法及装置 | |
CN107832455A (zh) | 一种存储对象的数据获取方法、***、设备及存储介质 | |
CN107239226A (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 |