CN108431815B - 在处理器网格中的分布式数据的去重复数据 - Google Patents

在处理器网格中的分布式数据的去重复数据 Download PDF

Info

Publication number
CN108431815B
CN108431815B CN201780005643.7A CN201780005643A CN108431815B CN 108431815 B CN108431815 B CN 108431815B CN 201780005643 A CN201780005643 A CN 201780005643A CN 108431815 B CN108431815 B CN 108431815B
Authority
CN
China
Prior art keywords
processor
owner
data
digest
similarity
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.)
Active
Application number
CN201780005643.7A
Other languages
English (en)
Other versions
CN108431815A (zh
Inventor
L·阿罗诺维什
V·帕斯昆托尼奥
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN108431815A publication Critical patent/CN108431815A/zh
Application granted granted Critical
Publication of CN108431815B publication Critical patent/CN108431815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

用于处理器网格中的分布式数据的去重复数据的实施例。输入数据在处理器上被接收。输入数据被分割成多个相似性单元。为所述相似性单元之一计算对应的去重复数据元数据切片和所有者处理器。将相似性单元之一的代表值和相应的摘要值发送给所有者处理器。所有者处理器用于在所述对应的去重复数据元数据切片中搜索代表值,并向所述处理器发送计算出的相同数据部分的说明和所有者处理器。处理器用于将计算出的相同数据部分的名义信息发送给所计算出的相同数据部分所参考的数据的所有者处理器。

Description

在处理器网格中的分布式数据的去重复数据
技术领域
本发明总体上涉及计算机,并且更具体地涉及计算环境中的处理器网格的分布式数据的去重复数据。
背景技术
在当今社会,计算机系统是司空见惯的。计算机系统可以在工作场所,家中或学校中找到。计算机系统可以包括数据存储系统或磁盘存储系统来处理和存储数据。大量的数据必须每天处理,目前的趋势表明这些数据量在可预见的未来将持续增加。减轻该问题的有效方法是使用去重复数据。去重复数据系统的基本思想是利用可用数据的大部分被一次又一次地复制的事实,通过定位重复数据并仅存储其第一次出现。随后的副本将替换为指向存储的事件的指针,如果数据确实重复,则会显着降低存储要求。
发明内容
提供了处理器网格中的分布式数据的去重复数据的实施例。在一个实施例中,仅作为示例,在摄取处理器上接收输入数据。输入数据被分割成多个相似性单元。计算相似性单元之一的对应去重复数据元数据切片和所有者处理器。将相似性单元之一的代表值和对应的摘要值发送给所有者处理器。所有者处理器用于在去重复数据元数据切片中搜索代表值,并且向摄取处理器发送计算出的相同数据部分的说明和所有者处理器。摄取处理器用于将计算出的相同数据部分的名义信息发送到由计算出的相同数据部分参考的数据的所有者处理器。计算出的相同数据部分引用的数据的所有者处理器用于以存储有由相同数据部分引用的数据的存储块的信息来响应摄取处理器。
除了上述示例性方法实施例之外,提供其他示例性系统和计算机产品实施例并提供相关优点。
附图说明
为了容易理解本发明的优点,将通过参考附图中示出的具体实施例来呈现上面简要描述的本发明的更具体描述。应理解的是,这些附图描绘了本发明的实施例并不因此被认为是对其范围的限制,将通过使用附图以更多的特征和细节来描述和解释本发明,其中:
图1是示出具有其中可以实现本发明的各方面的示例存储设备的计算系统环境的框图;
图2是示出其中可以实现本发明的各方面的数据存储系统的硬件结构的框图;
图3是用于将去重复数据元数据存储在无共享架构中的处理器的网格中的示例性实施例的框图图示,其可以实现本发明的各方面;
图4是用于处理器的无共享网格中的全局分布式数据去重复数据的示例性方法的框图,该方法包括消息的示例性体系结构和序列,再次申明可以在其中实现本发明的各方面;
图5A是根据本发明的一个实施例的用于处理器的无共享网格中的全局分布式数据的去重复数据的示例性方法的流程图;
图5B是先前在图5A中首先呈现的流程图的继续;
图6是根据本发明的一个实施例的将代表值一致映射到去重复数据元数据切片的示例性的框图;
图7是用于当处理器被添加到处理器网格时重新平衡去重复数据元数据的示例性实施例的框图,这里沿着搜索链找到输入代表值,再次可以实现本发明的各方面;
图8是当处理器被添加到处理器网格时重新平衡去重复数据元数据的附加示例性实施例的框图,其中处理器网格中搜索链到达完全重新平衡的处理器并且没有找到输入代表值,再次申明可以实现本发明的各方面;
图9是根据本发明一个实施例的用于在处理器网格中存储去重复数据元数据的示例性方法的流程图。
图10是根据本发明的一个实施例的用于在处理器之间重新平衡分布式去重复数据元数据的示例性方法的流程图;和
图11是根据本发明的一个实施例的用于分布式可扩展去重复数据的示例性方法的流程图。
具体实施方式
去重复数据是计算存储系统中非常重要且充满活力的领域。去重复数据是指减少和/或消除冗余数据。在去重复数据中,数据对象(可能是文件,数据流或其他形式的数据)被划分为一个或多个称为大块或块的部分。在去重复数据过程中,可以减少或消除数据的重复副本,分别留下最少量的冗余副本或单个副本。去重复数据系统的目标是存储重复数据的单个副本,实现此目标所面临的挑战是在典型的大型存储库中高效地查找重复的数据模式,并将数据模式存储在存储高效的去重复数据表单中。
现有的分布式去重复数据技术通常受其支持的数据存储库大小的限制。许多现有的去重复数据技术基于维护称为指纹或摘要的值的索引,其中小指纹(例如,范围在16字节和64字节之间)代表较大的去重复数据块(范围例如在4KB和256KB之间)。指纹值通常是基于段的数据计算出的加密哈希值,用于示例SHA-1或SHA-256。使用索引查找识别指纹匹配,可以识别数据匹配,并随后存储对存储库中已存在的数据的引用。
在该方法中,较大的去重复数据块降低了去重复数据的解析度和有效性,并且较小的去重复数据块生成大量指纹来存储,这与指纹的大小相结合可能是禁止的。例如,对于1PB的去重复数据数据,4KB块大小和32字节指纹大小(例如SHA-256),存储指纹所需的存储量为8TB。维护这种指纹量的指纹索引通常是困难的,并且现有技术在保持性能的同时不会缩放到这些大小。出于这个原因,基于哈希的去重复数据技术通常支持相对较小的存储库(大约几十TB)。
现有的分布式去重复数据技术通常基于上述的哈希去重复数据方法,因此通常在规模和性能方面受到限制。为了应对这一挑战,已经引入了基于相似性的去重复数据方法,通过在去重复数据期间使用两步搜索过程来实现小型数据块的高效去重复数据。第一步,在存储库中搜索相似的数据。该步骤的粒度是大数据块,例如,8MB。在第二步中,在相似的输入和储存库数据中确定相同数据的匹配。该步骤的粒度是较小的数据块,例如,2KB。根据所使用的匹配算法,还支持单字节粒度。在第一步中进一步包括计算输入数据块的相似性特征以及摘要段和相应的摘要值。这些计算基于滚动哈希值的单个计算。在第二步中,检索类似储存库区间的参考摘要,然后将输入摘要与参考摘要进行匹配,以识别数据匹配。
基于相似性的去重复数据方法是可扩展且高效的,因为在相似性步骤中使用的索引是紧凑且易于维护和在其内搜索的。这是因为用于相似性搜索的代表元素相对于它们代表的数据是非常紧凑的,例如,16字节代表4兆字节。一旦找到相似的数据,相似数据的摘要或相似数据本身就被加载到内存中,以执行使用哈希查找的高效数据匹配过程。这个第二步过程在存储器和处理时间上也是有效的。总体而言,基于相似性的去重复数据方法可为非常大的数据存储库提供可扩展性,以及高效率和高性能。
在基于相似性的去重复数据的当前实现中,相似性索引被存储在共享存储器中。该当前实现不支持无共享架构,即,在处理器网格中的处理器之间没有共享存储器,并且进一步限制为少量处理器以保持高效率,因此不可扩展。
为了支持具有大量处理器(例如数千个)的分布式无共享体系结构,并且为该分布式环境中的大容量数据提供全局的,网格范围的,高解析度和高效的去重复数据,新的去重复数据机制是有利的。一般来说,高度分布式的全局去重复数据是一个具有广泛适用范围的新兴领域。此外,各个实体正在考虑将去重复数据功能添加到其高度分布式的存储和文件系统中,新的去重复数据机制将从中受益。
鉴于以上所述,所示实施例的机制以及其他有益方面解决了以下挑战。鉴于处理器网格规模为数千个处理器,并且支持处理器的动态添加,删除和故障恢复,因此可能需要实施去重复数据技术,以提供有益的功能,例如(1)全局网格范围内的去重复数据,(2)支持非常大容量的数据,扩展到PB级数据,(3)高解析度去重复数据,也就是说:小块应该用于去重复数据,规模为几千字节或更少,(4)高效的线内去重复数据,即去重复数据机制的资源消耗应该较低,去重复数据应与数据接收过程一致,并且(5)容错。虽然可以考虑无共享体系结构来考虑目标,但也可以将以前讨论的有益功能应用于共享存储体系结构的机制。
以下说明的实施例的机制通过提供各种附带的益处来解决上面提出的目标。在处理器网格体系结构中,在一个实施例中,每个处理器被配置为存储(1)去重复数据元数据的切片,以及(2)经由本地摄取存储的用户数据。在一个实施例中,去重复数据元数据的每个切片包括相似度索引的切片以及与相似度索引的切片中的代表值相对应的摘要组。每个代表值对应于表示为索引中的相似性单元的特定数据单元,其中相似性单元的大小是固定的,例如,2MB。相似度索引中的条目由相似性单元的代表值和相似性单元摘要的存储地址组成。
鉴于这些方面,在所说明的实施例的机制中使用相似性索引提供全局网格宽度的数据去重复。相似性指数是紧凑的,并随着处理器的添加或删除而动态扩展。基于重复数据删除块计算与相似性单元相对应的组中的摘要,例如,大小为2KB,并且摘要按照它们出现在相似性单元的数据中的顺序出现在组中。
现在转向附图,并且首先参考图1,描绘了计算系统环境的示例性体系结构100。在一个实施例中,架构100可以至少作为用于实现本发明的机制的系统的一部分来实现。体系结构100中的计算机系统包括至少一个连接到通信端口108和内存106的中央处理单元(CPU)102。通信端口108与通信网络110通信。通信网络110可以是被配置为与可与系统112,114和体系结构100通信,通信网络110可以包括存储设备104。存储系统可以包括硬盘驱动器(HDD)设备,固态设备(SSD)等,其可以被配置为冗余独立磁盘阵列(RAID)。
如下所述的操作可以在位于系统100或其他地方的存储设备104上执行,并且可以具有独立工作和/或与其他CPU设备102结合工作的多个内存106。内存106可以包括诸如电可擦除可编程只读存储器(EEPROM)或一组相关设备的存储器。内存106和存储装置104经由信号承载介质连接到CPU102。另外,内存106和CPU102可以被嵌入并且被包括在计算系统100的每个组件中,作为更大的处理器网格系统的一部分。每个存储系统还可以包括单独的和/或不同的内存106和CPU102,其联合工作或作为单独的内存106和/或CPU102工作。如本领域普通技术人员将认识到的,多个系统100,例如,可以以连接的和/或分布的方式来配置,物理上位于一起或为横跨长地理连接的网络。
现在转向之后的图2;图2是示出可以在根据本发明的各个方面执行功能的整体上下文中使用的数据存储系统200的硬件结构的示例性框图。例如,在一个实施例中,数据存储系统200可以在处理器网格体系结构中实现去重复数据系统,如将进一步描述的。
示出了主机计算机210,220和225,每个主机计算机充当用于执行作为数据存储系统200的一部分的数据处理的中央处理单元。群集主机/节点(物理或虚拟设备)210,220以及225可以是用于在数据存储系统200中实现本发明的目的的一个或多个新的物理设备或逻辑设备。数据存储系统200可以实现附加功能;并且本领域的普通技术人员将认识到,可以利用单独或组合的各种数据去重复,加密,数据处理等硬件和软件来实现根据所示实施例的各方面的功能。
网络连接260可以是光纤信道(FC)结构,光纤信道点对点链路,以太网光纤信道(FCoE)结构或点对点链路,FICON或ESCONI/O接口,任何其他I/O接口类型,无线网络,有线网络,LAN,WAN,异构,同类,公共(即互联网),私有或其任何组合。主机210,220和225可以是本地的或者分布在一个或多个位置之间,并且可以配备有任何类型的结构(或结构信道)(未在图2中示出)或网络适配器260到存储控制器240,如光纤通道,FICON,ESCON,以太网,光纤,无线或同轴适配器。数据存储系统200相应地配备有用于通信的合适的结构(图2中未示出)或网络适配器260。数据存储系统200在图2中示出,其包括存储控制器240和群集主机210,220和225。群集主机210,220和225可以包括在分布式计算环境中找到的群集节点。
为了便于更清楚地理解本文所描述的方法,存储控制器240在图2中被示出为单个处理单元,包括微处理器242,系统内存243和非易失性存储(“NVS”)
216。注意到在一些实施例中,存储控制器240由多个处理单元组成,每个处理单元具有它们自己的处理器复合体和系统存储器,并且由数据存储系统200内的专用网络互连。存储器230(在此标记为230a,230b和230n)可以包括一个或多个存储设备,例如存储阵列,其连接到存储控制器240(通过存储网络),一个或多个集群主机210,220和225通过网络260和每个存储控制器240连接。
在一些实施例中,包含在存储器230中的设备可以以环路架构连接。存储控制器240管理存储器230并且便于处理打算用于存储器230的写入和读取请求。存储控制器240的系统内存243存储程序指令和数据,处理器242可以访问该程序指令和数据以执行本发明的功能和方法步骤用于执行和管理存储器230,如本文所述。在一个实施例中,系统内存243包括用于执行本文描述的方法和操作的操作软件250,或与之相关联或者与之相通信。如图2所示,系统内存243还可以包括用于缓存“写入数据”和“读取数据”的用于存储230的高速缓存245(在本文中也被称为“高速缓冲存储器”),或与之通信,所述“写入数据”和“读取数据”分别指写/读请求及其相关数据。在一个实施例中,高速缓存245被分配在系统内存243外部的设备中,但仍然可以被微处理器242访问,并且除了执行这里描述的操作之外,还可以用于提供防止数据丢失的额外安全性。
在一些实施例中,高速缓存245利用易失性存储器和非易失性存储器来实现,并且经由本地总线(图2中未示出)耦合到微处理器242以增强数据存储系统200的性能。包括在数据存储控制器的NVS216可由微处理器242访问,并用来为其他图中所述的本发明的操作和执行提供额外的支持。NVS216也可以被称为“永久”高速缓存或“高速缓冲存储器”,并且利用非易失性存储器来实现,所述非易失性存储器可以利用或不利用外部电力来保持其中存储的数据。NVS可以存储在高速缓存245中并与高速缓存245一起存储用于适合于实现本发明目的的任何目的。在一些实施例中,在数据存储系统200断电的情况下,诸如电池的备用电源(图2中未示出)向NVS216供应足够的电力以保留其中存储的数据。在某些实施例中,容量NVS216的总容量小于或等于高速缓存245的总容量。
存储装置230可以在物理上由一个或多个存储装置组成,例如存储阵列。存储阵列是各个存储设备(如硬盘)的逻辑分组。在某些实施例中,存储装置230由JBOD(简单磁盘捆绑(JustaBunchofDisks))阵列或RAID(独立磁盘冗余阵列)阵列组成。物理存储阵列的集合可以进一步组合以形成等级,其将物理存储与逻辑配置分离。等级中的存储空间可以被分配到逻辑卷中,逻辑卷定义在写入/读取请求中指定的存储位置。
在一个实施例中,仅作为示例,如图2所示的存储系统可以包括逻辑卷,或者简单地“卷”,可以具有不同类型的分配。存储器230a,230b和230n在数据存储系统200中被示为等级,并且在本文中被称为等级230a,230b和230n。等级可以是数据存储系统200本地的,或者可以位于物理上远程的位置。换句话说,本地存储控制器可以与远程存储控制器连接并管理远程位置的存储。如所示,等级230a配置有两个完整的卷234和236以及一个部分卷232a。用另一部分卷232b显示等级230b。因此,卷232被分配在等级230a和230b上。等级230n被示为完全分配到卷238--即等级230n指的是用于卷238的整个物理存储。从以上示例中,应该理解,等级可以被配置为包括一个或多个部分和/或整卷。卷和等级可以进一步分成代表固定存储块的所谓“轨道”。因此,轨道与给定的卷相关联,并且可以给定给定的等级。
存储控制器240可以包括去重复数据模块255,相似性模块257和相似性搜索模块259以及多个存储库(未示出)。去重复数据模块255,相似性模块257,相似性搜索模块259和存储库可以与存储控制器240,主机210,220,225和存储设备230的每个组件结合操作。去重复数据模块255,相似性模块257,相似性搜索模块259和储存库可以在结构上是一个完整模块,或者可以与其他单独模块或其他结构相关联和/或包括在其中。如本领域普通技术人员将理解的,去重复数据模块255,相似性模块257,相似性搜索模块259和储存库也可以位于高速缓存245或其他组件中。
如将进一步描述的,去重复数据模块255,相似性模块257,相似性搜索模块259和存储库可以单独地和/或共同地执行本发明的各个方面。例如,根据所示实施例的各方面,去重复数据模块255可以执行各种去重复数据功能。
如将进一步描述的,相似性模块257可执行各种功能,诸如维持相似性指数(伴随切片),如将进一步描述的。如将进一步描述的,相似性搜索模块259还可以执行各种功能,例如在特定去重复数据元数据片段中搜索代表值。如本领域的普通技术人员将认识到的,数据重复删除模块255,相似性模块257,相似性搜索模块259和存储库可以仅构成数据存储系统200中的各种功能和/或功能负责的实体的子集。
其他辅助硬件可以与存储系统200相关联。例如,如图所示,存储控制器240包括用于控制到主计算机210,220,225的光纤通道协议的控制开关241,用于控制所有存储控制器240的微处理器242,用于存储用于控制存储控制器240的操作的微程序(操作软件)250的非易失性控制内存243,用于临时存储(缓冲器)数据的高速缓存245,以及用于辅助高速缓存245以读取和写入数据;控制开关241的缓冲器244,用于控制协议以控制去往或来自存储设备230,去重复数据模块255,相似性模块257,相似性搜索模块259和储存库的数据传输;或者其他功能块,其中可以设置信息。多个缓冲器244可以用本发明来实现以协助这里描述的操作。
接下来,图3示出了用于将去重复数据元数据存储在无共享架构300中的处理器网格中的示例性实施例。如前所述,在所描绘的实施例中,每个处理器被配置为存储去重复数据元数据的切片和通过本地摄取存储的用户数据。
如图所示,去重复数据元数据的每个切片合并了相似度索引的切片以及与相似度索引的切片中的代表值相对应的摘要组。每个代表值对应于在索引中表示的特定数据单元,表示为相似性单元,其中相似性单元的大小是固定的,例如,2MB。然后,相似度索引中的条目包括相似性单元的代表值和相似性单元摘要的存储地址。如前所述,可以基于去重复数据块,例如大小为2KB,来计算与相似性单元相对应的组中的摘要,然后摘要按照它们出现在相似性单元的数据中的顺序出现在组中。
在一个实施例中,使用一致的哈希方法(例如,最高随机加权哈希法)来计算代表值与切片的关联。在该方法中,对于表示为rval的给定代表值,使用哈希函数H为每个切片i计算哈希值h[i]=H(rval,slice_id[i]),并且为代表值选择的切片及其摘要是h[i]值最高的。
当添加或移除切片时,例如,通过添加或移除处理器,只需重新映射[#rvals/#slices]的平均代表值。代表值和摘要通过哈希函数H在切片之间固有地平衡,当切片添加或移除时也是如此。与其为所有切片计算h[i],可以将切片结构应用于切片以提供对数计算时间。
接下来,图4描述了根据本发明一个实施例的架构400和组件之间的消息序列,用于在处理器的无共享网格中的全局分布式去重复数据。如图所示,图4以框图形式描述了架构400和去重复数据过程的顺序;下面参照图5A和5B,以流程图的形式描述消息的顺序。
检查图4,将使用组件/术语描述全局分布式去重复数据功能,其涉及如图所示的处理器P,如图所示,其与在如图所示处理器网格中的附加处理器P*和其他拥有匹配数据的处理器之间进行通信。如图所示(例如,本地存储在处理器P,P*和其他拥有的处理器之间不共享),每个处理器P,P*和其他所有者处理器与它们各自的本地存储相关联。此外,如图所示,可以将各种信息存储在本地存储器中,诸如根据HRW分区的元数据切片以及根据特定摄取的数据。
图4还描述了处理器P,P*和拥有如所示的匹配数据的其他处理器之间的消息的各种排序,如下所述。在步骤1中,处理器P将对应于给定相似性单元的代表值和摘要发送到拥有对应于给定代表值的元数据切片的处理器P*。处理器P*在步骤2中以匹配数据部分的所有者处理器信息和说明信息来响应处理器P,这些信息是由处理器P*为给定的相似性单元计算出的。然后,处理器P在步骤3中将匹配数据部分的说明信息发送到匹配数据的所有者处理器,匹配数据的所有者处理器在步骤4中以存储特定匹配数据部分的所有者处理器的存储块的说明信息进行响应。
考虑图4,图5A和图5B描述了用于无共享体系结构中的全局分布式去重复数据的示例性方法,为先前在图4中首先看到的组件和消息序列提供附加上下文。首先转到图5A,作为第一步骤502,摄取数据在处理器P上被接收,该数据在步骤504中被划分成相似性单元(例如,大小为2MB)。
对于以下步骤506-524中的每一个,随后针对每个相似性单元执行以下操作,作为决策步骤506询问是否还有其他相似性单元要处理。在步骤508中,为相似性单元计算以下内容:(a)去重复数据块边界,(b)去重复数据块的摘要值,以及(c)相似性单元的代表值。去重复数据块可以具有可变大小,并且可以使用数据定义的组块算法来确定它们的边界。去重复数据块的平均大小可以是例如2KB。为每个去重复数据块计算摘要值,其中摘要值是基于去重复数据块的数据计算出的加密哈希值。可以基于计算出的摘要值来计算相似性单元的代表值。
使用应用于相似性单元的代表值R的一致哈希方法(例如,最高随机加权哈希方法)为相似性单元计算对应的去重复数据元数据切片S*(步骤510)。切片S*将用于搜索相似数据和存储相似性单元的去重复数据元数据。
将相似性单元的代表值和摘要值发送到拥有切片S*的处理器P*(步骤512)。如果几个相似性单元映射到同一个处理器,那么它们的元数据可以一起发送。
在接下来的步骤514中,使用P*来在其相似性索引切片中搜索代表值R。如果找到相同的相似性值,则将其相关摘要加载到处理器P*上的本地摘要缓存中。
在步骤516中,处理器P*执行与从处理器P接收到的摘要和本地摘要高速缓存的内容的摘要匹配过程,以找到输入和摘要存储库的匹配序列并标识匹配的数据部分。作为优化,处理器P*可以在执行相似性搜索之前尝试基于相似性存储库数据的信息(例如与先前版本的文件或存储对象的相关性)加载到被确定为相关的本地高速缓存摘要中。然后,处理器P*可以尝试用本地摘要高速缓存的内容去除重复输入的摘要,并且仅当输入相似性单元的去重复数据不足时才执行相似性搜索。
现在转到图5B,在接下来的步骤518中,处理器P*向处理器P发送回经计算出的匹配数据部分的说明(名义上)和所有者处理器。这些部分的数据可以由网格中的多个处理器拥有。
处理器P*然后将接收到的代表值和输入相似性单元的摘要存储在其元数据切片中。处理器P的身份与输入相似性单元的摘要一起记录,以指示对应于这些摘要的数据由处理器P拥有(步骤520)。稍后当这些摘要与其他输入摘要匹配时,使用该信息来指定相应数据的位置。
在接下来的步骤522中,处理器P将计算出的匹配数据部分的名义信息发送给存储该数据的处理器。在此步骤中联系的处理器可以是P*提供的处理器完整列表的子集,其中子集被选择为那些根据各种标准提供最高值的处理器。一个例子是拥有更多与输入数据相匹配的数据的处理器。另一个例子是处理器,其容量和对处理器P产生的随后请求以提供引用数据的反应时间将更快/更高效地执行并发送给处理器P。
这些被联系的处理器执行以下操作:(a)响应存储该数据的存储块的信息,并且(b)相应地增加这些存储块的引用计数(步骤524)。
最后,处理器P存储在本地存储块中未被匹配的数据,并且添加对由其他处理器提供的存储块的引用(步骤526)。现在返回到图5A,并且到判定步骤506,如果没有发现附加的相似性单元要处理,则方法500结束(步骤526)。
接下来,图6以框图格式示出了图示600中的代表值与去重复数据元数据切片的一致映射。给定代表值R(对应于被划分为所描绘的相似性单元的输入数据),使用一致的哈希方法(例如,最高随机加权哈希方法)来确定R与处理器P所拥有的去重复数据元数据片段S的一致映射。图6示出了代表值R[1..6],对应于输入相似性单元,以及作为例子它们与一组切片S[a..f]的元数据切片的关联,使用一致的哈希方法。
接下来,图7和图8示出了当处理器被添加到网格时用于跨处理器网格的去重复数据元数据的各种示例性重新平衡功能。在图7所示的第一种情况下,沿搜索链找到输入代表值。在图8所示的第二种情况下,搜索链分别到达完全重新平衡的处理器,并且输入代表值未被定位。
在第一步如图7和8所示,为新处理器拥有而初始化新的去重复数据元数据切片。新切片从其他切片的每一个均匀接收元数据。也就是说,其他切片中的每一个都为新切片贡献成比例数量的条目。
虽然现有的一致性哈希方法需要扫描现有条目以确定应该被迁移到新切片的条目(只有每个切片的比例子集必须实际迁移),但这些现有方法忽略了扫描所有条目条目的开销。特别是在大规模存储系统中,扫描需要从存储中读取大量条目,因此扫描成本可能很大。即使在后台进行扫描,扫描操作也是一个潜在的成本高昂的过程,可能会产生大量的输入/输出(I/O)负载。
为了帮助缓解与当前扫描操作相关联的资源成本,现在根据本发明的各个方面引入重新平衡机制。再平衡机制除其他方面外,还提供以下内容。首先,只有在进行查询时查询条目才能为重新平衡而识别条目,查询必须访问这些条目才能进行自己的处理,因此避免了额外的开销。其次,该机制在查询期间应用扩展链接搜索操作来识别要重新平衡的条目,其中链接搜索操作由通过统计计算确定的多个跳跃组成。这使得能够进一步减少扩展搜索操作的资源消耗。
在一个实施例中,重新平衡机构可以如下进行。在第一步中,并如前所述,将一个或多个处理器添加到现有处理器网格中。网格中的每个处理器都维护一个特定的属性。例如,该属性可以表示为“重新平衡状态”。此属性指示将条目迁移到该特定处理器是正在处理或完成。这个属性可以被初始化为“正在处理”的值。
在接下来的步骤中,被添加到网格的处理器计算要迁移到该处理器的条目的预期比例。该比例是处理器加入网格时的条目总数除以包括添加的处理器的处理器数量。只要迁移到处理器的条目的实际数量低于此预期比例,处理器的重新平衡状态就会保持在处理中。当迁移到处理器的条目数量等于或超过预期比例时,重新平衡状态将更改为完成。
当正在搜索代表值时,摄取处理器P计算用于搜索代表值的切片和所有者处理器P*,并向处理器P*发送输入代表值并摘要。处理器P*搜索代表值。如果找到代表值,则处理器P*向处理器P发送回复,并且该机制按照前面在图5中所述的用于分布式去重复数据的方法500中的规定进行。
如果代表值没有被处理器P*找到并且处理器P*的重新平衡状态在进行中,则处理器P*使用一致的哈希方法(例如,最高的随机加权哈希)来为给定代表值计算第二等级的切片和所有者处理器P2*,并且将查询(即,输入代表值和摘要)转发给处理器P2*。原因是这个代表值可能在网格的去重复数据元数据中,但它可能还没有被迁移到新添加的P*处理器中。根据一致性哈希排序,该转发过程在处理器之间继续,直到由转发链上的处理器找到代表值或到达重新平衡状态指示完成的处理器为止。
如果由链上的处理器Px*找到代表值(如图7所示),则处理器Px*对输入摘要和其本地摘要缓存的内容执行摘要匹配过程以找到相同的数据部分。处理器Px*发送以下消息:(1)向处理器P*发送的回复消息,其便于将代表值及其相应摘要从处理器Px*迁移到处理器P*,以及(2)回复消息给处理器P以使得继续相似性单元的去重复数据过程(分别如图7中的步骤(3)和(4)所示)。然后,去重复数据会在处理器P上继续执行,如前面图5所示,用于分布式去重复数据。
如果处理器Px*未找到代表值并且该处理器的重新平衡状态指示完成(如图8所示),则处理器Px*向处理器P发送指示代表值为未找到(如图8中的步骤(3)所示)。由于去重复数据过程本质上是近似的,转发链中的跳数可以用上限来定义。
最后,如果处理器P*未找到代表值并且处理器P*的重新平衡状态为完成,则处理器P*向处理器P发送指示未找到代表值的应答消息。
当处理器和对应的元数据切片从处理器网格正常移除时,可以实现用于执行分布式去重复数据元数据的重新平衡功能的附加机制。在一个实施例中,被去除的处理器的去重复数据元数据切片的内容被均匀分布在去重复数据元数据的其余切片上。其他切片中的去重复数据元数据不会被修改。
对于被移除的元数据切片中的每个代表值,可以计算用于存储该代表值和相应摘要的新切片。可以使用一致的哈希方法,例如最高随机加权哈希方法。对于给定的代表值,然后可以计算网格中的元数据切片的一致哈希等级值,其中计算在没有元数据切片被移除的的情况下执行。然后可以选择具有最高等级值的切片。然后可以发送代表值和相关联的摘要以存储在先前步骤中选择的元数据切片中。
为了在处理器失败时恢复去重复数据元数据,可以采取两种方法。第一种方法是在K个元数据切片中存储每个相似性单元的元数据(即,代表值和摘要),该K个元数据切片的相似度单元的代表值的一致散列等级值在网格中的元数据片段中最高。
当处理器发生故障或被移除时,通过针对每个受影响的代表值计算网格中不包含发生故障/移除的处理器切片的切片的一致散列等级值,以及从尚未用于给定代表值的切片中选择具有最高等级值的切片来存储受影响的代表值及其对应摘要的额外副本。
第二种方法是避免元数据的恢复。这是可能的,因为相似性指数可以被定义为近似的,并且因此可以表示数据的子集。随着新数据的摄入,对去重复数据的影响通常是暂时的。
现在转向图9,根据本发明的一个实施例描绘了用于促进处理器网格中的去重复数据元数据存储的示例性方法900。方法900开始(步骤902),分配要由处理器网格中的对应处理器存储的去重复数据元数据的切片的数量(步骤904)。
每个元数据切片被配置为包括相似度索引的切片和对应于可被包括在相似度索引的切片中的代表值的摘要组中的至少一个(步骤906)。然后使用哈希方法来在输入代表值与去重复数据元数据的切片之间进行映射(步骤908)。方法900然后结束(步骤910)。
接下来,图10描绘了根据本发明的一个实施例的用于重新均衡分布式去重复数据元数据的示例性方法1000。方法1000开始(步骤1002),同时在处理器上接收数据的输入相似性单元和对应的输入代表值(步骤1004)。然后计算输入相似性单元的对应去重复数据元数据切片和所有者处理器(步骤1006)。
在接下来的步骤1008中,将输入代表值和输入摘要值发送给所有者处理器。所有者处理器用于在对应的去重复数据元数据切片中搜索输入代表值(步骤1010)。如果代表值没有被所有者处理器找到并且所有者处理器的重新平衡状态被确定为处于进行中(步骤1012),则所有者处理器被用于将输入代表值和输入摘要值转发到附加处理器。
在接下来的步骤1014中,如果附加处理器找到输入代表值,则使用附加处理器向归属处理器发送回复消息,便于将输入代表值和对应摘要值从附加处理器迁移到所有者处理器。方法1000然后结束(步骤1016)。
接下来,图11描绘了同样根据本发明的一个实施例的用于处理器网格中的分布式去重复数据的示例性方法1100。方法1100开始(步骤1102),在摄取处理器上接收输入数据,并且将输入数据划分成多个相似性单元(步骤1104)。计算相似性单元中的一个的对应的去重复数据元数据切片和所有者处理器(步骤1106)。
在接下来的步骤1108中,将相似性单元的代表值和相应的摘要值发送给所有者处理器。所有者处理器然后被用于在对应的去重复数据元数据切片中搜索代表值(步骤1110)。所有者处理器然后被用于将计算出的相同数据部分的说明和所有者处理器发送给摄取处理器(步骤1112)。然后摄取处理器被用于将所计算出的相同数据部分的名义信息发送到所计算出的相同数据部分的所有者处理器(步骤1114)。
在接下来的步骤1116中,所计算出的相同数据部分的所有者处理器被用于以存储相同数据部分的存储块的信息来响应摄取处理器。方法1100然后结束(步骤1118)。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (25)

1.一种用于处理器网格中的分布式数据的去重复数据方法,包括:
在摄取处理器上接收输入数据,并将所述输入数据划分成多个相似性单元;
为所述相似性单元之一计算对应的去重复数据元数据切片和所有者处理器,其中所述所有者处理器用于存储与所述相似性单元之一相关的数据;
将所述相似性单元之一的代表值和相应的摘要值发送给所述所有者处理器;
使用所述所有者处理器在所述对应的去重复数据元数据切片中搜索代表值;
使用所述所有者处理器向所述摄取处理器发送计算出的相同数据部分的说明和所有者处理器;
使用所述计算出的相同数据部分的所述所有者处理器来以存储所述相同数据部分的存储块的信息来响应所述摄取处理器,
如果所述所有者处理器在所述对应的去重复数据元数据切片中未搜索到所述代表值并且所述所有者处理器的重新平衡状态在进行中,所述所有者处理器使用一致的哈希方法来为所述代表值计算第二等级的去重复数据元数据切片和第二所有者处理器,并且将所述代表值和相应的摘要值转发给所述第二所有者处理器,该转发过程在处理器之间继续,直到找到所述代表值或到达重新平衡状态指示完成的处理器为止。
2.根据权利要求1所述的方法,还包括:为所述相似性单元之一,计算以下至少一个:去重复数据块的边界,所述相应的摘要值和所述代表值。
3.根据权利要求1所述的方法,还包括使用应用于所述相似性单元之一的所述代表值的一致哈希方法来计算所述对应的去重复数据元数据切片和所有者处理器。
4.根据权利要求1所述的方法,还包括使用针对映射到同一所有者处理器的所述多个相似性单元中的若干个相似性单元的单个消息,将所述相似性单元之一的所述代表值和所述相应的摘要值发送到所述所有者处理器。
5.如权利要求1所述的方法,还包括由所述所有者处理器执行以下操作中的至少一个:
将与那些所述多个相似性单元的代表值相对应的多个摘要值中的每一个加载到摘要高速缓存中;
执行摘要匹配过程,其具有从所述摄取处理器接收并包含在所述摘要高速缓存中的摘要值以计算所述相同的数据部分。
6.如权利要求1所述的方法,还包括发送计算出的相同数据部分的所述说明和所有者处理器,所述计算出的相同数据部分跨越计算出的相同数据部分的多个所有者处理器。
7.如权利要求1所述的方法,还包括由所述所有者处理器存储所述去重复数据元数据切片中的所述相似性单元的代表值和摘要值。
8.如权利要求7所述的方法,还包括用所述相似性单元的所述摘要值记录所述摄取处理器的身份。
9.如权利要求1所述的方法,其中由所述摄取处理器联系的所述所计算出的相同数据部分的所有者处理器是多个所有者处理器的子集,并且还包括选择所述多个所有者处理器中的那些提供最高值的作为所述子集。
10.如权利要求9所述的方法,还包括通过以下中的至少一个来选择所述子集:
选择在所述多个所有者处理器中具有最高量的计算出的相同数据部分的那些多个所有者处理器,
选择所述多个所有者处理器中的计算出的相同数据部分的量大于预定阈值的那些所有者处理器,
选择所述多个所有者处理器中的能够高效处理由所述摄取处理器产生的后续请求以提供相同的数据部分的那些所有者处理器。
11.如权利要求1所述的方法,其中所述计算出的相同数据部分的所述所有者处理器增加存储所述相同数据部分的存储块的参考计数。
12.如权利要求1所述的方法,还包括由所述摄取处理器执行以下操作中的至少一个:
存储本地存储块中未匹配的数据,以及
增加对其信息由所述所计算出的相同数据片段的所述所有者处理器提供的所述存储块的引用。
13.一种用于处理器网格中的分布式数据的去重复数据的系统,包括:
摄取处理器;
与摄取处理器通信的所有者处理器;和
计算出的相同数据部分的所有者处理器,与处理器网格中的处理器和所述所有者处理器通信;
其中所述摄取处理器被配置为:
接收输入数据,并将所述输入数据划分成多个相似性单元;
为所述相似性单元之一计算对应的去重复数据元数据切片和所有者处理器;
将所述相似性单元之一的代表值和相应的摘要值发送给所述所有者处理器;
其中所述所有者处理器用于存储与所述相似性单元之一相关的数据,所述所有者处理器被配置为:
在所述对应的去重复数据元数据切片中搜索代表值;
向所述摄取处理器发送计算出的相同数据部分的说明和所有者处理器;
其中所述计算出的相同数据部分的所述所有者处理器被配置为:
存储所述相同数据部分的存储块的信息来响应所述摄取处理器;
如果所述所有者处理器在所述对应的去重复数据元数据切片中未搜索到所述代表值并且所述所有者处理器处于重新平衡状态进行中,所述所有者处理器使用一致的哈希方法来为所述代表值计算第二等级的去重复数据元数据切片和第二所有者处理器,并且将所述代表值和相应的摘要值转发给所述第二所有者处理器,该转发过程在处理器之间继续,直到找到所述代表值或到达重新平衡状态指示完成的处理器为止。
14.根据权利要求13所述的系统,其中所述处理器为所述相似性单元之一被配置为计算以下至少一个:去重复数据块的边界,所述相应的摘要值和所述代表值。
15.根据权利要求13所述的系统,其中所述处理器依照计算所述对应的去重复数据元数据切片和所有者处理器,被配置为使用应用于所述相似性单元之一的所述代表值的一致哈希方法。
16.如权利要求13所述的系统,其中所述处理器被配置为:
使用针对映射到同一所有者处理器的所述多个相似性单元中的若干个相似性单元的单个消息,将所述相似性单元之一的所述代表值和所述相应的摘要值发送到所述所有者处理器。
17.根据权利要求13所述的系统,其中所述处理器被配置为于执行以下至少一项:将与那些所述多个相似性单元的代表值相对应的多个摘要值中的每一个加载到摘要高速缓存中;
执行摘要匹配过程,其具有从所述摄取处理器接收并包含在所述摘要高速缓存中的摘要值以计算所述相同的数据部分。
18.如权利要求13所述的系统,其中所述处理器被配置为:发送计算出的相同数据部分的所述说明和所有者处理器,所述计算出的相同数据部分跨越计算出的相同数据部分的多个所有者处理器。
19.如权利要求13所述的系统,其中所述处理器被配置为存储所述去重复数据元数据切片中的所述相似性单元的代表值和摘要值。
20.根据权利要求19所述的系统,其中所述处理器被配置为用所述相似性单元的所述摘要值记录所述摄取处理器的身份。
21.根据权利要求13所述的系统,其中由所述摄取处理器联系的所述计算出的相同数据部分的所述所有者处理器是多个所有者处理器的子集,并且所述处理器被配置为选择所述多个所有者处理器中的那些提供最高值的作为所述子集。
22.根据权利要求21所述的系统,其中所述处理器被配置为通过以下中的至少一个来选择所述子集:
选择在所述多个所有者处理器中具有最高量的计算出的相同数据部分的那些多个所有者处理器,
选择所述多个所有者处理器中的计算出的相同数据部分的量大于预定阈值的那些所有者处理器,
选择所述多个所有者处理器中的能够高效处理由所述摄取处理器产生的后续请求以提供相同的数据部分的那些所有者处理器。
23.如权利要求13所述的系统,其中所述计算出的相同数据部分的所述所有者处理器增加存储所述相同数据部分的存储块的参考计数。
24.根据权利要求13所述的系统,其中所述摄取处理器被配置为:
存储本地存储块中未匹配的数据,以及
增加对其信息由所述所计算出的相同数据片段的所述所有者处理器提供的所述存储块的引用。
25.一种用于处理器网格中的分布式数据的去重复数据的计算机可读介质,所述计算机可读介质存储有计算机可执行指令,所述计算机可执行指令被执行时实现权利要求1-12中任一项所述的方法。
CN201780005643.7A 2016-01-12 2017-01-04 在处理器网格中的分布式数据的去重复数据 Active CN108431815B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/993,225 US10255288B2 (en) 2016-01-12 2016-01-12 Distributed data deduplication in a grid of processors
US14/993,225 2016-01-12
PCT/IB2017/050020 WO2017122101A1 (en) 2016-01-12 2017-01-04 Distributed data deduplication in grid of processors

Publications (2)

Publication Number Publication Date
CN108431815A CN108431815A (zh) 2018-08-21
CN108431815B true CN108431815B (zh) 2022-10-11

Family

ID=59275613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780005643.7A Active CN108431815B (zh) 2016-01-12 2017-01-04 在处理器网格中的分布式数据的去重复数据

Country Status (6)

Country Link
US (1) US10255288B2 (zh)
JP (1) JP6807395B2 (zh)
CN (1) CN108431815B (zh)
DE (1) DE112017000167B4 (zh)
GB (1) GB2562008B (zh)
WO (1) WO2017122101A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010300B2 (en) 2017-05-04 2021-05-18 Hewlett Packard Enterprise Development Lp Optimized record lookups
US10997153B2 (en) 2018-04-20 2021-05-04 Hewlett Packard Enterprise Development Lp Transaction encoding and transaction persistence according to type of persistent storage
US11243703B2 (en) 2018-04-27 2022-02-08 Hewlett Packard Enterprise Development Lp Expandable index with pages to store object records
US11237743B2 (en) * 2019-04-29 2022-02-01 EMC IP Holding Company LLC Sub-block deduplication using sector hashing
CN111177137B (zh) * 2019-12-30 2023-10-13 广州酷狗计算机科技有限公司 数据去重的方法、装置、设备及存储介质
CN113448491B (zh) * 2020-03-26 2024-05-17 伊姆西Ip控股有限责任公司 存储系统的数据迁移

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102323958A (zh) * 2011-10-27 2012-01-18 上海文广互动电视有限公司 重复数据删除方法
CN102495894A (zh) * 2011-12-12 2012-06-13 成都市华为赛门铁克科技有限公司 重复数据查找方法、装置及系统
CN103229147A (zh) * 2010-12-01 2013-07-31 国际商业机器公司 去重存储系统内的合成备份

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4303688B2 (ja) * 2003-05-21 2009-07-29 富士通株式会社 データアクセス応答システムおよびデータアクセス応答システムへのアクセス方法
CA2433377A1 (en) 2003-06-25 2004-12-25 Ibm Canada Limited - Ibm Canada Limitee Computing frequent value statistics in a partitioned relational database
US7139772B2 (en) 2003-08-01 2006-11-21 Oracle International Corporation Ownership reassignment in a shared-nothing database system
DE602006003546D1 (de) 2006-07-07 2008-12-18 Alcatel Lucent Verteilter Hashing-Mechanismus für selbstorganisierende Netzwerke
US8166012B2 (en) 2007-04-11 2012-04-24 Emc Corporation Cluster storage using subsegmenting
US8060614B2 (en) 2008-06-19 2011-11-15 Microsoft Corporation Streaming operator placement for distributed stream processing
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
US8375047B2 (en) 2010-03-31 2013-02-12 Emc Corporation Apparatus and method for query prioritization in a shared nothing distributed database
US8250325B2 (en) * 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
US8402004B2 (en) * 2010-11-16 2013-03-19 Actifio, Inc. System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data
US8380681B2 (en) 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US8825720B1 (en) * 2011-04-12 2014-09-02 Emc Corporation Scaling asynchronous reclamation of free space in de-duplicated multi-controller storage systems
US8484170B2 (en) 2011-09-19 2013-07-09 International Business Machines Corporation Scalable deduplication system with small blocks
AU2012340429B2 (en) * 2011-11-15 2016-12-01 Ab Initio Technology Llc Data clustering based on candidate queries
US8682869B2 (en) 2012-04-05 2014-03-25 International Business Machines Corporation Increased in-line deduplication efficiency
US9336223B2 (en) 2012-09-24 2016-05-10 International Business Machines Corporation Selective erasure of expired files or extents in deduplicating virtual media for efficient file reclamation
US8799284B2 (en) 2012-11-30 2014-08-05 Futurewei Technologies, Inc. Method for automated scaling of a massive parallel processing (MPP) database
US9471586B2 (en) * 2013-01-10 2016-10-18 International Business Machines Corporation Intelligent selection of replication node for file data blocks in GPFS-SNC
US9479587B2 (en) 2013-01-23 2016-10-25 Nexenta Systems, Inc. Scalable object storage using multicast transport
US8938417B2 (en) 2013-02-22 2015-01-20 International Business Machines Corporation Integrity checking and selective deduplication based on network parameters
US9195673B2 (en) 2013-03-15 2015-11-24 International Business Machines Corporation Scalable graph modeling of metadata for deduplicated storage systems
US9547662B2 (en) * 2013-03-15 2017-01-17 International Business Machines Corporation Digest retrieval based on similarity search in data deduplication
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
JP5444506B1 (ja) * 2013-03-29 2014-03-19 株式会社東芝 データの重複をハッシュテーブルに基づいて排除するためのストレージシステム
GB2514555A (en) 2013-05-28 2014-12-03 Ibm Deduplication for a storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103229147A (zh) * 2010-12-01 2013-07-31 国际商业机器公司 去重存储系统内的合成备份
CN102323958A (zh) * 2011-10-27 2012-01-18 上海文广互动电视有限公司 重复数据删除方法
CN102495894A (zh) * 2011-12-12 2012-06-13 成都市华为赛门铁克科技有限公司 重复数据查找方法、装置及系统

Also Published As

Publication number Publication date
US20170199891A1 (en) 2017-07-13
JP2019506667A (ja) 2019-03-07
GB201812619D0 (en) 2018-09-19
GB2562008B (en) 2019-04-03
DE112017000167B4 (de) 2020-12-31
WO2017122101A1 (en) 2017-07-20
GB2562008A (en) 2018-10-31
CN108431815A (zh) 2018-08-21
US10255288B2 (en) 2019-04-09
JP6807395B2 (ja) 2021-01-06
DE112017000167T5 (de) 2018-06-28

Similar Documents

Publication Publication Date Title
CN108431815B (zh) 在处理器网格中的分布式数据的去重复数据
US10761758B2 (en) Data aware deduplication object storage (DADOS)
US10261946B2 (en) Rebalancing distributed metadata
US9678977B1 (en) Similarity based deduplication of snapshots data
US9454476B2 (en) Logical sector mapping in a flash storage array
US8954710B2 (en) Variable length encoding in a storage system
US8930648B1 (en) Distributed deduplication using global chunk data structure and epochs
US10242021B2 (en) Storing data deduplication metadata in a grid of processors
US8165221B2 (en) System and method for sampling based elimination of duplicate data
US10339112B1 (en) Restoring data in deduplicated storage
US10135462B1 (en) Deduplication using sub-chunk fingerprints
US10656858B1 (en) Deduplication featuring variable-size duplicate data detection and fixed-size data segment sharing
US20150012503A1 (en) Self-healing by hash-based deduplication
US9817865B2 (en) Direct lookup for identifying duplicate data in a data deduplication system
JP6320432B2 (ja) データ重複排除における、類似性探索に基づくダイジェスト検索
US10437682B1 (en) Efficient resource utilization for cross-site deduplication
US10657103B2 (en) Combining data matches from multiple sources in a deduplication storage system
US10031937B2 (en) Similarity based data deduplication of initial snapshots of data sets
US11030198B2 (en) Reducing resource consumption of a similarity index in data deduplication
US9703642B2 (en) Processing of tracked blocks in similarity based deduplication of snapshots data
US9767029B2 (en) Data decompression using a construction area

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant