CN103377137A - 使用增强的频繁块检测进行存储去重的方法和*** - Google Patents
使用增强的频繁块检测进行存储去重的方法和*** Download PDFInfo
- Publication number
- CN103377137A CN103377137A CN2013101541679A CN201310154167A CN103377137A CN 103377137 A CN103377137 A CN 103377137A CN 2013101541679 A CN2013101541679 A CN 2013101541679A CN 201310154167 A CN201310154167 A CN 201310154167A CN 103377137 A CN103377137 A CN 103377137A
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- data
- list item
- shadow
- tabulation
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种使用增强的频繁块检测进行存储去重的方法和***。检测数据重复包括维护包含一个或多个表项的指纹目录,每个表项包括数据块的数据指纹和数据位置。每个表项与出现计数属性关联,所述出现计数属性是所述指纹在到达的数据块中出现的频繁程度的指示。保留所述目录中的较高频率表项,同时也考虑数据访问的近因。数据重复检测器检测新块的数据指纹与所述指纹目录内的表项中包含的数据指纹相同。
Description
技术领域
本发明一般地涉及存储***中的数据缩减,更具体地说,涉及使用增强的频繁块检测进行存储去重(deduplicating)。
背景技术
存储***用于诸如企业计算***之类的信息技术环境。因为信息技术***管理员通常对提高数据存储效率感兴趣,所以许多现代存储***都提供了数据缩减以便提高存储效率并节省存储。数据缩减技术越来越多地用于在更少的存储空间中存储主数据。数据缩减和检索的效率是存储***性能的一个重要因素。
发明内容
本发明的实施例提供了一种具有增强的频繁块检测的存储去重***。根据本发明的一个实施例,检测数据重复包括维护包含一个或多个表项的指纹目录,每个表项包括数据块的数据指纹和数据位置。每个表项与出现计数(seen-count)属性关联,所述出现计数属性是所述指纹在到达的数据块中出现的频繁程度的指示。保留所述目录中的较高频率表项,同时也考虑数据访问的近因(recency)。用于检测数据重复的***检测新块的数据指纹与所述指纹目录内的表项中包含的数据指纹相同。
将参考此处的附图和详细描述理解本发明的这些和其它方面、特性和优点,并且将借助在所附权利要求中特别指出的各种元素和组合来实现它们。将理解,对本发明的附图和详细说明的上述一般描述和以下简要描述都是本发明的示例性的和说明性的优选实施例,而并非是对如所要求保护的本发明的限制。
附图说明
在说明书结尾处的权利要求中具体指出并明确要求保护了被视为本发明的主题。从下面结合附图的详细描述,本发明的上述和其它目标、特性和优点将变得显而易见,这些附图是:
图1是示出根据本发明的一个实施例的用于存储***中的数据去重的网络环境的一个实例的方块图;
图2是示出如图1中所示的根据本发明的一个实施例的使用数据去重过程的服务器的一个实例的方块图;
图3示出了根据本发明的一个实施例的实现数据去重的存储***的组件的方块图;
图4是示出根据本发明的一个实施例的数据去重过程的流程图;以及
图5示出了根据本发明的一个实施例的用于数据去重***的实例影子列表(shadow list)结构。
详细描述通过实例的方式参考附图解释了本发明的优选实施例以及优点和特性。
具体实施方式
通过参考以下结合附图(构成本公开的一部分)的对本发明的详细描述,可以更容易地理解本发明。将理解,本发明并不限于在此描述和/或示出的特定设备、方法、条件或参数,并且在此使用的术语只是为了通过实例的方式描述特定实施例,而并非旨在作为所要求保护的本发明的限制。
本发明的实施例涉及使用增强的频繁块检测进行存储去重。去重是主数据存储的一个重要特性,因为在某些情况下,它可以显著降低数据存储***的大小和成本,该数据存储***足够大以存储给定数据体。去重技术检测相同数据在不同位置中的多个实例,仅存储一次完整数据,并使用对这一位置的多个引用来记录所述多个实例。当主机或应用或用户从这多个实例的任何一个中检索数据时,存储***采用所述引用对一个存储副本进行寻址,并将数据返回主机。因此,重复抑制对使用存储的层来说是透明的。
有效的去重取决于检测重复数据的存在。存储***维护一个目录,所述目录记录将何种数据内容存储在何种位置处。内容在目录中由指纹表示,所述指纹是通过散列函数从数据计算的数值。构造所述散列函数,使得向存储***提供的本身不同的两个数据单元在任何时候都极不可能具有相同的指纹值。所述目录包含将数据位置与存储在该处的数据的指纹关联的映射。它提供一种机制以便供应指纹并判定该指纹是否已为存储***所知,并且如果如此,则判定什么位置具有包含该指纹的数据。这用于处理新写入的数据以便确定数据内容是新的还是重复的,并且如果是重复的,则存储对现有位置的引用而不是存储该数据。
对于主存储***,写入操作具有高性能至关重要,因此通常无需大量I/O操作以在目录中执行查找。仅需使用快速存储器(例如DRAM,其数量有限)中的数据为大多数目录查找操作提供服务。在处于典型使用情况下的具有正常大小和成本的存储***中,DRAM量的大小只是足以保留所有潜在目录表项的相当小的一部分。
因此,如果目录完全在存储器中(以避免磁盘I/O执行成本),则必须选择保留哪些表项以及丢弃哪些表项,以便最大化使用有限存储器资源的收益。如果针对目录的一部分使用磁盘或其它慢于DRAM的存储装置,则仍然需要为每个保留的目录表项分配某一数量的DRAM空间,使得可以在没有过多I/O的情况下定位磁盘上的数据。为此,仍然需要选择要保留的某些表项以及要丢弃的其它表项。
用于选择要***、保留和丢弃哪些表项的过程对去重***成功实现其降低存储***成本的目标具有重要影响。本发明的一个实施例提供了一种具有增强的频繁块检测的存储去重***,该***解决了选择要***、保留和丢弃哪些目录表项。所述目录表项记录将什么数据内容存储在存储***内的什么位置处。
根据本发明的一个实施例,所述存储去重***在接收重复实例时,增加了重复数据块仍在目录的活动部分中的可能性。因此,对于存储给定数据体的存储***,所述存储去重***产生较高的去重率和较低的成本。
用于选择要保留哪些数据的现有策略包括保留全部、FIFO、LRU和批量LRU。保留全部策略从不丢弃表项,但在写入更多的数据时无限扩展目录大小。这具有严重的缺点:随着***变满,用于查找的磁盘I/O开销量逐渐增加,并且性能变得不可接受。FIFO策略保留固定数量的目录表项,在必要时丢弃驻留最久的表项。LRU策略丢弃那些自***或用于已发现的重复以来时间最长的表项。批量LRU类似于LRU,只是在接近时间创建的一组表项作为组而被丢弃,选择自任何成员被***或用于已发现的重复以来时间最长的组。这些基于近因的策略具有的缺点是:新数据的激增能够很容易地逐出可能在中期具有匹配的表项。
基于近因的策略通常与跟踪动态I/O工作负载的高速缓存关联,并且它们尝试根据最近访问模式预测将访问哪些数据。但是,预测哪些数据最可能是***中现有数据的重复取决于其它参数,例如***中已经存在给定数据的多少次重复。即,过去重复的证据是用于将来重复的良好预测器。
本发明的一个实施例应用频率敏感的策略以便保留目录元素。本发明将有关针对已发现的重复使用多少次给定表项的感知整合到所述策略中以便保留和丢弃目录表项。已使用的表项(即,用于发现重复并减少存储消耗的表项)比未使用的表项(在首次写入数据及其签名时创建,但没有后续使用)具有更长的保留期。具体地说,如果在大约首次***表项B时使用表项A,并且在没有使用的情况下丢弃B,则直到晚于丢弃B的很长时间才丢弃A。此外,多次使用的表项通常比仅使用一次的表项保留更长的时间。因此,例如,使用五次的表项在其最后一次使用之后的保留时间远长于仅使用一次的表项。
因此,根据本发明的一个实施例,从历史已知被反复重用的内容将被保留,即使在使用之间注入不相关的内容流。大型重复块通常被嵌入在非重复数据集合中,这些集合足够长以便在使用基于近因的策略进行表项逐出时,导致重复内容被清仓(flush out)以实现典型目录大小。本发明的一个实施例延长了在***中记住指纹的时段,方式为:使用概率性影子列表以记住有关指纹的关键信息,使得如果再次查找该指纹,则尽量不错过去重的机会。
现在参考附图,图1示出了使用数据去重***100(与本发明的一个优选实施例结合使用)的信息技术***10的基本组件的一个实例。***10包括服务器11以及远程设备15和17-20,所述远程设备可以使用本发明的数据去重***100。
图2是示出根据本发明的一个实施例的使用数据去重***100的一个实施例的服务器11(如图1中所示)的实例的方块图。根据本发明的一个实施例,数据去重***100使用数据去重过程以便在文件***中缩减数据。在另一个实施例中,数据去重***100可以被实现为如图1中所示的独立***。
在一个实施例中,数据去重***100可用于当前存储平台,并且通过允许配置将更多存储装置(例如,磁盘)连接到存储***的控制器子***,降低许多配置的每千吉字节成本。
参考图3,在一种实施方式中,存储***11包括所述数据去重***100,并还包括前端模块101,在该模块处接收要写入的数据块以及所述数据要写入到的逻辑地址。存储***11还包括后端模块102,通过该模块将数据块写入到存储位置102A,其中所述写入包括消耗物理存储空间。
存储***11还包括映射控制器模块103,该模块记录逻辑地址与存储位置之间的对应性。在写入时更改所述映射,并参考所述映射以便读取。
存储***11还包括重复检测器104、包括指纹目录的指纹控制器模块105,以及包括影子列表的影子列表控制器模块106。指纹目录105包括从签名到存储位置的映射服务。目录105中的每个表项包含数据块的指纹和存储位置。每个表项还与出现计数属性关联,所述出现计数属性通常是指纹在到达的数据块中出现的频繁程度的指示。
在本发明的一个实施例中,所述出现计数属性提供一种机制以便区分出现多次的表项(其数据指纹被认为针对至少两个块存在)与出现一次的表项(迄今为止针对其处理的块被认为仅包含该数据指纹一次)。所述出现计数属性还使能区分较高和较低倍数的计数,例如区分可能出现至少五次的指纹与可能仅出现两次或三次的指纹。使用术语“认为”和“可能”,因为出现计数属性无需是确切的指示。使用出现计数属性维护指纹目录105,以便优先保留较高频率表项,同时也考虑访问的近因。
在本发明的一个实施例中,影子列表106提供指纹值的记录,这些指纹值已经在过去从指纹目录105中删除或者可能在将来添加到指纹目录105中。在一个实施例中,影子列表106中的某些值并不在指纹目录105中(不需要影子列表中的任何值都不在指纹目录中)。
与指纹目录105相比,影子列表106针对每个指纹值消耗少得多的空间,因为影子列表106不保留存储位置并且不提供准确性保证。影子列表106的目的是更长时间地记住那些已经出现的指纹值,以便识别和保留更大部分的那些重复多次的指纹值。从影子列表106检索指纹时,意味着该指纹已经出现至少两次(虚假肯定(false positive)除外),并且为产生的表项提供机会以便在指纹目录105中建立稳定存在。
在本发明的一个实施例中,影子列表106包括概率性集合-对象(set-object)数据结构。即,影子列表106是计算机***资源的分配,其具有关联的***指纹和查找指纹的方法。影子列表106还可以包括删除指纹的方法。在影子列表106中查找的结果是肯定或否定答案。否定答案意味着所述指纹从未被***影子列表106中,或者在最后一次***之后被删除,或者在最后一次***之后被逐出。肯定答案意味着所述指纹被***并在最后一次***影子列表106中之后既未被删除也未被逐出,或者这是不准确的肯定答案的情况,也称为虚假肯定。将预期的虚假肯定结果率设置为很小,并将其整合到设计中(实例值可能为0.1%,即1000次查找中一个虚假肯定结果)。
根据本发明的一个实施例的影子列表106的构造从根本上不同于页缓存算法中的历史缓冲器的构造。对于页缓存问题,可以通过省略数据页而使表项小得多,并且在比较小的空间中保存深层历史是直接的。但是,根据本发明,指纹目录105中的表项并不比指纹本身大很多。概率性影子列表106的引入是实现本发明优势的关键。
图4示出了根据本发明的一个实施例的使用增强的频繁块检测进行存储去重的去重过程50。根据过程方块51,当接收到要写入的数据块时,重复检测器104从所接收的数据计算指纹。根据过程方块52,重复检测器104使用所计算的指纹作为关键字,在指纹目录105中进行查找操作。
根据过程方块53,如果在指纹目录105中发现匹配表项,则将结果称为已发现的重复。根据过程方块54,向映射模块103通知与所接收的写入的逻辑地址关联的内容对应于指纹目录105所报告的存储位置。在一个实施例中,映射控制器执行验证处理以便确保已发现的重复有效,并且如果验证失败,则所述过程继续,好像未发现重复那样。可能例如因为并发操作而需要验证。成功验证时,在过程方块55,映射模块103记录对应性以供将来I/O中使用。此外,更新指纹目录105以递增已发现的目录表项的出现计数属性。这可以通过更改属于该表项的位字段,或者通过将该表项移动到目录的另一个区域来实现。所述过程完成处理新写入的块,并可以等待另一个要写入的数据块到达。当此类新块到达时,所述过程可以再次继续到过程方块51。
如果在过程方块53,未在指纹目录105中发现匹配表项,则根据过程方块56,由后端模块102写入块,并检查影子列表106以查找数据指纹。在过程方块57,如果在影子列表106中查找的结果是肯定的,则这被解释为指示存储***在先前块中接收到该指纹,尽管目录105中未提供该先前块的存储位置。
向指纹目录105分配有限数量的空间。如果需要表项***但没有足够的空间,则在过程方块58,取消填充过程包括从目录105中逐出已经存在的表项。选择要逐出哪个表项时,以不同方式处理那些出现一次的表项和那些出现多次的表项。通常,那些已经发现多次的表项被保留更长时间。不同实施例将选择两个或更多个出现计数类别以进行区别处理。在出现计数类别中,逐出通常遵循LRU***,然而以适当的形式防止过多的存储器要求。
在过程方块60,在指纹目录105中创建新表项,该表项包含指纹和存储位置并且出现计数属性的值为出现两次,并在一个优选实施例中,修改影子列表106以删除该指纹。所述过程完成处理新写入的块,并可以等待另一个要写入的数据块到达。当此类新块到达时,所述过程可以再次继续到过程方块51。
如果在影子列表106中查找的结果是否定的,则在过程方块59,将所述指纹记录在数据结构105或106之一中,以便如果相同指纹随后到达,则有机会检测到第二次到达是第一次的重复。在一个实施例中,此时将所述指纹输入到影子列表106中。在另一个实施例中,此时在指纹目录105中创建表项,该表项包含所述指纹和存储位置并且出现计数属性的值为出现一次。在另一个实施例中,采取这两个操作。优选的操作选择取决于对相同指纹的重复引用的统计特性。此时在指纹目录105中创建表项会向表项创建的近因中引入权重,而将该表项添加到影子列表106中会产生更大的频率权重。
可以使用许多不同的策略区分出现计数类别。一种策略是跟踪类别中的表项或表项组的存在时间(采用时间单位或存储***执行的总I/O),并维护类别之间的逐出时存在时间(age-at-eviction)的固定比率。例如,对于为50的比率,当从从未发现的类别(never-found category)逐出存在4小时的表项时,发现一次的类别(found-once category)将逐出那些在至少200小时之前发现的表项。绝对逐出时存在时间数量将取决于可用的存储器和所需逐出速率。在该方案中,分配给不同类别的存储器将根据需要变化以维持该比率。此外,可以维持固定的表项计数比率,或者创建组合的存在时间比率和存储器限制方案。在一个实施例中,从目录105中逐出出现一次的表项时,将该表项包含的指纹添加到影子列表106中。
在一个实施例中,影子列表106中的指纹可以与存在时间组(agegroup)关联,并且对要逐出的表项的选择可以考虑该存在时间组。影子列表106通常还具有固定大小,因此需要不时地执行取消填充(即,删除某些指纹以便为更多要添加的指纹腾出空间)。
在一个实施例中,取消填充过程包括从影子列表106逐出特定表项。逐出可以是基于存在时间的、随机的或是侧重于存在时间的随机逐出。严格的基于存在时间(即,FIFO)的逐出将需要大量空间来记录***顺序,并且最好被避免。在一个实施例中,取消填充操作并不特定于个体指纹,然而具有的结果是减少将针对其返回肯定结果的指纹值的数量。例如,在诸如布隆过滤器(Bloom filter)之类的结构中,取消填充可以包括清除某些位,但不容易标识因此被删除的特定值。
在一个实施例中,从指纹目录105中逐出出现多次的表项时,该表项被视为已经尝试在上层具有稳定性并尚未实现稳定性,并且该表项被简单地丢弃。在另一个实施例中,将指纹添加到影子列表(影子目录)106中。
在一个优选实施例中,影子列表106包括有关折叠关键字(collapsedkey)的集合-对象数据结构。这是对应于数学集合的数据结构,该集合的元素是可以使用指定数量的位表示的二进制数。所述数据结构提供用于***、删除和查找这些元素的方法。影子列表控制器106用作该集合元素的值是从数据指纹中获得的折叠关键字。所述折叠关键字在比指纹本身小的命名空间中包括值。例如,指纹可以包括使用散列函数计算的256位数,折叠关键字可以包括通过从较长数字选择特定位而提取的37位数。占用限制可能为0.1%,意味着当达到该占用时,每个***必须与逐出匹配。
在一个实施例中,指纹控制器105保留较高频率的表项,同时也考虑数据访问的近因。重复检测器模块104被配置为检测新块的数据指纹何时与指纹目录内的表项中包含的数据指纹相同。
在一个实施例中,指纹目录包括已经发现的出现多次的表项和在较近的时间***的出现一次的表项,并且指纹控制器远在出现多次的表项之前丢弃出现一次的表项。出现计数属性提供出现多次的表项与出现一次的表项之间的区别。指纹控制器105远在出现多次的表项之前丢弃出现一次的表项。
在一个实施例中,影子列表控制器106被配置为执行功能,包括:检测新块的数据指纹何时包含在影子列表中,从影子列表中删除所述新块的数据指纹,并向指纹目录中添加包含所述新块的数据指纹和数据位置的表项。
在一个实施例中,影子列表控制器106还向影子列表中添加重复检测器104未在指纹目录中发现其数据指纹的新块的数据指纹。在一个实施例中,指纹控制器105从指纹目录中丢弃出现一次的表项,并向影子列表中添加来自所丢弃的表项的数据指纹。在一个实施例中,影子列表控制器106还向影子列表中添加重复检测器104未在指纹目录中发现其数据指纹的新块的数据指纹,并且指纹控制器105从指纹目录中丢弃出现一次的表项,并向影子列表中添加来自所丢弃的表项的数据指纹。
作为一个实例,根据本发明的一个实施例,考虑具有可用于重复检测的1024MB的存储节点。基于32字节指纹,估计指纹目录将针对每个表项(包括任何索引结构)需要50个字节。例如,可以为指纹目录分配768MB,从而容纳超过1500万个表项。将其余的256MB分配给影子列表。对于影子列表,如果预定每个表项2个字节,则可以实现好于大约0.1%的虚假肯定率。一种方法包括例如通过从指纹内的固定位置提取37位(可变但适合该分析的数值)而将指纹值映射到具有较小大小的折叠关键字,然后针对可能的折叠关键字值实现精确的集合-对象数据结构。此类方法针对任何探测值(其折叠关键字在该集合中)产生肯定结果。当散列计算从包含重复块的实际数据流中生成探测值时,所述肯定结果通常是产生的正确肯定,因为先前已经在影子列表106中***探测指纹。当随机生成探测值时,先前随机选择并***相同值的可能性极小。对于所述随机探测,肯定结果最可能是虚假肯定。虚假肯定率对应于集合中的占用率(α):如果占用率为0.5,则意味着***50%的全部可能值,然后随机探测散列具有50%的可能性与***的折叠关键字匹配。目标是针对两个值都实现0.1%。
表示此类集合对象所需的位数的信息理论基础是作为每表项位数的log[底数2](1/α),其中α表示占用率。在该实例中,α为0.001(0.1%),每个表项的最小大小为10位,在预定每个表项16位的范围之外。额外的6位让出空间以实现在计算上更为可行的实施方式。
图5示出了根据本发明的一个实施例的影子列表106(值以十六进制数字示出)的一个实例实施方式。在示出的实例中,影子列表将256MB的存储器分配给400万个段,每个段64字节。示出256位散列,提取37位作为折叠关键字。在这37个位位置中,选择22位作为折叠关键字的头部,其余的15位是尾部。将256MB空间分为大约400万个段,每个段64字节,并且折叠关键字的22位头部选择所述段。在所述段内部存储尾部列表。用于存储该列表的一种简单方法是将所述段分为32个单元,每个单元两个字节(16位)。每个单元可以在其低位的15位中包含一个尾部,并且高位的位指示所述单元是否包含尾部。查找将读取和测试每个单元;***将使值移位并附加***的值。15位尾部具有32,768个可能值。在可能的32,768个值中填充32个表项在结构上实施0.1%的占用限制。其它变型可以在每行中使用更高效的编码,以便每行可以使用更少的存储器。影子列表106的另一种可能结构是布隆过滤器或布隆过滤器的组合。
还可以存在一种变型,其中影子列表106长大并输出到磁盘。然后,并没有如上所述那样在行内参考。相反,后台进程读取影子列表106并在其中查找重复。可以通过分别处理不同的命名空间分区,使用有限的存储器执行该操作。本发明的各实施例提供所述影子列表,并远在出现多次的表项之前从指纹目录中丢弃出现一次的表项。
在图1的***10中,远程设备15和17-20中的每一个都具有应用并可以具有本地数据库16。服务器11可以执行应用,远程设备15和17-20可以借助网络13分别通过连接14(A-F)访问数据库12。在一种实施方式中,服务器11执行用于计算机网络的软件,并控制对它本身和数据库12的访问。
远程设备15和17-20可以通过网络13访问数据库12,网络13包括但不限于:因特网、局域网(LAN)、广域网(WAN)、通过使用调制解调器的电话线路(POTS)、蓝牙、WiFi、WiMAX、蜂窝、光、卫星、射频(RF)、以太网、磁感应、同轴电缆、RS-485等或其它类似的网络。服务器11还可以连接到组织中的LAN。
远程设备15和17-20可以均位于远程站点处。远程设备15和17-20包括但不限于PC、工作站、膝上型计算机、手持式计算机、袖珍PC、PDA、寻呼机、无线应用协议(WAP)设备、非WAP设备、蜂窝电话、掌上型设备、打印设备等。当远程设备15和17-20之一处的用户需要从服务器11处的数据库12访问数据时,远程设备15和17-20通过网络13通信以访问服务器11和数据库12。
第三方计算机***21和数据库22可以访问服务器11(图2)。从第三方计算机***21和数据库22获得的数据可以被存储在服务器11和数据库12中,以便随后为远程设备15和17-20上的用户提供访问。还将构想,对于某些类型的数据,远程设备15和17-20可以直接使用网络13访问第三方计算机***21和数据库22。
在一个实施例中,服务器11包括存储***。通常,在硬件架构方面,如图2中所示,服务器11包括处理器41、计算机可读介质(例如存储器42)以及一个或多个输入和/或输出(I/O)设备(或***设备),它们经由本地接口43在通信上耦合。本地接口43例如可以是(但不限于)一条或多条总线或其它有线或无线连接,如本领域所公知的那样。本地接口43可以具有其它元件(为简单起见而被省略),例如控制器、缓冲器(高速缓存)、驱动器、中继器和接收器,以实现通信。此外,本地接口43可以包括地址、控制和/或数据连接以便在上述组件之间实现适当的通信。
处理器41是用于执行可以存储在存储器42中的软件的硬件设备。处理器41可以是几乎任何定制或商用处理器、中央处理单元(CPU)、数字信号处理器(DSP),或者是与服务器11关联的若干处理器之间的辅助处理器,并且可以是基于半导体的微处理器(以微芯片形式)或微处理器。
存储器42可以包括以下各项的任何一个或组合:易失性存储器元件(例如,随机存取存储器(RAM),例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)和非易失性存储器元件(例如,只读存储器(ROM)、可擦写可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、光盘只读存储器(CD-ROM)、磁盘、软盘、盒带、卡带等)。此外,存储器42可以包括电、磁、光和/或其它类型的存储介质。要指出的是,存储器42可以具有分布式架构,其中各组件彼此远离,但可以由处理器41访问。
存储器42中的软件可以包括一个或多个单独程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。在图2中示出的实例中,存储器42中的软件包括适合的操作***(O/S)51和本发明的数据去重***100。数据去重***100包括在此描述的功能组件和过程方块。
操作***51基本上控制其它计算机程序(例如数据去重***100)的执行,并且提供调度、输入/输出控制、文件和数据管理、存储器管理以及通信控制和相关服务。但是,本发明的数据去重***100适用于所有其它商用操作***。
数据去重***100可以包括源程序、可执行程序(目标代码)、脚本,或者任何其它包括一组要执行的计算机程序指令的实体。当数据去重***100是源程序时,则所述程序通常通过编译器、汇编器、解释器等转换,这些组件可以包括也可以不包括在存储器42中,以便与O/S51结合而正确运行。此外,数据去重***100可以被编写为(a)面向对象的编程语言,其具有数据类和方法类,或者(b)过程编程语言,其具有例程、子例程和/或函数。所述计算机程序指令可以完全地在服务器11上执行、部分地在服务器11上执行、作为独立的软件包执行、部分地在服务器11上并部分地在远程计算机上执行,或者完全地在远程计算机或服务器上执行。在后者的情况中,所述远程计算机可以通过包括LAN或WAN的任何类型网络与用户的计算机相连,或者可以与外部计算机进行连接(例如,使用因特网服务提供商通过因特网连接)。
这些计算机程序指令也可以被存储在能够引导计算机、其它可编程数据处理装置或其它设备以特定方式执行功能的计算机可读介质中,以便存储在所述计算机可读介质中的所述指令产生一件包括实现在一个或多个流程图和/或方块图方块中指定的功能/操作的指令的制品。
所述计算机程序指令还可被加载到计算机、其它可编程数据处理装置或其它设备,以导致在所述计算机、其它可编程装置或其它设备上执行一系列操作步骤以产生计算机实现的过程,从而在所述计算机或其它可编程装置上执行的所述指令提供用于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的过程。
所述I/O设备可以包括输入设备,例如但不限于鼠标44、键盘45、扫描仪(未示出)、麦克风(未示出)等。此外,所述I/O设备还可以包括输出设备,例如但不限于打印机(未示出)、显示器46等。最后,所述I/O设备可以还包括传送输入和输出的设备,例如但不限于网络接口卡(NIC)或调制器/解调器47(用于访问远程设备、其它文件、设备、***或网络)、RF或其它收发器(未示出)、电话接口(未示出)、桥接器(未示出)、路由器(未示出)等。
如果服务器11是PC、工作站、服务器、智能设备等,则存储器42中的软件可以还包括基本输入输出***(BIOS)(为简单起见而被省略)。BIOS是一组必需软件例程,可在启动时初始化和测试硬件,启动O/S51,并支持在硬件设备之间传输数据。BIOS被存储在某种类型的只读存储器(例如ROM、PROM、EPROM、EEPROM等)中,以便可以在激活服务器11时执行BIOS。
当服务器11在操作中时,处理器41被配置为执行存储在存储器42中的软件,以便向/从存储器42传送数据,并且通常根据所述软件控制服务器11的操作。数据去重***100和O/S51全部或部分地由处理器41读取,可能在处理器41中被缓冲,然后被执行。
当数据去重***100以软件实现时(如图2中所示),应指出,数据去重***100可以包含在任何计算机可读介质中,以便由指令执行***、装置或设备(例如基于计算机的***、包含处理器的***,或者其它能够从指令执行***、装置或设备取回指令并执行指令的***)使用或与指令执行***、装置或设备结合。
如本领域的技术人员将理解的,本发明的各方面可以体现为***、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了在此通常可以被称为“电路”、“模块”或“***”的软件和硬件方面的实施例的形式。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质(在介质中包含计算机可读程序代码)中的计算机程序产品的形式。
在本文档的上下文中,“计算机可读介质”可以是任何能够存储、传送、传播或传输由指令执行***、装置或设备使用或与指令执行***、装置或设备结合的程序的装置。所述计算机可读介质例如可以是(但不限于)电、磁、光、电磁、红外线或半导体***、装置、设备、传播介质,或者其它能够包含或存储由计算机相关***或方法使用或与计算机相关***或方法结合的计算机程序的物理设备或装置。
所述计算机可读介质的更具体的实例(非穷举列表)将包括以下项:具有一条或多条线的电连接(电)、便携式计算机软盘(磁或光)、RAM(电)、ROM(电)、EPROM、EEPROM或闪存(电)、光纤(光)和CDROM、CD R/W(光)。要指出的是,所述计算机可读介质甚至可以是程序被打印或穿孔(与在纸带、穿孔卡等中一样)在其上的纸张或其它适合的介质,因为所述程序可以通过例如光扫描纸张或其它介质被电子地捕获,然后被编译、解释或另外以适合的方式被处理(如果必要),然后被存储在计算机存储器中。
计算机可读信号介质可以包括其中包含计算机可读程序代码(例如,在基带中或作为载波的一部分)的传播数据信号。此类传播信号可以采取各种形式中的任一种,包括但不限于电磁、光或其中任意适合的组合。计算机可读信号介质可以是任何不属于计算机可读存储介质并且能够传送、传播或传输由指令执行***、装置或设备使用或与指令执行***、装置或设备结合的程序的计算机可读介质。
可以使用任何适当的介质(包括但不限于无线、线缆、光缆、RF等或上述任意适合的组合)来传输包含在计算机可读介质中的程序代码。
在一个备选实施例中,如果数据去重***100以硬件实现,则自适应数据缩减***100可以使用以下技术中的任何一种或组合实现,每种技术都是本领域所公知的:具有用于针对数据信号实现逻辑功能的逻辑门的离散逻辑电路(多个)、具有适当的组合逻辑门的专用集成电路(ASIC)、可编程门阵列(多个)(PGA)、现场可编程门阵列(FPGA)等。
远程设备15和17-20使用例如但不限于因特网浏览器,提供对服务器11和数据库12中的本发明的数据去重***100的访问。在服务器11和数据库12中访问的信息可以以多种不同的形式提供,这些形式包括但不限于ASCII数据、WEB页数据(即,HTML)、XML或其它类型的格式化数据。
如图所示,远程设备15和17-20类似于针对图2描述的服务器11的组件的描述。为简洁起见,远程设备15和17-20可以被称为远程设备15。
下面将参考根据本发明的实施例的方法、装置(***)和计算机程序产品的流程图和/或方块图对本发明的各方面进行描述。将理解,所述流程图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器,以便通过所述计算机或其它可编程数据处理装置的处理器执行的所述指令产生用于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的装置。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此所使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组的存在或增加。
附图中的流程图和方块图示出了根据本发明的各种实施例的***、方法和计算机程序产品的可能实施方式的架构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还将指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于专用硬件的***或专用硬件和计算机指令的组合来实现。
应强调的是,本发明的上述实施例(具体地说,任何“优选”实施例)只是可能的实施方式实例,仅为了明确理解本发明的原理而给出。
可以在基本不偏离本发明的精神和原理的情况下,对本发明的上述实施例(多个)做出许多变化和修改。所有这些修改和变化在此均旨在被包括在本公开和本发明的范围内,并由以下权利要求保护。
Claims (20)
1.一种用于检测数据重复的方法,所述方法包括:
维护包括一个或多个表项的指纹目录,每个表项包括数据块的数据指纹和数据位置;
将每个所述表项与出现计数属性关联,所述出现计数属性是所述指纹在到达的数据块中出现的频繁程度的指示;
保留较高频率的表项,同时也考虑数据访问的近因;以及
检测新块的数据指纹与所述指纹目录内的表项中包含的数据指纹相同。
2.根据权利要求1的方法,其中:
所述指纹目录包括已经发现的出现多次的表项和在较近的时间***的出现一次的表项,并且指纹模块远在所述出现多次的表项之前丢弃所述出现一次的表项;以及
所述出现计数属性提供出现多次的表项与出现一次的表项之间的区别。
3.根据权利要求2的方法,还包括:
维护包括影子列表的影子列表模块,所述影子列表包括未包含在所述指纹目录中的指纹值的记录;
检测新块的数据指纹包含在所述影子列表中;
从所述影子列表中删除所述新块的数据指纹;以及
向所述指纹目录添加包含所述新块的数据指纹和数据位置的表项。
4.根据权利要求3的方法,还包括:
向所述影子列表中添加重复检测模块未在所述指纹目录中发现其数据指纹的新块的数据指纹。
5.根据权利要求3的方法,还包括:
从所述指纹目录中丢弃出现一次的表项,并向所述影子列表中添加来自所丢弃的表项的数据指纹。
6.根据权利要求3的方法,其中:
所述影子列表进一步包括具有有限错误率的概率性集合-对象数据结构。
7.根据权利要求6的方法,其中:
所述概率性集合-对象数据结构包括有关折叠关键字的集合-对象数据结构。
8.根据权利要求6的方法,其中:
所述概率性集合-对象数据结构包括布隆过滤器。
9.一种用于检测数据重复的装置,所述装置包括:
适于维护包括一个或多个表项的指纹目录的模块,每个表项包括数据块的数据指纹和数据位置;
适于将每个所述表项与出现计数属性关联的模块,所述出现计数属性是所述指纹在到达的数据块中出现的频繁程度的指示;
适于保留较高频率的表项,同时也考虑数据访问的近因的模块;以及
适于检测新块的数据指纹与所述指纹目录内的表项中包含的数据指纹相同的模块。
10.根据权利要求9的装置,其中:
所述指纹目录包括已经发现的出现多次的表项和在较近的时间***的出现一次的表项,并且指纹模块远在所述出现多次的表项之前丢弃所述出现一次的表项;以及
所述出现计数属性提供出现多次的表项与出现一次的表项之间的区别。
11.根据权利要求10的装置,还包括:
适于维护包括影子列表的影子列表模块的模块,所述影子列表包括未包含在所述指纹目录中的指纹值的记录;
适于检测新块的数据指纹包含在所述影子列表中的模块;
适于从所述影子列表中删除所述新块的数据指纹的模块;以及
适于向所述指纹目录添加包含所述新块的数据指纹和数据位置的表项的模块。
12.根据权利要求11的装置,其中:
所述影子列表进一步包括概率性集合-对象数据结构。
13.一种用于检测数据重复的***,所述***包括:
指纹控制器,其维护包括一个或多个表项的指纹目录,每个表项包括存储设备中的数据块的数据指纹和数据位置;
其中每个表项与出现计数属性关联,所述出现计数属性是所述指纹在到达的数据块中出现的频繁程度的指示,并且其中所述指纹控制器保留较高频率的表项,同时也考虑数据访问的近因;以及
重复检测器,其检测新块的数据指纹与所述指纹目录内的表项中包含的数据指纹是否相同。
14.根据权利要求13的***,其中:
所述指纹目录包括已经发现的出现多次的表项和在较近的时间***的出现一次的表项,并且所述指纹控制器远在所述出现多次的表项之前丢弃所述出现一次的表项;以及
所述出现计数属性提供出现多次的表项与出现一次的表项之间的区别。
15.根据权利要求14的***,还包括:
影子列表控制器,其维护影子列表,所述影子列表包括未包含在所述指纹目录中的指纹值的记录;
其中所述影子列表控制器检测新块的数据指纹包含在所述影子列表中,从所述影子列表中删除所述新块的数据指纹,并向所述指纹目录添加包含所述新块的数据指纹和数据位置的表项。
16.根据权利要求15的***,其中:
所述影子列表控制器向所述影子列表中添加所述重复检测器未在所述指纹目录中发现其数据指纹的新块的数据指纹。
17.根据权利要求15的***,其中:
所述指纹控制器从所述指纹目录中丢弃出现一次的表项,并向所述影子列表中添加来自所丢弃的表项的数据指纹。
18.根据权利要求15的***,其中:
所述影子列表进一步包括具有有限错误率的概率性集合-对象数据结构。
19.根据权利要求18的***,其中所述概率性集合-对象数据结构包括有关折叠关键字的集合-对象数据结构。
20.根据权利要求18的***,其中所述概率性集合-对象数据结构包括布隆过滤器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/460,653 US9177028B2 (en) | 2012-04-30 | 2012-04-30 | Deduplicating storage with enhanced frequent-block detection |
US13/460,653 | 2012-04-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103377137A true CN103377137A (zh) | 2013-10-30 |
CN103377137B CN103377137B (zh) | 2016-06-22 |
Family
ID=49323408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310154167.9A Active CN103377137B (zh) | 2012-04-30 | 2013-04-28 | 使用增强的频繁块检测进行存储去重的方法和*** |
Country Status (3)
Country | Link |
---|---|
US (2) | US9177028B2 (zh) |
CN (1) | CN103377137B (zh) |
DE (1) | DE102013206744A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787037A (zh) * | 2016-02-25 | 2016-07-20 | 浪潮(北京)电子信息产业有限公司 | 一种重复数据的删除方法及装置 |
CN110389706A (zh) * | 2018-04-16 | 2019-10-29 | 华为技术有限公司 | 一种指纹回收方法以及存储*** |
CN111228815A (zh) * | 2020-01-17 | 2020-06-05 | 上海莉莉丝科技股份有限公司 | 处理游戏的配置表的方法、装置、存储介质和*** |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9659060B2 (en) | 2012-04-30 | 2017-05-23 | International Business Machines Corporation | Enhancing performance-cost ratio of a primary storage adaptive data reduction system |
CN103020174B (zh) * | 2012-11-28 | 2016-01-06 | 华为技术有限公司 | 相似性分析方法、装置及*** |
WO2015015574A1 (ja) * | 2013-07-30 | 2015-02-05 | 富士通株式会社 | 処理プログラム、処理システムおよび処理方法 |
US9390116B1 (en) * | 2013-09-26 | 2016-07-12 | Emc Corporation | Insertion and eviction schemes for deduplicated cache system of a storage system |
US9336143B1 (en) | 2013-09-26 | 2016-05-10 | Emc Corporation | Indexing a deduplicated cache system by integrating fingerprints of underlying deduplicated storage system |
US9304914B1 (en) | 2013-09-26 | 2016-04-05 | Emc Corporation | Deduplicated cache system of a storage system |
US9760578B2 (en) | 2014-07-23 | 2017-09-12 | International Business Machines Corporation | Lookup-based data block alignment for data deduplication |
US9665287B2 (en) | 2015-09-18 | 2017-05-30 | Alibaba Group Holding Limited | Data deduplication using a solid state drive controller |
US10089358B2 (en) * | 2015-09-21 | 2018-10-02 | The Nielsen Company (Us), Llc | Methods and apparatus to partition data |
US10496543B2 (en) | 2016-03-31 | 2019-12-03 | Samsung Electronics Co., Ltd. | Virtual bucket multiple hash tables for efficient memory in-line deduplication application |
US10678704B2 (en) | 2016-03-29 | 2020-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for enabling larger memory capacity than physical memory size |
US10394764B2 (en) | 2016-03-29 | 2019-08-27 | International Business Machines Corporation | Region-integrated data deduplication implementing a multi-lifetime duplicate finder |
US9983821B2 (en) | 2016-03-29 | 2018-05-29 | Samsung Electronics Co., Ltd. | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application |
US10528284B2 (en) | 2016-03-29 | 2020-01-07 | Samsung Electronics Co., Ltd. | Method and apparatus for enabling larger memory capacity than physical memory size |
US9966152B2 (en) | 2016-03-31 | 2018-05-08 | Samsung Electronics Co., Ltd. | Dedupe DRAM system algorithm architecture |
US10788988B1 (en) | 2016-05-24 | 2020-09-29 | Violin Systems Llc | Controlling block duplicates |
US10565006B2 (en) * | 2016-07-25 | 2020-02-18 | International Business Machines Corporation | Platform for analytic applications |
US10635339B2 (en) * | 2017-05-02 | 2020-04-28 | Smart Ipos, Inc. | Devices, systems, and methods for reducing storage utilization with data deduplication |
US11354247B2 (en) | 2017-11-10 | 2022-06-07 | Smart IOPS, Inc. | Devices, systems, and methods for configuring a storage device with cache |
US11055005B2 (en) | 2018-10-12 | 2021-07-06 | Netapp, Inc. | Background deduplication using trusted fingerprints |
US11907114B2 (en) | 2019-08-18 | 2024-02-20 | Smart IOPS, Inc. | Devices, systems, and methods for dynamically remapping memory addresses |
US11836053B2 (en) | 2021-09-27 | 2023-12-05 | Hewlett Packard Enterprise Development Lp | Resource allocation for synthetic backups |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710323A (zh) * | 2008-09-11 | 2010-05-19 | 威睿公司 | 计算机存储去复制操作 |
US20110029497A1 (en) * | 2009-07-29 | 2011-02-03 | International Business Machines Corporation | Apparatus, System, and Method for Enhanced Block-Level Deduplication |
US20110225191A1 (en) * | 2010-03-10 | 2011-09-15 | Data Domain, Inc. | Index searching using a bloom filter |
CN102378696A (zh) * | 2009-03-30 | 2012-03-14 | 富士胶片株式会社 | 平版印刷版原版 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8526751B2 (en) | 2001-08-24 | 2013-09-03 | International Business Machines Corporation | Managing image storage size |
WO2005103878A2 (en) | 2004-04-26 | 2005-11-03 | Storewiz, Inc. | Method and system for compression of files for storage and operation on compressed files |
US8335760B1 (en) | 2005-02-07 | 2012-12-18 | Hewlett-Packard Development, L. P. | Grid computing system to manage utility service content |
US7539661B2 (en) * | 2005-06-02 | 2009-05-26 | Delphi Technologies, Inc. | Table look-up method with adaptive hashing |
US8412682B2 (en) * | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US20090100195A1 (en) | 2007-10-11 | 2009-04-16 | Barsness Eric L | Methods and Apparatus for Autonomic Compression Level Selection for Backup Environments |
US7962452B2 (en) | 2007-12-28 | 2011-06-14 | International Business Machines Corporation | Data deduplication by separating data from meta data |
US8266114B2 (en) * | 2008-09-22 | 2012-09-11 | Riverbed Technology, Inc. | Log structured content addressable deduplicating storage |
US8392791B2 (en) | 2008-08-08 | 2013-03-05 | George Saliba | Unified data protection and data de-duplication in a storage system |
US20100088296A1 (en) | 2008-10-03 | 2010-04-08 | Netapp, Inc. | System and method for organizing data to facilitate data deduplication |
US8626723B2 (en) * | 2008-10-14 | 2014-01-07 | Vmware, Inc. | Storage-network de-duplication |
US8725946B2 (en) * | 2009-03-23 | 2014-05-13 | Ocz Storage Solutions, Inc. | Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller |
US8140491B2 (en) | 2009-03-26 | 2012-03-20 | International Business Machines Corporation | Storage management through adaptive deduplication |
US20100274772A1 (en) * | 2009-04-23 | 2010-10-28 | Allen Samuels | Compressed data objects referenced via address references and compression references |
US9141621B2 (en) * | 2009-04-30 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Copying a differential data store into temporary storage media in response to a request |
JP5595701B2 (ja) | 2009-09-16 | 2014-09-24 | 株式会社日立製作所 | ファイル管理方法及びストレージシステム |
JP5427533B2 (ja) * | 2009-09-30 | 2014-02-26 | 株式会社日立製作所 | 階層ストレージ管理システムにおける重複ファイルの転送方法及びシステム |
US20110093439A1 (en) * | 2009-10-16 | 2011-04-21 | Fanglu Guo | De-duplication Storage System with Multiple Indices for Efficient File Storage |
AU2010200866B1 (en) | 2010-03-08 | 2010-09-23 | Quantum Corporation | Data reduction indexing |
US8442942B2 (en) | 2010-03-25 | 2013-05-14 | Andrew C. Leppard | Combining hash-based duplication with sub-block differencing to deduplicate data |
US8397080B2 (en) * | 2010-07-29 | 2013-03-12 | Industrial Technology Research Institute | Scalable segment-based data de-duplication system and method for incremental backups |
CN102024032A (zh) | 2010-11-29 | 2011-04-20 | 广州明朝网络科技有限公司 | 一种基于Erlang的分布式数据缓存和持久化的方法和*** |
US8392384B1 (en) * | 2010-12-10 | 2013-03-05 | Symantec Corporation | Method and system of deduplication-based fingerprint index caching |
US8898119B2 (en) * | 2010-12-15 | 2014-11-25 | Netapp, Inc. | Fingerprints datastore and stale fingerprint removal in de-duplication environments |
US8380681B2 (en) | 2010-12-16 | 2013-02-19 | Microsoft Corporation | Extensible pipeline for data deduplication |
US9116909B2 (en) * | 2010-12-29 | 2015-08-25 | Amazon Technologies, Inc. | Reduced bandwidth data uploading in data systems |
CN102156736A (zh) | 2011-04-12 | 2011-08-17 | 上海电通信息服务有限公司 | Sap***与sql数据库之间数据传输的方法 |
US9292530B2 (en) * | 2011-06-14 | 2016-03-22 | Netapp, Inc. | Object-level identification of duplicate data in a storage system |
US8589640B2 (en) * | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US8930307B2 (en) * | 2011-09-30 | 2015-01-06 | Pure Storage, Inc. | Method for removing duplicate data from a storage array |
US9048862B2 (en) | 2012-04-11 | 2015-06-02 | Netapp, Inc. | Systems and methods for selecting data compression for storage data in a storage system |
US9659060B2 (en) | 2012-04-30 | 2017-05-23 | International Business Machines Corporation | Enhancing performance-cost ratio of a primary storage adaptive data reduction system |
-
2012
- 2012-04-30 US US13/460,653 patent/US9177028B2/en not_active Expired - Fee Related
-
2013
- 2013-04-16 DE DE102013206744A patent/DE102013206744A1/de not_active Ceased
- 2013-04-28 CN CN201310154167.9A patent/CN103377137B/zh active Active
-
2015
- 2015-08-25 US US14/835,268 patent/US9767140B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710323A (zh) * | 2008-09-11 | 2010-05-19 | 威睿公司 | 计算机存储去复制操作 |
CN102378696A (zh) * | 2009-03-30 | 2012-03-14 | 富士胶片株式会社 | 平版印刷版原版 |
US20110029497A1 (en) * | 2009-07-29 | 2011-02-03 | International Business Machines Corporation | Apparatus, System, and Method for Enhanced Block-Level Deduplication |
US20110225191A1 (en) * | 2010-03-10 | 2011-09-15 | Data Domain, Inc. | Index searching using a bloom filter |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787037A (zh) * | 2016-02-25 | 2016-07-20 | 浪潮(北京)电子信息产业有限公司 | 一种重复数据的删除方法及装置 |
CN105787037B (zh) * | 2016-02-25 | 2019-03-15 | 浪潮(北京)电子信息产业有限公司 | 一种重复数据的删除方法及装置 |
CN110389706A (zh) * | 2018-04-16 | 2019-10-29 | 华为技术有限公司 | 一种指纹回收方法以及存储*** |
CN110389706B (zh) * | 2018-04-16 | 2021-05-11 | 华为技术有限公司 | 一种指纹回收方法以及存储*** |
CN111228815A (zh) * | 2020-01-17 | 2020-06-05 | 上海莉莉丝科技股份有限公司 | 处理游戏的配置表的方法、装置、存储介质和*** |
CN111228815B (zh) * | 2020-01-17 | 2023-08-11 | 上海莉莉丝科技股份有限公司 | 处理游戏的配置表的方法、装置、存储介质和*** |
Also Published As
Publication number | Publication date |
---|---|
US20150363457A1 (en) | 2015-12-17 |
US9767140B2 (en) | 2017-09-19 |
CN103377137B (zh) | 2016-06-22 |
DE102013206744A1 (de) | 2013-10-31 |
US9177028B2 (en) | 2015-11-03 |
US20130290277A1 (en) | 2013-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377137A (zh) | 使用增强的频繁块检测进行存储去重的方法和*** | |
CN104281533B (zh) | 一种存储数据的方法及装置 | |
CN1760875B (zh) | 基于文件存取特性在各种类型的存储卷之间透明迁移文件 | |
US8352429B1 (en) | Systems and methods for managing portions of files in multi-tier storage systems | |
CN103019887B (zh) | 数据备份方法及装置 | |
US20090089334A1 (en) | Lazy updates to indexes in a database | |
CN106662981A (zh) | 存储设备、程序和信息处理方法 | |
CN104809237A (zh) | LSM-tree索引的优化方法和装置 | |
CN106708975A (zh) | 商品库存信息的处理方法及*** | |
US8225060B2 (en) | Data de-duplication by predicting the locations of sub-blocks within the repository | |
CN112148217B (zh) | 全闪存储***的重删元数据的缓存方法、装置及介质 | |
CN104050057B (zh) | 一种历史感知的数据去重碎片消除方法与*** | |
Chakraborttii et al. | Reducing write amplification in flash by death-time prediction of logical block addresses | |
CN107944041A (zh) | 一种hdfs的存储结构优化方法 | |
CN102542036B (zh) | 使用优化的表 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN109408416B (zh) | 一种地址映射表项页管理方法及装置 | |
KR100858157B1 (ko) | 맵 업데이트 시스템 및 방법, 방법 프로그램을 기록한저장매체, 사용자 단말기 | |
CN115617255A (zh) | 缓存文件的管理方法和管理装置 | |
Mukherjee | Non-replicated dynamic fragment allocation in distributed database systems | |
CN115878625A (zh) | 数据处理方法和装置及电子设备 | |
CN115509446A (zh) | 元数据垃圾识别方法、装置和设备 | |
CN107846327A (zh) | 一种网管性能数据的处理方法及装置 | |
WO2020238750A1 (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
GB2614676A (en) | Managing least-recently-used data cache with persistent body |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |