CN102591946B - 使用索引划分和协调来进行数据去重复 - Google Patents

使用索引划分和协调来进行数据去重复 Download PDF

Info

Publication number
CN102591946B
CN102591946B CN201110445282.2A CN201110445282A CN102591946B CN 102591946 B CN102591946 B CN 102591946B CN 201110445282 A CN201110445282 A CN 201110445282A CN 102591946 B CN102591946 B CN 102591946B
Authority
CN
China
Prior art keywords
subspace
hash
index
data
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110445282.2A
Other languages
English (en)
Other versions
CN102591946A (zh
Inventor
J·李
S·森古普塔
R·卡拉赫
R·N·德塞
P·A·奥尔泰安
J·R·本顿
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102591946A publication Critical patent/CN102591946A/zh
Application granted granted Critical
Publication of CN102591946B publication Critical patent/CN102591946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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

Abstract

本发明涉及使用索引划分和协调来进行数据去重复。所公开的主题涉及将散列索引服务的索引划分为子空间索引的数据去重复技术,其中少于整个散列索引服务的索引被高速缓存以节省存储器。该子空间索引被访问以确定数据块是否已经存在或需要被索引和存储。可基于与要索引的数据相关联的准则(诸如文件类型、数据类型、最后使用时间等)将该索引分成各个子空间。还描述了子空间协调,其中检测子空间中的重复条目以从该去重复系统中移除条目和块。子空间协调可在非高峰时间、当更多系统资源可用时执行,而如果需要资源则可中断协调。要协调的子空间可以基于相似度,包括签名的相似度,每个签名紧凑地表示该子空间的散列。

Description

使用索引划分和协调来进行数据去重复
技术领域
本发明涉及使用索引划分和协调进行数据去重复。
背景技术
数据去重复(有时也称为数据优化)指的是减少需要被存储在磁盘上或通过网络进行传送的数据的物理字节量,而不会损害原始数据的保真性和完整性,即字节上的减少是无损的并且原始数据可被完全恢复。通过减少存储和/或传送数据所需的资源,数据去重复因此导致(用于存储和网络传输的)硬件成本以及数据管理成本(例如,备份)的节约。随着数字存储的数据的数量增长,这些成本节约变得重要。
数据去重复通常使用用于消除持久存储的文件内部及其之间的冗余性的技术的组合。一种技术用于标识一个或多个文件中的数据的相同区域,并在物理上只存储一个唯一区域(块),而与文件相关联地维持对该块的指针。另一技术是例如通过存储经压缩的块来将数据去重复与压缩混合。
为了标识这些块,存储这些块的服务器维持在该系统中这些块的散列的散列索引服务。散列不具有位置性(locality),即,同一个文件中的各块的块散列是不相关的,对于给定块的内容的任何编辑创建非常不同的(不相关的)散列值。因此,传统的数据库技术,诸如B树索引,导致索引服务较差的性能。在存储器中维持整个索引提供较好的性能,但是耗费太多资源。服务器存储器资源为其他服务器应用(如,在主数据去重复情形中)所需要,且用于高速缓存。
之前的面向备份的数据去重复优化依靠前瞻高速缓存(look-ahead cache)来减少在服务器上访问该索引所使用的资源量。然而,数据去重复不再受限于数据备份的情形,且发展为像其他存储器设备那样被用作被访问的主数据存储器群集。仅使用前瞻高速缓存来减少资源使用并不是适当的解决方案。
发明内容
提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些代表性概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
简言之,此处所描述的主题的各方面涉及去重复技术,通过该去重复技术将散列索引服务的索引划分为各个子空间索引,以使得一次将少于散列索引服务的所索引的数据集的整个范围加载到存储器中,从而节省可用存储器。
当要被去重复的数据被接收并分块(chunk),并且有可能还被压缩时,子空间索引确定对该块计算的散列值是否与主存储器(例如,RAM)高速缓存中的条目的散列值相匹配。如果是,则返回可用于定位现有块的信息,否则该块作为新块存储在块存储中,并且对应于该散列值的条目与对该块的引用相关联地被添加到该子空间索引。
在一方面,可基于一个或多个准则来将散列索引服务划分成多个子空间索引,该准则可与要被去重复的数据如何划分相对应。示例分割/划分准则包括数据的文件类型、数据类型、位置、创建该数据的应用、文件使用模式数据、文件访问模式数据、文件所有者、文件用户类型、名字空间、文件内容、文件元数据、学习到的准则或自适应准则、或可被推断为该文件的特征的任何其他类型的信息、以及这些的任何组合。
在另一方面,可将一个子空间周期性地(或偶尔地)与一个或多个其他子空间进行协调以从是经协调的子空间的子空间中消除任何重复条目,并相应地删除其相关联的(重复的)块。这种重复的数据块可能跨越子空间出现,因为各子空间可能是被分开地去重复的,直到并且及至协调点。作为协调的一部分,对与重复条目相关联的块的每个引用被更新以引用剩余的块。可以用各种方式来紧凑化(compacted)和/或用新的数据盖写经协调的子空间和从中删除过块的块存储。
该子空间和要协调的一个或多个其他子空间可基于类似子空间类型、类似子空间签名、和/或基于该子空间是未经协调的子空间以及其他子空间已在之前与彼此协调过来选择。签名包括子空间散列的紧凑表示,并且可以用多种方式来计算/确定,例如,基于最小散列计算、布隆过滤器(bloom filter)、最小散列和布隆过滤器组合等等。
结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。
附图说明
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1是表示被配置为用于使用基于子空间的散列索引服务进行去重复的数据存储服务的示例组件的框图。
图2-4是示出在数据去重复中使用的子空间和块存储之间的关系的表示。
图5是表示用于数据去重复的示例步骤的流程图,其中少于整个索引的被高速缓存,从而便于基于子空间的去重复。
图6是表示用于协调两个子空间以定位与块存储中的等同块相对应的等同条目的示例步骤的流程图。
图7是表示其中可实现此处描述的各种实施例的示例性非限制联网环境的框图。
图8是表示其中可实现此处所描述各种实施例的一个或多个方面的示例性非限制计算系统或操作环境的框图。
具体实施方式
此处描述的技术的各方面一般涉及一种通过将全局散列索引划分为多个子空间而操作的去重复系统。所述子空间中的每一个可被存储在辅助存储设备中,例如,在硬盘上。取决于当前正在使用的数据集,子空间或子空间的一部分可被活动地加载到存储器中,例如,基于当前系统工作负载、资源可用性、以及哪个子空间是索引数据块所需要的。当一子空间填满时,该子空间可以变为可以用于定位块(例如,作为高速缓存)的只读子空间,而新的活动子空间被创建以处理新的块。注意,所密封的子空间经常是相同大小的,但不必然如此。
此外,不同子空间可被协调以增加去重复的质量(例如,其相应数据块的更高去重复率),并由此增加数据存储服务器的可缩放性。为此目的,考虑被选择来进行协调的两个子空间,其中一个子空间作为源,一个子空间作为目的地。将一个子空间的散列与另一子空间的散列进行对比以寻找等同的块,其中从一个块存储移除任何等同的块、从相应的子空间之一中可能地移除条目、并将对已移除的块的引用更新为指向剩余的块。注意,重复该系统中所有子空间之间的协调操作将最终检测到该系统中的所有的重复,因此最大化从数据去重复获得的节省。
在一个方面中,为了预测哪些子空间可彼此良好地协调,协调过程计算每个子空间中的索引的签名。该签名可被数据存储服务器用来标识哪些子空间被选择以进行协调。例如,此子空间选择过程可首先处理在协调时最可能给出最多空间节省的子空间。因为子空间签名可能非常紧凑,所以在非高峰时间,该数据存储服务器可以能够承受加载所有子空间的签名,以使得它能够最优地标识哪些子空间是好的去重复候选。每个子空间可被分开优化,其中“热”的子空间(其中内容被修改或规则读取)针对性能进行优化,而“冷”的子空间(其中内容包括较旧的快照或不频繁访问的内容)针对数据去重复质量进行优化。子空间可以在非高峰时间被协调以改善数据去重复性能和/或质量。
应当理解的是,此处的任何示例均是非限制的。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,此处所描述的实施例、方面、概念、结构、功能或示例中的任一个都是非限制性的,并且本发明一般能够以在数据处理、数据索引和数据去重复方面提供好处和优点的各种方式来使用。
图1示出知晓内容(content-aware)的数据去重复数据存储系统的示例组件,诸如在数据/文件存储服务102中实现。服务102接收数据104(文件、团块等),且去重复逻辑106处理数据以进行去重复。为此目的,去重复逻辑106向分块模块108提供数据104,分块模块108将该内容处理为块,诸如根据文件的结构(例如,将媒体文件划分为媒体首部和媒体主体)、或通过使用基于在滑动窗上重复计算的快速散列技术(这样的快速散列函数包括CRC和Rabin函数族)来对文件内容分块的算法,其中块是在散列函数和当前块的大小/内容满足某些试探法(heuristic)时选择的。在散列函数满足某一条件的位置处以取决于数据的方式来一般地确定块边界。接下来的描述是关于一个块110的,但是可以理解的是数据一般被划分为多个块。
去重复逻辑106将块110传给求散列机制112,求散列机制112计算块的散列(被称为块散列114)。强散列函数,如密码安全的SHA-256或SHA-512散列函数等(其确保了极低的散列间冲突的可能性)可被用作唯一地标识块110的块散列114。注意,使用这样的安全散列,消除了散列冲突的可能性,例如,散列冲突可能比在当前可用的最可靠的硬件的情况下的硬件误差可能小约30个数量级。
将块散列114提供给散列索引服务116(其包括或耦合至协调机制117)。如果在散列索引服务116中找到了块散列114(即,已经存在),块110的复制副本被认为已经被存在块存储118中,而无需再存储当前的块。相反,对这个块的任何引用可仅引用之前的、现有的块。
如果在散列索引服务116中没有找到块散列114,块110被存入块存储118中,且块散列114被存入散列索引服务116。可以容易地理解,给定随着时间的充足的数据,通过引用块而不是维持同一数据块的很多分开的实例可节省大量存储。块还经常被压缩,从而保存甚至更多存储;注意,可在压缩之前对未经压缩的块计算散列,和/或可在压缩之后计算散列。
此处描述的技术涉及散列索引服务116的架构和算法,尤其涉及基于子空间的散列索引服务,以及子空间协调的概念。
一般而言,子空间是整个系统的全局索引的较小的一部分,并大体与要被去重复为多个数据集的可用数据的初始划分(分割)相对应。该划分是被普通计划的以使得与任何子空间相对应的数据可能良好地与该子空间的其他数据去重复(许多块将匹配)。因此该全局数据块的散列分为子空间索引,例如,每个相应的数据划分一个子空间索引。可基于实际上任何的准则将该数据/散列划分为子空间,诸如文件类型(例如,通过扩展名)、数据类型(例如,图像、文本文档等)、位置(例如,机器、卷)、创建该文件的应用、文件使用/访问模式(如最后修改时间等)、用户ID(文件所有者)、用户类型、名字空间(例如,磁盘卷)、内容和/或元数据(例如,以群集类似文件)、文件分类信息(通过人工或自动方法提供的)、学习到的/自适应的准则(例如,从对此系统或另一系统上先前去重复的数据的分析的外部反馈)、或可被推断或确定为对该文件的特征的任何其他信息类型。注意,上述划分的一些或全部的任何组合可被使用,例如,在上一个月修改的具有相同文件类型的数据。
通过示例,若假定相关数据经常在同一时间帧附近出现在该存储系统中,则使用文件的最后修改或最后访问时间作为准则来将文件名字空间划分为索引子空间可能是有用的划分方案。例如,考虑作为附件发送到一百个用户的文件,这些文件中的八十个文件将该文件保存到它们自己的相应的文档储存库。该系统可将该名字空间划分成时间范围并将每个时间范围作为子空间来对待。
作为另一示例,通过文件类型来划分基于如下假设:不同的类型或类型组有更大的几率在其自身间具有重复的块。例如,基于文本的格式(例如,.txt、.xml、.html等)可与彼此良好地去重复,但是不能与用zip格式维持的文件良好地去重复。因此,系统(例如,管理员)可以定义有关的文件组,诸如{all text formats}、{Office2007,zip}等等,并将属于一组的文件作为一子空间来对待。
通过将数据划分以使得相应的散列索引是子空间,子空间索引能够被存储在辅助设备(如硬盘)中,而某种形式的活动子空间索引被加载到快速存储器(例如,RAM)中以作为高效(在线)散列索引服务来执行。例如,可在将一组数据的文件/团块(blob)发送到服务102之前,可以通过其划分(及相应的子空间)对数据进行分组,以使得只在组改变时活动索引才改变。此外,在开始优化会话之前,可使用各种方法来选择要加载哪些子空间(将该子空间与将要被去重复的文件相关,例如,基于插入时间),以在后续去重复过程期间最大化节省。
数据的划分和子空间索引降低了去重复比率(即,减少了去重复空间节省),因为等同的块可被不同索引子空间索引并因此存储在多个位置。此外,因为子空间很小(因为能够通过可配置参数来控制其大小),所以系统能够确保对于去重复过程的整个持续时间所加载的子空间将适合于主存储(RAM)。如同下面描述的,不同子空间可被协调(例如,当在CPU、存储器和I/O负载方面服务器的负载很低时在离线操作中),以使得存在于两个(或更多)子空间中的任何等同块的仅一个副本需要被维持,而其他副本被丢弃。尽管在一些环境中每个子空间可以能够与每个其他子空间相协调,然而在其他环境中存在太多子空间而不能用这种方式来协调所有子空间。如同下面描述的,每个索引子空间可由签名标识,其中使用签名相似度(例如,矢量距离)/匹配来选择那些签名看上去具有重大去重复几率并因此将很可能与彼此良好协调的子空间来进行协调。
图2示出了被配置成用于子空间划分的散列索引服务116的示例架构设计。如同上面描述的,数据/文件存储服务102包括块存储118和散列索引服务116,其中块存储118维持块数据,该块数据是一个或多个文件中的数据的区域。块存储118可包含两个或更多个组件存储,例如S1,S2,……,Sn,其中每个存储Si包括由一组块ID ci,1,ci,2,……,ci,k标识的一组块,如图3中所示。块ID ci,j标识块j在存储Sj中的位置,并且可以与指向它所属的文件的可任选向后引用链接相关联。
散列索引服务116包括子空间索引P1,P2,……,Pm,其中每个子空间Pj包括一组散列hj,1,hj,2,……,hj,l以及相关联的块ID cj,1,cj,2,……,cj,l,如在图2和图4中大体表示的。注意,每个块ID对应于一块存储位置,如图2中的虚线箭头所表示的(尽管为了简明只示出了一个这样的箭头)。如同下面描述的,为了去重复优化的目的,每个子空间Pj还可以用签名sigj来标识。子空间Pj还可包括多个其他的经二次采样的(sub-sampled)表示,如同下面描述的。
在系统中有可能在块存储和索引子空间之间建立对应关系,例如,每个块存储si对应于一个且仅一个索引子空间Pj,然而,绝对的对应关系不是必须的。还有可能允许索引子空间Pj指向多个块存储中的块(即,使块ID属于多个块存储)。还有可能块存储sj中的块被多个子空间索引。然而,如果块存储驻留在具有低随机访问性能(例如,与SSD相比)的硬盘驱动器或其他设备上,并且期望良好的读取性能的话,则可能期望限制索引子空间Pj所指向的块存储的数量。
如果数据/文件存储设备102包括多个机器,则可向每个机器分配多个块存储和多个索引子空间。可使用索引服务——如通过具有故障转移支持的集中式索引服务实现的(例如,经由Server 2008中的群集服务),或通过分散式索引服务实现的——来将特定块存储Si或特定索引子空间Pj分配给一机器。
通过摘要的方式并且提供一些更多的细节,图5是表示当新文件被写入被配置成用于子空间划分的文件存储服务102中时发生的步骤的流程图。在步骤502,向该文件分配块存储和索引子空间以使得新块(如果有任何新块)及其散列索引可被存放。步骤504表示使用知晓内容的分块模块来将文件分割为各个块(尽快也可能整个文件是单个块)。
在步骤506,经由安全散列服务(例如,SHA-256)来计算块散列。注意,在计算块散列之前,一个选项是压缩该块(如果适当)。
如经由步骤508和510所表示的,对照散列索引服务的一个或多个当前高速缓存来检查该块散列,该散列索引服务包括用于添加任何新散列的当前子空间,以及当存储器允许时可能的其他(例如,只读)子空间。如果在步骤510该块散列存在于该散列索引服务的当前高速缓存中,在步骤512返回先前块的相关联块ID。否则,在步骤514返回空值,从而指示在该散列索引服务的当前高速缓存中没有找到该块散列。
注意,经由子空间索引(以及如在前面提到的题为“Adaptive Index for DataDeduplication(用于数据去重复的自适应索引)”的专利申请中大体描述的可能的其他因素),可以只将整个散列索引的一部分通过该散列索引服务保持在存储器高速缓存中,即,该散列索引服务可选择性地高速缓存系统中的子空间的散列的一部分。因此,有可能块散列的确存在于该散列索引服务的辅助存储中,但是通过检查当前高速缓存不会立即找到。该散列索引服务的块散列访问(步骤508)触发散列索引服务中的这种前瞻高速缓存的高速缓存管理。取决于散列命中模式,该散列索引服务取决于可用存储器资源来智能地管理当前高速缓存。最近最少使用的子空间的散列不被高速缓存,从而留下存储器来高速缓存更活动地使用的子空间。此外,较不频繁使用的子空间中的访问可被二次采样(如在前面提到的题为“Adaptive Index for Data Deduplication(用于数据去重复的自适应索引)”的专利申请中大体描述的),以减少存储器消耗。注意,除了正在其中添加新散列的当前子空间之外,该散列索引服务中的其他子空间可以是只读的,在该事件中高速缓存替换策略是用于只读高速缓存的,只读高速缓存的实现和管理是相对直接的。进一步注意,高速缓存管理可使用与该子空间相关联的签名。
步骤516表示可任选地压缩该块,例如经由LZW算法或其变型;(注意,块压缩可反而在步骤506之前进行)。对于不同类型的数据,该压缩可以不同。进一步注意,不是所有数据都良好地压缩,并且因此可以对某些类型的数据不执行步骤516,或者可以完全不执行步骤516。
如步骤518所表示的,当散列索引服务返回空(步骤514)时,该块被存放到该块存储,而返回指示该存储中的块的位置(偏移量)的块ID。在步骤520,该块的散列和块ID被存放在该散列索引服务的当前子空间中。注意,在此过程中,在该块被认为已被成功写入之前,只有在步骤518处的块存储写入操作需要被持久存储。可以用懒惰方式将块散列和块ID对写入(步骤520)到该散列索引服务的当前子空间。在该子空间的写入操作失败的事件中(例如,由于电源故障等),该散列索引服务可扫描该块存储并重构该块散列和块ID对以重建该散列索引服务的索引子空间的未写入部分。
步骤522和523返回到步骤506以为任何剩余块重复该过程。当整个文件的所有块已经被持久存储在块存储中时,或已被用块ID发现是重复副本时,则在步骤524返回整个文件的所述组块ID。这些被用于形成该文件的流映射,以允许经由块ID在需要时从该块存储访问该文件数据。
在此阶段的一种替代实现是:反而返回整个文件的各块的块散列,以及当前子空间。该替代方案使用流映射中的散列来标识这些块。该替代实现具有优点和缺点,如此处所述。
更具体而言,存在基于子空间的散列索引服务的替代实现,其中块、块id、散列和引用计数有不同的实现选择。如此处大体描述的,在数据去重复中,块是数据去重复的基本单元,而去重复是通过找到具有相同散列值的块并且只存储该块的一个副本来实现的。在一种简单实现中,块不重叠。也如此处所描述的,每个块被用块ID标识,块ID是文件存储服务中用于定位该块的引用。因为每个块被存储在块存储中,该块ID是数字对(k,off),该数字对将该块标识为被存储在块存储Sk中、在偏移量off处。每个块被其散列唯一标识,该散列一般是通过对经压缩的块流应用散列函数来计算的;(在被称为分层分块的概念中,父块的散列还可通过对其子块的散列值直接应用散列来计算)。
文件存储服务中的文件由合成它的块标识。这可以采取块ID或散列的形式。因此,该文件可被描述为:
文件={块ID1,块ID2,......,块IDm}
文件={散列1,散列2,......,散列m}
这两种方案分别被称为块ID描述方案和散列描述方案。上面已经大体描述了块ID描述方案,因此下面描述散列描述方案。
在散列描述方案中,文件描述符包含相对引用,即该块的散列。咨询第二表,在此例中是散列索引服务中的<hash,chunk_id,ref_count>(<散列,块_id,引用_计数>)映射表,来获得该块的位置。这在文件访问期间增加了一个附加的间接层,并可能降低文件访问期间的读取访问性能。然而,优点在于:可以更快地执行去重复操作(以及垃圾收集操作)。
在散列描述方案中,不需要维持另一块ID表。子空间直接对应于块存储。因为数据/文件存储服务中的散列的数量可能很大,而该方案假定不是所有散列可被加载到主系统存储器中,该文件描述符可进一步记录存放该散列或稍后去重复其中的散列的子空间。通过子空间信息,文件存储服务被给出它需要咨询哪个子空间来取回相关块的chunk_id(块_id)的提示。
因此,一个文件标识符采用如下形式:
文件={散列1,散列2,......,散列m,P1,......,Pk}
其中P1,......,Pk表示所述子空间的索引。当访问该文件时,执行查找操作,例如,在散列索引服务中查找散列1,散列2,......,散列m来取回相关chunk_id(块_id)信息。
注意,因为每个散列对应于唯一块,所以当查找某个散列j时,如果找到与散列i相同但是在不同子空间中的散列j,则可使用散列j的对应的块ID来取回散列i。(对应于散列j和散列i的两个块是可去重复(deduplicable)的,诸如稍后在如下所述的协调期间。)。
如果在散列索引服务的当前高速缓存中没有找到对应的散列,则将子空间的散列P1,......,Pk加载到当前高速缓存中。如果存储器被耗尽,则移除最近最少使用的子空间的散列以提供更多的存储器。
数据去重复的操作是直接的。当对照源子空间Pj将目的地子空间Pi去重复时,源子空间Pj的散列被加载到存储器中。那么,对照源子空间Pj的散列检查目的地子空间Pi的每个散列。只要找到重复时,就移除它在目的地子空间中的散列。
块存储Sj上的相关联块存储垃圾收集操作也能够以直接的方式执行,如下:
1.加载与块存储Sj相关联的子空间P1,……,Pk的散列。将源块存储Sj的流复制到新目的地块存储Sk;在子空间P1,……,Pk中找到其散列的块被完全复制。在子空间P1,……,Pk中没有找到其散列的任何块不被复制。
2.在新目的地块存储Sk中用块ID更新子空间P1,……,Pk
3.然后可删除源块存储Sj
因为在散列描述方案中没有向后引用链接,所以去重复优化和垃圾收集操作两者都是直接的。
转到子空间协调(其通常在系统具有相对低的工作负载以及可用的系统资源时的非高峰时间期间进行),可执行子空间协调操作以找到并移除各子空间之间重复的条目,并因此移除重复的块。注意,如果检测到显著的用户和/或系统活动,则可中断协调操作。在中断的情况下,散列索引服务将使用所述子空间中的一个,例如,如果子空间A和B在被协调时使用子空间A。
存在各种执行协调的方式,包括将每个子空间与每个其他子空间进行协调。注意,可在同一时间将一子空间与多个子空间进行协调,例如,当存储器空间允许时。此外,注意不需要在同一时间,或者甚至在同一会话中,加载所有子空间,例如,可将子空间X对照子空间A、B和C进行协调,然后稍后对照例如子空间D和E进行协调。
协调子空间的另一种方式是将新子空间与已经彼此进行过协调的其他子空间进行协调。例如,如果一次一个地将子空间添加到去重复系统,则可对照其他子空间(例如,它们同样在每个被添加时一次一个地被协调过,并且不需要彼此再次协调)来协调所添加的子空间等等。
另一种方式是按照子空间的类型(例如,与该划分相对应的)。例如,可基于具有相同文件类型或数据类型的那些来定义子空间的组。协调可限于同一组中的子空间,例如,因为有可能用于文本数据的一组子空间中的各子空间能与彼此良好协调,但是不太可能这些子空间与用于索引图像数据的子空间良好协调。
图6是示出一个子空间与一个或多个其他子空间的协调的示例步骤的流程图。步骤602表示将该一个或多个其他子空间加载到存储器中作为索引;注意,索引在存储器消耗方面可能是昂贵的,而扫描散列是便宜的因为它使用顺序读取I/O来扫描,并因此索引较小组的子空间并扫描较大的组是有利的。步骤604开始扫描子空间以进行协调,例如,一次一个地顺序选择散列,并在该索引中查找匹配的散列(步骤606)。如果没有找到任何匹配散列(步骤609),则选择下一散列且该过程重复(步骤614)指导此子空间已被协调。
如果在步骤608找到了匹配的散列,则步骤610将该子空间散列条目以及该块标记为删除。步骤612更新引用要被更新到新去重复的块的块的任何文件或其他实体的指针;注意,维持块和引用该块的文件的数据库,从而可以找到并更新这些文件。当没有文件或其他实体引用该块时,可以安全地删除该子空间散列条目和块,例如,如下面关于步骤616处的紧凑化所描述的。
如同上面描述的,该过程经由步骤614重复,直到已对照所加载的索引(一个或多个子空间的条目)协调了该子空间。此时,可执行如步骤616所表示的紧凑化,尽管紧凑化可在稍后的时间进行,例如,在垃圾收集类型的操作中。
紧凑化可通过将经协调的子空间的剩余索引条目(即,没有被标记为删除/消除的那些)复制到新子空间来进行。一种替代方案是将这些索引条目从该子空间的末尾移动到该子空间中存在的“洞”中,即,盖写被标记为删除的那些条目。可以类似地使块存储紧凑化。
紧凑化带来更小的子空间(以及一个或多个更小的块存储),这是被允许的。可以重新打开该子空间以添加新的条目,而不是使用较小的子空间(或块存储);为了效率,可以跟踪新条目开始处的点,以便协调可从该点开始,因为在协调期间已经发现前面的条目不匹配。可类似地重新打开较小的块存储以添加新的块。
在另一替代方案中,可使用位图来跟踪新条目可被添加到子空间的何处,或新块被添加到块存储的何处,而不是移动条目或块。
容易理解,可对照一组一个或多个较老的子空间来协调新的子空间(新-到-旧协调),然而,旧-到-新协调也是可行的,但是这样做一般涉及更多的数据移动。更具体而言,在协调过程期间,与被去重复的子空间相关联的文件将招致更高的访问成本,因为对该文件的访问时更碎片化的。该散列索引服务可基于内容的访问模式来选择要对哪个子空间进行去重复以改善访问性能,例如,以便常用文件不太碎片化。该散列索引服务还可调整(coordinate)协调以在去重复保留和碎片量之间做出平衡。
例如,考虑彼此类似的两个子空间A和B,并且观察到子空间B比子空间A更频繁地被访问(读取或更新),或者子空间B包含子空间A的内容的更新的版本,从而子空间A更可被认为是子空间B的版本历史并预计将被较不频繁地访问。散列索引服务可选择对照子空间B对子空间A进行去重复,以便被更频繁地访问的子空间B保持更好的访问性能。
在一个替代实施例中,可限制去重复的链条以控制文件访问的成本。通过去重复优化,可通过计算去重复图中的分支的数量来评估访问文件所需的I/O操作的数量。例如,如果对照子空间B和C对子空间A进行去重复,并且还对照子空间D对子空间B进行去重复,则在去重复图中有三个分支,而对与子空间A相关联的文件的I/O访问的数量是4(=3+1)。为了将对文件的访问的I/O的数量限制为不超过K,则该协调树不能具有超过K-1条分支。
如果该去重复系统正存储周期性备份数据,例如,用于第0天的B0、用于第1天的B1、用于第2天的B2等等,则为了确保合理高效地执行最新近备份的恢复(例如,以带来不超过K个访问),则去重复优化和协调操作可被执行如下:首先,将第0天的完整备份存储到B0。当执行第1天的备份B1时,将其对照B0进行去重复。当执行第2天的备份B2时,将其对照B0和B1进行去重复,等等。在第K天,执行BK的完整备份,然后应用协调操作以针对BK的备份对B0的备份进行去重复。针对BK对第K+1天的备份BK+1进行去重复,而针对BK和BK+1对第K+2天的备份进行去重复。在第2K天,执行B2K的完整备份,然后应用协调操作以针对B2K的备份对BK的备份进行去重复。
在许多环境中,存在太多子空间/不充足资源而不能彼此协调所有的子空间。在这种情形下,散列索引服务的选择机制被用来选择要协调哪些子空间。如同此处描述的,在散列索引服务中,文件存储服务的散列被分为子空间以允许该散列索引服务缩放,并且可对每个子空间计算一个或多个签名以便该子空间可被紧凑地表示。该子空间的签名被加载到散列索引服务中(举例来说,以确定哪个子空间要被该散列索引服务的高速缓存管理单元加载/卸载、以及以什么采样速率进行),以及哪两个子空间要在进一步的数据去重复中被协调。
为此目的,一般而言,在协调操作期间,散列索引服务检查该系统中该索引子空间的签名(或其他表示性数据),并基于该签名来计算任何两个子空间之间的相似性以确定这两个子空间之间的潜在的去重复节省。因为该子空间签名被非常紧凑地表示,所以寻找要去重复的子空间的操作可以非常快地被执行。
子空间的签名可采用各种形式。令子空间Pj包括一组散列hj,1,hj,2,……,hj,l。子空间Pj的多个样本签名是:
1.最小散列及其变型(例如,具有靠近特定常数的散列值);例如,最大散列是一个这样的变型。
Sig1(Pj)=min{hj,1,hj,2,……,hj,l}
2.k-最小散列(k-min hash)或其变型。
Sig2(Pj)={hj,1,hj,2,……,hj,l}间的一组k-最小散列值。
也可使用可从完整散列值组中产生一组k个确定性散列值的其他算法,如,
签名可以是最接近常数H的k个散列值。
3.布隆过滤器
该签名是由完整的散列值组{hj,1,hj,2, ……,hj,l}形成的布隆过滤器。
4.k-最小散列+布隆过滤器
该签名是由在2中获得的k-最小散列值形成的布隆过滤器。
5.b-位minwise散列(如P.Li和A.C.Konig的“b-位Minwise散列”,WWW2010中所描述的那样)。
该签名是由完整的散列值组{hj,1,hj,2,……,hj,l}形成的b-位minwise散列。
6.k-最小散列+b-位minwise散列。
这个签名由在2中获得的k个最小散列值上的b位minwise散列所形成。
对于每一个签名计算方法,定义了相似性度量R(Pi,Pj),代表两个子空间是如何类似(即,可去重复的)。在一种实现中,相似性度量R(Pi,Pj)采用从0到1的值;相似性度量越大,就越可能在子空间Pi和Pj之间存在显著的去重复几率的。每个签名的相似性度量可以是:
1.最小散列:
R(Pi,Pj)=1,如果两个子空间的最小散列是相等的,
R(Pi,Pj)=0,其他情况。
2.K-最小散列:
R(Pi,Pj)=q/k,如果在子空间Pi,Pj之间存在q个相等(共同的)最小散列。
3.布隆过滤器和/或k-最小散列+布隆过滤器:
(注意,布隆过滤器的一个已知属性是两个布隆过滤器(它们是位的阵列)间的按位与(bitwise AND)表示包含两个集合Pi和Pj的“交集(intersection)”的布隆过滤器。而且,两个布隆过滤器间的按位或(bitwise OR)是表示两个集合Pi和Pj的并集的布隆过滤器。此外,“长度”算子(其可以被实现为简单地对该布隆过滤器中的位的数量进行计数)表示一种估算插入到该布隆过滤器中的散列值的数量。总结上述公式:此度量近似于两个集合之间的共性的量。)
4b-位minwise散列和/或k-最小散列+b-位minwise散列(基于P.Li和A.C.Konig的“b-位Minwise散列”,WWW 2010中的算法1的比较)。
注意,可将各种子空间彼此进行比较,从而形成距离图(distance map)或其他类似群集的布置。选择可以是基于这样的子空间的群集的。
一旦标识出要被协调的子空间,则可以在所选择的如同上面描述的子空间(例如,对照子空间B对子空间A进行去重复)之间执行去重复。可以通过将子空间B的散列索引加载到存储器中(例如,加载到散列表中)而执行协调。
在一种替代方案中,如果存储器允许,则A的经去重复的子空间A’可在协调期间生成,从而实质上动态地执行紧凑化。为此目的,对于子空间A中的每个散列索引条目,该过程检查子空间B中是否已经存在同一散列条目。如果该散列不存在,则在此替代方案中将该散列索引条目添加到子空间A’。如果该散列已经存在,则子空间A中的散列索引条目可被去重复,并被从子空间A有效“移除”但是不将其添加到子空间A’中。在已对照子空间B对整个子空间A进行去重复之后,原始的子空间A可被移除并用经紧凑化/去重复的子空间A’来替代。
示例性联网以及分布式环境
本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。
分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。
图7提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象710、712等以及计算对象或设备720、722、724、726、728等,这些计算对象或设备可包括如由示例应用730、732、734、736、738表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象710、712等以及计算对象或设备720、722、724、726、728等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
每个计算对象710、712等以及计算对象或设备720、722、724、726、728等可经由通信网络740直接或间接地与一个或多个其他计算对象710、712等以及计算对象或设备720、722、724、726、728等通信。尽管在图7中被示为单个元件,但通信网络740可包括向图7的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象710、712等或计算对象或设备720、722、724、726、728等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实施例所提供的应用实现与其进行通信的应用730、732、734、736、738。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例性通信。
由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服务的一类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。
在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图7的图示中,作为非限制性示例,计算对象或设备720、722、724、726、728等可被认为是客户机而计算对象710、712等可被认为是服务器,其中计算对象710、712等担当提供数据服务的服务器,诸如从客户机计算对象或设备720、722、724、726、728等接收数据、存储数据、处理数据、向客户机计算对象或设备720、722、724、726、728等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。
服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。
在通信网络740或总线是因特网的网络环境中,例如,计算对象710、712等可以是其他计算对象或设备720、722、724、726、728等经由诸如超文本传输协议(HTTP)之类的多种已知协议中的任一种与其通信的Web服务器。计算对象710、712等作为服务器还可用作例如计算对象或设备720、722、724、726、728等的客户机,这可以是如分布式计算环境的特性。
示例性计算设备
如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图8中所述的通用远程计算机只是计算设备的一个示例。
各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
图8由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境800的一个示例,尽管如上所述,计算系统环境800仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。此外,也不应当将计算系统环境800解释为对在示例性计算系统环境800中所示的组件中的任何一个或其组合有任何依赖。
参考图8,用于实现一个或多个实施例的示例性远程设备包括计算机810形式的通用计算设备。计算机810的组件可包括,但不限于,处理单元820、系统存储器830、以及将包括系统存储器的各种系统组件耦合到处理单元820的系统总线822。
计算机810通常包括各种计算机可读介质,并且可以是可由计算机810访问的任何可用介质。系统存储器830可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器830还可包括操作系统、应用程序、其他程序模块、以及程序数据。
用户可通过输入设备840向计算机810输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口850之类的接口连接到系统总线822。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口850连接。
计算机810可使用到一个或多个其他远程计算机(诸如远程计算机870)的逻辑连接在联网或分布式环境中操作。远程计算机870可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体使用或传输设备,并且可包括以上关于计算机810所述的任何或全部元件。图8所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络872,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。
而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API(或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
鉴于本文所述的示例性系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。
结论
尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
除此处所述的各实施例以外,应当理解,可使用其他类似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。

Claims (11)

1.一种用于数据去重复的方法,包括:
将与子空间相关联的子空间索引(P1-Pm)从辅助介质加载到主存储器高速缓存中,所述子空间索引包括的索引条目少于散列索引服务(116)的所有索引条目;
基于签名相似度将所述子空间与另一子空间进行协调以移除所述子空间与所述另一子空间之间的至少一个重复的索引条目,包括使用相似性度量来确定所述子空间和所述另一子空间之间的签名相似度;以及
使用所述子空间索引来对数据进行去重复,包括将所述数据分块(504)为一个或多个块,以及对于每个块,确定(510)为所述块计算的散列值是否与所述主存储器高速缓存中的索引条目的散列值相匹配,并且如果不匹配,则存储(518)所述块并与对所述块的引用相关联地将对应于所述散列值的索引条目添加(518)到所述子空间索引中,而如果匹配,则返回(512)能够用于定位现有的块的信息。
2.如权利要求1所述的方法,其特征在于,还包括:将另一子空间索引的至少一部分加载到所述主存储器高速缓存中,或者基于一个或多个准则将所述散列索引服务划分为多个子空间索引,或者基于将要被去重复的数据的一个或多个准则将所述数据划分为多个数据集,以及将所述散列索引服务划分为与所述多个数据集相对应的多个子空间索引,或者以下各项的任何组合:将另一子空间索引的至少一部分加载到所述主存储器高速缓存中,或者基于一个或多个准则将所述散列索引服务划分为多个子空间索引,或者基于将要被去重复的数据的一个或多个准则将所述数据划分为多个数据集,以及将所述散列索引服务划分为与所述多个数据集相对应的多个子空间索引。
3.如权利要求1所述的方法,其特征在于,返回能够用于定位现有的块的信息包括返回块标识符,或返回所述散列值以及所述子空间的标识符,其中所述块标识符包括对与所述索引条目相关联的块的引用。
4.如权利要求1所述的方法,其特征在于,还包括:基于表示所述子空间的至少一个签名以及表示所述另一子空间的至少一个签名之间的相似度来选择要协调的所述另一子空间。
5.一种用于数据去重复的系统,包括:
用于将与子空间相关联的子空间索引(P1-Pm)从辅助介质加载到主存储器高速缓存中的装置,所述子空间索引包括的索引条目少于散列索引服务(116)的所有索引条目;
用于基于签名相似度将所述子空间与另一子空间进行协调以移除所述子空间与所述另一子空间之间的至少一个重复的索引条目的装置,包括使用相似性度量来确定所述子空间和所述另一子空间之间的签名相似度;以及
用于使用所述子空间索引来对数据进行去重复的装置,所述对数据进行去重复包括将所述数据分块(504)为一个或多个块,以及对于每个块,确定(510)为所述块计算的散列值是否与所述主存储器高速缓存中的索引条目的散列值相匹配,并且如果不匹配,则存储(518)所述块并与对所述块的引用相关联地将对应于所述散列值的索引条目添加(518)到所述子空间索引中,而如果匹配,则返回(512)能够用于定位现有的块的信息。
6.如权利要求5所述的系统,其特征在于,还包括:用于将另一子空间索引的至少一部分加载到所述主存储器高速缓存中,或者基于一个或多个准则将所述散列索引服务划分为多个子空间索引,或者基于将要被去重复的数据的一个或多个准则将所述数据划分为多个数据集的装置,以及用于将所述散列索引服务划分为与所述多个数据集相对应的多个子空间索引的装置,或者用于以下各项的任何组合的装置:将另一子空间索引的至少一部分加载到所述主存储器高速缓存中,或者基于一个或多个准则将所述散列索引服务划分为多个子空间索引,或者基于将要被去重复的数据的一个或多个准则将所述数据划分为多个数据集,以及将所述散列索引服务划分为与所述多个数据集相对应的多个子空间索引。
7.如权利要求5所述的系统,其特征在于,用于返回能够用于定位现有的块的信息的装置包括用于返回块标识符,或返回所述散列值以及所述子空间的标识符的装置,其中所述块标识符包括对与所述索引条目相关联的块的引用。
8.如权利要求5所述的系统,其特征在于,还包括:用于基于表示所述子空间的至少一个签名以及表示所述另一子空间的至少一个签名之间的相似度来选择要协调的所述另一子空间的装置。
9.一种将子空间与一个或多个其他子空间进行协调的方法,其中与子空间相关联的子空间索引包括的索引条目少于散列索引服务的所有索引条目,包括:
(a)选择(604)所述子空间中的散列值;
(b)确定(608)所述散列值是否与所述一个或多个其他子空间中的散列值相匹配,并且如果不匹配,则前进到步骤(d),其中所述其他子空间是基于用于确定所述子空间和所述其他子空间之间的相似度的相似性度量来选择的;
(c)消除(610)所述子空间中的重复的索引条目,其中所述重复的索引条目是与步骤(b)中与所述一个或多个其他子空间中的散列值相匹配的散列值相对应的索引条目;以及
(d)返回(614)到步骤(a)以处理多个不同的散列值。
10.如权利要求9所述的方法,其特征在于,还包括:基于以下内容来选择所述子空间和所述一个或多个其他子空间:类似的子空间类型、类似的子空间签名,或者所述子空间是未经协调的子空间且所述一个或多个其他子空间包括多个先前彼此协调过的子空间,或以下各项的任何组合:类似的子空间类型、类似的子空间签名、或者所述子空间是未经协调的子空间且所述一个或多个子空间包括多个先前彼此协调过的子空间。
11.如权利要求9所述的方法,其特征在于,消除所述子空间中的重复的索引条目包括:
不将所述索引条目复制到新的子空间,或
通过将包含所述散列值的索引条目标记为消除,以及通过在协调后仅将未标记的索引条目复制到新的子空间而消除所述索引条目,或用未标记的索引条目盖写被标记为消除的索引条目而使所述子空间紧凑化。
CN201110445282.2A 2010-12-28 2011-12-27 使用索引划分和协调来进行数据去重复 Active CN102591946B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/979,748 2010-12-28
US12/979,748 US9110936B2 (en) 2010-12-28 2010-12-28 Using index partitioning and reconciliation for data deduplication

Publications (2)

Publication Number Publication Date
CN102591946A CN102591946A (zh) 2012-07-18
CN102591946B true CN102591946B (zh) 2018-06-12

Family

ID=46318269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110445282.2A Active CN102591946B (zh) 2010-12-28 2011-12-27 使用索引划分和协调来进行数据去重复

Country Status (4)

Country Link
US (2) US9110936B2 (zh)
EP (1) EP2659376B1 (zh)
CN (1) CN102591946B (zh)
WO (1) WO2012092212A2 (zh)

Families Citing this family (170)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US8935487B2 (en) 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
GB2477607B (en) * 2011-01-17 2011-12-28 Quantum Corp Sampling based data de-duplication
US9619474B2 (en) * 2011-03-31 2017-04-11 EMC IP Holding Company LLC Time-based data partitioning
US9916258B2 (en) 2011-03-31 2018-03-13 EMC IP Holding Company LLC Resource efficient scale-out file systems
CN102810107B (zh) * 2011-06-01 2015-10-07 英业达股份有限公司 重复数据的处理方法
CN102810108A (zh) * 2011-06-02 2012-12-05 英业达股份有限公司 重复数据的处理方法
US8660997B2 (en) * 2011-08-24 2014-02-25 International Business Machines Corporation File system object-based deduplication
US8838551B2 (en) * 2011-10-21 2014-09-16 International Business Machines Corporation Multi-level database compression
US9069707B1 (en) 2011-11-03 2015-06-30 Permabit Technology Corp. Indexing deduplicated data
CA2890596C (en) 2011-11-07 2017-01-03 Nexgen Storage, Inc. Primary data storage system with deduplication
US20130151483A1 (en) * 2011-12-07 2013-06-13 Quantum Corporation Adaptive experience based De-duplication
US9256609B2 (en) * 2012-03-08 2016-02-09 Dell Products L.P. Fixed size extents for variable size deduplication segments
US8682869B2 (en) * 2012-04-05 2014-03-25 International Business Machines Corporation Increased in-line deduplication efficiency
US8688652B2 (en) 2012-04-05 2014-04-01 International Business Machines Corporation Increased in-line deduplication efficiency
US8909607B2 (en) * 2012-05-21 2014-12-09 International Business Machines Corporation Context sensitive reusable inline data deduplication
US8788468B2 (en) * 2012-05-24 2014-07-22 International Business Machines Corporation Data depulication using short term history
US9317511B2 (en) * 2012-06-19 2016-04-19 Infinidat Ltd. System and method for managing filesystem objects
US9141633B1 (en) * 2012-06-27 2015-09-22 Emc Corporation Special markers to optimize access control list (ACL) data for deduplication
US9465737B1 (en) * 2012-07-02 2016-10-11 Toshiba Corporation Memory systems including a duplicate removing filter module that is separate from a cache module
US9262429B2 (en) * 2012-08-13 2016-02-16 Microsoft Technology Licensing, Llc De-duplicating attachments on message delivery and automated repair of attachments
WO2014067063A1 (zh) * 2012-10-30 2014-05-08 华为技术有限公司 重复数据检索方法及设备
CN102982122A (zh) * 2012-11-13 2013-03-20 浪潮电子信息产业股份有限公司 一种适用于海量存储系统的重复数据删除方法
WO2014078990A1 (zh) * 2012-11-20 2014-05-30 华为技术有限公司 数据存储方法、数据存储装置及数据存储系统
CN103064908B (zh) * 2012-12-18 2016-03-16 北京讯鸟软件有限公司 一种通过内存快速去重名单的方法
US9152502B2 (en) 2012-12-21 2015-10-06 Microsoft Technology Licensing, Llc Data error detection and correction using hash values
US9977596B2 (en) * 2012-12-27 2018-05-22 Dropbox, Inc. Predictive models of file access patterns by application and file type
US8954392B2 (en) * 2012-12-28 2015-02-10 Futurewei Technologies, Inc. Efficient de-duping using deep packet inspection
US9306997B2 (en) 2013-01-16 2016-04-05 Cisco Technology, Inc. Method for optimizing WAN traffic with deduplicated storage
US9509736B2 (en) 2013-01-16 2016-11-29 Cisco Technology, Inc. Method for optimizing WAN traffic
US9300748B2 (en) * 2013-01-16 2016-03-29 Cisco Technology, Inc. Method for optimizing WAN traffic with efficient indexing scheme
US9953042B1 (en) 2013-03-01 2018-04-24 Red Hat, Inc. Managing a deduplicated data index
US9116941B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Reducing digest storage consumption by tracking similarity elements in a data deduplication system
US9547662B2 (en) 2013-03-15 2017-01-17 International Business Machines Corporation Digest retrieval based on similarity search in data deduplication
US9244937B2 (en) * 2013-03-15 2016-01-26 International Business Machines Corporation Efficient calculation of similarity search values and digest block boundaries for data deduplication
US11100051B1 (en) * 2013-03-15 2021-08-24 Comcast Cable Communications, Llc Management of content
US9678975B2 (en) * 2013-03-15 2017-06-13 International Business Machines Corporation Reducing digest storage consumption in a data deduplication system
US9836474B2 (en) 2013-07-15 2017-12-05 International Business Machines Corporation Data structures for digests matching in a data deduplication system
US10296597B2 (en) * 2013-07-15 2019-05-21 International Business Machines Corporation Read ahead of digests in similarity based data deduplicaton
US10789213B2 (en) 2013-07-15 2020-09-29 International Business Machines Corporation Calculation of digest segmentations for input data using similar data in a data deduplication system
US10339109B2 (en) 2013-07-15 2019-07-02 International Business Machines Corporation Optimizing hash table structure for digest matching in a data deduplication system
US10229132B2 (en) 2013-07-15 2019-03-12 International Business Machines Corporation Optimizing digest based data matching in similarity based deduplication
US10296598B2 (en) * 2013-07-15 2019-05-21 International Business Machines Corporation Digest based data matching in similarity based deduplication
US10133502B2 (en) 2013-07-15 2018-11-20 International Business Machines Corporation Compatibility and inclusion of similarity element resolutions
US9594766B2 (en) 2013-07-15 2017-03-14 International Business Machines Corporation Reducing activation of similarity search in a data deduplication system
US10073853B2 (en) * 2013-07-17 2018-09-11 International Business Machines Corporation Adaptive similarity search resolution in a data deduplication system
CN104462144B (zh) * 2013-09-24 2019-06-14 中兴通讯股份有限公司 一种包分类规则的查找方法及装置
WO2015065312A1 (en) * 2013-10-28 2015-05-07 Hitachi, Ltd. Method and apparatus of data de-duplication for solid state memory
CN103559282B (zh) * 2013-11-07 2018-02-23 北京国双科技有限公司 实时系统数据的去重方法和装置
US9720989B2 (en) 2013-11-11 2017-08-01 Amazon Technologies, Inc. Dynamic partitioning techniques for data streams
US9794135B2 (en) 2013-11-11 2017-10-17 Amazon Technologies, Inc. Managed service for acquisition, storage and consumption of large-scale data streams
US9858322B2 (en) 2013-11-11 2018-01-02 Amazon Technologies, Inc. Data stream ingestion and persistence techniques
US10635644B2 (en) 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
KR102187127B1 (ko) 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US9529849B2 (en) 2013-12-31 2016-12-27 Sybase, Inc. Online hash based optimizer statistics gathering in a database
US10013344B2 (en) 2014-01-14 2018-07-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Enhanced SSD caching
US9792063B2 (en) * 2014-01-15 2017-10-17 Intel Corporation Deduplication-based data security
US10761944B2 (en) * 2014-02-11 2020-09-01 Netapp, Inc. Techniques for deduplication of media content
SG10201703412SA (en) * 2014-02-14 2017-06-29 Huawei Tech Co Ltd Method and server for searching for data stream dividing point based on server
US9438672B2 (en) 2014-02-14 2016-09-06 Prakash Khemani Method for client specific database change propagation
WO2015167562A1 (en) 2014-04-30 2015-11-05 Hewlett-Packard Development Company, L.P. Using local memory nodes of a multicore machine to process a search query
US9785510B1 (en) 2014-05-09 2017-10-10 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
US9734021B1 (en) 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
JP6254293B2 (ja) * 2014-09-15 2017-12-27 華為技術有限公司Huawei Technologies Co.,Ltd. データ重複排除方法及びストレージアレイ
CN107077456B (zh) 2014-09-25 2020-06-26 慧与发展有限责任合伙企业 用于存储数据的装置、方法和存储介质
CN107077399A (zh) * 2014-10-28 2017-08-18 慧与发展有限责任合伙企业 确定针对垃圾收集的去重复存储区中的未引用页面
CN104462461B (zh) * 2014-12-16 2017-09-29 用友网络科技股份有限公司 对表单进行排查空值处理的方法及装置
JP2016126632A (ja) * 2015-01-07 2016-07-11 富士通株式会社 ストレージ装置、ストレージシステム、データ読み出し方法、及びストレージプログラム
US9767313B2 (en) * 2015-01-23 2017-09-19 Limited Liability Company “1C” Method for automated separation and partitioning of data in a payroll and resource planning system
WO2016122653A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Common search distances in data partitions
US9916320B2 (en) * 2015-04-26 2018-03-13 International Business Machines Corporation Compression-based filtering for deduplication
US10846275B2 (en) * 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10257273B2 (en) 2015-07-31 2019-04-09 Netapp, Inc. Systems, methods and devices for RDMA read/write operations
US9984144B2 (en) 2015-08-17 2018-05-29 Mellanox Technologies Tlv Ltd. Efficient lookup of TCAM-like rules in RAM
US10496680B2 (en) 2015-08-17 2019-12-03 Mellanox Technologies Tlv Ltd. High-performance bloom filter array
US10049126B2 (en) * 2015-09-06 2018-08-14 Mellanox Technologies Tlv Ltd. Cuckoo hashing with selectable hash
US10169358B2 (en) * 2015-10-08 2019-01-01 International Business Machines Corporation Data deduplication using a small hash table
US10726015B1 (en) * 2015-11-01 2020-07-28 Yellowbrick Data, Inc. Cache-aware system and method for identifying matching portions of two sets of data in a multiprocessor system
US9646043B1 (en) 2015-11-25 2017-05-09 International Business Machines Corporation Combining data matches from multiple sources in a deduplication storage system
US9703642B2 (en) 2015-11-25 2017-07-11 International Business Machines Corporation Processing of tracked blocks in similarity based deduplication of snapshots data
US9703643B2 (en) 2015-11-25 2017-07-11 International Business Machines Corporation Calculation of representative values for similarity units in deduplication of snapshots data
US9678977B1 (en) 2015-11-25 2017-06-13 International Business Machines Corporation Similarity based deduplication of snapshots data
US9984123B2 (en) 2015-11-25 2018-05-29 International Business Machines Corporation Reducing resource consumption of a similarity index in data deduplication
US10031937B2 (en) 2015-11-25 2018-07-24 International Business Machines Corporation Similarity based data deduplication of initial snapshots of data sets
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10853182B1 (en) 2015-12-21 2020-12-01 Amazon Technologies, Inc. Scalable log-based secondary indexes for non-relational databases
US10242021B2 (en) 2016-01-12 2019-03-26 International Business Machines Corporation Storing data deduplication metadata in a grid of processors
US10255288B2 (en) 2016-01-12 2019-04-09 International Business Machines Corporation Distributed data deduplication in a grid of processors
US10261946B2 (en) 2016-01-12 2019-04-16 International Business Machines Corporation Rebalancing distributed metadata
US10222987B2 (en) 2016-02-11 2019-03-05 Dell Products L.P. Data deduplication with augmented cuckoo filters
US10169365B2 (en) * 2016-03-02 2019-01-01 Hewlett Packard Enterprise Development Lp Multiple deduplication domains in network storage system
US9892057B2 (en) 2016-03-31 2018-02-13 Mellanox Technologies Tlv Ltd. Single double cuckoo hash
US10346390B2 (en) 2016-05-23 2019-07-09 International Business Machines Corporation Opportunistic mitigation for corrupted deduplicated data
US10509780B2 (en) * 2016-06-03 2019-12-17 Dell Products L.P. Maintaining I/O transaction metadata in log-with-index structure
US10019456B2 (en) 2016-06-29 2018-07-10 Microsoft Technology Licensing, Llc Recovering free space in nonvolatile storage with a computer storage system supporting shared objects
US10068034B2 (en) 2016-09-07 2018-09-04 Mellanox Technologies Tlv Ltd. Efficient matching of TCAM rules using hash tables in RAM
US10185550B2 (en) 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US10379962B1 (en) * 2016-10-03 2019-08-13 EMC IP Holding Company LLC De-duplicating backup files based on data evolution
US10198190B2 (en) 2016-10-31 2019-02-05 International Business Machines Corporation Performance oriented data deduplication and duplication
US10860571B2 (en) * 2016-11-04 2020-12-08 Sap Se Storage and pruning for faster access of a document store
US11644992B2 (en) * 2016-11-23 2023-05-09 Samsung Electronics Co., Ltd. Storage system performing data deduplication, method of operating storage system, and method of operating data processing system
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
CN110024422B (zh) * 2016-12-30 2023-07-18 英特尔公司 物联网的命名和区块链记录
US10417133B2 (en) * 2017-01-26 2019-09-17 International Business Machines Corporation Reference cache maintenance optimizer
US10210170B2 (en) 2017-01-28 2019-02-19 Microsoft Technology Licensing, Llc Chunk storage deduplication using graph structures
US20180246666A1 (en) * 2017-02-24 2018-08-30 Netapp, Inc. Methods for performing data deduplication on data blocks at granularity level and devices thereof
US10997120B2 (en) * 2017-03-16 2021-05-04 Cisco Technology, Inc. Systems and methods for device visiting frequency estimation
US10860545B2 (en) 2017-03-24 2020-12-08 Microsoft Technology Licensing, Llc Measuring usage of computing resources
US10725979B2 (en) * 2017-03-24 2020-07-28 Microsoft Technology Licensing, Llc Measuring usage of computing resources by storing usage events in a distributed file system
US10491521B2 (en) 2017-03-26 2019-11-26 Mellanox Technologies Tlv Ltd. Field checking based caching of ACL lookups to ease ACL lookup search
US11194495B2 (en) * 2017-04-27 2021-12-07 EMC IP Holding Company LLC Best-effort deduplication of data while the data resides in a front-end log along an I/O path that leads to back end storage
US10809928B2 (en) * 2017-06-02 2020-10-20 Western Digital Technologies, Inc. Efficient data deduplication leveraging sequential chunks or auxiliary databases
US10235080B2 (en) 2017-06-06 2019-03-19 Saudi Arabian Oil Company Systems and methods for assessing upstream oil and gas electronic data duplication
CN107391034B (zh) * 2017-07-07 2019-05-10 华中科技大学 一种基于局部性优化的重复数据检测方法
US10476794B2 (en) 2017-07-30 2019-11-12 Mellanox Technologies Tlv Ltd. Efficient caching of TCAM rules in RAM
US10845994B1 (en) * 2017-07-31 2020-11-24 EMC IP Holding Company LLC Performing reconciliation on a segmented de-duplication index
CN107632779B (zh) * 2017-08-24 2020-07-03 阿里巴巴集团控股有限公司 数据处理方法和装置、服务器
CN107544760B (zh) * 2017-09-20 2020-10-02 郑州云海信息技术有限公司 一种分布式存储请求的下发方法、装置、设备及存储介质
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US10990581B1 (en) 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
US10613759B2 (en) 2017-10-30 2020-04-07 Coder Technologies, Inc. Cloud-based development environment with deduplication engine improving storage efficiency
US11182372B1 (en) 2017-11-08 2021-11-23 Amazon Technologies, Inc. Tracking database partition change log dependencies
US11042503B1 (en) 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
JP6988445B2 (ja) * 2017-12-20 2022-01-05 富士通株式会社 ストレージシステム、制御装置及び制御方法
CN108305622B (zh) * 2018-01-04 2021-06-11 海尔优家智能科技(北京)有限公司 一种基于语音识别的音频摘要文本创建方法及其创建装置
US10303365B1 (en) * 2018-01-31 2019-05-28 EMC IP Holding Company LLC Data fingerprint distribution on a data storage system
US10621049B1 (en) 2018-03-12 2020-04-14 Amazon Technologies, Inc. Consistent backups based on local node clock
US10877936B2 (en) * 2018-05-02 2020-12-29 EMC IP Holding Company LLC Data deduplication using truncated fingerprints
US11070600B1 (en) * 2018-07-16 2021-07-20 Amazon Technologies, Inc. Optimization techniques to support lagging readers at streaming data service
US10855754B1 (en) 2018-07-16 2020-12-01 Amazon Technologies, Inc. Isolated read channel categories at streaming data service
US10798140B1 (en) 2018-07-16 2020-10-06 Amazon Technologies, Inc. Stream data record reads using push-mode persistent connections
US10768830B1 (en) * 2018-07-16 2020-09-08 Amazon Technologies, Inc. Streaming data service with isolated read channels
US11075984B1 (en) 2018-07-16 2021-07-27 Amazon Technologies, Inc. Workload management at streaming data service supporting persistent connections for reads
US10956246B1 (en) 2018-07-16 2021-03-23 Amazon Technologies, Inc. Isolated read channel management interfaces at streaming data service
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
US11327974B2 (en) 2018-08-02 2022-05-10 Mellanox Technologies, Ltd. Field variability based TCAM splitting
US11126505B1 (en) 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
EP3822795B1 (en) 2018-08-21 2023-07-26 Huawei Technologies Co., Ltd. Data storage and acquisition method and device
US11003715B2 (en) 2018-09-17 2021-05-11 Mellanox Technologies, Ltd. Equipment and method for hash table resizing
CN109460406B (zh) * 2018-10-15 2021-03-23 咪咕文化科技有限公司 一种数据处理方法及装置
US11042454B1 (en) 2018-11-20 2021-06-22 Amazon Technologies, Inc. Restoration of a data source
US11042519B2 (en) * 2019-01-15 2021-06-22 Cisco Technology, Inc. Reinforcement learning for optimizing data deduplication
US11561766B2 (en) * 2019-02-28 2023-01-24 Bmc Software, Inc. Creative and additive reconciliation of data records
US10789062B1 (en) * 2019-04-18 2020-09-29 Dell Products, L.P. System and method for dynamic data deduplication for firmware updates
US11416548B2 (en) 2019-05-02 2022-08-16 International Business Machines Corporation Index management for a database
US11561942B1 (en) 2019-07-05 2023-01-24 The Nielsen Company (Us), Llc Methods and apparatus to estimate audience sizes of media using deduplication based on vector of counts sketch data
US11416461B1 (en) * 2019-07-05 2022-08-16 The Nielsen Company (Us), Llc Methods and apparatus to estimate audience sizes of media using deduplication based on binomial sketch data
US10944675B1 (en) 2019-09-04 2021-03-09 Mellanox Technologies Tlv Ltd. TCAM with multi region lookups and a single logical lookup
US11126401B2 (en) 2019-09-18 2021-09-21 Bank Of America Corporation Pluggable sorting for distributed databases
US11016978B2 (en) 2019-09-18 2021-05-25 Bank Of America Corporation Joiner for distributed databases
US11188350B2 (en) * 2019-11-14 2021-11-30 Here Global B.V. Method and apparatus for streaming map data based on data types
CN110991955B (zh) * 2019-11-27 2023-04-18 太原理工大学 一种基于信息矩的组群数量多样性估计方法
CN113227993A (zh) * 2019-11-29 2021-08-06 华为技术有限公司 用于去重优化的设备、系统和方法
CN111177137B (zh) * 2019-12-30 2023-10-13 广州酷狗计算机科技有限公司 数据去重的方法、装置、设备及存储介质
US11106580B2 (en) * 2020-01-27 2021-08-31 Hewlett Packard Enterprise Development Lp Deduplication system threshold based on an amount of wear of a storage device
US11593327B2 (en) * 2020-03-13 2023-02-28 EMC IP Holding Company LLC Segmented index for data deduplication
US11539622B2 (en) 2020-05-04 2022-12-27 Mellanox Technologies, Ltd. Dynamically-optimized hash-based packet classifier
US11481371B2 (en) * 2020-07-27 2022-10-25 Hewlett Packard Enterprise Development Lp Storage system capacity usage estimation
TWI755029B (zh) * 2020-08-17 2022-02-11 鴻海精密工業股份有限公司 資料處理方法、裝置、電子設備及存儲介質
US11782895B2 (en) 2020-09-07 2023-10-10 Mellanox Technologies, Ltd. Cuckoo hashing including accessing hash tables using affinity table
CN112152937B (zh) * 2020-09-29 2022-08-19 锐捷网络股份有限公司 一种报文去重的方法、装置、电子设备及存储介质
US11681659B2 (en) * 2021-05-21 2023-06-20 Red Hat, Inc. Hybrid file compression model
US11917042B2 (en) 2021-08-15 2024-02-27 Mellanox Technologies, Ltd. Optimizing header-based action selection
US11929837B2 (en) 2022-02-23 2024-03-12 Mellanox Technologies, Ltd. Rule compilation schemes for fast packet classification
US11968285B2 (en) 2022-02-24 2024-04-23 Mellanox Technologies, Ltd. Efficient memory utilization for cartesian products of rules
US20230385240A1 (en) * 2022-05-31 2023-11-30 Microsoft Technology Licensing, Llc Optimizations for data deduplication operations
CN115858738B (zh) * 2023-02-27 2023-06-02 浙江浙商金控有限公司 一种企业舆情信息相似性识别方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350869A (zh) * 2007-07-19 2009-01-21 中国电信股份有限公司 基于索引和散列的电信计费去重方法及设备

Family Cites Families (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6054991A (en) 1991-12-02 2000-04-25 Texas Instruments Incorporated Method of modeling player position and movement in a virtual reality system
US5634125A (en) 1993-09-02 1997-05-27 International Business Machines Corporation Selecting buckets for redistributing data between nodes in a parallel database in the quiescent mode
US5948040A (en) 1994-06-24 1999-09-07 Delorme Publishing Co. Travel reservation information and planning system
US7050986B1 (en) 1995-09-06 2006-05-23 The Sabre Group, Inc. System for corporate traveler planning and travel management
JP4303803B2 (ja) 1998-04-22 2009-07-29 株式会社東芝 キャッシュフラッシュ装置
US6412080B1 (en) 1999-02-23 2002-06-25 Microsoft Corporation Lightweight persistent storage system for flash memory devices
US6453404B1 (en) 1999-05-27 2002-09-17 Microsoft Corporation Distributed data cache with memory allocation model
GB2354104A (en) 1999-09-08 2001-03-14 Sony Uk Ltd An editing method and system
US6976229B1 (en) 1999-12-16 2005-12-13 Ricoh Co., Ltd. Method and apparatus for storytelling with digital photographs
US6687815B1 (en) 2000-02-01 2004-02-03 Sun Microsystems, Inc. Method and apparatus for storing non-volatile configuration information
US20020128934A1 (en) 2000-12-11 2002-09-12 Ari Shaer Interactive event planning and payment method and system
US20020152244A1 (en) 2000-12-22 2002-10-17 International Business Machines Corporation Method and apparatus to dynamically create a customized user interface based on a document type definition
US20020147619A1 (en) 2001-04-05 2002-10-10 Peter Floss Method and system for providing personal travel advice to a user
US7269608B2 (en) 2001-05-30 2007-09-11 Sun Microsystems, Inc. Apparatus and methods for caching objects using main memory and persistent memory
US20030040946A1 (en) 2001-06-25 2003-02-27 Sprenger Stanley C. Travel planning system and method
US6803925B2 (en) 2001-09-06 2004-10-12 Microsoft Corporation Assembling verbal narration for digital display images
US7076602B2 (en) 2001-11-05 2006-07-11 Hywire Ltd. Multi-dimensional associative search engine having an external memory
US6754800B2 (en) 2001-11-14 2004-06-22 Sun Microsystems, Inc. Methods and apparatus for implementing host-based object storage schemes
AUPR894801A0 (en) 2001-11-20 2001-12-13 Unisearch Limited A system and method for searching data sources
CA2475319A1 (en) 2002-02-04 2003-08-14 Cataphora, Inc. A method and apparatus to visually present discussions for data mining purposes
US7096213B2 (en) 2002-04-08 2006-08-22 Oracle International Corporation Persistent key-value repository with a pluggable architecture to abstract physical storage
US7137145B2 (en) 2002-04-09 2006-11-14 Cisco Technology, Inc. System and method for detecting an infective element in a network environment
US6925463B2 (en) 2002-04-15 2005-08-02 International Business Machines Corporation Method and system for query processing by combining indexes of multilevel granularity or composition
GB2388242A (en) 2002-04-30 2003-11-05 Hewlett Packard Co Associating audio data and image data
US20040034869A1 (en) 2002-07-12 2004-02-19 Wallace Michael W. Method and system for display and manipulation of thematic segmentation in the analysis and presentation of film and video
US20040139481A1 (en) 2002-10-11 2004-07-15 Larry Atlas Browseable narrative architecture system and method
US6928526B1 (en) 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
US7739597B2 (en) 2003-02-24 2010-06-15 Microsoft Corporation Interactive media frame display
GB2401272B (en) 2003-04-30 2007-11-21 Hewlett Packard Development Co Method and apparatus for enhancing user interest in static digital images
US7286723B2 (en) 2003-06-27 2007-10-23 Hewlett-Packard Development Company, L.P. System and method for organizing images
EP1557837A1 (en) 2004-01-26 2005-07-27 Sony International (Europe) GmbH Redundancy elimination in a content-adaptive video preview system
JP4491269B2 (ja) 2004-04-22 2010-06-30 株式会社日立製作所 ストレージシステム及びファイル管理装置
US7827182B1 (en) 2004-06-02 2010-11-02 Cisco Technology, Inc Searching for a path to identify where to move entries among hash tables with storage for multiple entries per bucket during insert operations
US20050281541A1 (en) 2004-06-17 2005-12-22 Logan Beth T Image organization method and system
US20080046298A1 (en) 2004-07-29 2008-02-21 Ziv Ben-Yehuda System and Method For Travel Planning
US7457813B2 (en) 2004-10-06 2008-11-25 Burnside Acquisition, Llc Storage system for randomly named blocks of data
US20060206363A1 (en) 2005-03-13 2006-09-14 Gove Jeremy J Group travel planning, optimization, synchronization and coordination software tool and processes for travel arrangements for transportation and lodging for multiple people from multiple geographic locations, domestic and global, to a single destination or series of destinations
US7941401B2 (en) 2005-05-09 2011-05-10 Gemstone Systems, Inc. Distributed data management system
US20070005874A1 (en) 2005-07-01 2007-01-04 Dan Dodge File system storing transaction records in flash-like media
WO2007029207A2 (en) 2005-09-09 2007-03-15 Koninklijke Philips Electronics N.V. Method, device and system for providing search results
US7739599B2 (en) 2005-09-23 2010-06-15 Microsoft Corporation Automatic capturing and editing of a video
US7797283B2 (en) 2005-10-21 2010-09-14 Isilon Systems, Inc. Systems and methods for maintaining distributed data
US20070112626A1 (en) 2005-11-16 2007-05-17 Daly Michael G Computer interactive customer relationship management system
US20080007567A1 (en) 2005-12-18 2008-01-10 Paul Clatworthy System and Method for Generating Advertising in 2D or 3D Frames and Scenes
US20070174042A1 (en) 2006-01-24 2007-07-26 Thompson Sidney S Electronic tour guide system
CN1809108A (zh) * 2006-02-20 2006-07-26 南京联创科技股份有限公司 基于过滤片的话单内存排重方法
US7823068B2 (en) 2006-02-28 2010-10-26 Mark Anthony Ogle Cowtan Internet-based, dual-paned virtual tour presentation system with orientational capabilities and versatile tabbed menu-driven area for multi-media content delivery
US7457934B2 (en) * 2006-03-22 2008-11-25 Hitachi, Ltd. Method and apparatus for reducing the amount of data in a storage system
US8412682B2 (en) 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US7640262B1 (en) 2006-06-30 2009-12-29 Emc Corporation Positional allocation
US20080010238A1 (en) 2006-07-07 2008-01-10 Microsoft Corporation Index having short-term portion and long-term portion
US9465823B2 (en) 2006-10-19 2016-10-11 Oracle International Corporation System and method for data de-duplication
US20080201227A1 (en) 2006-11-07 2008-08-21 Lucia Urban Bakewell Interactive, Internet-based, trip planning, travel resource, travel community, virtual travel, travel-based education, travel-related gaming and virtual/live tour system, methods, and processes, emphasizing a user's ability to tailor complete travel, trip, route, game and touring choices to unique user-specified personal interests, preferences, and special requirements for self and companions
US8214517B2 (en) 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US7443321B1 (en) 2007-02-13 2008-10-28 Packeteer, Inc. Compression of stream data using a hierarchically-indexed database
US20080243564A1 (en) 2007-03-30 2008-10-02 Sap Ag Travel plan generation
US8234327B2 (en) 2007-03-30 2012-07-31 Netapp, Inc. System and method for bandwidth optimization in a network storage environment
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
US8934717B2 (en) 2007-06-05 2015-01-13 Intellectual Ventures Fund 83 Llc Automatic story creation using semantic classifiers for digital assets and associated metadata
US7818329B2 (en) 2007-06-07 2010-10-19 International Business Machines Corporation Method and apparatus for automatic multimedia narrative enrichment
EP2015184A2 (en) 2007-07-06 2009-01-14 Prostor Systems, Inc. Commonality factoring for removable media
US8028106B2 (en) * 2007-07-06 2011-09-27 Proster Systems, Inc. Hardware acceleration of commonality factoring with removable media
US8190590B2 (en) 2007-08-15 2012-05-29 Martin Edward Lawlor System and method for the creation and access of dynamic course content
JP5026213B2 (ja) 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
US7962452B2 (en) 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US8447938B2 (en) * 2008-01-04 2013-05-21 International Business Machines Corporation Backing up a deduplicated filesystem to disjoint media
JP2009181314A (ja) 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
US7962706B2 (en) 2008-02-14 2011-06-14 Quantum Corporation Methods and systems for improving read performance in data de-duplication storage
CN101241511A (zh) 2008-03-05 2008-08-13 北京邮电大学 一种基于时空数据的快速索引方法
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US20090238538A1 (en) 2008-03-20 2009-09-24 Fink Franklin E System and method for automated compilation and editing of personalized videos including archived historical content and personal content
JP2009251725A (ja) 2008-04-02 2009-10-29 Hitachi Ltd 記憶制御装置及び記憶制御装置を用いた重複データ検出方法。
US8751561B2 (en) 2008-04-08 2014-06-10 Roderick B. Wideman Methods and systems for improved throughput performance in a distributed data de-duplication environment
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US20090265651A1 (en) 2008-04-22 2009-10-22 Hodson Ronald D System and method for managing a travel itinerary
US9395929B2 (en) 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US8515909B2 (en) 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US8620877B2 (en) 2008-04-30 2013-12-31 International Business Machines Corporation Tunable data fingerprinting for optimizing data deduplication
US8645333B2 (en) 2008-05-29 2014-02-04 International Business Machines Corporation Method and apparatus to minimize metadata in de-duplication
US20090313055A1 (en) 2008-06-13 2009-12-17 Natalie Martin Computer-based system and method for facilitating travel planning for a prospective traveler
US20090319547A1 (en) 2008-06-19 2009-12-24 Microsoft Corporation Compression Using Hashes
US8468320B1 (en) * 2008-06-30 2013-06-18 Symantec Operating Corporation Scalability of data deduplication through the use of a locality table
US9043726B2 (en) 2008-07-03 2015-05-26 Ebay Inc. Position editing tool of collage multi-media
US8370309B1 (en) 2008-07-03 2013-02-05 Infineta Systems, Inc. Revision-tolerant data de-duplication
US8365092B2 (en) 2008-07-03 2013-01-29 Ebay Inc. On-demand loading of media in a multi-media presentation
US8271564B2 (en) 2008-07-14 2012-09-18 Symbol Technologies, Inc. Lookup table arrangement and related management method for accommodating concurrent processors
US8086799B2 (en) 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US10642794B2 (en) 2008-09-11 2020-05-05 Vmware, Inc. Computer storage deduplication
US20100088296A1 (en) 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
WO2010045262A1 (en) 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
CN101442731B (zh) 2008-12-12 2010-07-14 中国移动通信集团安徽有限公司 一种话单剔重方法和装置
US20100199065A1 (en) 2009-02-04 2010-08-05 Hitachi, Ltd. Methods and apparatus for performing efficient data deduplication by metadata grouping
US8860865B2 (en) 2009-03-02 2014-10-14 Burning Moon, Llc Assisted video creation utilizing a camera
US8380738B2 (en) 2009-03-17 2013-02-19 Nec Laboratories America, Inc. System and methods for database distribution and querying over key-based scalable storage
US8205065B2 (en) 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
US8060715B2 (en) * 2009-03-31 2011-11-15 Symantec Corporation Systems and methods for controlling initialization of a fingerprint cache for data deduplication
US8412848B2 (en) * 2009-05-29 2013-04-02 Exagrid Systems, Inc. Method and apparatus for content-aware and adaptive deduplication
US8255365B2 (en) 2009-06-08 2012-08-28 Symantec Corporation Source classification for performing deduplication in a backup operation
CN101582076A (zh) 2009-06-24 2009-11-18 浪潮电子信息产业股份有限公司 一种基于数据库的重复数据删除方法
US8396899B2 (en) 2009-11-23 2013-03-12 Dell Products L.P. Efficient segment detection for deduplication
CN101706825B (zh) 2009-12-10 2011-04-20 华中科技大学 一种基于文件内容类型的重复数据删除方法
US8370315B1 (en) * 2010-05-28 2013-02-05 Symantec Corporation System and method for high performance deduplication indexing
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8397028B2 (en) 2010-06-15 2013-03-12 Stephen SPACKMAN Index entry eviction
CN101916171A (zh) 2010-07-16 2010-12-15 中国科学院计算技术研究所 一种并发层次式的重复数据消除方法和系统
US8397080B2 (en) * 2010-07-29 2013-03-12 Industrial Technology Research Institute Scalable segment-based data de-duplication system and method for incremental backups
US9104326B2 (en) 2010-11-15 2015-08-11 Emc Corporation Scalable block data storage using content addressing
US8572053B2 (en) 2010-12-09 2013-10-29 Jeffrey Vincent TOFANO De-duplication indexing
US20120151348A1 (en) 2010-12-11 2012-06-14 Microsoft Corporation Using Cinematographic Techniques for Conveying and Interacting with Plan Sagas
US20120150784A1 (en) 2010-12-11 2012-06-14 Microsoft Corporation Immersive Planning of Events Including Vacations
US9208472B2 (en) 2010-12-11 2015-12-08 Microsoft Technology Licensing, Llc Addition of plan-generation models and expertise by crowd contributors
US20120151350A1 (en) 2010-12-11 2012-06-14 Microsoft Corporation Synthesis of a Linear Narrative from Search Content

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350869A (zh) * 2007-07-19 2009-01-21 中国电信股份有限公司 基于索引和散列的电信计费去重方法及设备

Also Published As

Publication number Publication date
US9110936B2 (en) 2015-08-18
WO2012092212A2 (en) 2012-07-05
EP2659376A2 (en) 2013-11-06
US20160012098A1 (en) 2016-01-14
EP2659376B1 (en) 2020-04-08
EP2659376A4 (en) 2017-07-26
US20120166401A1 (en) 2012-06-28
US9785666B2 (en) 2017-10-10
WO2012092212A3 (en) 2012-10-04
CN102591946A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102591946B (zh) 使用索引划分和协调来进行数据去重复
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
CN102880663B (zh) 部分去重复的文件的优化
US10248356B2 (en) Using scratch extents to facilitate copying operations in an append-only storage system
US8631052B1 (en) Efficient content meta-data collection and trace generation from deduplicated storage
US8959075B2 (en) Systems for storing data streams in a distributed environment
US9823981B2 (en) Backup and restore strategies for data deduplication
US8738572B2 (en) System and method for storing data streams in a distributed environment
US8667032B1 (en) Efficient content meta-data collection and trace generation from deduplicated storage
US11151030B1 (en) Method for prediction of the duration of garbage collection for backup storage systems
CN102591947A (zh) 用于数据去重复的快速且低ram占用的索引
KR20120015306A (ko) 백업 데이터의 지능적 계층들
US9183212B2 (en) Representing directory structure in content-addressable storage systems
CN105740303A (zh) 改进的对象存储的方法及装置
US11567902B2 (en) Systems and methods for document search and aggregation with reduced bandwidth and storage demand
US20180107404A1 (en) Garbage collection system and process
US9619322B2 (en) Erasure-coding extents in an append-only storage system
AU2013210018A1 (en) Location independent files
JP2012008854A (ja) ストレージ仮想化装置
US9678972B2 (en) Packing deduplicated data in a self-contained deduplicated repository
CN107798063A (zh) 快照处理方法和快照处理装置
US11429286B2 (en) Information processing apparatus and recording medium storing information processing program
CN105046162B (zh) 在内容可寻址存储系统中维护并使用子对父映射的缓存
WO2018102392A1 (en) Garbage collection system and process
US20160112293A1 (en) Using an rpc framework to facilitate out-of-band data transfers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1173245

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1173245

Country of ref document: HK