CN102591947B - 用于数据去重复的快速且低ram占用的索引 - Google Patents

用于数据去重复的快速且低ram占用的索引 Download PDF

Info

Publication number
CN102591947B
CN102591947B CN201110445284.1A CN201110445284A CN102591947B CN 102591947 B CN102591947 B CN 102591947B CN 201110445284 A CN201110445284 A CN 201110445284A CN 102591947 B CN102591947 B CN 102591947B
Authority
CN
China
Prior art keywords
hashed value
index
compact
hash
entry
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
CN201110445284.1A
Other languages
English (en)
Other versions
CN102591947A (zh
Inventor
S·森古普塔
B·德布纳斯
J·李
R·N·德塞
P·A·奥尔泰安
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 CN102591947A publication Critical patent/CN102591947A/zh
Application granted granted Critical
Publication of CN102591947B publication Critical patent/CN102591947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • 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
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了用于数据去重复的快速且低RAM占用的索引。本发明涉及数据去重复技术,其中散列索引服务的索引在诸如硬盘驱动器之类的辅助存储设备中维护散列索引,以及在RAM中维护用于在去重复操作期间减少访问辅助存储设备的I/O的紧凑索引表和前瞻高速缓存。还描述了用于在去重复会话期间维护数据的会话高速缓存,以及出于效率考虑对只读紧凑索引表进行的编码。

Description

用于数据去重复的快速且低RAM占用的索引
技术领域
本发明涉及数据去重复。
背景技术
数据去重复(有时也称为数据优化)是存储系统中最近的趋势,一般指的是减少需要被存储在盘上或需要通过网络上进行传送的数据的物理字节量,而不会损害原始数据的保真性和完整性,即字节上的减少是无损的并且原始数据可被完全恢复。通过减少存储和/或传送数据所需的资源,数据去重复因此导致(用于存储和网络传输的)硬件成本以及数据管理成本(例如,备份)的节约。随着数字存储的数据的数量增长,这些成本节约变得重要。
数据去重复通常使用用于消除持久存储的文件内部及其之间的冗余性的技术的组合。一种技术用于标识一个或多个文件中的数据的相同部分,并在物理上只存储一个唯一部分(块),而维护对与文件相关联的该块的指针。另一技术是例如通过为每一唯一的块存储经压缩的块来将数据去重复与压缩混合。
为了标识这些块,存储这些块的服务器维护系统中这些块的散列的散列索引服务。散列唯一地标识了块并用作键、值对中的键。值对应于块存储中块的位置。
因为当代的去重复系统可能需要扩展到数十万亿字节至千万亿字节的数据量,所以块散列索引太大以致不适合于主存储设备(即,RAM)。由此,需要使用辅助存储设备,诸如硬盘驱动器或固态驱动器。索引操作因此是吞吐量受限的,受在辅助存储设备上执行的相对缓慢的I/O操作的限制。所需要的是给定有限的主存储资源的情况下尽可能多地减少I/O访问次数。
发明内容
提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些代表性概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
简言之,此处所描述的主题的各方面涉及去重复技术,通过该去重复技术散列索引服务的索引被配置成在辅助存储设备中维护基于日志的索引,并维护基于主存储(例如,RAM)的紧凑索引表和/或基于RAM的前瞻高速缓存,访问该紧凑索引表和/或前瞻高速缓存以减少辅助存储设备I/O访问。
基于RAM的紧凑索引表包含紧凑签名和用于将请求中提供的散列值映射至散列索引(可能)在其中被维护的辅助存储设备中的索引位置的指针。如果散列在紧凑索引表中并没有被找到,则该散列对应于还没有被索引的新的块,并且响应于该请求返回未找到结果。否则,遵循指针以定位散列值、块元数据以供响应于请求而返回;注意,在大多数情况下,所请求的散列值是经由在索引中经由指针找到的散列值来被匹配的,但是该散列值可能并没有被找到,在该情况下影响于该请求返回未找到结果。
此外,可以使用基于RAM的前瞻高速缓存。只要在辅助存储设备中找到匹配的散列值,某一数量k的散列值,元数据条目就被加载到前瞻高速缓存中。获取来加载到高速缓存中的数字可对应于文件边界,例如,在散列索引中检测到的如被置于每个文件的块的结尾处。
在一方面,日志结构的散列索引的条目包括散列值以及与每一散列值相关联的元数据。散列索引通过对日志结构的散列索引追加新的条目来更新。在追加期间,诸如出于I/O优化的原因,条目可被安排在一个或多个条目页面上。散列索引可以使用来自会话高速缓存的数据来更新,该来自会话高速缓存的数据表示对应于在最后一个优化会话中所处理的文件的条目。会话高速缓存还可被访问来查找与请求的散列值相关联的块元数据。在每个周期性去重复会话的结尾,会话高速缓存的内容被事务性地转移至主散列索引。以此方式,散列索引在去重复会话持续时间中保持“崩溃一致”,即,如果在去重复会话期间发生服务崩溃或突然中断,则辅助存储保持完好并且在下一个去重复会话的开始时恢复。
在另一方面,紧凑索引表可对应于包括日志索引表的较小子集的子空间。如果子空间是满的,则它可以成为密封的(只读)并且紧凑索引表对应于只读模式。编码器可访问子空间以将紧凑索引编码为缩小的存储器大小的紧凑索引表。
在一个方面,通过使用避免散列冲突的基于cuckoo散列的算法,紧凑签名被插入至紧凑索引表中。如果基于cuckoo散列的算法无法为紧凑签名找到可用的空位,这可能是因为没有或者因为所允许的尝试数量受限,则紧凑签名可被写至溢出表中。
结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。
附图说明
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1是表示被配置成使用配置有紧凑索引表和前瞻高速缓存的散列索引服务来去重复的数据存储服务的示例组件的框图。
图2是表示如何为了效率或在紧凑索引表已满时使用溢出表的框图。
图3是表示由散列索引服务执行来处理对所请求的散列值的查找操作的示例操作的图示,包括散列值的紧凑签名在紧凑索引表中被找到时。
图4是表示由散列索引服务执行来处理对所请求的散列值的查找操作的示例操作的图示,包括散列值的紧凑签名在紧凑索引表中并没有被找到时。
图5是表示用于在给定散列值的情况下处理返回元数据或未找到响应的请求的示例步骤的流程图。
图6是表示其中可实现此处描述的各种实施例的示例性非限制联网环境的框图。
图7是表示其中可实现此处所描述各种实施例的一个或多个方面的示例性非限制计算系统或操作环境的框图。
具体实施方式
此处所描述的技术的各方面一般涉及散列索引服务,该散列索引服务将辅助存储设备(例如,硬盘驱动器或固态驱动器)中的整个散列索引(例如,用于存储去重复系统)用作日志结构的索引,同时在主存储设备(例如,RAM)中维护被称为“紧凑索引表”的相对较小的辅助索引。被称为前瞻高速缓存的高速缓存也可以被用在主存储中。一般而言,紧凑索引表和前瞻高速缓存用于在去重复操作期间尽可能减少访问辅助存储设备的I/O,以始终实现高度去重复,并具有相对非常低的主存储占用。同时,索引设计适应对各种类型的更快的辅助存储介质(如闪存)的使用。
在一个方面,数据去重复服务的全局散列索引(其可对应于整个散列索引,或如上述名为“UsingIndexPartitioningandReconciliationforDataDeduplication(使用索引划分及协调来进行数据去重复)”的美国专利申请中所述的多个子空间的一组散列索引)存储在辅助存储设备中。基于散列被存放和/或被引用的次序,索引被按照基于日志的次序来存储。前瞻高速缓存与散列索引相关联,并且在标识到散列命中时,将日志文件中附近的散列条目加载至前瞻高速缓存中。如将会理解的,这减少了执行后续散列查找操作所需的I/O量。
此外,紧凑存储器索引表被创建来帮助在辅助存储器设备中进行散列查找。如以下所述,紧凑索引表包括被删减的散列签名(例如,校验和),该被删减的散列签名可被访问来确定散列何时并不存在于日志结构的索引中,或者确定散列可能存在与日志结构的索引中,在此情况下紧凑条目进一步标识日志结构的索引中的位置,由此可找到此散列,如果它确实存在的话。通常,在被删减的索引签名中有足够的信息使得假肯定(即,散列可能存在但实际上并不存在)的百分比相对较低。
应当理解的是,此处的任何示例均是非限制的。实际上,此处所描述的技术适用于任何类型的易失性或非易失性存储,包括本地的和远程的。此外,索引机制可以和任何键、值类型存储一起使用,并不限于数据去重复应用。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,这里所描述的任何一个实施例、方面、概念、结构、功能或示例都是非限制性的,且本发明可以按一般而言在计算和数据索引和检索方面提供好处和优点的各种方式来使用。
图1示出内容知晓数据去重复数据存储系统的示例组件,诸如在数据/文件存储服务102中实现。服务102接收数据104(文件、团块等),去重复逻辑106处理该数据来去重复;注意,该数据和/或服务可驻留在基本上任何地方,例如,本地、远程和/或在“云中去重复”场景中。为了处理数据,去重复逻辑106将数据104提供给分块模块108,该模块将内容处理成各个块,诸如根据文件的结构(例如,将媒体文件划分成媒体首部和媒体主体)、或者通过使用以非常小的间隔(通常是每一个字节)计算的快速可计算弱散列函数(如,Rabin散列)。块边界一般在散列函数满足特定条件的位置处以内容相关方式来确定。接下来的描述针对一个块110,但是可以理解,数据一般被划分为多个块。注意,“内容相关”一般指的是添加至文件的编辑或偏移仅对所生成的块造成本地改变的概念,例如,因为Rabin指纹是从内容本身生成的(分块并非一定要知道文件的格式从而以格式知晓的方式来分块)。
去重复逻辑106将块110传递给求散列机制112,求散列机制112计算块的散列(被称为块散列114)。强散列函数,如密码安全的SHA-256散列函数等可被用作唯一地标识块110的块散列114。注意,使用这样的安全散列,消除了散列冲突的可能性,如,散列冲突小于给定当前可用的最可靠的硬件的硬件误差约30倍大小。
块散列114被提供给散列索引服务116,散列索引服务116如此处所述地经由一个或多个各种结构来查找块散列。如果在散列索引服务116中找到了块散列114(即,已经存在),块110的重复副本被认为已经被存放在块存储118中,无需再存储当前的块。相反,对这个块的任何引用可仅指向之前的、已经存在的块。
如果在散列索引服务116中没有找到块散列114,块110被存入块存储118中,且块散列114被存入散列索引服务116。可以容易地理解,随着时间给定充足的数据,通过引用块而不是维护同一数据块的很多独立实例可节省大量存储。块通常还被压缩,节省了甚至更多的存储。
此处所描述的技术涉及散列索引服务116的体系结构和算法,且更具体涉及维护主存储124中的前瞻高速缓存120和紧凑索引表122以及辅助存储128中的日志结构的索引126。注意,诸如在基于子空间的散列索引服务中,日志结构的索引126可以是单个全局索引,或者可以被划分为多个索引,其中子空间是总体系统的全局索引的较小部分,如上述名为“UsingIndexPartitioningandReconciliationforDataDeduplication(使用索引划分及协调来进行数据去重复)”的美国专利申请中所述。
一般而言,使用日志结构的索引允许多个索引条目被捆绑在一起(例如,如以下所述,在缓冲区或会话高速缓存中)来追加到日志索引,例如基于达到特定的大小周期性地或者以其他所需的方式相对于将每个条目分别插入日志索引中减少I/O操作的数量。这也便于使用诸如基于闪存的存储器设备之类的固态存储设备,例如,其中数据是以页为单位来写入的,并且在其中以日志结构的方式写入数据更加高效。
紧凑索引表122将每个散列映射至辅助存储设备128中的索引的位置,该散列值(可能)被维护在辅助存储设备128中。此外,使用前瞻高速缓存120,使得只要在辅助存储器128中确认了命中,k个散列索引(被命中的邻居)就被加载至前瞻高速缓存120中。邻居的数量可通过某个固定数量来确定,或者可对应于文件边界。用于邻居选择的文件边界在许多场景中都是有用的,因为文件块最初是按次序来索引的,由此任何类似的文件都将可能具有一些或全部的块和因此的邻近给定块的散列散列。注意,日志结构的索引可被配置成包括描绘对应于每个不同文件的块的散列的文件末尾标记,例如全零条目(尽管块散列可以是全零,但是块标识符(位置id)可被定义为非零,因而全零条目是无效的并可用作日志索引中的文件末尾标记)。
前瞻高速缓存120是基于局部性概念的,即,去重复的块在源文件和目标目的地中常常彼此相邻(例如,块存储以及对应的索引)。在这一情况发生时,一个散列值在辅助存储设备128中被命中,存在以下合理的可能性:接下来的一个或多个块散列或多个散列将邻近先前的块,由此那些邻居被加载至高速缓存中,在其中它们可以在快速的高速缓存查找中被命中,而非较慢的辅助索引查找。
注意,前瞻高速缓存120在其使用中不需要是完全反应式的,而是可以诸如基于统计数字或诸如为系统维护的计数之类的其他数据,使用来自日志结构的索引的散列值被主动地加载。例如,前瞻高速缓存120可以使用由去重复系统跟踪的最流行的散列(大体上和/或相对于诸如最后三十天之类的某个时间窗口计算的)来预填充。另选地,或者除最流行的块散列之外,在相同的块常常在时间上倾向于集中在一起的基础上,前瞻高速缓存120可使用最近使用的散列来预填充。由此,前瞻高速缓存120根据块局部性预抓取散列,并且还可存储最流行和/或最频繁使用的块的散列,以进一步减少盘访问的概率并在查找操作期间查找。
在新的散列通过以上所述的前瞻/邻居散列加载技术被添加时,可使用公知的高速缓存管理技术(例如,LRU或SLRU)来驱逐散列。注意,出于效率考虑,关于高速缓存120的散列加载和驱逐不需要被安排来每次处理单个散列,而改为可以以更大的单位来加载/驱逐,诸如每次一页散列条目。
至此概述,在一个实现中,散列索引服务116被用于支持数据去重复系统,其中数据项包括散列、元数据对,并且其中数据块的每一散列被用于确定该块是否是另一数据块的重复。元数据是在块存储中定位块的块标识符。散列、元数据对主要存储在辅助存储设备128中的日志结构的索引126中。
对于紧凑索引表122,散列的删减版本被维护在主存储设备中作为紧凑索引表。如以上概括描述地,紧凑索引表122存储紧凑键签名(被删减的散列)而非完整的块散列,从而在RAM使用和假读取中达成折中。
为了在最小化假闪存读取时接近最大化散列表索引容量(条目数量),一个实现在紧凑索引表122的每一条目中存储了紧凑的M比特/字节长度的键签名(以若干字节的量级,例如两个字节)。此签名可以从键和该键被存储的候选位置号导出。在键x存储在它的候选位置号i时,各散列表索引空位中的签名从散列值的较高阶的位hi(x)被导出。在搜索操作器件,在键y在它的候选空位号j中被查找时,相应的签名从hj(y)被计算出并与存储在该空位中的签名比较。仅当匹配发生时,指向日志结构的索引126的指针才跟着来检查整个键(整个散列)是否匹配。假读取的百分比相对较低,例如,候选空位的数量除以签名空间(对于2字节签名空间是65536)。
紧凑索引表122的主存储(例如,RAM)大小可在考虑应用要求的情况下来确定。每条目具有2字节紧凑键签名以及N比特/字节长度(例如,等于4字节)的日志索引指针,每条目总计6字节,对于散列表索引,每机器4GBRAM中的典型RAM使用适应最大约71500万个块散列条目。以每个数据块平均8KB大小,这适应约6TB去重复的数据。另选地,考虑为块散列和它的元数据分配64字节,这对应于约45GB的块元数据。出于去重复的目的,去重复系统被设计成每个条目使用RAM中相对较少数量的字节(例如,每个紧凑条目6字节),从而对于给定的RAM使用大小最大化RAM散列表索引容量。
紧凑索引表122可对应于只读模式,并且如果子空间是在使用中则可存在有只读紧凑索引表,例如在子空间是满的并且可能变成″密封的”时该子空间成为只读子空间。如以下所述,对于只读紧凑索引表,可使用编码机制(算法)来从子空间中已有的条目计算编码的紧凑索引表(例如,如以下所述的被删减的基于cuckoo散列的表),该编码的紧凑索引表以更高的散列表填充率使用更少的存储空间。然后可向紧凑索引表122咨询以在子空间中定位散列,对于一个实现中的紧凑索引表每个散列条目仅使用6个字节。
紧凑索引表122可对应于写模式,对于该写模式可添加新的散列条目。删减的cuckoo散列表还可以用于写模式。如下所述,为了减少在紧凑索引表中添加新的散列条目时冲突的复杂性,可使用相对较小的溢出散列表。
更具体地,紧凑索引表可通过cuckoo散列来解决散列冲突。如图2中所表示的,紧凑散列表索引122被结构化为空位阵列。在一个实现中,其中多个紧凑签名映射至同一散列表索引空位的散列冲突由表插入逻辑230使用cuckoo散列或cuckoo散列的变型来解决。为此,cuckoo散列为每一紧凑签名提供了位于n≥2个位置其中之一的灵活性;cuckoo散列变型保持上限为n的线性探测链序列,并如下所述可导致对溢出表的写入。注意,cuckoo散列在将查找时间保持绑定为常量时增加了散列表负载因子。
在用于一个实现的cuckoo散列变型中,使用n个随机散列函数h1,h2;....hn来获得给定紧凑签名x的n个候选位置。紧凑签名x的这些候选位置索引是从对应于模运算的h1(x),h2(x);....hn(x)的较低阶的比特值来获取的。
在插入期间,紧凑签名和它的元数据条目被插入在第一个可用的候选空位中。在给定的紧凑签名x的全部空位在插入期间都被占据时(例如,被紧凑签名y1,y2;....yn),可通过对这些被占据的空位中的紧凑签名yi进行重新定位来为紧凑签名x的条目腾出空间,因为每个紧凑签名yi可选择放置在(n-1)个其他位置中的一个。注意,在原始的cuckoo散列方案中,使用递归策略来对紧凑签名yi中的一个进行重新定位;然而在最坏情况下,此策略可能进行许多次重新定位,但是其概率可表现为非常小并且在n个中指数下降。
由此,表插入逻辑230的过程可尝试某个数量的条目重新定位,之后如果不成功的话,可根据多个选项来操作。其中一个选项是使去重复服务暂停去重复,并在恢复去重复之前将紧凑索引表重建为更新、更大的紧凑索引表。另一选项是线性链,其在某个数量的尝试之后插入/寻找线性后续的空位。又一选项是将紧凑签名和元数据条目写入至溢出表232,该选项可避免重建写模式紧凑索引表的开销以及在线性链中增加的访问I/O成本。在cuckoo散列的变型中,一旦某个较小数量的尝试已经失败就可向溢出表232写入,以避免继续进一步的cuckoo散列尝试所需的计算。如果溢出表232被使用,则表读取逻辑(或者编码器)234知道如果在紧凑索引表122中查找紧凑签名不成功,或者如果索引表变为密封的和/或如下所述编码的,就访问溢出表232。
转向另一方面,诸如在离线编码过程中,可对只读紧凑索引表进行编码以节省额外的存储器空间,以及减少假肯定。更具体地,在写模式中,紧凑索引表必须保留一些额外的存储器空间以帮助cuckoo散列有效地解决冲突(以避免太多计算/搜索开放的空位和/或溢出表的过度使用等,这些加剧了低效)。占用率一般是百分之八十至九十的量级。然而,一旦只读,则全部的键都是已知的,并且不需要这样的额外空间,因为没有新的键要插入,并且大部分额外空间是可被回收的(在编码后一些仍然可以保留);编码后的占用率一般是百分之九十五至九十八的量级。
为此,可处理密封的子空间,并且对于将放入对该子空间进行索引的紧凑索引表中的全部条目,可生成二分图以将每个键链接至它的候选位置。在移除冲突之后,可通过搜索匹配来计算编码,如美国专利申请序列号12/725840“用于存储信标参考数据的cuckoo散列”所述,并通过引用结合于此。注意,不首先移除冲突而匹配将增加假肯定,由此移除冲突一般是更优的,其增加了少量额外存储器空间但是导致了消除假肯定的编码的紧凑索引表。
图3和图4示出了以上所述各组件之间的一些数据流操作,操作由使用圆环数字标记的箭头来表示。在图3中,如箭头一(1)所表示的,散列索引服务116首先检查会话高速缓存330(是否有任何在使用中),以确定块是否已经被确定为此会话中的新的块。更具体地,出于效率考虑,去重复服务可对多个文件进行批处理(例如,在去重复会话中),然后将块提交至块存储,并且(散列、块元数据)索引一起更新。出于此目的,去重复服务使用会话高速缓存330(如果这样的批处理正发生在给定的实现中)。由此,存在散列已经被检测为新的并由此驻留在会话高速缓存330中的可能性,该散列可被有效地查找因为它驻留在主存储中供随后提交至辅助存储中的日志索引126。如果找到,则散列索引服务116返回该散列的元数据,查找操作结束。
在去重复会话的结尾处,会话高速缓存被周期性地“转储”至主索引中。这是通过迭代通过存储至会话高速缓存中的散列,并以事务的、全部或没有的方法将它们移至主索引来完成的保持散列索引和会话高速缓存分开的原因是在每一去重复会话的结尾处确保散列索引数据结构的事务更新。
如果在会话高速缓存330中没有找到或者并没有会话高速缓存在使用中,则散列索引服务访问前瞻高速缓存120来查找该散列,如箭头二(2)所表示以及如以上概括描述的。如果找到,则散列索引服务116返回该散列的元数据,查找操作结束。
如果在前瞻高速缓存120中没有找到,则散列索引服务在紧凑索引表中查找散列值的紧凑签名,如箭头三(3)所表示的。如果没找到,则这是新的散列,散列索引服务返回“未找到”状态至去重复服务,之后可经由插入操作来相应地处理块和索引条目,例如,从会话高速缓存插入或者直接插入至日志结构的索引(或者该日志结构的索引的缓冲区,诸如基于页面的缓冲区,缓冲区可被认为是索引的一部分,即使维护在主存储中)。在追加散列索引时紧凑索引表被更新。
在图3的示例中,考虑在紧凑索引表122中找到一个或多个紧凑签名,并返回(箭头(4a))指向日志结构的索引的对应指针。散列索引服务使用每个指针(箭头五(5))来查找完整散列值的日志结构的索引126。如果没找到,(全部紧凑签名实际上都是假肯定),则向去重复服务返回“未找到”信息。如果找到,这就是命中,并返回(箭头六(6))散列的块元数据以及找到的散列的邻近散列。邻近散列可被添加至前瞻高速缓存120(箭头七(7)),在适当时驱逐其他条目。
在图4的示例中,考虑在访问紧凑索引表之后,发现散列并不存在(箭头(4b))。在此情况下,散列是新的,向去重复服务返回“未找到”结果,并且将进行后续的插入。这可包括对会话高速缓存的写入(箭头八(8)),或者在箭头九(9)处对日志结构的索引(或者将要写入的缓冲区,其可被认为是索引的一部分)的写入。如果会话高速缓存并没有在使用中,则可更新紧凑索引表(箭头十(10))。
图5是以确定散列值是对应于新的还是已有的块的示例步骤的形式示出散列索引服务的一些逻辑的流程图。步骤502检查会话高速缓存来查找散列,如果该散列存在的话。如果找到(步骤504),则过程在步骤520返回随附的块元数据并结束。
如果在步骤502没有找到或者没有会话高速缓存存在,则步骤506表示对前瞻高速缓存进行访问。如果找到(步骤506),则过程在步骤520返回随附的块元数据并结束。
步骤510表示在紧凑签名表中寻找散列的紧凑签名。如果没有找到(步骤512),则知道此散列对应于新的块,并且在步骤522返回未找到响应。步骤522还表示处理新的块的其他方面,诸如响应于对散列索引服务的插入调用。
如上所述,如果在步骤512找到一个或多个紧凑签名,则在步骤514处使用与每个紧凑签名相关联的指针来在日志结构的索引中查找完整散列值(其可包括溢出表访问或线性链处理)。如果没有找到(步骤516),则紧凑签名条目就是假肯定。如果全部紧凑签名条目(或者一个条目,如果仅有一个的话)都是假肯定,则过程经由步骤522返回未找到以作为新的块来处理。
如果在步骤516中散列在索引中被匹配,则经由步骤520返回块元数据。而且,获取邻居散列(步骤518)并将其添加至前瞻高速缓存中。
可以看出,对日志结构的索引、前瞻高速缓存和紧凑索引表的使用提供了高效的存储器使用,同时在去重复系统中减少了对辅助存储设备的I/O访问。诸如会话高速缓存、子空间的只读紧凑索引表、对只读紧凑索引表进行编码之类的其他方面在去重复系统中提供了进一步的益处。
示例性联网以及分布式环境
本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。
分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。
图6提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象610、612等以及计算对象或设备620、622、624、626、628等,这些计算对象或设备可包括如由示例应用630、632、634、636、638表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象610、612等以及计算对象或设备620、622、624、626、628等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
每个计算对象610、612等以及计算对象或设备620、622、624、626、628等可经由通信网络640直接或间接地与一个或多个其他计算对象610、612等以及计算对象或设备620、622、624、626、628等通信。尽管在图6中被示为单个元件,但通信网络640可包括向图6的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象610、612等或计算对象或设备620、622、624、626、628等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实施例所提供的应用实现与其进行通信的应用630、632、634、636、638。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例性通信。
由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服务的一类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。
在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图6的图示中,作为非限制性示例,计算对象或设备620、622、624、626、628等可被认为是客户机而计算对象610、612等可被认为是服务器,其中计算对象610、612等担当提供数据服务的服务器,诸如从客户机计算对象或设备620、622、624、626、628等接收数据、存储数据、处理数据、向客户机计算对象或设备620、622、624、626、628等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。
服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。
在通信网络640或总线是因特网的网络环境中,例如,计算对象610、612等可以是其他计算对象或设备620、622、624、626、628等经由诸如超文本传输协议(HTTP)之类的多种已知协议中的任一种与其通信的Web服务器。计算对象610、612等作为服务器还可用作例如计算对象或设备620、622、624、626、628等的客户机,这可以是如分布式计算环境的特性。
示例性计算设备
如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图7中所述的通用远程计算机只是计算设备的一个示例。
各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
图7由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境700的一个示例,尽管如上所述,计算系统环境700仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。此外,也不应当将计算系统环境700解释为对在示例性计算系统环境700中所示的组件中的任何一个或其组合有任何依赖。
参考图7,用于实现一个或多个实施例的示例性远程设备包括计算机710形式的通用计算设备。计算机710的组件可包括,但不限于,处理单元720、系统存储器730、以及将包括系统存储器的各种系统组件耦合到处理单元720的系统总线722。
计算机710通常包括各种计算机可读介质,并且可以是可由计算机710访问的任何可用介质。系统存储器730可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器730还可包括操作系统、应用程序、其他程序模块、以及程序数据。
用户可通过输入设备740向计算机710输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口750之类的接口连接到系统总线722。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口750连接。
计算机710可使用到一个或多个其他远程计算机(诸如远程计算机770)的逻辑连接在联网或分布式环境中操作。远程计算机770可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体使用或传输设备,并且可包括以上关于计算机710所述的任何或全部元件。图7所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络772,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。
而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API(或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
鉴于本文所述的示例性系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。
结论
尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
除此处所述的各实施例以外,应当理解,可使用其他类似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。

Claims (11)

1.一种在计算环境中的方法,包括:
在辅助存储设备(128)中维护日志结构的散列索引(126),其中所述日志结构的散列索引的条目包括数据块的散列值以及与每个散列值相关联的元数据,所述散列索引通过对所述日志结构的散列索引追加新的条目来更新;
在主存储设备中维护紧凑索引表,所述紧凑索引表包括表示所述散列值的紧凑签名;
在所述主存储设备中维护前瞻高速缓存,所述前瞻高速缓存包括从所述日志结构的散列索引中高速缓存的散列值和元数据条目;以及
访问所述日志结构的散列索引以基于为块(110)计算的散列值(114)来执行查找,并且如果找到则返回与该散列值相关联的元数据并且获取该散列值的邻居散列条目并将其添加至所述前瞻高速缓存,或者如果没找到则返回未找到结果。
2.如权利要求1所述的方法,其特征在于,所述散列索引通过在对所述日志结构的散列索引进行追加时使用条目页来更新。
3.如权利要求1所述的方法,其特征在于,还包括访问所述主存储设备中的会话高速缓存以查找散列值,并且如果在所述会话高速缓存中找到则返回与该散列值相关联的元数据,以使得如果在会话高速缓存中找到则不需要访问所述日志结构的散列索引来查找所述元数据。
4.如权利要求1所述的方法,其特征在于,所述紧凑索引表还包括对于每一紧凑签名的指向散列值的对应位置的指针、辅助存储上的日志中的元数据条目,其中所述方法还包括访问所述紧凑索引表以查找对应于请求查找的散列值的紧凑签名,并且如果在所述紧凑索引表中没找到所述紧凑签名则返回未找到结果,并且如果在所述紧凑索引表中找到了所述紧凑签名则遵循所述指针在所述日志结构的散列索引中寻找可能包含所请求的散列值的条目。
5.如权利要求1所述的方法,其特征在于,还包括访问所述前瞻高速缓存来查找散列值并且如果在所述前瞻高速缓存中找到所述散列值,则返回与所述散列值相关联的所述元数据,以使得如果在所述前瞻高速缓存中找到的话则不需要访问所述日志结构的散列索引来查找所述元数据。
6.一种计算环境中的至少部分地在至少一个处理器上执行的方法,包括:
在辅助存储设备(128)中维护散列索引(126),其中所述散列索引的条目包括散列值,每一散列值从去重复的数据块计算出并且与元数据相关联,由此可定位所述去重复的数据块;
在主存储设备(124)中维护紧凑索引表(122),所述紧凑索引表包括表示所述散列索引中的散列值的紧凑签名,以及对于每一紧凑签名的指向所述散列索引中对应的散列值的位置的指针;
在所述主存储设备中维护前瞻高速缓存,所述前瞻高速缓存包括从所述散列索引中高速缓存的散列值和元数据条目;
将每一散列值映射至所述紧凑索引表(122)中多达两个或更多个条目,其中每一条目包含唯一的签名;以及
访问(510)所述紧凑索引表以查找对应于一请求中提供的所请求的散列值的紧凑签名,并且如果在所述紧凑索引表中没有找到所述紧凑签名,则响应于所述请求返回未找到结果,或者如果在所述紧凑索引表中找到所述紧凑签名,则遵循一个或多个指针来确定所述散列索引中的条目是否包含所请求的散列值,并且如果所述散列索引中的条目包含所请求的散列值,则获取该条目的邻居条目并将其添加到所述前瞻高速缓存。
7.如权利要求6所述的方法,其特征在于,还包括:通过使用避免散列冲突的基于cuckoo散列的算法,将紧凑签名插入至所述紧凑索引表。
8.如权利要求7所述的方法,其特征在于,还包括:在所述紧凑索引表的全部条目都被占据时,或者在已经尝试了足够数量的cuckoo重新定位时,或者两者都发生时,将至少一个紧凑签名写入至溢出表而非将所述紧凑签名插入至所述紧凑索引表中。
9.一种方法,包括:
在辅助存储设备(128)中维护散列索引(126),其中所述散列索引的条目包括散列值,每一散列值从去重复的数据块计算出并且与元数据相关联,由此可定位所述去重复的数据块;
在主存储设备(124)中维护前瞻高速缓存(120),所述前瞻高速缓存包括从所述散列索引高速缓存的散列值和元数据条目;
访问(506)所述前瞻高速缓存以查找一请求中提供的所请求的散列值,并且如果所请求的散列值在所述前瞻高速缓存中被找到,则响应于所述请求返回元数据;以及
如果在所述前瞻高速缓存中未找到所请求的散列值,则访问所述散列索引以查找所请求的散列值,并且如果所述散列索引包含所请求的散列值,则使用所请求的散列值的邻居条目来加载所述前瞻高速缓存。
10.一种系统,包括:
用于在辅助存储设备(128)中维护散列索引(126)的装置,其中所述散列索引的条目包括散列值,每一散列值从去重复的数据块计算出并且与元数据相关联,由此可定位所述去重复的数据块;
用于在主存储设备(124)中维护前瞻高速缓存(120)的装置,所述前瞻高速缓存包括从所述散列索引高速缓存的散列值和元数据条目;
用于访问(506)所述前瞻高速缓存以查找一请求中提供的所请求的散列值,并且如果所请求的散列值在所述前瞻高速缓存中被找到,则响应于所述请求返回元数据的装置;以及
用于如果在所述前瞻高速缓存中未找到所请求的散列值,则访问所述散列索引以查找所请求的散列值,并且如果所述散列索引包含所请求的散列值,则使用所请求的散列值的邻居条目来加载所述前瞻高速缓存的装置。
11.一种在计算环境中的系统,包括:
用于在辅助存储设备(128)中维护日志结构的散列索引(126)的装置,其中所述日志结构的散列索引的条目包括数据块的散列值以及与每个散列值相关联的元数据,所述散列索引通过对所述日志结构的散列索引追加新的条目来更新;
用于在主存储设备中维护紧凑索引表的装置,所述紧凑索引表包括表示所述散列值的紧凑签名;
用于在所述主存储设备中维护前瞻高速缓存的装置,所述前瞻高速缓存包括从所述日志结构的散列索引中高速缓存的散列值和元数据条目;以及
用于访问所述日志结构的散列索引以基于为块(110)计算的散列值(114)来执行查找,并且如果找到则返回与该散列值相关联的元数据并且获取该散列值的邻居散列条目并将其添加至所述前瞻高速缓存,或者如果没找到则返回未找到结果的装置。
CN201110445284.1A 2010-12-28 2011-12-27 用于数据去重复的快速且低ram占用的索引 Active CN102591947B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/979,669 2010-12-28
US12/979,669 US8935487B2 (en) 2010-05-05 2010-12-28 Fast and low-RAM-footprint indexing for data deduplication

Publications (2)

Publication Number Publication Date
CN102591947A CN102591947A (zh) 2012-07-18
CN102591947B true CN102591947B (zh) 2016-06-01

Family

ID=46383826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110445284.1A Active CN102591947B (zh) 2010-12-28 2011-12-27 用于数据去重复的快速且低ram占用的索引

Country Status (6)

Country Link
US (1) US8935487B2 (zh)
EP (1) EP2659378B1 (zh)
CN (1) CN102591947B (zh)
ES (1) ES2626026T3 (zh)
HK (1) HK1173520A1 (zh)
WO (1) WO2012092213A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324381A (zh) * 2018-03-30 2019-10-11 北京忆芯科技有限公司 云计算与雾计算系统中的kv存储设备

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9849372B2 (en) 2012-09-28 2017-12-26 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title
US9483484B1 (en) * 2011-05-05 2016-11-01 Veritas Technologies Llc Techniques for deduplicated data access statistics management
US8732401B2 (en) 2011-07-07 2014-05-20 Atlantis Computing, Inc. Method and apparatus for cache replacement using a catalog
US8914381B2 (en) * 2012-02-16 2014-12-16 Apple Inc. Correlation filter
US20130219116A1 (en) * 2012-02-16 2013-08-22 Wenguang Wang Data migration for composite non-volatile storage device
US9032183B2 (en) * 2012-02-24 2015-05-12 Simplivity Corp. Method and apparatus for content derived data placement in memory
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
US8762399B2 (en) * 2012-05-20 2014-06-24 International Business Machines Corporation Hash collision reduction system
US10135462B1 (en) 2012-06-13 2018-11-20 EMC IP Holding Company LLC Deduplication using sub-chunk fingerprints
US8972672B1 (en) 2012-06-13 2015-03-03 Emc Corporation Method for cleaning a delta storage system
US9116902B1 (en) 2012-06-13 2015-08-25 Emc Corporation Preferential selection of candidates for delta compression
US9026740B1 (en) * 2012-06-13 2015-05-05 Emc Corporation Prefetch data needed in the near future for delta compression
US9141301B1 (en) 2012-06-13 2015-09-22 Emc Corporation Method for cleaning a delta storage system
US9400610B1 (en) 2012-06-13 2016-07-26 Emc Corporation Method for cleaning a delta storage system
US8712978B1 (en) 2012-06-13 2014-04-29 Emc Corporation Preferential selection of candidates for delta compression
US8918390B1 (en) 2012-06-13 2014-12-23 Emc Corporation Preferential selection of candidates for delta compression
US8880476B2 (en) 2012-06-28 2014-11-04 International Business Machines Corporation Low-overhead enhancement of reliability of journaled file system using solid state storage and de-duplication
US9694276B2 (en) 2012-06-29 2017-07-04 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US9248374B2 (en) 2012-06-29 2016-02-02 Sony Computer Entertainment Inc. Replay and resumption of suspended game
US9717989B2 (en) 2012-06-29 2017-08-01 Sony Interactive Entertainment Inc. Adding triggers to cloud-based emulated games
US9656163B2 (en) 2012-06-29 2017-05-23 Sony Interactive Entertainment Inc. Haptic enhancements for emulated video game not originally designed with haptic capabilities
US9925468B2 (en) 2012-06-29 2018-03-27 Sony Interactive Entertainment Inc. Suspending state of cloud-based legacy applications
US9707476B2 (en) 2012-09-28 2017-07-18 Sony Interactive Entertainment Inc. Method for creating a mini-game
US11013993B2 (en) 2012-09-28 2021-05-25 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US20140092087A1 (en) 2012-09-28 2014-04-03 Takayuki Kazama Adaptive load balancing in software emulation of gpu hardware
US9779027B2 (en) * 2012-10-18 2017-10-03 Oracle International Corporation Apparatus, system and method for managing a level-two cache of a storage appliance
US9772949B2 (en) * 2012-10-18 2017-09-26 Oracle International Corporation Apparatus, system and method for providing a persistent level-two cache
US20140115246A1 (en) * 2012-10-19 2014-04-24 Oracle International Corporation Apparatus, system and method for managing empty blocks in a cache
CN102982122A (zh) * 2012-11-13 2013-03-20 浪潮电子信息产业股份有限公司 一种适用于海量存储系统的重复数据删除方法
US9277010B2 (en) 2012-12-21 2016-03-01 Atlantis Computing, Inc. Systems and apparatuses for aggregating nodes to form an aggregated virtual storage for a virtualized desktop environment
US9069472B2 (en) 2012-12-21 2015-06-30 Atlantis Computing, Inc. Method for dispersing and collating I/O's from virtual machines for parallelization of I/O access and redundancy of storing virtual machine data
US9699231B2 (en) * 2012-12-27 2017-07-04 Akamai Technologies, Inc. Stream-based data deduplication using directed cyclic graphs to facilitate on-the-wire compression
US9420058B2 (en) 2012-12-27 2016-08-16 Akamai Technologies, Inc. Stream-based data deduplication with peer node prediction
US9223840B2 (en) 2012-12-31 2015-12-29 Futurewei Technologies, Inc. Fast object fingerprints
US9612955B2 (en) * 2013-01-09 2017-04-04 Wisconsin Alumni Research Foundation High-performance indexing for data-intensive systems
US9372865B2 (en) * 2013-02-12 2016-06-21 Atlantis Computing, Inc. Deduplication metadata access in deduplication file system
US9471590B2 (en) 2013-02-12 2016-10-18 Atlantis Computing, Inc. Method and apparatus for replicating virtual machine images using deduplication metadata
US9250946B2 (en) 2013-02-12 2016-02-02 Atlantis Computing, Inc. Efficient provisioning of cloned virtual machine images using deduplication metadata
US9189409B2 (en) * 2013-02-19 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Reducing writes to solid state drive cache memories of storage controllers
CN104052492B (zh) * 2013-03-15 2019-05-14 索尼电脑娱乐公司 用于通过基于云的网络进行数据传输的状态信息的压缩
US9258012B2 (en) * 2013-03-15 2016-02-09 Sony Computer Entertainment Inc. Compression of state information for data transfer over cloud-based networks
US9471500B2 (en) * 2013-04-12 2016-10-18 Nec Corporation Bucketized multi-index low-memory data structures
EP2997496B1 (en) 2013-05-16 2022-01-19 Hewlett Packard Enterprise Development LP Selecting a store for deduplicated data
WO2014185918A1 (en) * 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
US9519591B2 (en) * 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
US20150019815A1 (en) * 2013-07-15 2015-01-15 International Business Machines Corporation Utilizing global digests caching in data deduplication of workloads
US10229132B2 (en) 2013-07-15 2019-03-12 International Business Machines Corporation Optimizing digest based data matching in similarity based deduplication
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
US9891857B2 (en) 2013-07-15 2018-02-13 International Business Machines Corporation Utilizing global digests caching in similarity based data deduplication
US10296597B2 (en) * 2013-07-15 2019-05-21 International Business Machines Corporation Read ahead of digests in similarity based data deduplicaton
US10296598B2 (en) * 2013-07-15 2019-05-21 International Business Machines Corporation Digest based data matching in similarity based deduplication
US9892048B2 (en) * 2013-07-15 2018-02-13 International Business Machines Corporation Tuning global digests caching in a data deduplication system
US9922042B2 (en) 2013-07-15 2018-03-20 International Business Machines Corporation Producing alternative segmentations of data into blocks 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
US10339109B2 (en) * 2013-07-15 2019-07-02 International Business Machines Corporation Optimizing hash table structure for digest matching in a data deduplication system
US9892127B2 (en) * 2013-07-15 2018-02-13 International Business Machines Corporation Global digests caching in a data deduplication system
US9594766B2 (en) 2013-07-15 2017-03-14 International Business Machines Corporation Reducing activation of similarity search in a data deduplication system
CN104951244B (zh) * 2014-03-31 2018-04-27 伊姆西公司 用于存取数据的方法和设备
US9361032B2 (en) 2014-05-14 2016-06-07 International Business Machines Corporation Management of server cache storage space
CN104156284A (zh) * 2014-08-27 2014-11-19 小米科技有限责任公司 文件备份方法和装置
KR20160042224A (ko) 2014-10-07 2016-04-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9678827B2 (en) * 2014-10-07 2017-06-13 SK Hynix Inc. Access counts for performing data inspection operations in data storage device
US11943142B2 (en) 2014-11-10 2024-03-26 Marvell Asia Pte, LTD Hybrid wildcard match table
US11218410B2 (en) 2014-11-10 2022-01-04 Marvell Asia Pte, Ltd. Hybrid wildcard match table
US10116564B2 (en) * 2014-11-10 2018-10-30 Cavium, Inc. Hybrid wildcard match table
CN104699815A (zh) * 2015-03-24 2015-06-10 北京嘀嘀无限科技发展有限公司 数据处理方法和系统
US9772824B2 (en) 2015-03-25 2017-09-26 International Business Machines Corporation Program structure-based blocking
US9916458B2 (en) * 2015-03-31 2018-03-13 EMC IP Holding Company LLC Secure cloud-based storage of data shared across file system objects and clients
US10191914B2 (en) 2015-03-31 2019-01-29 EMC IP Holding Company LLC De-duplicating distributed file system using cloud-based object store
US9824092B2 (en) * 2015-06-16 2017-11-21 Microsoft Technology Licensing, Llc File storage system including tiers
US10255287B2 (en) * 2015-07-31 2019-04-09 Hiveio Inc. Method and apparatus for on-disk deduplication metadata for a deduplication file system
US9665287B2 (en) 2015-09-18 2017-05-30 Alibaba Group Holding Limited Data deduplication using a solid state drive controller
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
US9678977B1 (en) 2015-11-25 2017-06-13 International Business Machines Corporation Similarity based deduplication of snapshots data
US9646043B1 (en) 2015-11-25 2017-05-09 International Business Machines Corporation Combining data matches from multiple sources in a deduplication storage system
US10031937B2 (en) 2015-11-25 2018-07-24 International Business Machines Corporation Similarity based data deduplication of initial snapshots of data sets
US9703642B2 (en) 2015-11-25 2017-07-11 International Business Machines Corporation Processing of tracked blocks in 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
US9703643B2 (en) 2015-11-25 2017-07-11 International Business Machines Corporation Calculation of representative values for similarity units in deduplication of snapshots data
US20170168944A1 (en) * 2015-12-15 2017-06-15 Facebook, Inc. Block cache eviction
US10185666B2 (en) 2015-12-15 2019-01-22 Facebook, Inc. Item-wise simulation in a block cache where data eviction places data into comparable score in comparable section in the block cache
CN105550345B (zh) * 2015-12-25 2019-03-26 百度在线网络技术(北京)有限公司 文件操作方法和装置
US10839308B2 (en) * 2015-12-28 2020-11-17 International Business Machines Corporation Categorizing log records at run-time
US10222987B2 (en) * 2016-02-11 2019-03-05 Dell Products L.P. Data deduplication with augmented cuckoo filters
US10180992B2 (en) * 2016-03-01 2019-01-15 Microsoft Technology Licensing, Llc Atomic updating of graph database index structures
US10437521B2 (en) * 2016-03-25 2019-10-08 Netapp, Inc. Consistent method of indexing file system information
US9940060B1 (en) * 2016-05-02 2018-04-10 Pure Storage, Inc. Memory use and eviction in a deduplication storage system
US10628305B2 (en) * 2016-05-13 2020-04-21 International Business Machines Corporation Determining a data layout in a log structured storage system
US10788988B1 (en) * 2016-05-24 2020-09-29 Violin Systems Llc Controlling block duplicates
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10055351B1 (en) * 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
SG11201811423SA (en) * 2016-09-22 2019-01-30 Visa Int Service Ass Techniques for in-memory data searching
US10754859B2 (en) 2016-10-28 2020-08-25 Microsoft Technology Licensing, Llc Encoding edges in graph databases
KR102306672B1 (ko) * 2016-11-23 2021-09-29 삼성전자주식회사 데이터 중복 제거를 수행하는 스토리지 시스템, 스토리지 시스템 및 데이터 처리 시스템의 동작방법
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
US10209892B2 (en) 2016-11-28 2019-02-19 Hewlett Packard Enterprise Development Lp Storage of format-aware filter format tracking states
CN109716658B (zh) 2016-12-15 2021-08-20 华为技术有限公司 一种基于相似性的重复数据删除方法和系统
CN109937412A (zh) * 2016-12-27 2019-06-25 日彩电子科技(深圳)有限公司 应用于数据去重的数据路由方法
US10831370B1 (en) * 2016-12-30 2020-11-10 EMC IP Holding Company LLC Deduplicated and compressed non-volatile memory cache
US10372620B2 (en) * 2016-12-30 2019-08-06 Intel Corporation Devices, systems, and methods having high data deduplication and low read latencies
US10795859B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC Micro-service based deduplication
US10795860B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC WAN optimized micro-service based deduplication
US11010300B2 (en) * 2017-05-04 2021-05-18 Hewlett Packard Enterprise Development Lp Optimized record lookups
WO2019000355A1 (en) * 2017-06-30 2019-01-03 Intel Corporation COMPRESSED KEY LOG STRUCTURE
US10628492B2 (en) 2017-07-20 2020-04-21 Microsoft Technology Licensing, Llc Distributed graph database writes
US11461269B2 (en) 2017-07-21 2022-10-04 EMC IP Holding Company Metadata separated container format
US10860212B1 (en) 2017-07-21 2020-12-08 EMC IP Holding Company LLC Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier
US10949088B1 (en) 2017-07-21 2021-03-16 EMC IP Holding Company LLC Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system
US10936543B1 (en) 2017-07-21 2021-03-02 EMC IP Holding Company LLC Metadata protected sparse block set for SSD cache space management
US11113153B2 (en) 2017-07-27 2021-09-07 EMC IP Holding Company LLC Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network
US20190034282A1 (en) * 2017-07-28 2019-01-31 EMC IP Holding Company LLC Offline repopulation of cache
US10929382B1 (en) 2017-07-31 2021-02-23 EMC IP Holding Company LLC Method and system to verify integrity of a portion of replicated data
US11093453B1 (en) 2017-08-31 2021-08-17 EMC IP Holding Company LLC System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
US10592149B1 (en) * 2017-10-06 2020-03-17 EMC IP Holding Company LLC Dynamic de-duplication methodologies for efficient resource utilization on de-duplication system
US11243703B2 (en) 2018-04-27 2022-02-08 Hewlett Packard Enterprise Development Lp Expandable index with pages to store object records
US10970254B2 (en) 2018-05-02 2021-04-06 International Business Machines Corporation Utilization of tail portions of a fixed size block in a deduplication environment by deduplication chunk virtualization
CN109189995B (zh) * 2018-07-16 2021-09-21 哈尔滨理工大学 基于mpi的云存储中数据消冗方法
CN111124939A (zh) * 2018-10-31 2020-05-08 深信服科技股份有限公司 一种基于全闪存阵列的数据压缩方法及系统
US11074225B2 (en) * 2018-12-21 2021-07-27 Vmware, Inc. Synchronization of index copies in an LSM tree file system
US11372823B2 (en) * 2019-02-06 2022-06-28 President And Fellows Of Harvard College File management with log-structured merge bush
US11093176B2 (en) * 2019-04-26 2021-08-17 EMC IP Holding Company LLC FaaS-based global object compression
US11567995B2 (en) 2019-07-26 2023-01-31 Microsoft Technology Licensing, Llc Branch threading in graph databases
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
US11429573B2 (en) * 2019-10-16 2022-08-30 Dell Products L.P. Data deduplication system
US11593327B2 (en) * 2020-03-13 2023-02-28 EMC IP Holding Company LLC Segmented index for data deduplication
CN111382162B (zh) * 2020-04-02 2023-09-05 安徽睿极智能科技有限公司 一种基于ai数据的结构化存储介质及其介质的读写方法
CN112256650B (zh) * 2020-10-20 2024-05-31 广州市百果园网络科技有限公司 存储空间管理方法、装置、设备及存储介质
CN113259166B (zh) * 2021-05-27 2021-10-01 长扬科技(北京)有限公司 一种日志告警处理方法和装置
WO2022262990A1 (en) * 2021-06-18 2022-12-22 Huawei Technologies Co., Ltd. Method and system for indexing data item in data storage system and data indexing module
US12066902B2 (en) * 2021-11-17 2024-08-20 Coinbase Il Rd Ltd. System and method for database recovery
US20230409532A1 (en) * 2022-06-21 2023-12-21 Western Digital Technologies, Inc. Deduplication for data transfers to portable storage devices
US12039180B2 (en) 2022-09-14 2024-07-16 Hewlett Packard Enterprise Development Lp Temporary sparse index for a deduplication storage system
US11797508B1 (en) * 2023-06-02 2023-10-24 Black Cape Inc. Systems and methods for geospatial correlation
US12117984B1 (en) * 2023-06-02 2024-10-15 Black Cape Inc. Systems and methods for event tracking
CN116991479B (zh) * 2023-09-28 2023-12-12 中国人民解放军国防科技大学 超长指令字缓存标签体的前瞻执行-旁路纠错方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005141A1 (en) * 2006-06-29 2008-01-03 Ling Zheng System and method for retrieving and using block fingerprints for data deduplication
US20100250858A1 (en) * 2009-03-31 2010-09-30 Symantec Corporation Systems and Methods for Controlling Initialization of a Fingerprint Cache for Data Deduplication

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US7269608B2 (en) 2001-05-30 2007-09-11 Sun Microsystems, Inc. Apparatus and methods for caching objects using main memory and persistent memory
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
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
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
US6928526B1 (en) 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
GB2424535A (en) 2003-04-30 2006-09-27 Hewlett Packard Co Editing an image and associating sound with it
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
EP1797510A2 (en) 2004-10-06 2007-06-20 Permabit, Inc. A storage system for randomly named blocks of data
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
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
US20080007567A1 (en) 2005-12-18 2008-01-10 Paul Clatworthy System and Method for Generating Advertising in 2D or 3D Frames and Scenes
US7457934B2 (en) 2006-03-22 2008-11-25 Hitachi, Ltd. Method and apparatus for reducing the amount of data in a storage system
JP4939851B2 (ja) * 2006-06-21 2012-05-30 パナソニック株式会社 情報処理端末、セキュアデバイスおよび状態処理方法
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
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
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
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
US8046509B2 (en) 2007-07-06 2011-10-25 Prostor Systems, Inc. Commonality factoring for removable media
CN101350869B (zh) 2007-07-19 2011-08-24 中国电信股份有限公司 基于索引和散列的电信计费去重方法及设备
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
US7962706B2 (en) 2008-02-14 2011-06-14 Quantum Corporation Methods and systems for improving read performance in data de-duplication storage
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 記憶制御装置及び記憶制御装置を用いた重複データ検出方法。
US7567188B1 (en) 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
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
US20090319547A1 (en) 2008-06-19 2009-12-24 Microsoft Corporation Compression Using Hashes
US9043726B2 (en) 2008-07-03 2015-05-26 Ebay Inc. Position editing tool of collage multi-media
US9639505B2 (en) 2008-07-03 2017-05-02 Ebay, Inc. System and methods for multimedia “hot spot” enablement
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
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
US8255365B2 (en) * 2009-06-08 2012-08-28 Symantec Corporation Source classification for performing deduplication in a backup operation
CN101706825B (zh) 2009-12-10 2011-04-20 华中科技大学 一种基于文件内容类型的重复数据删除方法
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
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005141A1 (en) * 2006-06-29 2008-01-03 Ling Zheng System and method for retrieving and using block fingerprints for data deduplication
US20100250858A1 (en) * 2009-03-31 2010-09-30 Symantec Corporation Systems and Methods for Controlling Initialization of a Fingerprint Cache for Data Deduplication

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324381A (zh) * 2018-03-30 2019-10-11 北京忆芯科技有限公司 云计算与雾计算系统中的kv存储设备
CN110324381B (zh) * 2018-03-30 2021-08-03 北京忆芯科技有限公司 云计算与雾计算系统中的kv存储设备

Also Published As

Publication number Publication date
US8935487B2 (en) 2015-01-13
EP2659378B1 (en) 2017-03-08
HK1173520A1 (zh) 2013-05-16
EP2659378A4 (en) 2015-01-21
EP2659378A2 (en) 2013-11-06
US20110276781A1 (en) 2011-11-10
CN102591947A (zh) 2012-07-18
ES2626026T3 (es) 2017-07-21
WO2012092213A2 (en) 2012-07-05
WO2012092213A3 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
CN102591947B (zh) 用于数据去重复的快速且低ram占用的索引
US9053032B2 (en) Fast and low-RAM-footprint indexing for data deduplication
US11093466B2 (en) Incremental out-of-place updates for index structures
CN102436420B (zh) 使用辅助存储器的低ram空间、高吞吐量的持久键值存储
JP6198210B2 (ja) コンピュータ実装された動的シャーディング方法
CN102880663B (zh) 部分去重复的文件的优化
US20170123676A1 (en) Reference Block Aggregating into a Reference Set for Deduplication in Memory Management
US8412677B2 (en) Systems and methods for byte-level or quasi byte-level single instancing
US8214388B2 (en) System and method for adding a storage server in a distributed column chunk data store
US20070061542A1 (en) System for a distributed column chunk data store
US7457935B2 (en) Method for a distributed column chunk data store
US11151030B1 (en) Method for prediction of the duration of garbage collection for backup storage systems
CN103098035A (zh) 存储系统
US20200334292A1 (en) Key value append
WO2008157081A2 (en) Distributed data storage using erasure resilient coding
CN102591946A (zh) 使用索引划分和协调来进行数据去重复
CN105117355A (zh) 存储器、存储器系统及其数据处理方法
US20170123678A1 (en) Garbage Collection for Reference Sets in Flash Storage Systems
US20170123689A1 (en) Pipelined Reference Set Construction and Use in Memory Management
US11210281B2 (en) Technique for log records management in database management system
US20170123677A1 (en) Integration of Reference Sets with Segment Flash Management
KR20210113297A (ko) 컴퓨터 메모리 내의 복제 및 밸류 중복성을 제거하기 위한 시스템, 방법, 및 장치
US12124420B2 (en) Systems, methods and devices for eliminating duplicates and value redundancy in computer memories
CN118519964A (zh) 数据处理方法、装置、计算机程序产品、设备及存储介质
CN114691681A (zh) 数据处理方法、装置、电子设备及可读存储介质

Legal Events

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

Ref country code: HK

Ref legal event code: DE

Ref document number: 1173520

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: 20150727

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

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1173520

Country of ref document: HK