CN102880663B - 部分去重复的文件的优化 - Google Patents

部分去重复的文件的优化 Download PDF

Info

Publication number
CN102880663B
CN102880663B CN201210320201.0A CN201210320201A CN102880663B CN 102880663 B CN102880663 B CN 102880663B CN 201210320201 A CN201210320201 A CN 201210320201A CN 102880663 B CN102880663 B CN 102880663B
Authority
CN
China
Prior art keywords
deduplication
file
block
metadata
subregion
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
CN201210320201.0A
Other languages
English (en)
Other versions
CN102880663A (zh
Inventor
R·卡拉赫
K·哈桑
P·A·奥尔泰安
J·R·本顿
C·H·张
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 CN102880663A publication Critical patent/CN102880663A/zh
Application granted granted Critical
Publication of CN102880663B publication Critical patent/CN102880663B/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/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

Landscapes

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

Abstract

本发明涉及部分去重复的文件的优化。本公开针对将具有至少一个未去重复的部分的文件变换成完全去重复的文件。针对所述至少一个未去重复部分中的每个,去重复机制在与所述至少一个未去重复部分相关联的文件偏移量之间定义至少一个块。与所述至少一个块相关联的块边界被存储在去重复元数据内。去重复机制使所述至少一个块与所述文件的至少一个去重复部分的块边界对齐。然后,所述至少一个块被提交给块存储。

Description

部分去重复的文件的优化
技术领域
本发明涉及部分去重复的文件的优化。
背景技术
数据去重复(有时也称为数据优化)指的是检测、唯一地标识以及消除存储***中的冗余数据从而减少需要被存储在盘上或需要通过网络进行传送的数据的物理字节量,而不会损害原始数据的保真性和完整性。通过减少存储和/或传送数据所需的资源,数据去重复因此导致硬件和功率成本(用于存储)以及数据管理成本(例如,降低备份成本)的节约。随着数字存储的数据的数量增长,这些成本节约变得重要。
数据去重复通常使用用于消除持久存储的文件内部及其之间的冗余性的技术的组合。一种这样的技术用于标识一个或多个文件中的相同数据区域,并在物理上只存储一个唯一区域(块),同时为此数据的所有重复出现与文件相关联地维护对该块的引用。另一技术是例如通过存储经压缩的块来将数据去重复与压缩混合。
关于数据去重复可能存在许多困难、折衷和选择,包括在一些环境中,在给定可用时间和资源的条件下在单个操作中存在过多的数据要去重复。具体的挑战存在于被部分地去重复的文件,比如响应于新数据或对现有数据的修改而被部分召回到盘的之前被去重复的文件。对被部分去重复的文件整体进行去重复需要:大量的输入/输出资源以用于读取整个文件并对其进行分块(chunking)并且然后将所述块写入到块存储中;以及CPU资源以用于执行分块和压缩。
发明内容
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表性概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
简言之,在此所描述的主题的各方面所针对的是,通过把具有一个或多个未去重复的部分的文件变换成完全去重复的文件来优化部分去重复的文件。在一个方面,去重复机制通过如下方式对未去重复的部分执行去重复进程:标识出涵盖该未去重复的部分的一个或多个块;以及定义与所述一个或多个块相关联的文件偏移量之间的一个或多个新块。与所述一个或多个新块相关联的块边界与该文件的未召回的去重复的部分的块不重叠。通过维护与未召回的去重复的部分的对齐,所述一个或多个新块可以被提交给块存储而不必修改任何其他块。在另一方面,与该文件相关联的去重复元数据被修改为包括所述块边界以及与所述一个或多个新块相关联的其他信息,并且与所述一个或多个块相关联的任何元数据都可以被替换。
在另一方面,该文件可以被分区成子文件分区以简化去重复进程。去重复机制在每个去重复进程期间一次对单个子文件分区进行分块和提交。然后,去重复机制在对下一子文件分区进行去重复以前从该文件中截去(truncate)该子文件分区。如果去重复进程在完成子文件分区的去重复以前被暂停,则去重复进程可以在已被提交的最后一个块之后的位置处恢复。
附图说明
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1是示出根据一个示例性实施方式的用于优化被部分去重复的文件的示例***的框图图示。
图2是表示根据一个示例性实施方式的去重复机制的示例性组件/阶段的框图。
图3A-图4B示出了根据一个示例性实施方式被变换成完全去重复文件的各种示例性部分召回的文件。
图3C示出了根据一个示例性实施方式被变换成完全去重复文件的示例性部分去重复文件。
图4A-图4B示出了根据一个示例性实施方式的去重复元数据。
图5是示出了根据一个示例性实施方式用于将具有至少一个未去重复部分的文件变换成完全去重复的文件的步骤的流程图。
图6是示出了根据一个示例性实施方式用于对被分区成子文件分区的文件进行去重复的步骤的流程图。
图7是表示其中可实现此处描述的各种实施例的示例性非限制联网环境的框图。
图8是表示其中可实现此处所描述的各种实施例的一个或多个方面的示例性非限制计算***或操作环境的框图。
具体实施方式
在此所描述的技术的各方面总体上所针对的是,通过把具有一个或多个未去重复的部分的文件变换成完全去重复的文件来优化部分去重复的文件。在一个示例性实施方式中,部分去重复的文件可以包括部分召回的文件,该部分召回的文件通过如下方式被优化:对所召回的文件范围而不是整个文件进行去重复;以及把与之前被去重复的部分相关联的去重复元数据同新的被去重复的文件范围相组合。由于之前被去重复的部分未再次被去重复,因此节省了显著的I/O和CPU资源量。类似地,被部分去重复的文件内的一部分可以被去重复,使得该部分内的新块与周围的之前被去重复的部分的块对齐。
在另一示例性实施方式中,去重复机制以如下方式分阶段地优化大文件:将该文件分区成子文件分区;将每个子文件分区内的块提交给块存储;以及从包含该文件的文件流中截去该子文件分区。这样的实施方式在优化整个文件以前释放了存储空间,并且降低了在该文件被完全去重复之前存在崩溃或异常中止的情况下发生存储器泄漏的可能性。
在另一示例性实施方式中,去重复机制支持暂停指令,该暂停指令挂起去重复进程直到随后的恢复指令。去重复机制在第一未去重复的部分处重启去重复进程,其中该第一未去重复的部分是未被分块和提交给块存储的最后一个部分。这允许主***在另一工作量需要***资源的情况下暂停去重复进程,而不必对已经去重复的数据重复去重复进程。
在又一示例性实施方式中,通过对块和相应文件范围进行多级分区来实现对大文件的快速输入/输出。由于包括大文件范围集合的去重复元数据变得难以搜索,因此将文件分区成多个连续的较小子文件分区(所述子文件分区再次被分区)允许去重复机制高效地将虚拟文件偏移量(相对于文件的开头)转换成这些子文件分区内的特定块偏移量。文件偏移量转换可以在对文件的输入/输出(I/O)活动(即读取/写入)期间执行。可以在对I/O活动的影响有限的情况下实现该转换的充分性能。
图1是示出根据一个示例性实施方式的用于优化被部分去重复的文件的示例***的框图图示。该示例性***可以支持用于将诸如文件102之类的被部分去重复的文件变换成完全去重复文件的各种去重复或优化机制。在一个示例性实施方式中,文件102包括未去重复的数据104和去重复的部分(即块)的组合。未去重复的数据104包括部分召回的数据和/或仍须去重复的数据。例如,应用114可以修改部分召回的数据和/或向文件102添加新数据。
一般而言,当文件被完全去重复时,该文件与元数据106相关联,该元数据106包括将该文件在块存储110中的块(例如,C3、C6和C7)映射回该文件的逻辑表示的去重复(去重)元数据108。如果文件102在去重复进程期间被分区成子文件分区,则文件102还包括分区表118,所述分区为每个子文件区分维护文件偏移量、并且为子文件分区内的任何分区维护文件偏移量。如在此所述,分区表118可以包括与子文件分区相对应的文件范围的分层结构。
块存储元数据112包括散列索引以保证块存储110不存储重复的块。一般而言,当应用114修改现有数据或者向文件写入新数据时,(例如在文件***过滤器中实现的)去重复机制116访问块存储110中的一个或多个所引用的块,酌情在任何解压缩以后作为所召回的文件数据返回所述一个或多个所引用的块,并且将所召回的文件数据存储在未去重复的数据104中。
存在致使文件102从处于完全去重复状态变为未去重复/部分去重复状态的各种操作。这包括:用户或进程向文件写入,使得位于写入文件偏移量位置处的经修改的文件数据不再与先前包含该数据的块相匹配。完全召回整个文件以支持这样的文件修改常常是低效的(例如对于非常大的文件的小修改而言)。
仅仅召回相关块使文件102处于部分去重复状态,在该状态下,文件102包括某些所召回的文件数据、以及对还未被召回的块的引用。例如,在图1中考虑:应用114仅仅召回块C7并且将其写入到其相应数据。文件102把所召回的块数据包含在被写入操作修改的未去重复的数据104中。去重复元数据108被更新以反映该部分召回状态,以便得知文件102包含了所召回的数据以及不再映射到现在过期的块C7。
在一个示例性实施方式中,去重复元数据108跟踪:文件102的哪个或哪些部分已经被召回、以及哪些部分作为去重复的块保留在块存储110中。文件因此可存在于非去重复状态、部分去重复(部分召回)状态或完全去重复(即,优化)状态中。文件可以在各种场景中处于部分去重复状态。例如,用户可能已经在适当位置处修改了某些文件范围。去重复机制116还可以召回更多数据以使用户写入与块边界、稀疏文件边界(在一个实施方式中是各自为六十四(64)KB的固定块)、或任何其他边界对齐。作为另一示例,去重复机制116优化子文件分区,截去相关联的文件范围并且要么由于暂停指令、要么因为***崩溃而必须在去重复进程期间停止。在又一示例中,去重复机制116对文件的之前版本进行去重复,然后用户用新数据来扩展该文件。
在一个实施方式中,去重复机制116执行各种跟踪操作,包括在去重复元数据108中维护关于文件的哪些部分已经被召回以及哪些部分被保留在块存储110中的跟踪数据。在一个示例性实施方式中,根据NTFS配置,跟踪数据被维护在NTFS重解析点中,NTFS重解析点还用于向去重复机制116通知文件被部分去重复。在其它使用场景中,解析点是公知的且不在此处详细描述。注意到,重解析点仅是一个备选;可为跟踪目的替换地使用其它元数据/流。
在一个示例性实施方式中,去重复机制116根据去重复策略120执行去重复进程。这样的策略包括用于确定对文件102何时启动、停止和/或恢复去重复进程的各种标准。例如,去重复机制116可以在对文件102的修改之后流逝了某段时间时或者在主机变为空闲时启动去重复进程。作为另一示例,去重复机制116可以在新块超过某个大小时或者在主机变为非空闲或者需要关闭时停止去重复进程并提交新块。作为又一示例,去重复机制116可以在完成对未去重复的数据104的分块以后或者在完成对子文件分区之一的分块以后将新块提交给块存储112。
图2是表示根据一个示例性实施方式的去重复机制116的示例性组件的框图。在该示例性实施方式中,示例性组件在对文件202执行去重复进程期间作为顺序阶段操作。
如在此所述,去重复进程将部分去重复的文件或未去重复的文件变换成完全去重复的文件。这包括标识阶段204,该阶段扫描文件202并且确定哪些文件被部分去重复。在一个示例性实施方式中,去重复机制116检查各个去重复元数据并且检测处于部分召回状态的文件。去重复元数据可以包括重解析指向一个或多个流图的数据。如果块存储中的块的组合大小小于文件大小或者文件范围位图指示一个或多个未去重复部分,则该文件处于部分去重复状态。然后,去重复机制116检索定义文件范围的流图以获得被去重复的部分以及未去重复的部分。每个部分都可以对应于起始文件偏移量和大小,根据所述起始偏移量和大小,去重复机制116计算出结束文件偏移量。文件范围不重叠,并且从开始到结尾覆盖整个文件。
在一个示例性实施方式中,去重复机制116标识出涵盖未去重复的部分的文件范围的块。例如,应用可能已经召回了这些块并且修改了一个或多个各个部分以将该文件置于部分召回状态。对齐阶段206修改与这些块相关联的块边界以防止这些新块和与被去重复的部分相关联的块边界重叠。如在此所解释的那样,对齐阶段206还引导分块组件在特定文件偏移量处开始分块阶段208并且在另一文件偏移量处终止分块阶段208。
在分块阶段208期间,可以根据试探法来选择诸如ChA1-ChAm之类的分块算法,所述试探法可以涉及诸如文件扩展名、头信息等等之类的属性。例如,可为一个文件选择通用分块算法,而另一文件可具有专用于其文件扩展名的分块算法(诸如用于ZIP部分的分块算法)。还可以基于来自标识阶段204的提示或者基于内部反馈220或外部反馈222来选择分块算法。
分块阶段208(其在给定实施方式需要时可以包括或遵循文件解压缩)根据所选择的算法将文件内容分解成块,其中所述算法可以增加每个文件的内容在另一文件中重复的概率,然后这些块可以在之后被压缩。可通过如下方式来执行分块:根据文件的结构、内容驱动的算法(例如将媒体文件划分成媒体头和媒体正文,该媒体正文进而可被分层地拆分成一系列部分);或者使用基于在滑动窗上重复计算的快速散列化技术(这样的快速散列函数包括CRC和Rabin函数族)来对文件内容分块的算法,其中块是在散列函数和当前块大小/内容满足特定标准时被选择的。
分块阶段208的结果包括(每文件的)块列表232,所述块是使用一组“块记录”来传递的,这些块记录中的每个都包含描述块中的数据类型的相关联元数据。这样的元数据的一个示例是作为分块算法的执行的一部分来计算的任何滚动散列。另一示例是块内的实际数据的压缩级别的指示符(例如ZIP分块模块将指示压缩选择器模块不压缩可能已被压缩的块)。注意:对于所托管的进程执行,块被***到恰当的“输出队列”以用于处理,并在然后被批量地发送给去重复进程。
可批量处理的块被下一阶段、即去重复检测阶段210消费,该去重复检测阶段210通过散列唯一地标识每个块,然后将该散列用于去重复检测。在分块之后,去重复检测阶段210确定块存储中是否已存在所述块。计算出针对块计算的强散列以在散列索引服务中调用查找操作。散列索引服务对已为去重复***所知或已被存储在块存储218内的唯一块中的一些或全部的散列进行索引化。
块存储模块218维护实际块的持久数据库。分块阶段208支持:将新块***到块存储218(如果还不存在这样的块)中;将引用数据添加到块存储中的现有块(在检测到先前持久存储的块以后);以及提交一组块***和/或块引用添加。块存储218还可实现各种后台/维护作业,包括垃圾收集、数据/元数据检查等等。
元数据创建阶段212生成去重复元数据和块存储元数据,以考虑到已经被分块阶段208定义的新块。在维护每文件的块存储元数据(比如流图)的示例性实施例中,去重复机制116通过将原始块存储元数据和新块元数据相组合来重构这样的元数据。另外,元数据创建阶段212更新去重复元数据以映射到与新块相关联的块存储元数据。
在一个示例性实施方式中,去重复机制116保留来自旧的流图的未改变的块定义,并且将这些定义添加到新的流图。对于与对齐的未去重复部分相对应的新块,去重复机制116将相应定义添加到新流图并且随后跳过旧的流图的任何过时的定义。基本上,新的流图是通过缝合旧的流图和新块元数据而创建的。去重复机制116将新的流图添加到块存储元数据并且删除旧的流图。或者,去重复机制116用新块元数据更新旧的流图而不是创建新的流图并删除旧的流图。
在另一示例性实施方式中,去重复元数据可以包括分区表,该分区表包括与块和子文件分区相关联的文件范围的分层结构。该分层结构可以直接映射到一组子文件分区。一个示例包括指向一组二级流图的顶级流图。另一示例包括流图的多级组织。另一示例包括使用预定义的、固定大小的子文件分区,这通过将文件偏移量除以固定的子文件分区大小来实现文件偏移量到特定子文件分区的转换,而无需咨询顶级流图。
在另一示例性实施方式中,去重复机制116将引用计数、而不是流图用作元数据的一部分。去重复机制116针对不再被给定文件引用的任何块递减引用计数,并且针对与对齐的未去重复部分相对应的任何新近引用的块递增引用计数。
如在此所述,当在同一去重复进程中从一个阶段转移到另一阶段时,去重复机制116可以将新块定义添加到原始流图,而不是创建新的流图。在一个示例性实施方式中,去重复机制116将新块定义追加到该文件的原始流图。在另一示例性实施方式中,去重复机制116将原始流图分割成一系列部分流图,其中每个部分流图都对应于在提交阶段216期间被处理的子文件分区。
如果去重复进程在优化子文件分区时处理暂停指令,则去重复机制116创建新的流图,所述新的流图包括新块元数据以及与去重复的部分相关联的定义。当分块阶段208恢复对未去重复部分的分块时,新的流图取代原始流图。在提交阶段216期间,重解析数据现在引用新的流图,这允许原始流图被回收。
如果文件处于部分召回状态并且去重复进程被暂停,则在恢复指令以后创建的新的流图不取代原始流图。在一个示例性实施方式中,部分召回的文件引用两个流图。在另一示例性实施方式中,部分召回的文件继续仅仅引用旧的流图。去重复机制116在提交阶段216期间避免文件截去。当最后一个子文件分区被去重复时,新的流图取代原始流图。
在将新块添加到块存储218以前,可以参照压缩阶段214处理这些新块。压缩算法选择器处理文件和块元数据,并且可以尝试确定对于此类型数据,哪个压缩算法CA1-CAn(若有的话)工作得最好。在执行任何压缩以后,运行时可以验证是否进行了任何显著的节省。例如,如果经压缩的块大于其未经压缩的形式,则新块以未经压缩的形式存储(或者可以利用不同算法再次尝试压缩)。压缩算法可基于策略、文件类型等等来选择。
提交阶段216用指向块存储218内的已去重复数据的引用来替代每个文件。为此目的,去重复机制116接收其块已被***到块存储中的文件的列表。在一个实现中,每个块列表都被封装到块ID流(由唯一的流ID来标识)中,其被持久保存到与文件相关联的重解析点。在提交阶段216期间,去重复机制116用诸如重解析点之类的跟踪数据来替代该文件,所述跟踪数据包含该ID和块流ID的***,也就是说,包含流图的块,包括用于组装当前文件以及它们的逻辑偏移量的块的列表。
图3A-图3C示出了包括至少一个未去重复的部分的各个示例文件,所述未去重复的部分根据一些示例性实施方式被变换成完全去重复的文件。
图3A示出了具有如下块的部分召回的文件:所述块在文件偏移量302处开始、在文件偏移量304处结束,并且包括在文件偏移量308处开始的未去重复的部分306。每个块都为六十四(64)KB的相同大小,但是其他块大小处于本公开的范围内。在一个示例性实施方式中,去重复机制116在文件偏移量302处开始分块阶段。在另一示例性实施方式中,去重复机制116在文件偏移量308处开始分块阶段,该分块阶段定义了小于六十四(64)KB的新块310。去重复机制116将新块的块边界修改为与同之前去重复的部分相关联的块边界对齐。
图3B示出了具有如下块的部分召回的文件:所述块在文件偏移量312处开始、在文件偏移量312处结束,并且包括在文件偏移量318处结束的未去重复的部分316。在一个示例性实施方式中,去重复机制116在文件偏移量318处终止分块阶段,该分块阶段定义了小于六十四(64)KB的新块316。在另一示例性实施方式中,去重复机制116在文件偏移量314处终止分块阶段,使得新块与同随后的去重复的部分相关联的块边界对齐。根据另一实施方式,去重复机制116可以继续超出文件偏移量314的分块阶段,直到与具有随后的去重复的部分的块对齐。
在另一示例性实施方式中,去重复机制116继续超出文件偏移量314的分块阶段,但是使用阈值来确定何时终止分块阶段。如果在该阈值内未实现与具有随后的去重复部分的块对齐,则去重复机制116定义类似于块320的新块,所述新块小于六十四(64)KB并且导致所需的对齐。在一个示例性实施方式中,去重复机制基于固定的块大小(例如六十四(KB)至一百二十八(128)KB)或者块的总数来计算该阈值。
图3C示出了部分去重复的文件,该文件被分区成子文件分区322、子文件分区324和子文件分区326。去重复元数据为这些子文件分区维护文件偏移量。分阶段地对部分去重复的文件执行去重复,其中每个子文件分区都在单独的阶段被分块并且提交给块存储。然后,去重复机制更新去重复元数据并且截去部分去重复的文件以避免保留特定子文件分区的两个副本。在每个阶段以后,未去重复的部分的大小减小。当最后一个子文件分区被提交时,部分去重复的文件被变换成完全去重复的文件。
在一个示例性实施方式中,去重复机制116在对子文件分区322去重复时处理暂停指令,并且在文件偏移量328处停止去重复进程。当接收到恢复指令时,去重复机制116在文件偏移量328处重启去重复进程。在将形成子文件分区322的块提交给块存储并且更新元数据以后,去重复机制116删除子文件分区322并且继续对子文件分区324去重复。如在此所述那样,一旦子文件分区324被去重复,则去重复进程就终止,因为不再存在剩余的未去重复的部分。
图4A-图4B示出了根据一个示例性实施方式的去重复元数据。在图4A中所表示的一个示例性实施方式中,去重复元数据包括文件402和文件404。文件402包括引用流图408的跟踪数据406。类似地,文件404包括引用流图412的跟踪数据410。两个流图都对应于块存储414内的块。如所示那样,流图408定义形成文件402的块C2-C4和块C6。类似地,流图412定义形成文件404的块C1-C5。
如果诸如块C5之类的特定块被召回并且一部分随后被应用修改(未去重复),从而致使文件404变为部分去重复的文件,则去重复机制116定义涵盖块C5的一个或多个新块。然后,去重复机制116更新流图412或者创建新流图以替换流图412。在两个实施方式任一中,去重复元数据现在映射到一个或多个新块而不是块C5。例如,如果去重复机制116创建与块C6匹配的新块,则更新后的或新的流图包括映射到块存储414中的块C6的新定义。
在图4B中大体上示出的一个实施方式中,NTFS重解析点440包括用于引用流图的指针442、以及用于跟踪具有未去重复部分的块的位图结构444。重解析点440可以是跟踪数据406或跟踪数据410的体现。更具体而言,为了部分召回文件,去重复机制116创建文件的虚拟视图,其中分块阶段在预定边界处(比如在64K边界处)执行。去重复机制116在重解析点440中的位图结构444中维护该视图,其中在一个实施方式中,位图结构444中的经置位的位指示块已经被召回到去重复的文件,而0位指示该块驻留在块存储中。在设置重解析点440时,可添加块的大小。
注意,数据在一个时间被召回,而位图结构444在另一时间更新,这导致可能的与崩溃相关的不一致性。如此处所述的,当将数据提交(例如转储清除)到稳定存储(例如,盘等)时,对操作的排序使得***为崩溃一致的。更具体而言,位图结构444的改变仅在它所表示的相应数据被转储清除到盘之后才被转储清除到盘上。以此方式,直到数据已知被安全地转储清除到盘上,位图结构444才指示该数据已经被部分召回。注意,如果盘和文件***支持通写(write-through),则可以替代于转储清除而使用通写。注意,尽管通常使用将文件数据/元数据转储清除到盘作为此处的示例,但这仅是示例。因此,“提交到稳定存储”还包括文件***和存储介质通写的概念、以及使用文件***和存储介质转储清除的概念、或者用于保证安全地将数据写入到稳定存储的任何其他手段。
在一个示例性实施方式中,可使用位图结构444来高效地将部分召回的文件转回完全去重复的文件。为此目的,当扫描文件以进行去重复时,可使用跟踪数据,使得向去重复机制116仅仅提供部分召回的文件范围(即未去重复的部分)以用于去重复。当包括这些部分召回的文件范围的新块被添加到块存储时,包括重解析点440的去重复元数据被调整为反映:部分召回的文件范围现在是经优化的块并且不再是部分召回的范围。
图5是示出了根据一个示例性实施方式用于将具有至少一个未去重复部分的文件变换成完全去重复的文件的步骤的流程图。图5所示的步骤始于步骤502,并且前进到步骤504,在该步骤,去重复机制116标识出部分召回的文件,该文件被分区成块。步骤506示出了使用与该文件相关联的元数据(比如去重复元数据和块存储元数据)来标识出一个或多个未去重复的部分。如在此所述,根据一个或多个示例性实施方式,去重复机制116可以检查重解析点内的召回位图,并且确定召回文件范围以及涵盖这些文件范围的块的位置。
步骤508表示关于是否消除任何去重复的部分的块边界的判定。在一个示例性实施方式中,由于未去重复的部分需要与包括去重复部分的块的块边界对齐,因此两个未去重复部分之间的小的去重复部分导致要在分块阶段期间定义小块。如果部分召回的文件包括小的去重复的部分,则图5中所述的方法前进到步骤510。另一方面,如果不存在要消除的去重复部分,则图5中所述的方法前进到步骤512。
步骤510针对将两个或更多未去重复的部分组合成一个未去重复的部分,该未去重复的部分作为召回数据的单个文件范围被去重复,这可能需要从块存储读取块以填充未去重复的部分之间的空隙。在执行步骤510之后,图5中所述的步骤继续到步骤512。
步骤512针对确定检查未去重复的部分。在一个示例性实施方式中,去重复机制116标识出包括或涵盖未去重复的部分的块。在一个示例性实施方式中,去重复机制116标识出该文件内的第一或最早的未去重复部分,并且定义与至少一个去重复部分内的周围块的块边界对齐的新块。步骤514表示至少一个如下的块的定义:所述块在先于或等于与未去重复部分相关联的起始文件偏移量的一文件偏移量处开始,并且在后继于或等于与未去重复部分相关联的结束文件偏移量的一文件偏移量处终止。
步骤516针对关于是否对部分召回文件的下一未去重复部分进行去重复的判定。如果不再存在未去重复的部分,则图5中所述的方法前进到步骤518。另一方面,如果存在附加的未去重复部分,则图5中所述的方法返回到步骤512。步骤518示出了与部分召回文件的至少一个去重复部分的文件偏移量对齐的块边界的确定。在一个示例性实施方式中,所述至少一个块中的最后一个块具有与所述至少一个去重复部分的后继块的块边界不重叠的块边界。类似地,所述至少一个块中的第一块具有与所述至少一个去重复部分的之前块的块边界不重叠的块边界。
步骤520涉及为至少一个块创建元数据并且将所述至少一个块提交给块存储。在一个示例性实施方式中,去重复机制116创建部分召回文件的文件偏移量与所述至少一个块的块边界之间的映射。然后,去重复机制116将这些映射与所述至少一个去重复部分的块边界相组合,并且创建块存储元数据,所述块存储元数据替换该文件的之前的块存储元数据。在替换实施方式中,去重复机制116使用这些映射更新去重复元数据(例如重解析点、流id和/或位图等等)和块存储元数据(例如流图)。在存储所述至少一个块以前,去重复机制116检查与块存储相关联的散列索引以确定所述块中是否有任何块已经存储在该块存储中。
在另一替换的实施方式中,去重复机制116在对下一去重复部分分块之前执行步骤518和步骤520。例如,在执行步骤516以前,去重复机制116中止去重复进程,用块边界更新块存储元数据,将所述至少一个块提交给块存储,并且通过删除未去重复的部分来截去部分召回的文件。去重复机制116可以如图6所示响应于暂停指令而中止去重复进程。
在又一替换的实施方式中,去重复机制116基于去重复策略中止去重复进程。作为示例,去重复机制116在标识出下一未去重复部分以及定义具有这样的部分的至少一个块之前使用各种标准来提交与未去重复部分相关联的至少一个块。
步骤522针对从块存储中删除未被引用的块。例如,这些块不再与包括部分召回文件在内的任何文件的流图相关联。对于采用引用计数的实施方式,去重复机制针对所述至少一个块递减引用计数。如果任何所得到的引用计数等于0,则每个相对应的块都被回收和删除。步骤524终止图5所描述的方法的步骤。
图6是示出了根据一个示例性实施方式用于对被分区成子文件分区的文件进行去重复的步骤的流程图。图6所示的步骤始于步骤602,并且前进到步骤604,在该步骤,去重复机制116处理文件。步骤606针对将该文件分区成子文件分区。在一个示例性实施方式中,一次对文件全部去重复需要大量时间。因此,去重复机制116将该文件划分成大小相等的子文件分区,所述子文件分区一次一个、而不是一起被去重复。
步骤608针对标识出具有第一去重复部分的子文件分区。如果该文件是完全未去重复的,则去重复进程在第一子文件分区处开始。如果该文件是部分去重复的,则去重复进程在与包括未去重复部分的第一子文件分区相关联的起始偏移量处开始。如在此所解释的那样,如果去重复进程在完成子文件分区以前暂停,则去重复进程在与第一未去重复部分相关联的起始偏移量处重启,因为那里是去重复进程曾经停止的地方。此外,在第一未去重复部分之前的块曾是提交给块存储的最后一个块。
步骤610针对定义具有该子文件分区的至少一个块。步骤612涉及确定去重复机制116是否接收到中止第一未去重复部分的分块的暂停指令。根据替换的实施方式,***崩溃致使去重复进程有效地以类似方式暂停。如果去重复机制116暂停,则图6中所述的方法前进到步骤614。步骤614针对等待直到去重复进程恢复第一未去重复部分的分块。在一个示例性实施方式中,去重复机制116从文件***接收指令,并且在第一未去重复部分的起始偏移量处重启所述至少一个的定义。另一方面,如果去重复机制116在去重复进程期间不暂停,则图6中所述的方法前进到步骤616。
步骤616针对更新去重复元数据和块存储元数据。在一个示例性实施方式中,去重复机制116用新块定义更新流图中的映射。在另一示例性实施方式中,去重复机制116使用到之前去重复的块的原始映射以及与新块定义相关联的新映射来创建新的流图。
步骤618针对截短文件并且将所述至少一个块提交给块存储。包括第一未去重复部分的子文件分区被从该文件中移除,因为相应文件数据的副本被存储在块存储中。步骤620针对确定是否对下一子文件分区进行去重复。如果该文件中不再存在子文件分区,则图6中所述的方法前进到步骤622。另一方面,如果存在附加的子文件分区,则图6中所述的方法返回到步骤608。步骤622终止图6所描述的方法的步骤。
示例性联网以及分布式环境
本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机***或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户机计算机的环境。
分布式计算通过计算设备和***之间的通信交换提供了计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件等对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化,等等。分布式计算利用网络连接,从而允许客户机利用它们的集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。
图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等可通过通信网络726直接或间接与一个或多个其他计算对象710、712等以及计算对象或设备720、722、724、728、740等进行通信。尽管在图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、以及将包括***存储器的各种***组件耦合到处理单元822的***总线820。
计算机810通常包括各种计算机可读介质,并且可以是可由计算机810访问的任何可用介质。***存储器830可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,***存储器830还可包括操作***、应用程序、其他程序模块、以及程序数据。
用户可通过输入设备840向计算机810输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口850之类的接口连接到***总线822。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他***输出设备,它们可通过输出接口850连接。
计算机810可使用到一个或多个其他远程计算机(诸如远程计算机870)的逻辑连接在联网或分布式环境中操作。远程计算机870可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机810所述的任何或全部元件。图8所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络872,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络***和任何计算设备或***。
而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作***、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API(或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“***”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
如前所述的***已经参考若干组件之间的交互来描述。可以理解,这些***和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
鉴于本文所述的示例性***,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。
结语
尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
除此处所述的各实施例以外,应当理解,可使用其他类似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。

Claims (10)

1.一种在计算机环境中至少部分在至少一个处理器上执行的方法,包括:将具有至少一个未去重复的部分的被部分去重复的文件重新优化成完全去重复的文件,其中所述被部分去重复的文件进一步具有至少一个去重复的部分,所述至少一个去重复的部分被维护在块存储中且通过与所述被部分去重复的文件相关联的元数据引用,所述重新优化包括处理所述文件的每个未去重复的部分以确定至少一个块;将所述至少一个块提交给所述块存储;以及将所述元数据修改为包括对提交给所述块存储的每个块的引用。
2.如权利要求1所述的方法,其特征在于,还包括:将所述文件中被去重复的部分隔开的两个未去重复的部分组合成包括每个未去重复的部分和所述去重复的部分的单个未去重复的部分,然后处理所述单个未去重复的部分。
3.如权利要求1所述的方法,其特征在于,处理至少一个未去重复的部分包括:定义从先于或等于与所述未去重复的部分相关联的起始文件偏移量的一文件偏移量开始的块;以及通过与完全包含在在先的去重复部分中的最后一个块对齐来确定所述文件偏移量。
4.如权利要求1所述的方法,其特征在于,处理至少一个未去重复的部分包括:通过在后继于或等于与所述未去重复的部分相关联的结束文件偏移量的一文件偏移量处结束所述部分的分块来定义块;以及基于所述未去重复的部分的分块与同在先的去重复的部分相关联的一个或多个现有块对齐之处来确定所述结束文件偏移量。
5.如权利要求4所述的方法,其特征在于,分块继续到超出所述未去重复的部分的结尾,并且还包括:确定块对齐是否在基于大小的阈值或基于块数目的阈值内被实现,并且如果块对齐未在所述阈值内实现,则停止分块。
6.如权利要求1所述的方法,其特征在于,还包括:暂停并随后恢复所述暂停以前的对所述文件的重新优化以及所述至少一个块到所述块存储的提交,其中所述暂停基于一个或多个标准进行,所述标准包括文件大小、执行所述重新优化的机器何时变为非空闲、以及所述机器何时将关闭。
7.如权利要求1所述的方法,其特征在于,所述块被提交给块存储,并且还包括:从所述块存储中对由于所述文件的重新优化而不再被引用的至少一个块进行垃圾收集。
8.一种在计算环境中的***,包括去重复机制,所述去重复机制被配置为将具有至少一个未去重复的部分的被部分去重复的文件重新优化成完全去重复的文件,其中所述被部分去重复的文件进一步具有至少一个去重复的部分,所述至少一个去重复的部分被维护在块存储中且通过与所述被部分去重复的文件相关联的元数据引用,所述去重复机制被配置为:将每个未去重复的部分分块成至少一个经重新优化的块;在完全重新优化所述文件以前将至少一个经重新优化的块提交到块存储中;以及修改表示被提交给所述块存储的文件的每个块的文件元数据。
9.如权利要求8所述的***,其特征在于,所述去重复机制将所述文件分区成子文件分区,在开始重新优化下一子分区以前或者当最后一个子文件分区已经被重新优化时提交每个子文件分区的每个经重新优化的块;以及基于哪个子文件分区已经被重新优化来截短所述文件。
10.一种用于优化部分去重复的文件的方法,该方法包括:
为被部分去重复的文件的未去重复的部分定义块,其中所述被部分去重复的文件进一步具有至少一个去重复的部分,所述至少一个去重复的部分被维护在块存储中且通过与所述被部分去重复的文件相关联的元数据引用;
使所述块的块边界与同所述文件的至少一个去重复的部分相关联的文件偏移量对齐;
基于所述块边界更新与所述文件相关联的元数据;以及
将所述块提交给块存储。
CN201210320201.0A 2011-09-01 2012-08-31 部分去重复的文件的优化 Active CN102880663B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/223,484 US8990171B2 (en) 2011-09-01 2011-09-01 Optimization of a partially deduplicated file
US13/223,484 2011-09-01

Publications (2)

Publication Number Publication Date
CN102880663A CN102880663A (zh) 2013-01-16
CN102880663B true CN102880663B (zh) 2016-06-01

Family

ID=47481989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210320201.0A Active CN102880663B (zh) 2011-09-01 2012-08-31 部分去重复的文件的优化

Country Status (6)

Country Link
US (1) US8990171B2 (zh)
EP (1) EP2751693A4 (zh)
JP (1) JP6045590B2 (zh)
KR (1) KR101988683B1 (zh)
CN (1) CN102880663B (zh)
WO (1) WO2013032825A2 (zh)

Families Citing this family (211)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US20130054919A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US8719234B2 (en) * 2012-01-25 2014-05-06 International Business Machines Corporation Handling rewrites in deduplication systems using data parsers
US8688652B2 (en) * 2012-04-05 2014-04-01 International Business Machines Corporation Increased in-line deduplication efficiency
GB201212878D0 (en) * 2012-07-20 2012-09-05 Pike Justin Authentication method and system
CN103577278B (zh) * 2012-07-30 2016-12-21 国际商业机器公司 用于数据备份的方法和***
US9262430B2 (en) * 2012-11-22 2016-02-16 Kaminario Technologies Ltd. Deduplication in a storage system
US9063664B1 (en) 2012-12-18 2015-06-23 Emc Corporation Method and system for processing checksum of a data stream to optimize deduplication
US9087086B1 (en) * 2012-12-18 2015-07-21 Emc Corporation Method and system for handling object boundaries of a data stream to optimize 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
US9547662B2 (en) 2013-03-15 2017-01-17 International Business Machines Corporation Digest retrieval based on similarity search in data deduplication
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
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
US9342525B1 (en) * 2013-08-05 2016-05-17 Quantum Corporation Multi-deduplication
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US10001993B2 (en) * 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
KR102187127B1 (ko) * 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US10255137B1 (en) 2013-12-16 2019-04-09 EMC IP Holding Company LLC Point-in-time recovery on deduplicated storage
US9720618B1 (en) 2013-12-16 2017-08-01 EMC IP Holding Company LLC Maintaining backup snapshots using continuous replication from multiple sources
US9875162B1 (en) 2013-12-16 2018-01-23 Emc Corporation Recovering corrupt storage systems
US10031690B1 (en) 2013-12-16 2018-07-24 EMC IP Holding Company LLC Initializing backup snapshots on deduplicated storage
US10157014B1 (en) 2013-12-16 2018-12-18 EMC IP Holding Company LLC Maintaining backup snapshots on deduplicated storage using continuous replication
US9846698B1 (en) 2013-12-16 2017-12-19 Emc Corporation Maintaining point-in-time granularity for backup snapshots
US9424269B1 (en) * 2013-12-19 2016-08-23 Veritas Technologies Llc Systems and methods for deduplicating archive objects
US10761944B2 (en) * 2014-02-11 2020-09-01 Netapp, Inc. Techniques for deduplication of media content
US10229056B1 (en) 2014-03-25 2019-03-12 EMC IP Holding Company LLC Alignment fixing on a storage system during continuous data replication to deduplicated storage
US9772789B1 (en) * 2014-03-25 2017-09-26 EMC IP Holding Company LLC Alignment fixing on a data protection system during continuous data replication to deduplicated storage
US9588847B1 (en) 2014-03-25 2017-03-07 EMC IP Holding Company LLC Recovering corrupt virtual machine disks
US9389800B1 (en) 2014-03-27 2016-07-12 Emc Corporation Synthesizing virtual machine disk backups
EP2945050B1 (en) * 2014-05-14 2021-05-05 The Silk Technologies Ilc Ltd. Deduplication in a storage system
CN105094688B (zh) * 2014-05-14 2019-11-22 卡米纳利欧技术有限公司 存储***中的去重方法和***以及计算机可读介质
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9753955B2 (en) * 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
US10061834B1 (en) * 2014-10-31 2018-08-28 Amazon Technologies, Inc. Incremental out-of-place updates for datasets in data stores
US9385749B1 (en) 2015-03-06 2016-07-05 Oracle International Corporation Dynamic data compression selection
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) * 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US9684569B2 (en) * 2015-03-30 2017-06-20 Western Digital Technologies, Inc. Data deduplication using chunk files
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US9639274B2 (en) 2015-04-14 2017-05-02 Commvault Systems, Inc. Efficient deduplication database validation
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9665534B2 (en) * 2015-05-27 2017-05-30 Red Hat Israel, Ltd. Memory deduplication support for remote direct memory access (RDMA)
GB201520760D0 (en) 2015-05-27 2016-01-06 Mypinpad Ltd And Licentia Group Ltd Encoding methods and systems
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US9998788B1 (en) 2015-07-01 2018-06-12 Comcast Cable Communications, Llc Methods and systems for content storage
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
CN106982165A (zh) * 2016-01-15 2017-07-25 厦门雅迅网络股份有限公司 数据压缩方法及其***
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9690701B1 (en) * 2016-09-27 2017-06-27 International Business Machines Corporation Probabilistic, parallel collection of memory no longer in use
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
CN106348135B (zh) * 2016-10-09 2018-09-11 德森克电梯(中国)有限公司 一种静音电梯
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10209892B2 (en) 2016-11-28 2019-02-19 Hewlett Packard Enterprise Development Lp Storage of format-aware filter format tracking states
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US10614037B2 (en) 2017-03-31 2020-04-07 International Business Machines Corporation Optimized deduplicated object storage system
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
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
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
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
US11461269B2 (en) 2017-07-21 2022-10-04 EMC IP Holding Company Metadata separated container format
US10459633B1 (en) 2017-07-21 2019-10-29 EMC IP Holding Company LLC Method for efficient load balancing in virtual storage systems
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
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
US10481813B1 (en) 2017-07-28 2019-11-19 EMC IP Holding Company LLC Device and method for extending cache operational lifetime
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
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
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
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
TWI689832B (zh) * 2018-03-29 2020-04-01 威聯通科技股份有限公司 檔案去重處理系統及其檔案處理方法
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10922281B2 (en) * 2018-10-25 2021-02-16 EMC IP Holding Company LLC Application aware deduplication
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
CN109766317B (zh) * 2019-01-08 2022-04-22 浪潮电子信息产业股份有限公司 一种文件的删除方法、装置、设备及存储介质
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11341106B2 (en) 2019-07-19 2022-05-24 Commvault Systems, Inc. Deduplication system without reference counting
US11461229B2 (en) 2019-08-27 2022-10-04 Vmware, Inc. Efficient garbage collection of variable size chunking deduplication
US11775484B2 (en) 2019-08-27 2023-10-03 Vmware, Inc. Fast algorithm to find file system difference for deduplication
US11669495B2 (en) * 2019-08-27 2023-06-06 Vmware, Inc. Probabilistic algorithm to check whether a file is unique for deduplication
US12045204B2 (en) 2019-08-27 2024-07-23 Vmware, Inc. Small in-memory cache to speed up chunk store operation for deduplication
US11372813B2 (en) 2019-08-27 2022-06-28 Vmware, Inc. Organize chunk store to preserve locality of hash values and reference counts for deduplication
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
CN112749137B (zh) * 2019-10-31 2024-05-24 阿里巴巴集团控股有限公司 数据处理方法、装置、设备及存储介质
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11507273B2 (en) * 2020-09-29 2022-11-22 EMC IP Holding Company LLC Data reduction in block-based storage systems using content-based block alignment
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US20220237191A1 (en) * 2021-01-25 2022-07-28 Salesforce.Com, Inc. System and method for supporting very large data sets in databases
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845297A (en) * 1997-06-30 1998-12-01 Intel Corporation Disk block relocation de-optimization detection methodology and applications
CN101079034A (zh) * 2006-07-10 2007-11-28 腾讯科技(深圳)有限公司 消除文件存储***中冗余文件的***及方法
US7899796B1 (en) * 2004-11-23 2011-03-01 Andrew Borthwick Batch automated blocking and record matching

Family Cites Families (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996025801A1 (en) 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US5813008A (en) 1996-07-12 1998-09-22 Microsoft Corporation Single instance storage of information
US6477544B1 (en) 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
US6389433B1 (en) 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
ATE381191T1 (de) 2000-10-26 2007-12-15 Prismedia Networks Inc Verfahren und system zur verwaltung von verteilten inhalten und entsprechenden metadaten
US6993520B2 (en) 2002-01-15 2006-01-31 International Business Machines Corporation Integrated content management and block layout technique
US7203713B2 (en) 2002-09-20 2007-04-10 International Business Machines Corporation Method and apparatus for optimizing extent size
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US7222119B1 (en) 2003-02-14 2007-05-22 Google Inc. Namespace locking scheme
US7107419B1 (en) 2003-02-14 2006-09-12 Google Inc. Systems and methods for performing record append operations
US7246254B2 (en) 2003-07-16 2007-07-17 International Business Machines Corporation System and method for automatically and dynamically optimizing application data resources to meet business objectives
CN1846265A (zh) 2003-09-05 2006-10-11 皇家飞利浦电子股份有限公司 在存储介质中的虚拟链接
US7669032B2 (en) 2003-11-26 2010-02-23 Symantec Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
US7340494B1 (en) 2004-03-12 2008-03-04 Sun Microsystems, Inc. Garbage-first garbage collection
US7624021B2 (en) 2004-07-02 2009-11-24 Apple Inc. Universal container for audio data
WO2006116203A1 (en) 2005-04-25 2006-11-02 Network Appliance, Inc. System and method for caching network file systems
US7636801B1 (en) 2005-06-20 2009-12-22 Symantec Operating Corporation Coordination of quality of service in a multi-layer virtualized storage environment
US7401080B2 (en) 2005-08-17 2008-07-15 Microsoft Corporation Storage reports duplicate file detection
US7930508B2 (en) 2006-03-07 2011-04-19 Apple Inc. File systems for data processing systems
US7921077B2 (en) 2006-06-29 2011-04-05 Netapp, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
US7640280B2 (en) 2006-10-31 2009-12-29 Rebit, Inc. System for automatically shadowing data and file directory structures that are recorded on a computer memory
US8117409B2 (en) 2006-11-22 2012-02-14 Hitachi, Ltd. Method and apparatus for backup and restore in a dynamic chunk allocation storage system
US8165177B2 (en) 2006-12-22 2012-04-24 Lenovo (Singapore) Pte. Ltd. System and method for hybrid virtual machine monitor file system operations
JP4951331B2 (ja) 2006-12-26 2012-06-13 株式会社日立製作所 ストレージシステム
US8825718B2 (en) 2006-12-28 2014-09-02 Oracle America, Inc. Methods and apparatus for marking objects for garbage collection in an object-based memory system
US7774389B2 (en) 2007-01-17 2010-08-10 Microsoft Corporation Optimized garbage collection techniques
US8677351B2 (en) 2007-03-29 2014-03-18 Vmware, Inc. System and method for delivering software update to guest software on virtual machines through a backdoor software communication pipe thereof
US8166012B2 (en) 2007-04-11 2012-04-24 Emc Corporation Cluster storage using subsegmenting
US7853759B2 (en) 2007-04-23 2010-12-14 Microsoft Corporation Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US7739312B2 (en) 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
US7685182B2 (en) 2007-05-08 2010-03-23 Microsoft Corporation Interleaved garbage collections
US7856437B2 (en) 2007-07-31 2010-12-21 Hewlett-Packard Development Company, L.P. Storing nodes representing respective chunks of files in a data store
US7870409B2 (en) 2007-09-26 2011-01-11 Hitachi, Ltd. Power efficient data storage with data de-duplication
JP5026213B2 (ja) 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
DE112007003693B4 (de) 2007-10-25 2014-05-15 Hewlett-Packard Development Co., L.P. Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
US8782368B2 (en) 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US7882160B2 (en) 2007-10-30 2011-02-01 International Business Machines Corporation Low latency optimization for generational garbage collection
US20090204650A1 (en) 2007-11-15 2009-08-13 Attune Systems, Inc. File Deduplication using Copy-on-Write Storage Tiers
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US7962452B2 (en) * 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US8300823B2 (en) 2008-01-28 2012-10-30 Netapp, Inc. Encryption and compression of data for storage
US8219534B2 (en) 2008-02-27 2012-07-10 Dell Products L.P. Multiple file compaction for network attached storage
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US7519635B1 (en) 2008-03-31 2009-04-14 International Business Machines Corporation Method of and system for adaptive selection of a deduplication chunking technique
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
KR101553532B1 (ko) 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치
US8515909B2 (en) 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US8645333B2 (en) 2008-05-29 2014-02-04 International Business Machines Corporation Method and apparatus to minimize metadata in de-duplication
US8108353B2 (en) 2008-06-11 2012-01-31 International Business Machines Corporation Method and apparatus for block size optimization in de-duplication
US8788466B2 (en) 2008-08-05 2014-07-22 International Business Machines Corporation Efficient transfer of deduplicated data
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US10642794B2 (en) 2008-09-11 2020-05-05 Vmware, Inc. Computer storage deduplication
US20100070544A1 (en) 2008-09-12 2010-03-18 Microsoft Corporation Virtual block-level storage over a file system
US8290915B2 (en) 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
US20100082700A1 (en) * 2008-09-22 2010-04-01 Riverbed Technology, Inc. Storage system for data virtualization and deduplication
US8301672B2 (en) 2008-09-22 2012-10-30 Advanced Micro Devices, Inc. GPU assisted garbage collection
WO2010036889A1 (en) 2008-09-25 2010-04-01 Bakbone Software, Inc. Remote backup and restore
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8495032B2 (en) 2008-10-01 2013-07-23 International Business Machines Corporation Policy based sharing of redundant data across storage pools in a deduplicating system
US20100088296A1 (en) 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
US8694466B2 (en) 2008-10-07 2014-04-08 Dell Products L.P. Object deduplication and application aware snapshots
US8626723B2 (en) 2008-10-14 2014-01-07 Vmware, Inc. Storage-network de-duplication
US8131687B2 (en) 2008-11-13 2012-03-06 International Business Machines Corporation File system with internal deduplication and management of data blocks
US8447740B1 (en) 2008-11-14 2013-05-21 Emc Corporation Stream locality delta compression
WO2010080591A2 (en) 2008-12-18 2010-07-15 Sumooh Inc. Methods and apparatus for content-aware data partitioning and data de-duplication
US8161255B2 (en) 2009-01-06 2012-04-17 International Business Machines Corporation Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools
US8762642B2 (en) * 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
US20100199065A1 (en) * 2009-02-04 2010-08-05 Hitachi, Ltd. Methods and apparatus for performing efficient data deduplication by metadata grouping
US8271718B2 (en) 2009-03-11 2012-09-18 Hitachi, Ltd. Storage system and control method for the same, and program
US8346736B2 (en) 2009-03-16 2013-01-01 International Business Machines Corporation Apparatus and method to deduplicate data
US20100241726A1 (en) * 2009-03-23 2010-09-23 Riverbed Technology, Inc. Virtualized Data Storage Over Wide-Area Networks
US8140491B2 (en) * 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8401181B2 (en) 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8407190B2 (en) 2009-06-30 2013-03-26 Commvault Systems, Inc. Performing data storage operations with a cloud environment, including containerized deduplication, data pruning, and data transfer
US9058298B2 (en) 2009-07-16 2015-06-16 International Business Machines Corporation Integrated approach for deduplicating data in a distributed environment that involves a source and a target
GB2472072B (en) * 2009-07-24 2013-10-16 Hewlett Packard Development Co Deduplication of encoded data
US8453257B2 (en) 2009-08-14 2013-05-28 International Business Machines Corporation Approach for securing distributed deduplication software
JP4960417B2 (ja) * 2009-09-15 2012-06-27 株式会社東芝 可変長のデータ断片の開始・終了オフセットを決定する方法及び装置
US8510275B2 (en) 2009-09-21 2013-08-13 Dell Products L.P. File aware block level deduplication
US8321648B2 (en) * 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
US8423520B2 (en) 2009-11-23 2013-04-16 Dell Products L.P. Methods and apparatus for efficient compression and deduplication
US8554743B2 (en) * 2009-12-08 2013-10-08 International Business Machines Corporation Optimization of a computing environment in which data management operations are performed
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8612699B2 (en) 2010-06-25 2013-12-17 International Business Machines Corporation Deduplication in a hybrid storage environment
CN103080910B (zh) * 2010-09-09 2016-06-01 日本电气株式会社 存储***
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US10216759B2 (en) 2010-11-22 2019-02-26 Microsoft Technology Licensing, Llc Heterogeneous file optimization
US8959293B2 (en) 2010-12-14 2015-02-17 Microsoft Corporation Data deduplication in a virtualization environment
US8645335B2 (en) 2010-12-16 2014-02-04 Microsoft Corporation Partial recall of deduplicated files
US8380681B2 (en) 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US20120159098A1 (en) 2010-12-17 2012-06-21 Microsoft Corporation Garbage collection and hotspots relief for a data deduplication chunk store
US9823981B2 (en) 2011-03-11 2017-11-21 Microsoft Technology Licensing, Llc Backup and restore strategies for data deduplication
US20130054919A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845297A (en) * 1997-06-30 1998-12-01 Intel Corporation Disk block relocation de-optimization detection methodology and applications
US7899796B1 (en) * 2004-11-23 2011-03-01 Andrew Borthwick Batch automated blocking and record matching
CN101079034A (zh) * 2006-07-10 2007-11-28 腾讯科技(深圳)有限公司 消除文件存储***中冗余文件的***及方法

Also Published As

Publication number Publication date
KR101988683B1 (ko) 2019-06-12
KR20140068919A (ko) 2014-06-09
JP2014525631A (ja) 2014-09-29
WO2013032825A2 (en) 2013-03-07
EP2751693A2 (en) 2014-07-09
US20130060739A1 (en) 2013-03-07
WO2013032825A3 (en) 2013-04-25
CN102880663A (zh) 2013-01-16
EP2751693A4 (en) 2016-06-01
US8990171B2 (en) 2015-03-24
JP6045590B2 (ja) 2016-12-14

Similar Documents

Publication Publication Date Title
CN102880663B (zh) 部分去重复的文件的优化
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
CN102567218B (zh) 用于数据去重复块存储的垃圾收集和热点释放
US10915247B2 (en) Efficient data management through compressed data interfaces
US11755590B2 (en) Data connector component for implementing integrity checking, anomaly detection, and file system metadata analysis
RU2500023C2 (ru) Синхронизация документа по протоколу, не использующему информацию о состоянии
US9928210B1 (en) Constrained backup image defragmentation optimization within deduplication system
US20220138169A1 (en) On-demand parallel processing of objects using data connector components
CN102591946A (zh) 使用索引划分和协调来进行数据去重复
AU2013210018B2 (en) Location independent files
CN102667720B (zh) 没有排序依赖的一致性
KR20080106412A (ko) 데이터 스토리지 관리 방법 및 디바이스
CN103460197A (zh) 计算机***、文件管理方法以及元数据服务器
US9600486B2 (en) File system directory attribute correction
US20220138151A1 (en) Sibling object generation for storing results of operations performed upon base objects
US11044312B2 (en) Storage segment server covered cache
US20220138153A1 (en) Containerization and serverless thread implementation for processing objects
US10915246B2 (en) Cloud storage format to enable space reclamation while minimizing data transfer
CN114138558A (zh) 一种对象存储方法、装置、电子设备和存储介质
CN115509440A (zh) 存储***及数据处理方法
CN115586872A (zh) 一种容器镜像管理方法、装置、设备及存储介质
CA2722511C (en) Efficient change tracking of transcoded copies
US20130091135A1 (en) File aggregation method and information processing system using the same
CN116909490B (zh) 数据处理方法、装置、存储***及计算机可读存储介质
EP3998533B1 (en) On-demand parallel processing of objects using data connector components

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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.

C14 Grant of patent or utility model
GR01 Patent grant