CN103858125A - 重复数据处理方法、装置及存储控制器和存储节点 - Google Patents

重复数据处理方法、装置及存储控制器和存储节点 Download PDF

Info

Publication number
CN103858125A
CN103858125A CN201380002197.6A CN201380002197A CN103858125A CN 103858125 A CN103858125 A CN 103858125A CN 201380002197 A CN201380002197 A CN 201380002197A CN 103858125 A CN103858125 A CN 103858125A
Authority
CN
China
Prior art keywords
deblocking
fingerprint
data stream
value
data
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
Application number
CN201380002197.6A
Other languages
English (en)
Other versions
CN103858125B (zh
Inventor
刘强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103858125A publication Critical patent/CN103858125A/zh
Application granted granted Critical
Publication of CN103858125B publication Critical patent/CN103858125B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (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

重复数据处理方法、装置及存储控制器和存储节点
技术领域
本发明实施例涉及存储技术,尤其涉及重复数据处理方法、装置及存储控制器和存储节点。
背景技术
重复数据删除也称为智能压缩或单一实例存储,是一种可自动搜索重复数据,将相同数据只保留唯一的一个副本,并使用指向单一副本的指针替换掉其他重复副本,以达到消除冗余数据、降低存储容量需求的存储技术。
在现有技术中,为了提升重复删除的效率,现有技术中,通常会将数据聚集起来从而提高数据之间相互关联性,在进行重复删除时,通常接收数据流的物理节点将数据流进行分块得到若干个数据块,将得到的数据块进行分组,针对每个分组,从分组中的数据块的元数据信息中抽样出一部分元数据信息发送到存储系统中的物理节点中去查询是否有重复的元数据信息,当查询到有重复的元数据信息,则会默认为被查询到的元数据周围的元数据和需要进行重复删除的数据流中的数据重复的概率较高,因此,会直接将被查询到的元数据周围的元数据和数据流中的数据进行比较。
但是,发明人发现,在物理节点接收的数据流比较零散,数据I/O较小的情况下,每个数据流之间的数据相互的关联性不确定性很高,采用现有技术的方法,会降低重删率。
发明内容
本发明实施例提供重复数据处理方法、装置及存储控制器和存储节点,以提高重复数据删除率。
本发明实施例第一方面,提供一种重复数据处理方法,应用于存储系统中,所述存储系统中包括:存储控制器,存储装置,所述存储装置中存储有数据分块的指纹代表值和数据分块的指纹值的对应关系,其中,对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储控制器与所述存储装置通信,对所述存储装置进行访问和管理;该方法包括:
所述存储控制器接收需要进行重复数据删除的数据流;
将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述存储控制器内存中;
将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
结合第一方面,本发明实施例提供了所述第一方面的第一种可能实施方式,所述对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,包括:
在所述存储装置中存储数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号与数据分块的指纹值之间的第二对应关系,通过所述数据分块编号,标识对应的指纹值所对应的数据分块所属的数据流,以及在所属数据流中的顺序;根据所述数据分块编号,属于同一数据流的数据分块的指纹值按照在所属数据流中的顺序在所述第二对应关系中连续存放;
所述在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值,包括:
在所述存储装置上存储的所述第一对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得与所述目标指纹值对应的数据分块编号;根据所述目标指纹代表值对应的数据分块的编号,在所述存储装置上存储的所述第二对应关系中查找并获得获得所述目标指纹代表值对应的指纹值。
结合第一方面的第一种可能实现方式,本发明实施例提供了第一方面的第二种可能的实现方式,在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,还包括:
获得所述需要进行重复数据删除的数据流中不重复的数据分块;
为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述存储装置中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;
存储所述数据流中所获得的不重复的数据分块到所述存储装置上。
结合第一方面的第二种可能实现方式,本发明实施例提供了第一方面的第三种可能实现方式,所述获得所述需要进行重复数据删除的数据流中不重复的数据分块之后,还包括:
从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
在所述为所述数据流中不重复的数据分块分配数据分块编号之后,还包括:
将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第一对应关系中。
结合第一方面或者第一方面的第一种可能实现方式,本发明实施例提供第一方面的第四种可能方式,在所述从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,之前还包括:
将所述数据流划分得到的多个数据分块的指纹值与所述存储控制器内存中已经加载的数据指纹值进行比对,初次查找所述数据流中的重复数据以获得所述数据流中不重复的数据;
将在所述数据流中初次查找到的重复数据分块进行重复数据删除。
第二方面,本发明实施例提供了一种重复数据处理方法,应用于集群存储系统,所述集群存储系统中包括多个存储节点,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,该方法包括:
第一存储节点接收需要进行重复数据删除的数据流,所述第一存储节点为集群系统中任一存储节点;
将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
确定所述指纹代表值对应的存储节点,将所述选取的数据分块对应的指纹代表值发送到所述指纹代表值对应的存储节点,通知所述对应的存储节点在存储的数据分块的指纹代表值与数据分块编号之间的第一对应关系中查找与所述选取的数据分块对应的指纹代表值相同的目标指纹代表值;获得所述目标指纹代表值对应的数据分块编号;
根据所述目标指纹代表值对应的数据分块编号,确定所述目标指纹代表值对应的指纹值的存储节点;
加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述第一存储节点;
将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
结合第二方面,本发明实施例提供给了第二方面的第一种可能实现方式,在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,还包括:
获得所述需要进行重复数据删除的数据流中查找到的不重复的数据分块;
在所述集群系统中确定用于存储所述不重复的数据分块的第一目标存储节点;
为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复的数据分块所存储的第一目标存储节点标识,以及所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述第一目标存储节点中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;存储所述数据流中所获得的不重复的数据分块到所述第一目标存储节点上。
结合第二方面的第一种可能实现方式,本发明实施例提供第二方面的第二种可能实现方式,在所述获得所述需要进行重复数据删除的数据流中不重复的数据分块之后,还包括:
从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
根据所获得预设数量的不重复的数据分块的指纹代表值,按照确定所述目标指纹代表值对应的数据分块的存储节点的方法,确定所述获得的预设数量的不重复的数据分块对应的第二目标存储节点;
在所述为所述数据流中不重复的数据分块分配数据分块编号之后,还包括:
将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第二目标存储节点的第一对应关系中。
第三方面,本发明实施例提供一种重复数据处理装置,应用于存储系统中,所述存储系统中包括集成有重复数据处理装置的存储控制器,用于存储数据分块的指纹代表值和数据分块的指纹值之间对应关系的存储装置,其中,对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储控制器与所述存储装置通信,对所述存储装置进行访问和管理;
接收单元,用于接收需要进行重复数据删除的数据流;
指纹值获取单元,用于将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
指纹代表值获取单元,用于从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
查找单元,用于在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
加载单元,用于加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述存储控制器内存中;
重复数据查找单元,将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
结合第三方面,本发明实施例提供了第三方面的第一种可能的实现方式,所述对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,包括:在所述存储装置中存储数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号与数据分块的指纹值之间的第二对应关系,通过所述数据分块编号,标识对应的指纹值所对应的数据分块所属的数据流,以及在所属数据流中的顺序;根据所述数据分块编号,属于同一数据流的数据分块的指纹值按照在所属数据流中的顺序在所述第二对应关系中连续存放;
所述查找单元,具体用于在所述存储装置上存储的所述第一对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得与所述目标指纹值对应的数据分块编号;根据所述目标指纹代表值对应的数据分块的编号,在所述存储装置上存储的所述第二对应关系中查找并获得获得所述目标指纹代表值对应的指纹值。
结合第三方面的第一种可能实现方式,本发明实施例提供了第三方面的第二种可能实现方式,还包括:
不重复数据分块获取单元,用于在所述重复数据查找单元在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,获得所述需要进行重复数据删除的数据流中不重复的数据分块;
数据分块编号分配单元,用于为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
第二对应关系更新单元,用于将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述存储装置中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;
数据分块存储单元,用于存储所述数据流中所获得的不重复的数据分块到所述存储装置上。
结合第三方面的第二种实现方式,本发明实施例还提供第三方面的第三种实现方式,所述指纹代表值获取单元,还用于所述不重复数据获得单元获得所述接收的数据流中不重复的数据分块之后,从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
所述装置还包括:第一对应关系更新单元,用于在所述为所述数据流中不重复的数据分块分配数据分块编号之后,将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第一对应关系中。
结合第三方面或者第三方面的第一种可能实现方式,本发明实施例提供了第三方面的第四种可能实现方式,还包括:
初筛单元,用于在所述指纹代表值获取单元从所述数据流划分得到的多个数据分块中选择预设数量的数据分块之前,将所述数据流划分得到的多个数据分块的指纹值与所述存储控制器内存中已经加载的数据指纹值进行比对,初次查找所述数据流中的重复数据以获得所述数据流中不重复的数据分块;将在所述数据流中初次查找到的重复数据分块进行重复数据删除。
第四方面,本发明实施例提供了一种重复数据处理装置,应用于集群存储系统中,所述集群存储系统中包括了多个存储节点,每个存储节点上集成了本发明实施例所提供的重复数据处理装置,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述装置包括:
接收单元,用于接收需要进行重复数据删除的数据流;
指纹值获取单元,用于将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
指纹代表值获取单元,用于从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
查找单元,确定所述指纹代表值对应的存储节点,将所述选取的数据分块对应的指纹代表值发送到所述指纹代表值对应的存储节点,通知所述对应的存储节点在存储的数据分块的指纹代表值与数据分块编号之间的第一对应关系中查找与所述选取的数据分块对应的指纹代表值相同的目标指纹代表值;获得所述目标指纹代表值对应的数据分块编号;根据所述目标指纹代表值对应的数据分块编号,确定所述目标指纹代表值对应的指纹值的存储节点;
加载单元,用于加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述第一存储节点;
重复数据查找单元,用于将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
结合第四方面,本发明实施例提供了第四方面的第一种可能的实现方式,还包括:
不重复数据获得单元,用于在所述重复数据查找单元在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,获得所述需要进行重复数据删除的数据流中查找到的不重复的数据分块;
第一目标存储节点确定单元,用于在所述集群系统中确定用于存储所述不重复的数据分块的第一目标存储节点;
数据分块编号分配单元,用于为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复的数据分块所存储的第一目标存储节点标识,以及所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
第二对应关系更新单元,用于将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述第一目标存储节点中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;存储所述数据流中所获得的不重复的数据分块到所述第一目标存储节点上。
结合第四方面的第一种可能的实现方式,本发明实施例提供了第四方面第二种可能的实现方式,还包括:
第二目标节点确定单元,用于在所述不重复数据获得单元获得所述需要进行重复数据删除的数据流中不重复的数据分块之后,从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;根据所获得预设数量的不重复的数据分块的指纹代表值,按照确定所述目标指纹代表值对应的数据分块的存储节点的方法,确定所述获得的预设数量的不重复的数据分块对应的第二目标存储节点;
第一对应关系更新单元,用于在所述数据分块编号分配单元为所述数据流中不重复的数据分块分配数据分块编号之后,将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第二目标存储节点的第一对应关系中。
第五方面,本发明实施例还提供一种存储控制器,应用于存储系统中,所述存储系统中包括:存储控制器,存储装置,所述存储装置中存储有数据分块的指纹代表值和数据分块的指纹值的对应关系,其中,对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储控制器与所述存储装置通信,对所述存储装置进行访问和管理;所述存储控制器包括:处理器,存储器,通信接口,总线;
所述处理器、通信接口、存储器通过所述总线相互的通信;所述通信接口,用于接收和发送数据;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的所述程序,执行如所述第一方面任一所述的方法。
第六方面,本发明实施例提供一种存储节点,应用于集群存储系统,所述集群存储系统中包括多个存储节点,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储节点包括:处理器,存储器,通信接口,总线;
所述处理器、通信接口、存储器通过所述总线相互的通信;所述通信接口,用于接收和发送数据;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的所述程序,执行如所述第二方面任一所述的方法。
本发明实施例所提供的重复数据处理方法,通过在数据分块的指纹的代表值和数据分块的指纹值的对应关系中,将属于同一数据流的数据分块对应的指纹值存放到一起,并且按照在数据流中的顺序在所述的对应关系中连续存放,在进行数据分块的全指纹比较中,将连续存放的指纹值加载到内存中进行比较,有效提高了重复数据查找率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种存储系统架构示意图;
图2为本发明实施例提供的一种重复数据处理的流程示意图;
图3为本发明实施例所提供的存储装置的内部逻辑结构图;
图4为本发明实施例所提供的分配数据分块编号的示意图;
图5为本发明实施例提供的另一种重复数据处理方法的流程示意图;
图6为本发明实施例所提供的另一种重复数据处理方法的流程示意图;
图7为本发明实施例所提供的一种重复数据处理装置的结构示意图;
图8为本发明实施例所提供的另一种重复数据处理装置的结构示意图;
图9为本发明实施例所提供的另一种重复数据处理装置的结构示意图;
图10为本发明实施例所提供的一种存储控制器的结构示意图;
图11为本发明实施例所提供的一种存储节点的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例所提供的一种存储系统,所述存储系统包括存储控制器,存储装置,存储装置中存储有数据分块的指纹代表值SID和数据分块的指纹值chunk ID的对应关系,所述指纹代表值标识可以用于代表指纹值的值,其中,对属于同一个数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放;所述存储控制器与所述存储装置通信,对所述处理器进行访问和管理。
在图1对应的存储架构基础上,图2为本发明提供的一种重复数据处理方法实施例的流程图,所述方法可以有图1中的存储系统中的存储控制器来执行,本发明实施例的方法,包括:
步骤201:存储控制器接收需要进行重复数据删除的数据流;
在存储系统中,存储控制器会接收不同的数据流,本发明实施例仅以一个数据流为例,对本发明实施例所提供的方法进行举例说明;
步骤202:将所述数据流进行划分得到多个数据分块;
将所述数据流中的数据进行划分以获得多个数据分块,其划分方式本发明实施例不做限定,可以是现有技术中的定长分块或者是变成分块,具体采用的方式,根据实际需要由用户确定;
步骤203:获取每个数据分块的指纹值;
步骤204:从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
其中,一个数据分块会有一个指纹代表值,每个指纹代表值用以代表对应数据分块的指纹值,指纹代表值可以是对应数据分块的指纹值的部分指纹值,本发明实施例对如何获取指纹代表值不做限定;
其中,需要说明的是,从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,其中“选择”数据分块的动作可以是通过直接选择数据分块对应的指纹值来实现;
所述获取所述选取的每个数据分块的指纹值的代表值的方式,可以有多种,例如,直接从所述数据流划分得到的多个数据分块中,选取出预设数量的数据分块,计算选取出的数据分块的指纹值的代表值;或者,例如:为了使得选取出来的数据分块在数据流中均匀的分布,可以将接收到的数据流划分得到的数据分块的指纹值进行分组,得到多个指纹分组,从每个指纹分组中抽出一个指纹值,抽出的指纹值对应的数据块,认为是被选取出来的数据分块,然后计算抽出的指纹值的代表值,例如,计算抽出的指纹值的部分指纹值(parthash)作为指纹值的代表值;
获取的预设数量的数据分块,具体的获取的数量本发明实施例并不限定;
步骤205:在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
其中,存储控制器可以将所述选取的数据分块对应的指纹代表值发送到存储装置,在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
步骤206:加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述存储控制器内存中;
存储系统中的存储装置上,会存储有已经过重复数据删除过程而得到的不重复的数据分块,并存储有数据分块的指纹值的代表值和数据分块的指纹值的对应关系,通过查找存储装置上存储的对应关系,查找所选取出来的数据分块的指纹代表值是否在对应关系中已经存储了,与所述选取出来的数据分块的指纹代表值相同,那么就很有可能指纹值也相同,因此,需要将目标指纹代表值所对应的指纹值加载到存储控制器的内存中进行全指纹比对;
因为对属于同一个数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,因此,所述选取出来的数据分块的指纹代表值匹配到相同的目标指纹代表值,所匹配到的目标指纹代表值对应的指纹值的前后连续的指纹值,很大可能属于同一数据流的指纹值,因此,本发明实施例将在对应关系中,与所述查找到的目标指纹代表指纹值对应的指纹值连续存放的指纹值加载到存储控制器的内存中,与所述需要重复删除的数据流的数据分块的数据流进行比较,以查找重复数据;
需要说明的是,所述预设的区域内连续存放的指纹值,其中预设的区域,可以根据实际情况由用户设定,例如:可以设定以所述目标指纹代表值对应的指纹值为基点,向前和向后连续存放预设个数指纹值所在的区域,或者只是向后或者向前连续存放预设个数指纹值所在的区域;
本发明实施例中所述的连续存放,只要是满足将同一数据流中的数据分块按照在数据流中的顺序连续存放即可,无论从数据流结束的位置开始还是从数据流开始的位置开始存放;
步骤207:将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
本发明实施例所提供的重复数据处理方法,通过在存储装置中存储数据分块的指纹的代表值和数据分块的指纹值的对应关系,并将属于同一数据流的数据分块对应的指纹值存放到一起,并且按照在数据流中的顺序在所述的对应关系中连续存放,在进行数据分块的全指纹比较中,将连续存放的指纹值加载到内存中进行比较,有效提高了重复数据查找率。
在本发明实施例所提供的重复数据处理方法中,针对存储装置中存储有数据分块的指纹的代表值和数据分块的指纹值的对应关系中,将属于同一数据流的数据分块对应的指纹值按照在所属数据流中的顺序在所述对应关系中连续存放,给出了一种可能的实现方式,例如:在存储装置中存储数据分块的指纹代表值与数据分块的数据分块编号之间的第一对应关系,以及数据分块的数据分块编号与数据分块的指纹值之间的第二对应关系,通过数据分块编号,标识与数据分块编号对应的指纹值所对应的数据分块所属的数据流,以及在所属数据流中的顺序;根据所述的数据分块编号,将属于同一数据流的数据分块的指纹值按照在所属数据流中的顺序在所述第二对应关系中连续存放;
参见图3存储装置的内部逻辑结构图,存储装置中会设置两个对应关系,包括指纹代表值和数据分块编号的第一对应关系,以及数据分块编号与元数据之间的对应关系,其中,元数据中包括了指纹值,指纹存储地址等元数据信息,并且,在存储装置中还保存有数据分块;
其中,数据分块编号要保证在数据流所在的重复数据删除域中的唯一性,并且实现逻辑上相近的数据分块对应的数据分块编号在对应关系中存放的位置也要是相近;为了实现这个目的,本发明实施例给出了数据分块编号的具体可能的实现方式,例如:每个数据分块编号为分为了两部分,一部分是所属数据流的编号,另一部分是数据分块在所属数据流中顺序编号,即序列号,可以从零开始编号,如下表:
Figure BDA0000456873490000161
对于在一个数据流3中已经确定为重复的数据分块不做编号,例如图4所示,假如数据流作为对象,在图中对象中由6个数据分块组成,6个数据分块按照在数据流中的顺序排列,进行重复数据查找后,确定两个数据分块是重复的,剩余4个数据分块,那么对数据流1中的第一个数据分块的数据分块编号是41,第二个数据分块的数据分块编号是42,第三个数据分块进行了重复数据删除,不再分配数据分块编号,第四个数据分块的数据分块编号是44,依此类推。
需要说明的是,存储控制器上运行的具有重复数据删除功能的文件系统来具体执行数据分块的数据分块编号分配工作;存储控制器上可以同时并行运行多个具有重复数据删除功能的文件系统,被一个文件系统所管理的虚拟空间被认为是一个重复数据删除域,数据分块的数据分块编号在所属数据流所在的重复数据删除域中是唯一的,不会重复,而因每个文件系统不同,因此,我们也可以认为数据分块编号在整个存储系统中也是唯一的;
在数据分块编号与数据分块指纹的第二对应关系中,根据数据分块编号,可以将属于同一数据流中的数据分块的指纹值,按照在数据流中的顺序存放在第二对应关系中;其中,所述第二对应关系,可以采用Key-value的组织方式,将数据分块编号作为键值key,通过键值查找对应的指纹值。
因为在本发明实施例所提供的可能实现方式中,将数据分块的指纹代表值与数据分块的指纹值的对应关系,通过指纹代表值与数据分块编号的第一对应关系,和数据分块编号与数据分块指纹值的第二对应关系,因此,上述的步骤205中所述“在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值”的步骤,具体实现可以是:
在所述存储装置上存储的所述第一对应关系中,查找与所述选取的数据分块指纹的代表值相同的目标指纹代表值。
本发明所提供的实施例中,当对数据流中的重复的数据分块进行查找后,对数据流中没有查找到的数据分块认为是新数据分块,对新数据分块进行存储之外,还需要给新数据分块分配数据分块编号,并将新数据分块编号与新数据分块的对应关系插入到存储装置上已有的第二对应关系中,因此,本发明实施例在步骤207之后,还可以包括:
步骤208:获得所述需要进行重复数据删除的数据流中不重复的数据分块;
通过将查找到目标指纹值,以及与所述目标指纹值同在一个预设区域内的连续存放的指纹值与数据流中的数据分块的指纹值进行比较,当比较得到相同的指纹值,那么数据流中具有相同指纹值的数据分块则认为是重复的数据分块,也可以在进行指纹值比对之后,将指纹值相同的数据分块中的数据按照字节进行比较后,确定数据分块是否为重复的数据分块,具体比较方式本发明实施例不做限定;
步骤209:为所述数据流中不重复的数据分块分配数据分块编号;
所述编号标识出了所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
步骤210:将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述存储装置中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;
如前面提到的,在存储控制器上运行有具有重复数据删除功能的文件系统,文件系统接收的一个文件,可以认为就是一个数据流,文件系统所接收的数据流中的不重复的数据块分配数据分块编号,如果存储控制器上同时并行运行多个文件系统,每个文件系统对所接收的数据流中的不重复的数据分块会分配唯一的数据分块编号;
步骤211:存储所述数据流中所获得的不重复的数据分块到所述存储装置上;
其中,步骤210和步骤211本发明实施例不对其进行先后顺序的限定。
进一步,为了使所述的第一对应关系不断更新,提高重复数据查找率,在步骤209之后,还可以包括:
步骤209a:从所述获得的不重复的数据分块中获得预设数量的数据分块,以及所述获得的预设数量的不重复的数据分块的指纹代表值;
其中,为了找到目标指纹代表值而选取出来的数据分块中,去除了重复数据之后,此时可以从剩余的不重复的数据分块中,获取不重复的数据分块,因之前已经计算过这些数据分块的指纹代表值,所以,而已直接获得,而不用在进行计算;
步骤209b:将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第一对应关系中。
尽管在数据I/O比较小,比较分散的情况下,不同数据流之间的数据连续性可能会比较弱,但在实际操作中,并不排除不同数据流之间也很可能存在数据连续性,连续性的数据之间,重复数据会比较多,这种情况,我们认为具有数据连续性的数据之间具有数据局部性,因此,为提高重复数据查找效率,参见图5,本发明实施例还提供一种重复数据处理方法,和图2所对应的方法的实现原理相同,不同之处在于,存储控制器在接收到新的数据流之后,会将数据流中的数据首先和已经加载到内存中的指纹值进行比对,进行第一次的重复数据查找,在经过第一重复数据查找之后,再执行后续的流程,因此,本发明实施例包括:
步骤501:存储控制器接收需要进行重复数据删除的数据流;
步骤502:将所述数据流进行划分得到多个数据分块;
步骤503:获取每个数据分块的指纹值;
步骤503a:将所述数据流划分得到的多个数据分块的指纹值与所述存储控制器内存中已经加载的数据指纹值进行比对,初次查找所述数据流中的重复数据以获得所述数据流中不重复的数据;
存储控制器内存中在对除本次查找所针对所述的数据流之外其他数据流进行重复数据查找过程中,已经加载到存储控制器内存中的指纹值,可用于对本次查找针对的数据流进行第一次重复数据查找;
步骤504:从所述初次查找后所述数据流中不重复的数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹值的代表值;
步骤505:在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
步骤506:加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述存储控制器内存中;
步骤507:将所述加载的指纹值与所述初次查找后的所述数据流中不重复的数据分块的指纹值进行比对,查找所述数据流中的重复数据。
本发明实施例在获得了数据流中所包括的多个数据分块的指纹值之后,先将数据分块的指纹值和存储控制器的内存中已经有的指纹值进行比较,对数据流中的重复数据分块进行初步查找,利用了不同数据流中数据可能存在的局部性,提高了重复数据删除效率。
参见图6,本发明实施例还提供一种重复数据处理方法,应用集群存储系统中,所述集群存储系统中包括多个存储节点,其中,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,本发明实施例以所述集群系统中其中一个存储节点为例,对本发明实施例进行详细说明,其中与前述方法实施例相同之处技术效果等扩展说明可参见前述方法实施例;所述重复数据处理方法,包括:
步骤601:第一存储节点接收需要进行重复数据删除的数据流,所述第一存储节点为集群系统中任一存储节点;
步骤602:将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
步骤603:从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
步骤604:根据所述指纹代表值确定所述对应的存储节点;
其中,在集群系统中,将指纹代表值发送到哪个节点上进行比对,可以通过对指纹代表值对所述集群系统中所包括的所有存储节点的数量进行取模的方式,计算得到对应的存储节点,例如,取模结果等于3,则对应存储节点3;
也可以是对指纹代表值进行不断开方取整,直到最后结果小于或等于集群系统中所包括的存储节点的数量,得到对应的存储节点;
步骤605:将所述选取的数据分块对应的指纹代表值发送到所述指纹代表值对应的存储节点,通知所述对应的存储节点在存储的数据分块的指纹代表值与数据分块编号之间的第一对应关系中查找与所述选取的数据分块对应的指纹代表值相同的目标指纹代表值;
所述与指纹代表值对应的存储节点,在接收到所述通知后,在本地存储的数据分块的指纹代表值与数据分块编号之间的第一对应关系中查找与所述选取的数据分块对应的指纹代表值相同的目标指纹代表值,将查找到的所述目标指纹代表值对应的数据分块编号反馈给所述第一存储节点;
步骤606:获得所述目标指纹代表值对应的数据分块编号;
指纹代表值对应的存储节点,可以将查找到的目标指纹代表值对应的数据分块编号反馈给所述第一存储节点;所述数据分块编号中标识有对应数据分块所在存储节点的标识;因此,对于所述第一存储节点,当获得了数据分块编号,就可以获知数据分块编号对应的数据分块所在地址;
步骤607:加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述第一存储节点;
步骤608:将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
本发明实施例提供了一种集群系统,对数据分块在每个存储节点进行连续存放,进行重复数据查找过程中,将连续存放的数据分块一起进行重复数据比较,提高了重复数据删除效率。
本发明实施例中,通过对数据流中查找的不重复数据分配数据分块编号,并进行存储,不断更新存储节点上所述的第二对应关系,因此,本发明实施例在步骤608将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,还可以包括:
步骤609:获得所述需要进行重复数据删除的数据流中查找到的不重复的数据分块;
通过指纹值的比对,或者在指纹值比对之后再进行数据分块字节比对的方式,获得重复数据分块,具体可参见现有技术;
步骤610:在所述集群系统中确定用于存储所述不重复的数据分块的第一目标存储节点;
所述第一存储节点将获得的不重复的数据进行存储,可以预先设定存储策略来选择用于存储不重复数据分块的存储节点,例如:策略一,先获取集群系统中各物理节点的负载信息,根据负载信息来选择数据分块存入的存储节点,可以使各个存储节点的负载均衡;策略二,也可以不对负载信息进行判断,直接从将不重复的数据分块存储到当前存储节点中,这种方式可以减少节点间交换。因此,具体的存储策略用户可以根据实际情况进行设置,本发明实施例不做限制;
步骤611:为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复的数据分块所存储的第一目标存储节点标识,以及所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
与单节点存储系统不同的是,在集群系统中包括了多个存储节点,数据分块编号需要能标识出对应数据分块所存储的节点,因此数据分块编号需要给对应数据分块所在的存储节点的编号;
在集群系统中,可能同时运行有多个具有重复数据删除功能的文件系统,被一个文件系统所管理的虚拟空间被认为是一个重复数据删除域,而被一个文件系统所管理的虚拟空间对应的物理空间可能存在于不同的存储节点上;因此运行在一个存储节点上的文件系统为数据流中不重复数据分块所分配的数据分块编号在一个重复数据删除域是唯一的,而因为每个文件系统是不同的,因此,数据分块编号在整个集群系统中也是唯一的;
步骤612:将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述存储装置中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;存储所述数据流中所获得的不重复的数据分块到所述第一目标存储节点上。
进一步,可以对存储节点上的指纹代表值与数据分块编号之间的映射关系不断更新,本发明实施例步骤609在所述获得所述需要进行重复数据删除的数据流中不重复的数据分块之后,还可以包括:
步骤613:从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
步骤614:根据所获得预设数量的不重复的数据分块的指纹代表值,按照确定所述目标指纹代表值对应的数据分块的存储节点的方法,确定所述获得的预设数量的不重复的数据分块对应的第二目标存储节点;
其中,确定对应的第二目标存储节点的方法,需要和确定所述目标指纹代表值对应的数据分块的存储节点的方法相同;
在所述步骤611之后,还可以包括:
步骤615:将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第二目标存储节点的第一对应关系中;
其中,所述的第二目标存储节点和第一目标存储节点可以不同,因此,第一对应关系存储的中存储的指纹代表值和第一对应关系所在的存储节点上存储的数据分块没有必然的联系。
通过本发明实施例所提供的在集群系统,在每个存储节点上将属于同一个数据流的指纹值在对应关系中连续存放,利用数据流中数据之间的局部性,有效提升重复数据删除率。
本发明实施例还提供一种重复数据处理装置700,其实现的原理和技术效果和前述对应的方法实施例相同,本发明实施例中未描述到的地方可参见本装置对应的方法实施例中的描述。本发明实施例所提供的重复数据处理装置700应用于存储系统中,所述存储系统中包括集成有重复数据处理装置的存储控制器,用于存储数据分块的指纹代表值和数据分块的指纹值之间对应关系的存储装置,其中,对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储控制器与所述存储装置通信,对所述存储装置进行访问和管理;参见图7,本发明实施例所提供的重复数据处理装置,包括:
接收单元701,用于接收需要进行重复数据删除的数据流;
指纹值获取单元702,用于将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
指纹代表值获取单元703,用于从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
查找单元704,用于在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
加载单元705,用于加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述存储控制器内存中;
重复数据查找单元706,将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
本发明实施例所提供的重复数据处理装置,通过在存储装置中存储数据分块的指纹的代表值和数据分块的指纹值的对应关系,并将属于同一数据流的数据分块对应的指纹值存放到一起,并且按照在数据流中的顺序在所述的对应关系中连续存放,在进行数据分块的全指纹比较中,将连续存放的指纹值加载到内存中进行比较,有效提高了重复数据查找率。
在本发明实施例所到的存储装置上,存储有数据分块的指纹的代表值和数据分块的指纹值的对应关系中,将属于同一数据流的数据分块对应的指纹值按照在所属数据流中的顺序在所述对应关系中连续存放,给出了一种可能的实现方式,例如:在存储装置中存储数据分块的指纹代表值与数据分块的数据分块编号之间的第一对应关系,以及数据分块的数据分块编号与数据分块的指纹值之间的第二对应关系,通过数据分块编号,标识与数据分块编号对应的指纹值所对应的数据分块所属的数据流,以及在所属数据流中的顺序;根据所述的数据分块编号,将属于同一数据流的数据分块的指纹值按照在所属数据流中的顺序在所述第二对应关系中连续存放;因此,提供的重复数据删除装置中,所述查找单元704,具体用于在所述存储装置上存储的所述第一对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得与所述目标指纹值对应的数据分块编号;根据所述目标指纹代表值对应的数据分块的编号,在所述存储装置上存储的所述第二对应关系中查找并获得获得所述目标指纹代表值对应的指纹值;
在所述重复数据处理装置700在获得所接收的数据流中的不重复数据分块之后,将不重复数据分块对应的指纹值存储到已有的对应关系中,因此,所述重复数据处理装置还可以包括:
不重复数据分块获取单元707,用于在所述重复数据查找单元706在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,获得所述需要进行重复数据删除的数据流中不重复的数据分块;
数据分块编号分配单元708,用于为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
第二对应关系更新单元709,用于将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述存储装置中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;
数据分块存储单元710,用于存储所述数据流中所获得的不重复的数据分块到所述存储装置上。
进一步,本发明实施例所提供的重复数据处理装置700,为了提高重删率,可以将所述的第一对应关系不断更新,因此,所述指纹代表值获取单元703,还用于在所述不重复数据分块获取单元获得所述接收的数据流中不重复的数据分块之后,从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
所述装置700还包括:
第一对应关系更新单元711,用于在所述为所述数据流中不重复的数据分块分配数据分块编号之后,将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第一对应关系中。
参见图8所示,本发明实施例还提供另一种重复数据处理装置,和图7所对应的装置不同的是,本实施例所提供的重复数据处理装置为了提高重复数据查找效率和重复数据查找率,在将接收的数据流的数据分块和存储装置中的第一对应关系比对之前,先和内存中已经加载的数据分块的指纹值进行比较,对数据流中的重复数据分块进行初步筛选;因此,本发明实施例所提供的重复数据处理装置,包括:
接收单元801,用于接收需要进行重复数据删除的数据流;
指纹值获取单元802,用于将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
初筛单元803,用于将所述数据流划分得到的多个数据分块的指纹值与所述存储控制器内存中已经加载的数据指纹值进行比对,初次查找所述数据流中的重复数据以获得所述数据流中不重复的数据;将在所述数据流中初次查找到的重复数据分块进行重复数据删除;
指纹代表值获取单元804,用于从所述初筛单元803初筛后,从所述初次查找后所述数据流中不重复的数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹值的代表值;
查找单元805,用于在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
加载单元806,用于加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述存储控制器内存中;
重复数据查找单元807,将所述加载的指纹值与所述初次查找后的所述数据流中不重复的数据分块的指纹值进行比对,查找所述数据流中的重复数据。
本发明实施例所提供的重复数据处理装置,将数据流划分得到的数据分块首先和存储控制内存中已经加载有的数据分块的指纹值进行比较,在当前数据流和之前已经进行重复数据查找的数据流之间存在连续性的情况下,有效提高了重复数据删除效率以及重复数据删除率。
参见图9,本发明实施例还提供了另一种重复数据处理装置900,应用于集群存储系统中,所述集群存储系统中包括了多个存储节点,每个存储节点上集成了本发明实施例所提供的重复数据处理装置,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,参见图9,以所述集群系统中第一存储节点为例,所述第一存储节点为所述集群系统中任一一个存储节点,所述重复数据处理装置900,包括:
接收单元901,用于接收需要进行重复数据删除的数据流;
指纹值获取单元902,用于将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
指纹代表值获取单元903,用于从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
查找单元904,确定所述指纹代表值对应的存储节点,将所述选取的数据分块对应的指纹代表值发送到所述指纹代表值对应的存储节点,通知所述对应的存储节点在存储的数据分块的指纹代表值与数据分块编号之间的第一对应关系中查找与所述选取的数据分块对应的指纹代表值相同的目标指纹代表值;获得所述目标指纹代表值对应的数据分块编号;根据所述目标指纹代表值对应的数据分块编号,确定所述目标指纹代表值对应的指纹值的存储节点;
其中,当与所述指纹代表值对应的存储节点查找到目标指纹代表值,会得到存储在第一对应关系中,与目标指纹代表值对应的数据分块的编号,将数据分块的编号反馈给所述第一存储节点;
加载单元905,用于加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述第一存储节点;
重复数据查找单元906,用于将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
本发明实施例所提供的重复数据处理装置,还可以包括:
不重复数据获得单元907,用于在所述重复数据查找单元907在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,获得所述需要进行重复数据删除的数据流中查找到的不重复的数据分块;
第一目标存储节点确定单元908,用于在所述集群系统中确定用于存储所述不重复的数据分块的第一目标存储节点;
第一目标存储节点获得的具体方法,可以参见对应方法实施例中的描述;
数据分块编号分配单元909,用于为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复的数据分块所存储的第一目标存储节点标识,以及所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
第二对应关系更新单元910,用于将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述第一目标存储节点中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;存储所述数据流中所获得的不重复的数据分块到所述第一目标存储节点上。
本发明实施例所提供的重复数据处理装置,为了提高重复数据查找率,需要对存储节点上第一对应关系进行更新,因此,还可以包括:
第二目标节点确定单元911,用于在所述不重复数据获得单元907获得所述需要进行重复数据删除的数据流中不重复的数据分块之后,从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
根据所获得预设数量的不重复的数据分块的指纹代表值,按照确定所述目标指纹代表值对应的数据分块的存储节点的方法确定所述获得的预设数量的不重复的数据分块对应的第二目标存储节点;
第一对应关系更新单元912,用于在所述数据分块编号分配单元为所述数据流中不重复的数据分块分配数据分块编号之后,将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第二目标存储节点的第一对应关系中。
具体的插入方式,可以是所述重复数据处理装置900将将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系发送给所述第二目标存储节点,通知或请求所述第二目标存储节点来具体执行将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第二目标存储节点的第一对应关系中。
通过本发明实施例所提供的重复数据处理装置,集成在存储节点上,在每个存储节点上将属于同一个数据流的指纹值在对应关系中连续存放,利用数据流中数据之间的局部性,有效提升重复数据删除率。
本发明实施例还提供一种存储控制器10,其特征在于,应用于存储系统中,所述存储系统中包括:存储控制器10,存储装置,所述存储装置中存储有数据分块的指纹代表值和数据分块的指纹值的对应关系,其中,对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储控制器与所述存储装置通信,对所述存储装置进行访问和管理;参见图10,所述存储控制10包括:处理器11,存储器12,通信接口13,总线14;
所述处理器11、通信接口13、存储器12通过所述总线14相互的通信;所述通信接口13,用于接收和发送数据;
所述存储器12用于存储程序;
所述处理器11用于执行所述存储器中的所述程序,执行如前述图2和图5对应方法中任一方法。
本发明实施例还提供一种存储节点20,应用集群存储系统中,所述集群存储系统中包括多个存储节点,其中,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,参见图11,本发明实施例所提供的存储节点20,包括:处理器21,存储器22,通信接口23,总线24;
所述处理器21、通信接口23、存储器22通过所述总线24相互的通信;所述通信接口23,用于接收和发送数据;
所述存储器22用于存储程序;
所述处理器21用于执行所述存储器中的所述程序,执行如前述图6对应方法中任一方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (20)

1.一种重复数据处理方法,其特征在于,应用于存储系统中,所述存储系统中包括:存储控制器,存储装置,所述存储装置中存储有数据分块的指纹代表值和数据分块的指纹值的对应关系,其中,对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储控制器与所述存储装置通信,对所述存储装置进行访问和管理;该方法包括:
所述存储控制器接收需要进行重复数据删除的数据流;
将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述存储控制器内存中;
将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
2.根据权利要求1所述的方法,其特征在于,所述对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,包括:
在所述存储装置中存储数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号与数据分块的指纹值之间的第二对应关系,通过所述数据分块编号,标识对应的指纹值所对应的数据分块所属的数据流,以及在所属数据流中的顺序;根据所述数据分块编号,属于同一数据流的数据分块的指纹值按照在所属数据流中的顺序在所述第二对应关系中连续存放;
所述在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值,包括:
在所述存储装置上存储的所述第一对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得与所述目标指纹值对应的数据分块编号;根据所述目标指纹代表值对应的数据分块的编号,在所述存储装置上存储的所述第二对应关系中查找并获得获得所述目标指纹代表值对应的指纹值。
3.根据权利要求2所述的方法,其特征在于,在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,还包括:
获得所述需要进行重复数据删除的数据流中不重复的数据分块;
为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述存储装置中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;
存储所述数据流中所获得的不重复的数据分块到所述存储装置上。
4.根据权利要求3所述的方法,其特征在于,所述获得所述需要进行重复数据删除的数据流中不重复的数据分块之后,还包括:
从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
在所述为所述数据流中不重复的数据分块分配数据分块编号之后,还包括:
将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第一对应关系中。
5.根据权利要求1或2所述的方法,其特征在于,在所述从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,之前还包括:
将所述数据流划分得到的多个数据分块的指纹值与所述存储控制器内存中已经加载的数据指纹值进行比对,初次查找所述数据流中的重复数据以获得所述数据流中不重复的数据;
将在所述数据流中初次查找到的重复数据分块进行重复数据删除。
6.根据权利要求5所述的方法,其特征在于:
所述从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值,包括:
从所述初次查找后所述数据流中不重复的数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹值的代表值;
所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据,包括:
将所述加载的指纹值与所述初次查找后的所述数据流中不重复的数据分块的指纹值进行比对,查找所述数据流中的重复数据。
7.一种重复数据处理方法,其特征在于,应用于集群存储系统,所述集群存储系统中包括多个存储节点,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,该方法包括:
第一存储节点接收需要进行重复数据删除的数据流,所述第一存储节点为集群系统中任一存储节点;
将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
确定所述指纹代表值对应的存储节点,将所述选取的数据分块对应的指纹代表值发送到所述指纹代表值对应的存储节点,通知所述对应的存储节点在存储的数据分块的指纹代表值与数据分块编号之间的第一对应关系中查找与所述选取的数据分块对应的指纹代表值相同的目标指纹代表值;获得所述目标指纹代表值对应的数据分块编号;
根据所述目标指纹代表值对应的数据分块编号,确定所述目标指纹代表值对应的指纹值的存储节点;
加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述第一存储节点;
将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
8.根据权利要求7所述的方法,其特征在于,在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,还包括:
获得所述需要进行重复数据删除的数据流中查找到的不重复的数据分块;
在所述集群系统中确定用于存储所述不重复的数据分块的第一目标存储节点;
为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复的数据分块所存储的第一目标存储节点标识,以及所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述第一目标存储节点中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;存储所述数据流中所获得的不重复的数据分块到所述第一目标存储节点上。
9.根据权利要求8所述的方法,其特征在于,在所述获得所述需要进行重复数据删除的数据流中不重复的数据分块之后,还包括:
从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
根据所获得预设数量的不重复的数据分块的指纹代表值,按照确定所述目标指纹代表值对应的数据分块的存储节点的方法,确定所述获得的预设数量的不重复的数据分块对应的第二目标存储节点;
在所述为所述数据流中不重复的数据分块分配数据分块编号之后,还包括:
将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第二目标存储节点的第一对应关系中。
10.一种重复数据处理装置,其特征在于,应用于存储系统中,所述存储系统中包括集成有重复数据处理装置的存储控制器,用于存储数据分块的指纹代表值和数据分块的指纹值之间对应关系的存储装置,其中,对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储控制器与所述存储装置通信,对所述存储装置进行访问和管理;
接收单元,用于接收需要进行重复数据删除的数据流;
指纹值获取单元,用于将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
指纹代表值获取单元,用于从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
查找单元,用于在所述存储装置上存储的对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得所述目标指纹代表值对应的指纹值;
加载单元,用于加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述存储控制器内存中;
重复数据查找单元,将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
11.根据权利要求10所述的装置,其特征在于,所述对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,包括:在所述存储装置中存储数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号与数据分块的指纹值之间的第二对应关系,通过所述数据分块编号,标识对应的指纹值所对应的数据分块所属的数据流,以及在所属数据流中的顺序;根据所述数据分块编号,属于同一数据流的数据分块的指纹值按照在所属数据流中的顺序在所述第二对应关系中连续存放;
所述查找单元,具体用于在所述存储装置上存储的所述第一对应关系中查找与所选择的数据分块的指纹代表值相同的目标指纹代表值,获得与所述目标指纹值对应的数据分块编号;根据所述目标指纹代表值对应的数据分块的编号,在所述存储装置上存储的所述第二对应关系中查找并获得获得所述目标指纹代表值对应的指纹值。
12.根据权利要求11所述的装置,其特征在于,还包括:
不重复数据分块获取单元,用于在所述重复数据查找单元在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,获得所述需要进行重复数据删除的数据流中不重复的数据分块;
数据分块编号分配单元,用于为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
第二对应关系更新单元,用于将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述存储装置中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;
数据分块存储单元,用于存储所述数据流中所获得的不重复的数据分块到所述存储装置上。
13.根据权利要求12所述的装置,其特征在于:
所述指纹代表值获取单元,还用于所述不重复数据获得单元获得所述接收的数据流中不重复的数据分块之后,从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;
所述装置还包括:第一对应关系更新单元,用于在所述为所述数据流中不重复的数据分块分配数据分块编号之后,将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第一对应关系中。
14.根据权利要求10或11所述的方法,其特征在于,还包括:
初筛单元,用于在所述指纹代表值获取单元从所述数据流划分得到的多个数据分块中选择预设数量的数据分块之前,将所述数据流划分得到的多个数据分块的指纹值与所述存储控制器内存中已经加载的数据指纹值进行比对,初次查找所述数据流中的重复数据以获得所述数据流中不重复的数据分块;将在所述数据流中初次查找到的重复数据分块进行重复数据删除。
15.根据权利要求14所述的方法,其特征在于,所述指纹代表值获取单元,具体用于在所述初筛单元对数据流中的数据分块进行初次重复数据查找后,从所述数据流中不重复的数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹值的代表值;
重复数据查找单元,具体用于将所述加载的指纹值与所述初次查找后的所述数据流中不重复的数据分块的指纹值进行比对,查找所述数据流中的重复数据。
16.一种重复数据处理装置,其特征在于,应用于集群存储系统中,所述集群存储系统中包括了多个存储节点,每个存储节点上集成了本发明实施例所提供的重复数据处理装置,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述装置包括:
接收单元,用于接收需要进行重复数据删除的数据流;
指纹值获取单元,用于将所述数据流划分得到多个数据分块;获取每个数据分块的指纹值;
指纹代表值获取单元,用于从所述数据流划分得到的多个数据分块中选择预设数量的数据分块,获取所述选取的每个数据分块的指纹代表值;
查找单元,确定所述指纹代表值对应的存储节点,将所述选取的数据分块对应的指纹代表值发送到所述指纹代表值对应的存储节点,通知所述对应的存储节点在存储的数据分块的指纹代表值与数据分块编号之间的第一对应关系中查找与所述选取的数据分块对应的指纹代表值相同的目标指纹代表值;获得所述目标指纹代表值对应的数据分块编号;根据所述目标指纹代表值对应的数据分块编号,确定所述目标指纹代表值对应的指纹值的存储节点;
加载单元,用于加载所述目标指纹代表值对应的指纹值,以及所述目标指纹代表值对应指纹值所在预设的区域内连续存放的指纹值到所述第一存储节点;
重复数据查找单元,用于将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据。
17.根据权利要求16所述的装置,其特征在于,还包括:
不重复数据获得单元,用于在所述重复数据查找单元在所述将所述加载的指纹值与所述数据流中数据分块的指纹值进行比对,查找所述数据流中的重复数据之后,获得所述需要进行重复数据删除的数据流中查找到的不重复的数据分块;
第一目标存储节点确定单元,用于在所述集群系统中确定用于存储所述不重复的数据分块的第一目标存储节点;
数据分块编号分配单元,用于为所述数据流中不重复的数据分块分配数据分块编号,所述编号标识出了所述不重复的数据分块所存储的第一目标存储节点标识,以及所述不重复数据分块所属的数据流以及在所属数据流中的顺序位置;
第二对应关系更新单元,用于将所述不重复的数据分块的数据分块编号与所述不重复数据分块的指纹值之间的对应关系,按照所述不重复数据分块在所属数据流中的顺序插入到所述第一目标存储节点中的所述第二对应关系中,使得所述不重复数据分块按照在所述接收的数据流中的位置连续存放在所述第二对应关系中;存储所述数据流中所获得的不重复的数据分块到所述第一目标存储节点上。
18.根据权利要求17所述的装置,其特征在于,还包括:
第二目标节点确定单元,用于在所述不重复数据获得单元获得所述需要进行重复数据删除的数据流中不重复的数据分块之后,从所述获得的不重复的数据分块中获得预设数量的数据分块以及所获得预设数量的不重复的数据分块的指纹代表值;根据所获得预设数量的不重复的数据分块的指纹代表值,按照确定所述目标指纹代表值对应的数据分块的存储节点的方法,确定所述获得的预设数量的不重复的数据分块对应的第二目标存储节点;
第一对应关系更新单元,用于在所述数据分块编号分配单元为所述数据流中不重复的数据分块分配数据分块编号之后,将所述获得的预设数量的不重复数据分块的指纹代表值与其数据分块编号的对应关系插入到所述第二目标存储节点的第一对应关系中。
19.一种存储控制器,其特征在于,应用于存储系统中,所述存储系统中包括:存储控制器,存储装置,所述存储装置中存储有数据分块的指纹代表值和数据分块的指纹值的对应关系,其中,对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储控制器与所述存储装置通信,对所述存储装置进行访问和管理;所述存储控制器包括:处理器,存储器,通信接口,总线;
所述处理器、通信接口、存储器通过所述总线相互的通信;所述通信接口,用于接收和发送数据;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的所述程序,执行如权利要求1-6任一所述的方法。
20.一种存储节点,其特征在于,应用于集群存储系统,所述集群存储系统中包括多个存储节点,每个存储节点上存储有数据分块的指纹代表值与数据分块编号之间的第一对应关系,以及数据分块编号和数据分块的指纹值之间的第二对应关系;其中,所述第二对应关系中的数据分块编号标识对应的指纹值所对应的数据分块所在存储节点标识,以及所属的数据流和在所属数据流中的顺序,根据数据分块编号对属于同一数据流中的数据分块的指纹值,按照在所属的数据流中的顺序,在所述的对应关系中连续存放,所述存储节点包括:处理器,存储器,通信接口,总线;
所述处理器、通信接口、存储器通过所述总线相互的通信;所述通信接口,用于接收和发送数据;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的所述程序,执行如权利要求7-9任一所述的方法。
CN201380002197.6A 2013-12-17 2013-12-17 重复数据处理方法、装置及存储控制器和存储节点 Active CN103858125B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/089654 WO2015089728A1 (zh) 2013-12-17 2013-12-17 重复数据处理方法、装置及存储控制器和存储节点

Publications (2)

Publication Number Publication Date
CN103858125A true CN103858125A (zh) 2014-06-11
CN103858125B CN103858125B (zh) 2015-12-30

Family

ID=50864336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380002197.6A Active CN103858125B (zh) 2013-12-17 2013-12-17 重复数据处理方法、装置及存储控制器和存储节点

Country Status (2)

Country Link
CN (1) CN103858125B (zh)
WO (1) WO2015089728A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036044A (zh) * 2014-06-30 2014-09-10 Tcl集团股份有限公司 建立模式特征库的方法、装置和相似性匹配方法、装置
CN105335530A (zh) * 2015-12-11 2016-02-17 上海爱数信息技术股份有限公司 一种提升大数据块重复数据删除性能的方法
CN107239226A (zh) * 2016-03-29 2017-10-10 联想(北京)有限公司 一种数据去重方法及终端、服务器
CN107632786A (zh) * 2017-09-20 2018-01-26 杭州宏杉科技股份有限公司 一种数据重删的管理方法及装置
CN107850983A (zh) * 2015-09-11 2018-03-27 株式会社日立制作所 计算机系统、存储装置和数据的管理方法
CN108134775A (zh) * 2017-11-21 2018-06-08 华为技术有限公司 一种数据处理方法和设备
CN109522315A (zh) * 2018-10-26 2019-03-26 苏宁易购集团股份有限公司 一种数据库处理方法及系统
CN110618789A (zh) * 2019-08-14 2019-12-27 华为技术有限公司 一种重复数据的删除方法及装置
CN112181291A (zh) * 2020-09-04 2021-01-05 杭州宏杉科技股份有限公司 数据回写方法、装置、电子设备及及机器可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824881B (zh) * 2016-03-10 2019-03-29 中国人民解放军国防科学技术大学 一种基于负载均衡的重复数据删除数据放置方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256143A1 (en) * 2007-04-11 2008-10-16 Data Domain, Inc. Cluster storage using subsegmenting
CN102629258A (zh) * 2012-02-29 2012-08-08 浪潮(北京)电子信息产业有限公司 重复数据删除方法和装置
CN102810108A (zh) * 2011-06-02 2012-12-05 英业达股份有限公司 重复数据的处理方法
CN102833298A (zh) * 2011-06-17 2012-12-19 英业达集团(天津)电子技术有限公司 分布式的重复数据删除系统及其处理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184214B (zh) * 2011-05-04 2013-07-31 东南大学 一种数据分组快速查找定位法
WO2014067063A1 (zh) * 2012-10-30 2014-05-08 华为技术有限公司 重复数据检索方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256143A1 (en) * 2007-04-11 2008-10-16 Data Domain, Inc. Cluster storage using subsegmenting
CN102810108A (zh) * 2011-06-02 2012-12-05 英业达股份有限公司 重复数据的处理方法
CN102833298A (zh) * 2011-06-17 2012-12-19 英业达集团(天津)电子技术有限公司 分布式的重复数据删除系统及其处理方法
CN102629258A (zh) * 2012-02-29 2012-08-08 浪潮(北京)电子信息产业有限公司 重复数据删除方法和装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036044B (zh) * 2014-06-30 2018-03-06 Tcl集团股份有限公司 建立模式特征库的方法、装置和相似性匹配方法、装置
CN104036044A (zh) * 2014-06-30 2014-09-10 Tcl集团股份有限公司 建立模式特征库的方法、装置和相似性匹配方法、装置
CN107850983A (zh) * 2015-09-11 2018-03-27 株式会社日立制作所 计算机系统、存储装置和数据的管理方法
CN107850983B (zh) * 2015-09-11 2020-11-03 株式会社日立制作所 计算机系统、存储装置和数据的管理方法
CN105335530A (zh) * 2015-12-11 2016-02-17 上海爱数信息技术股份有限公司 一种提升大数据块重复数据删除性能的方法
CN105335530B (zh) * 2015-12-11 2018-10-19 上海爱数信息技术股份有限公司 一种提升大数据块重复数据删除性能的方法
CN107239226A (zh) * 2016-03-29 2017-10-10 联想(北京)有限公司 一种数据去重方法及终端、服务器
CN107239226B (zh) * 2016-03-29 2020-05-26 联想(北京)有限公司 一种数据去重方法及终端、服务器
CN107632786B (zh) * 2017-09-20 2020-04-07 杭州宏杉科技股份有限公司 一种数据重删的管理方法及装置
CN107632786A (zh) * 2017-09-20 2018-01-26 杭州宏杉科技股份有限公司 一种数据重删的管理方法及装置
CN108134775A (zh) * 2017-11-21 2018-06-08 华为技术有限公司 一种数据处理方法和设备
CN108134775B (zh) * 2017-11-21 2020-10-09 华为技术有限公司 一种数据处理方法和设备
CN109522315A (zh) * 2018-10-26 2019-03-26 苏宁易购集团股份有限公司 一种数据库处理方法及系统
CN110618789A (zh) * 2019-08-14 2019-12-27 华为技术有限公司 一种重复数据的删除方法及装置
CN112181291A (zh) * 2020-09-04 2021-01-05 杭州宏杉科技股份有限公司 数据回写方法、装置、电子设备及及机器可读存储介质

Also Published As

Publication number Publication date
WO2015089728A1 (zh) 2015-06-25
CN103858125B (zh) 2015-12-30

Similar Documents

Publication Publication Date Title
CN103858125B (zh) 重复数据处理方法、装置及存储控制器和存储节点
CN103136114B (zh) 存储方法及存储装置
JP5824167B2 (ja) クラスタシステムデータ処理方法及び装置
US10289315B2 (en) Managing I/O operations of large data objects in a cache memory device by dividing into chunks
CN105589812B (zh) 磁盘碎片整理方法、装置及主机
CN102663090B (zh) 元数据查询方法和装置
CN111913909A (zh) 一种分布式存储系统中的重新分片方法及系统
CN102968498A (zh) 数据处理方法及装置
CN103631940A (zh) 一种应用于hbase数据库的数据写入方法及系统
CN103189867A (zh) 重复数据检索方法及设备
CN107239412B (zh) 基于Thin-LUN的存储空间配置方法、数据写入方法及存储设备
CN103761053A (zh) 一种数据处理方法和装置
CN103677674B (zh) 一种数据处理方法及装置
CN104933051B (zh) 文件存储空间回收方法和装置
CN112114753B (zh) 一种数据写入方法、装置及设备
CN111913925B (zh) 一种分布式存储系统中的数据处理方法及系统
CN106682215A (zh) 一种数据处理方法和管理节点
CN104268159A (zh) 一种基于动态镜像的实时数据仓库数据预存取方法
CN102810108A (zh) 重复数据的处理方法
CN111522502A (zh) 数据去重方法、装置、电子设备及计算机可读存储介质
WO2016106757A1 (zh) 一种存储数据的管理方法、存储管理器及存储系统
CN103530067B (zh) 一种数据操作的方法和设备
CN111240890B (zh) 数据处理方法、快照处理方法、装置及计算设备
CN109669621A (zh) 一种文件管理方法、文件管理系统、电子设备及存储介质
CN106294189B (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
C14 Grant of patent or utility model
GR01 Patent grant