身份副本删除之后的delta压缩的制作方法

文档序号:6595486阅读:121来源:国知局
专利名称:身份副本删除之后的delta压缩的制作方法
身份副本删除之后的delta压缩
背景技术
企业以及个人正变得越来越依赖于计算机。随着越来越多的数据被生成,对高效且可靠的数据备份存储系统的需求正在增加。存在目前现有的利用本地和网络存储进行备份的各种系统。这些存储系统中的一些使用数据分段和副本删除(deduplication)以更加高效地存储数据。副本删除的备份系统将到来的数据流分解为一系列数据段并且在对每个数据段进行存储之前针对其存在而测试系统,以便避免对其进行多次存储。一些副本删除的备份系统能够实现10至50或更大的高数据压缩因子。然而,对于大型企业系统而言,通过副本删除进行压缩的备份系统可能仍然很大而显得不便。


以下详细描述和附图中公开了本发明的各个实施例。图1是图示用于身份(identity)副本删除之后的delta (差值)压缩的系统的框图。图2是图示段副本删除数据存储系统的实施例的框图。图3是图示数据分段和存储的实施例的框图。图4是图示副本删除系统的实施例的框图。图5是图示delta压缩系统的实施例的框图。图6是图示delta压缩的实施例的示图。图7是图示用于身份副本删除之后的delta压缩的过程的实施例的流程图。
具体实施例方式本发明可以以多种方式来实施,包括如过程、装置、系统、事物的组合、在计算机可读存储介质上所实现的计算机程序产品、和/或处理器诸如被配置为执行在耦合到该处理器的存储器上所存储和/或由其所提供的指令的处理器。在本说明书中,这些实施方式或者本发明可以采取的任意其它形式可以被称作技术。通常,所公开的过程的步骤的顺序可以在本发明的范围内进行更改。除非另外阐明,诸如被描述为被配置为执行任务的处理器或存储器之类的部件可以被实施为在给定时间被临时配置为执行该任务的一般部件或者被制造为执行该任务的特定部件。如这里所使用的,术语“处理器”是指一个或多个被配置为处理诸如计算机程序指令之类的数据的设备、电路和/或处理核心。下面连同图示本发明原理的附图一起提供本发明的一个或多个实施例的详细描述。本发明结合这些实施例进行描述,但是本发明不局限于任意实施例。本发明的范围仅由权利要求限定,并且本发明包含多种备选、修改和等同形式。在以下描述中给出多个特定细节以便提供对本发明的全面理解。这些细节是出于示例的目的被提供,并且本发明可以根据权利要求来实践而无需这些特定细节中的一些或全部。为了清楚起见,没有对与本发明相关的技术领域中已知的技术材料进行详细描述,使得不会不必要地使本发明晦涩难懂。公开了身份副本删除之后的delta压缩。副本删除的系统将到来的数据流分解为一系列数据段并且在对每个数据段进行存储之前针对其存在而测试系统,以便避免对其进行多次存储。当在其中存在高度数据冗余的企业系统上使用时,副本删除能够大量减少所存储的总数据量。在通过副本删除而从存储系统中去除了冗余段数据之后,仍然存在以具有微小差异的相似数据段形式的能够被去除的冗余。delta压缩标识先前存储的与期望存储的段相似的数据段并通过将期望存储的段存储为对先前存储的段的引用并且存储与先前存储的段的delta (或差异)来对其压缩以进行存储。在一些实施例中,期望存储的段也可以被存储为与先前作为引用和delta所存储的段的delta。对于非常相似但不相同的段而言,单独通过副本删除不会实现数据减少,但是利用delta压缩,大量数据减少是可能的。通过副本删除来减少数据集合增加了 delta压缩的可行性,因为delta压缩需要明显大于副本删除的处理能力并且对整个数据集合执行将是缓慢的。在一些实施例中,段与不止一个先前存储的段或其部分相似,并且所述不止一个先前存储的段被用于该段的编码。例如,段的前半部与先前存储的第一段相似,而段的后半部与先前存储的第二段相似;通过使用对先前存储的第一段和第二段的引用、以及针对使用所述段的哪(一个或多个)部分并且它们以什么方式被用来能够重构所述段的指示符,来存储所述段。在一些实施例中,草图(sketch )系统使用或不使用高速缓存来发现相似段。在一些实施例中,草图系统使用一个或多个函数来表征段并且使用由那些函数所生成的特性来确定相似性并且在一些情况下确定相似性的程度或量。图1是图示用于身份副本删除之后的delta压缩的系统的框图。在所示的示例中, 网络100连接到在图1中由客户端102和104所表示的一个或多个客户端。除了本地存储器之外,客户端可以具有本地存储设备。例如,客户端102可以具有存储设备106,而客户端 104不具有本地存储设备。网络100还连接到存储系统108。存储系统108使用内部存储设备110或所附连的外部存储设备112来存储数据。存储系统108包括对到来的数据流执行段副本删除的副本删除系统114。段副本删除由标识符(ID)索引116辅助,所述标识符(ID)索引116包括与由存储系统108用来存储数据和/或文件的段相关联的标识符(ID)数据、以及所述段在存储器中的对应位置。存储系统108包括对到来的数据流执行delta压缩的delta压缩系统118。delta压缩由草图系统120辅助,所述草图系统120包括与段相关联的草图数据、以及所述段在数据存储单元(例如,内部存储设备110、外部存储设备112、存储系统高速缓存、本地存储器或者任意其它适当的存储单元)中的对应位置。在一些实施例中,草图数据包括一个或多个表征段的数据。在一些实施例中,一个或多个函数(例如,散列函数)作用于段上,并且作用于所述段上的函数的结果的子集(例如多个结果,例如十个最低结果或十个最高结果)被选择作为草图。网络100包括以下中的一个或多个局域网、广域网、有线网络、无线网络、因特网、光纤网络、存储区域网络或者任意其它实现通信的适当网络。客户端102和104可以处于物理接近或者可以物理上彼此远离。存储系统108可以位于与客户端102和104之一、 二者接近或者与二者都不接近。在各个实施例中,存储设备106、110和112包括诸如硬盘、磁带驱动器、半导体存储器之类的单个存储设备、诸如冗余阵列系统(例如,独立磁盘的冗余阵列(RAID))之类的多个存储设备、诸如库系统或网络附连存储系统之类的用于存储的系统、或者任意其它适当的存储设备或系统。在各个实施例中,存储系统108包括作为一个或多个物理单元(例如,计算机或其它硬件单元)的一部分的一个或多个处理器。在一些实施例中,存储在客户端上的文件或数据被备份在存储系统108上。所述文件或数据被存储系统108分解为段。在所述文件或数据和所述段之间存储映射。如果存储系统108已经存储了相同的段,则存储指向该段的指针。如果存储系统108已经存储了相似的段,则存储指向相似的先前存储的段的指针以及在所述相似的先前存储的段与要存储的新段之间的差异。所述映射连同所述指针、所存储的段和所存储的相似段以及与所述相似段的差异可以被用来重构原始文件或数据。图2是图示段副本删除数据存储系统的实施例的框图。在所示的示例中,数据流或数据块200被数据存储系统(例如,图1的存储系统108)接收。数据流或数据块200从一个或多个客户端(例如,图1的客户端102或客户端104)发送。数据流或数据块200要被存储在存储设备210中,该存储设备210表示存储系统的存储设备(例如,图1的存储系统108的存储设备110或存储设备112)。数据流或数据块200被分段为段202、204、206和208。通过从数据流或数据块 200创建多个能够被用来重构数据流或数据块200的段,对数据流或数据块200进行分段。 段在被用来重构数据流或数据块200时可以是重叠的、非重叠的或者是重叠和非重叠的组合。使用文件边界、目录边界、字节计数、基于内容的边界(例如,当窗口中的数据的散列等于一个数值时)或者任意其它确定边界的适当方法来确定段边界。数据块、数据流、文件或目录的重构包括使用对原始构成先前存储的数据块、数据流、文件或目录的一个或多个段的一个或多个引用。针对要被存储的数据段(诸如数据段202、204、206和208)的存在而检查存储设备 210 (例如,以查看数据段当前是否已经被存储)。如果发现没有存在于存储设备内,则存储数据段。通过生成较小的ID数据并且搜索与当前针对要被存储的数据段的ID所存储的段对应的ID表(例如,诸如图1的ID索引116之类的ID索引)来执行存在检查。在一些实施例中,通过针对要存储的整个数据段对存储设备210进行搜索来执行存在检查。给定数据段的ID数据从所述段的数据内容中导出并且确定性地生成(例如,使用散列函数、校验和、 加密散列函数等的数字指纹、数字签名)。在各个实施例中,ID数据不从数据内容中导出, 被随机地或者任意其它用于存储系统的适当方式生成。在所示的示例中,诸如段202、206和208之类的数据段未被发现存在于存储设备 210中并且被指定要存储在存储设备210中一例如,段202、204和206分别要被存储为数据段212、214和216。段204被发现存在于存储设备210内,所以存储对204的引用(图2中未示出)以便能够重构数据流或数据块200。图3是图示数据分段和存储的实施例的框图。在所示的示例中,数据流300被数据存储系统(例如,图1的存储系统108)接收。数据流300从一个或多个客户端(例如,图 1的客户端102或客户端104)发送。数据流300要存储在存储系统的存储设备(例如,图 1的存储设备110或存储设备112)中。数据流300被分段为包括数据段302的多个数据段。在一些实施例中,通过标识基于内容的段边界来对段进行分段一例如,对通过数据流或块的滑动窗口内的数据数值应用散列函数并且当该散列函数等于一个数值(或者等于若干数值之一)时则标识段边界。在各个实施例中,使用在具有最小值、最大值或其它数值的数据流或块内的窗口上操作的基于内容的函数或者任意其它适当的基于内容的分段算法来标识段边界。在各个实施例中,段包括固定长度段、可变长度段、重叠段、非重叠段、具有最小大小的段、具有最大大小的段或者任意其它适当的段。在各个实施例中,段包括文件、 文件群组、目录、部分文件、具有与文件和/或目录边界无关的一个或多个边界的部分数据流、或者任意其它适当的段。数据段302被存储在存储系统中作为存储的数据段306。存储的数据段306作为数据存储容器304的一部分进行存储。数据存储容器304存储一个或多个数据段以及与所述数据段相关联的元数据。例如,与数据段306相关联的元数据被存储为元数据308。元数据308包括数据段ID和数据段草图。在各个实施例中,数据段ID包括数据段的确定性函数、数据段的多个确定性函数、数据段的散列函数、数据段的多个散列函数、随机数据或者任意其它适当的数据段ID。在各个实施例中,数据段草图包括数据段的一个或多个确定性函数、数据段的一个或多个散列函数、为相似数据段返回相同数值的一个或多个函数、为相似数据段返回相似数值的一个或多个函数、可以为相似数据段返回相同数值的一个或多个函数(例如,也许或可能为相似数据段返回相同数值的函数)、可以为相似数据段返回相似数值的一个或多个函数(例如,也许或可能为相似数据段返回相似数值的函数)、随机数据、 或者任意其它适当的数据段草图。在各个实施例中,使用以下方法中的一种或多种来将草图函数值确定为相似数字差、海明差、局部性敏感散列(locality-sensitive hashing)、 最近邻搜索、其它统计方法、或者任意其它确定相似性的适当方法。在各个实施例中,元数据(例如,元数据308)包括数据段ID、数据段草图、数据段的散列、数据段的加密散列、随机数据或者任意其它适当的元数据。在一些实施例中,与段相关联的元数据被用来标识相同和/或相似的数据段。在一些实施例中,存储的元数据实现更快地标识相同和/或相似的数据段,因为无需为了估算给定的到来数据段而重新计算标识符(例如,ID)和/或草图(例如,表征数据段的一组数值)。图4是图示副本删除系统的实施例的框图。在一些实施例中,图4的副本删除系统实施图1的副本删除系统114。在所示的示例中,要存储的数据段被网络接口 400接收并且被传送到数据段ID生成器402。数据段ID生成器402从所述数据段生成数据段ID并且将所述ID传送至副本删除过滤器404。副本删除过滤器404然后针对数据段ID查询ID 索引406。如果在ID索引406中发现数据段ID,则副本删除过滤器404不允许所述数据段被存储。如果在ID索引406中没有发现该ID,则副本删除过滤器404将所接收的数据段经由delta压缩系统接口 408传送至delta压缩系统。在一些实施例中,在数据段不是新的情况下,存储引用以及其它信息,以使得能够使用先前存储的数据段来重构到来的数据流或数据块或者其文件。在一些实施例中,在数据段是新的情况下,存储数据段以及其它信息,以使得能够使用新存储的数据段来重构到来的数据流或数据块或者其文件。图5是图示delta压缩系统的实施例的框图。在一些实施例中,图5的delta压缩系统实施图1的delta压缩系统118。在所示的示例中,要存储的数据段被副本删除系统接口 500接收并且被传送至数据段草图生成器502。数据段草图生成器502从所述数据段生成数据段草图并且将所述草图传送至delta压缩器504。delta压缩器504然后针对数据段草图查询草图系统506。如果草图系统506发现数据段草图与一个或多个先前存储的段草图相似或相同,则delta压缩器504使用与被草图系统506发现相似或相同的一个或多个草图相关联的一个或多个数据段作为基本段来对所接收的数据段执行delta压缩。经 delta压缩的数据段然后被传送至存储系统508并被存储。如果该草图未被草图系统506 发现相似或相同,则delta压缩器504将所接收的数据段传送至存储系统508以作为新数据段存储在该存储系统中。图6是图示delta压缩的实施例的示图。在一些实施例中,delta压缩由图5的 delta压缩器504执行。在所示的示例中,新数据600要被delta压缩。新数据600包括字符序列602。相似数据604先前已被标识为与新数据600相似。相似数据604包括字符序列606。在各个实施例中,使用草图索引、草图高速缓存、数据库搜索或者通过任意其它适当的方法将相似数据604标识为与新数据600相似。经编码的新数据608包括引用610 (例如,对先前存储的段的引用)、字符序列引用614、618和622 (例如,例如使用偏移、长度或者任意其它标识子集的适当方式来标识段的子集的对来自先前存储的段内的数据序列的引用)、以及字符序列612、616和620 (例如,数据序列一例如,字符串、字节、整数、整体数字或其它一其要被插入在引用序列之间)。引用610是指相似数据604并且指示字符序列引用是指在相似数据604中发现的字符序列。字符序列引用614指示相似数据604的字符2 — 7要在从经编码的新数据608重构新数据600时被插入在其位置中;字符序列引用618指示相似数据604的字符10 - 19要在从经编码的新数据608重构新数据600时被插入在其位置中;并且字符序列引用622指示相似数据604的字符23 — 26要在从经编码的新数据 608重构新数据600时被插入在其位置中。字符序列612、616和620没有在相似数据604 中发现,所以它们在经编码的新数据608中看似不变并且在从经编码的新数据608重构新数据600时保持。在一些实施例中,所述编码包括未存在于第三先前数据段中的第二数据段中的一组数据块的指示、以及所述第三先前数据段中的一组数据块的指示。在一些实施例中,经编码的新数据序列使用其它实现对使用先前存储的段的(一个或多个)部分以及差异(例如, 与上面的字符序列相似)来存储新数据段的指示的编码方案。在各个实施例中,相似数据和新数据包括多组字符、字节、整数、整体数字、日期和/或任意其它适当的数据或其组合。在一些实施例中,delta编码包括复制和插入指令的有序集合。新数据600和相似数据604首先被分解为区域。使用文件边界、目录边界、字节计数、基于内容的边界(例如, 当窗口中的数据的散列等于一个数值时)或者任意其它确定边界的适当方法来确定区域边界。针对新数据600和相似数据604的每个区域计算ID数据。给定数据区域的ID数据从该区域的数据内容中导出并且确定性地生成(例如,使用散列函数、校验和、加密散列函数等的数字指纹、数字签名)。相似数据604的区域ID被保留在可搜索列表中。针对来自新数据600的每个区域ID检查来自相似数据604的区域ID列表。如果来自新数据600的区域ID没有在来自新数据600的区域ID列表中发现,则插入指令被添加到经编码的新数据 608,接着是来自新数据600的对应数据区域。如果来自新数据600的区域ID在来自新数据600的区域ID列表中被发现,则对应的数据区域是相同的。然后在检查以确保这些区域仍然匹配的同时将这些区域从前面和后面进行扩展。当发现了最大的可能匹配区域时,复制指令被添加到经编码的新数据608 以在对经编码的新数据608进行解码时复制来自相似数据604的匹配区域。如果扩展数据区域的结尾导致该区域与作为先前复制或插入指令的一部分被包括在经编码的新数据608 中的数据相重叠,则对先前的指令进行修改以去除该重叠。在能够通过相似数据604的复制和插入来重构整个新数据600时存储或传送所述复制和插入指令。在一些实施例中,来自两个或更多相似段的数据被用来对新数据段进行编码。使用对所述两个或更多相似段的(一个或多个)区域的复制引用和插入来实现从所述两个或更多相似段编码来重构数据。图7是图示用于身份副本删除之后的delta压缩的过程的实施例的流程图。在一些实施例中,图7的过程被图1的存储系统108用来执行身份副本删除之后的delta压缩。在所示的示例中,在700中,数据段被数据存储系统接收。在700中接收的数据段是包括多个数据段的所接收数据流或数据块的一部分。在702中,由数据存储系统计算数据段 ID。所述数据段ID被用来确定所述数据段是否与先前的数据段相同。在各个实施例中,确定数据段ID使用以下中的一个或多个指纹函数、散列函数、加密散列函数、数字签名、或者任意其它用于确定数据段ID的适当方法。在704中,针对702中所计算的ID检查ID索引(例如,图1的ID索引116)。在702中所计算的ID位于所述ID索引中的情况下,确定数据段与先前的数据段相同,并且控制传送至706。在706中,返回数据段ID,并且该过程结束。在一些实施例中,存储对所接收的数据段的引用以实现重构与所接收的数据段相关联的数据流或数据块。在各个实施例中,数据流或数据块可以包括多个文件、数据结构、文件结构、元数据信息或者任意其它适当的数据。在一些实施例中,在确定所接收的数据段与先前的数据段相同之后不对其进行存储。在一些实施例中,在所计算的ID与ID索引中的ID相同的情况下,执行检查以确定所接收的段是否与先前存储的段相同(例如,对所接收的段和先前存储的段进行逐个字节比较)。在704中没有在ID索引中发现数据段ID的情况下,则所述数据段不被确定为与先前的数据段相同,并且控制传送至708。在708中,由数据存储系统计算数据段草图。所述数据段草图被用来确定所述数据段是否与先前的数据段相似。在710中,针对所计算的数据段草图检查草图系统(例如,图1的草图系统120)。在(例如,在草图系统中所存储的) 先前存储的段的草图与所接收的段的草图相似或相同的情况下,确定先前存储的段与所接收的段相似。在各个实施例中,草图系统包括将数据段草图与数据段ID相关联的草图索引、将数据段草图的子集与数据段ID相关联的草图高速缓存、或者任意其它用于标识相似草图的适当系统(例如,使用元数据308以及相关联的段数据306的那些系统)。在各个实施例中,草图高速缓存由数据流局部性信息、身份匹配信息、存储子系统信息、时间局部性、 空间局部性、访问模式、历史模式或任意其它适当的信息组成。在没有发现所计算的数据段草图与草图系统中的一个或多个草图相似的情况下,则所述数据段不被确定与先前的数据段相似,并且控制传送至712。在712中,数据段连同数据段元数据一起存储,返回与数据段相关联的ID,并且该过程结束。在一些实施例中,数据段元数据包括数据段草图。在各个实施例中,以任意适当的方式对数据段进行压缩、传送、复制或处理。在710中在草图系统中发现所计算的数据段草图的情况下,则数据段与先前的数据段相似,并且控制传送至714。在714中,在数据存储系统中定位从草图系统被标识为与所接收的数据段相似的数据段。在716中,计算所接收的数据段的编码。在各个实施例中,delta压缩编码(例如, 图6的delta压缩)至少部分基于相似数据段并且包括所述数据段中的没有存在于先前存储的相似数据段中的一组数据块以及对先前存储的数据段中的数据子集的一组引用(例如,到相似数据段中的数据偏移、序列的长度和数据偏移、或者任意其它适当的编码)。在一些实施例中,除了在714中所标识的相似数据段之外,一个或多个数据段被标识为与所接收的数据段相似。在一些实施例中,delta压缩编码至少部分基于714中所标识的相似数据段以及一个或多个附加的相似数据段。在各个实施例中,被标识或选择为与所接收的数据段相似的一个或多个数据段至少部分基于以下中的一个或多个进行标识或选择时间局部性(例如,在与接收另一段的时间相似的时间所接收的段)、空间局部性(例如,在与另一段相似或接近的位置中存储的段)、便于访问(例如,段与位于访问点、位于存储器边界等的另一段相比容易被访问)、预期压缩(例如,段被预期压缩至期望的大小、低于阈值大小等)、 其它压缩段的选择频率(例如,段被用作存储多个其它段的基准,其中所述多个大于阈值大小或者为最大值或者处于“前十名”或其它列表中等)或者基于任意其它适当的标准。在718中,检查所述编码以查看其是否小于所接收的数据段。如果确定了该编码不小于所接收的数据段,则控制传送至720。在720中,数据段连同数据段元数据一起存储在数据库中,返回与所述数据段相关联的ID,并且该过程结束。在一些实施例中,如果该编码不小于所接收的数据段,则不存储该编码。在一些实施例中,如果编码不小于所接收的数据段,则替代所接收的数据段或者除了所接收的数据段之外,对该编码进行存储。如果在718中确定了编码小于所接收的数据段,则控制传送至722。在722中,存储该编码。在各个实施例中,所述编码被压缩(例如,使用Huffman编码、Lempel-Ziv编码、 Lempel-Ziv-Welch编码等)、被传送(例如,在两个系统之间传送,其中期望所传送数据的减少并且经副本删除和delta压缩的段实现两个系统之间传送的减少的数据量)、被复制(例如,被存储在对存储系统上所存储的数据进行复制的副本系统上)或者以任意其它适当的方式被处理。在724中,返回所接收的数据段ID以及相似数据段ID,并且该过程结束。在一些实施例中,返回数据段ID并且利用该编码来存储相似数据段ID。在一些实施例中,718的判断是基于该段所需的存储的百分比减少。例如,如果编码的数据段大于数据段大小的80%,则所述数据段被存储为其自身而不是存储为对先前存储的段的引用和差异(例如,编码的数据段)。在一些实施例中,718的判断至少部分基于编码段的重构所需的计算比对用于存储段和/或该编码段的空间之间的平衡。虽然为了清楚理解而略为详细描述了以上实施例,但是本发明不局限于所提供的细节。存在实施本发明的许多备选方式。所公开的实施例是说明性的而非限制性的。
权利要求
1.一种用于处理数据的系统,包括副本删除系统,用于确定第一数据段与第一先前数据段相同;和delta压缩系统,用于确定第二数据段未被确定为与第二先前数据段相同以及与第三先前数据段相似。
2.如权利要求1所述的系统,其中所述副本删除系统接收数据流或数据块。
3.如权利要求2所述的系统,其中所述副本删除系统将所述数据流或数据块分解为多个数据段。
4.如权利要求1所述的系统,其中所述副本删除系统进一步包括存储对所述第一先前数据段的引用而不是存储所述第一数据段。
5.如权利要求1所述的系统,其中确定所述第一数据段相同包括确定与所述第一数据段相关联的第一数据段ID ;确定所述第一数据段ID是否与ID索引中先前存储的ID相同。
6.如权利要求5所述的系统,其中确定与所述第一数据段相关联的第一数据段ID使用以下中的一个或多个指纹函数、散列函数、加密散列函数和数字签名。
7.如权利要求1所述的系统,其中所述delta压缩系统进一步包括计算所述第二数据段的编码。
8.如权利要求7所述的系统,其中所述delta压缩系统进一步包括存储所述第二数据段的编码。
9.如权利要求7所述的系统,进一步包括压缩所述第二数据段的编码。
10.如权利要求7所述的系统,进一步包括传送所述第二数据段的编码。
11.如权利要求7所述的系统,进一步包括复制所述第二数据段的编码。
12.如权利要求7所述的系统,其中所述编码至少部分基于所述第三先前数据段。
13.如权利要求7所述的系统,其中所述编码包括未存在于所述第三先前数据段中的所述第二数据段中的一组数据块的指示、以及所述第三先前数据段中的一组数据块的指7J\ ο
14.如权利要求7所述的系统,其中所述delta压缩系统进一步包括确定所述编码是否小于所述第二数据段。
15.如权利要求1所述的系统,其中使用草图函数将所述第二数据段确定为与相似的第三先前数据段相似。
16.如权利要求15所述的系统,其中所述草图函数包括散列函数。
17.如权利要求15所述的系统,其中所述草图函数包括多个散列函数。
18.如权利要求15所述的系统,其中所述草图函数包括为相似数据段返回相同数值的一个或多个函数。
19.如权利要求15所述的系统,其中所述草图函数包括为相似数据段返回相似数值的一个或多个函数。
20.如权利要求15所述的系统,其中所述草图函数包括能够为相似数据段返回相同数值的一个或多个函数。
21.如权利要求15所述的系统,其中所述草图函数包括能够为相似数据段返回相似数值的一个或多个函数。
22.如权利要求21所述的系统,其中基于以下方法中的一个或多个将草图函数值确定为相似数字差、海明距离、局部性敏感散列或最近邻搜索。
23.如权利要求1所述的系统,其中所述第二数据段与除了所述第三先前数据段之外的一个或多个先前段相似。
24.如权利要求23所述的系统,其中所述delta压缩系统进一步包括计算所述第二数据段的编码。
25.如权利要求M所述的系统,其中所述编码至少部分基于所述第三先前数据段以及一个或多个附加相似的先前数据段。
26.如权利要求23所述的系统,其中至少部分基于以下中的一个或多个来标识所述一个或多个先前数据段和第三先前数据段时间局部性、空间局部性、便于访问、预期压缩或者其它压缩段的选择频率。
27.如权利要求1所述的系统,其中所述第三先前数据段被存储为第四先前数据段的编码。
28.一种用于处理数据的方法,包括 确定第一数据段与第一先前数据段相同;和用于确定未被确定为与第二先前数据段相同的第二数据段与第三先前数据段相似。
29.如权利要求观所述的方法,进一步包括接收数据流或数据块。
30.如权利要求观所述的方法,进一步包括将所述数据流或数据块分解为多个数据段。
31.如权利要求观所述的方法,进一步包括存储对所述第一先前数据段的引用而不是存储所述第一数据段。
32.如权利要求观所述的方法,其中确定所述第一数据段相同包括 确定与所述第一数据段相关联的第一数据段ID ;确定所述第一数据段ID是否与ID索引中先前存储的ID相同。
33.如权利要求32所述的方法,其中确定与所述第一数据段相关联的第一数据段ID 使用以下中的一个或多个指纹函数、散列函数、加密散列函数和数字签名。
34.如权利要求观所述的方法,进一步包括计算所述第二数据段的编码。
35.如权利要求34所述的方法,进一步包括存储所述第二数据段的编码。
36.如权利要求34所述的方法,进一步包括压缩所述第二数据段的编码。
37.如权利要求34所述的方法,进一步包括传送所述第二数据段的编码。
38.如权利要求34所述的方法,进一步包括复制所述第二数据段的编码。
39.如权利要求34所述的方法,其中所述编码至少部分基于所述第三先前数据段。
40.如权利要求34所述的方法,其中所述编码包括未存在于所述第三先前数据段中的所述第二数据段中的一组数据块的指示、以及所述第三先前数据段中的一组数据块的指示。
41.如权利要求34所述的方法,进一步包括确定所述编码是否小于所述第二数据段。
42.如权利要求34所述的方法,其中使用草图函数将所述第二数据段确定为与相似的第三先前数据段相似。
43.如权利要求42所述的方法,其中所述草图函数包括散列函数。
44.如权利要求42所述的方法,其中所述草图函数包括多个散列函数。
45.如权利要求42所述的方法,其中所述草图函数包括为相似数据段返回相同数值的一个或多个函数。
46.如权利要求42所述的方法,其中所述草图函数包括为相似数据段返回相似数值的一个或多个函数。
47.如权利要求42所述的方法,其中所述草图函数包括能够为相似数据段返回相同数值的一个或多个函数。
48.如权利要求42所述的方法,其中所述草图函数包括能够为相似数据段返回相似数值的一个或多个函数。
49.如权利要求48所述的方法,其中基于以下方法中的一个或多个将草图函数值确定为相似数字差、海明距离、局部性敏感散列或最近邻搜索。
50.如权利要求34所述的方法,其中所述第二先前段与除了所述第三先前数据段之外的一个或多个先前段相似。
51.如权利要求50所述的方法,其中所述delta压缩系统进一步包括计算所述第二数据段的编码。
52.如权利要求51所述的方法,其中所述编码至少部分基于所述第三先前数据段以及一个或多个附加相似的先前数据段。
53.如权利要求50所述的方法,其中至少部分基于以下中的一个或多个来标识所述一个或多个先前数据段和第三先前数据段时间局部性、空间局部性、便于访问、预期压缩或者其它压缩段的选择频率。
54.如权利要求观所述的方法,其中所述第三先前数据段被存储为第四先前数据段的编码。
55.一种用于处理数据的计算机程序产品,所述计算机程序产品被实现在计算机可读存储介质中并且包括计算机指令,所述计算机指令用于确定第一数据段与第一先前数据段相同;和确定未被确定为与第二先前数据段相同的第二数据段与第三先前数据段相似。
全文摘要
公开了身份副本删除之后的delta压缩。第一数据段被确定为与第一先前数据段相同。未被确定为与第二先前数据段相同的第二数据段然后被确定为与第三先前数据段相似。
文档编号G06F7/00GK102246137SQ200980145334
公开日2011年11月16日 申请日期2009年10月2日 优先权日2008年11月14日
发明者K. 李 E., 华莱士 G., 李 K., B. 朱 M., 黃 M., 希拉内 P. 申请人:Emc公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1