CN103365954A - 提高线上重复删除效率的方法和系统 - Google Patents

提高线上重复删除效率的方法和系统 Download PDF

Info

Publication number
CN103365954A
CN103365954A CN2013101135251A CN201310113525A CN103365954A CN 103365954 A CN103365954 A CN 103365954A CN 2013101135251 A CN2013101135251 A CN 2013101135251A CN 201310113525 A CN201310113525 A CN 201310113525A CN 103365954 A CN103365954 A CN 103365954A
Authority
CN
China
Prior art keywords
hashed value
fixed measure
data block
index table
data sampling
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
Application number
CN2013101135251A
Other languages
English (en)
Other versions
CN103365954B (zh
Inventor
D·M·巴尔德温
N·P·博塞尔
J·T·奥尔森
S·R·派迪尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103365954A publication Critical patent/CN103365954A/zh
Application granted granted Critical
Publication of CN103365954B publication Critical patent/CN103365954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

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

Abstract

本发明涉及提高线上重复删除效率的方法和系统,具体提供一种在计算环境中提高线上重复删除效率的方法。在一个实施例中,仅作为例子,在第n次迭代中对于来自从请求线上重复删除的对象提取的固定尺寸数据块的数据采样计算散列值。对于第n次迭代中的每一次,使在第n个散列索引表中对于来自固定尺寸数据块的数据采样计算的散列值与存储部件中的存在的对象的相应的散列值匹配。当在匹配过程中检测到不匹配时,离开第n个散列索引表,不匹配被确定为是唯一对象并被存储。计算对象的散列值。用计算的对象的散列值和计算的唯一对象的散列值更新主散列索引表。

Description

提高线上重复删除效率的方法和系统
技术领域
本发明一般涉及计算系统,更具体地,涉及提高线上(in-line)重复删除效率。
背景技术
在当今社会,计算机系统是十分普及的。计算机系统遍布于工作场所、家庭或学校中。计算机系统可包括数据存储系统或盘存储系统,以处理和存储数据。一种这样的处理是数据重复删除。数据重复删除指的是减少和/或消除冗余数据。在数据重复删除处理中,减少或消除数据的重复复制,从而分别留下最小量的冗余复制或数据的单个复制。使用重复删除处理提供各种益处,诸如减少需要的存储容量和减少对于网络带宽的需求。由于这些和其它益处,近年来在计算存储系统中作为十分重要的技术领域出现了重复删除。
发明内容
伴随用户可在存储云服务内的存储空间上拥有、创建、修改和/或删除容器和对象的存储云服务的出现,对于HTTP上的存储空间的在线访问明显增加。这种存储云服务的用户一般借助于由存储云服务提供商显露的应用编程界面(API)在云存储空间上执行这些操作。虽然对用户显露API十分有帮助,但是,在云存储服务上执行操作的API的用户在数据重复删除方面向服务提供商提出了另外的问题。因此,存储云服务提供商需要通过使用重复删除技术减少存储云服务空间的消耗。
各种实施例提供在计算环境中提高线上重复删除效率的方法。一种方法包括:通过处理器装置在计算环境中在第n次迭代中对于来自从请求重复删除(例如,线上重复删除)的对象提取的固定尺寸数据块的数据采样计算散列值。该方法还包括:对于第n次迭代中的每一次,使在第n个散列索引表中对于来自固定尺寸数据块的数据采样计算的散列值与存储部件中的存在的对象的相应的散列值匹配。第n个散列索引表是对于固定数据块的数据采样的每一个构建的。在检测到在匹配过程中对于来自固定尺寸数据块的数据采样的每一个计算的散列值不匹配的情况下,离开第n个散列索引表。不匹配被确定为是唯一对象并被存储。当在对象存储部件中创建对象时,用状态“成功”响应客户机。作为离线后处理的一部分,计算整个对象的散列值。用计算的对象的散列值和计算的唯一对象的散列值更新主散列索引表。并且,在离线处理中,用来自新唯一对象的固定尺寸数据块的数据采样的第n次迭代上的散列值更新第n个索引表。
各种实施例提供在计算环境中提高线上重复删除效率的系统。一种系统包括可在计算环境中操作的处理器装置。在一个实施例中,处理器装置被配置为在第n次迭代中对于来自从请求线上重复删除的对象提取的固定尺寸数据块的数据采样计算散列值。对于第n次迭代中的每一次,处理器进一步被配置为使在第n个散列索引表中来自固定尺寸数据块的数据采样的散列值与存储部件中的存在的对象的相应的散列值匹配。第n个散列索引表是对于来自固定数据块的数据采样的每一个构建的。在检测到在匹配过程中对于来自固定尺寸数据块的数据采样的每一个计算的散列值不匹配时,离开第n个散列索引表。不匹配被确定为是唯一对象并被存储。计算整个对象的散列值。用计算的对象的散列值和计算的唯一对象的散列值更新主散列索引表。
还提供包括在计算环境中提高线上重复删除效率的计算机程序产品的物理计算机存储介质(例如,具有一个或多个导线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快擦写存储器)、光纤、便携式紧致盘只读存储器(CD-ROM)、光学存储装置、磁存储装置或以上的任意适当的组合)。一种物理计算机存储介质包括用于通过处理器装置在计算环境中在第n次迭代中对于来自从请求线上重复删除的对象提取的固定尺寸数据块的数据采样计算散列值的计算机代码。物理计算机存储介质还包括:对于第n次迭代中的每一次,使在第n个散列索引表中对于来自固定尺寸数据块的数据采样计算的散列值与存储部件中的存在的对象的相应的散列值匹配的计算机代码。第n个散列索引表是对于固定数据块的数据采样的每一个构建的。在检测到在匹配过程中对于来自固定尺寸数据块的数据采样的每一个计算的散列值不匹配时,离开第n个散列索引表。不匹配被确定为是唯一对象并被存储。计算整个对象的散列值。用计算的对象的散列值和计算的唯一对象的散列值更新主散列索引表。
附图说明
为了使得能够更容易理解本发明的优点,参照在附图中示出的具体实施例,更具体地描述上面简要描述的本发明。应当理解,这些附图仅示出本发明的典型的实施例,因此不应被视为其范围的限制,然后,通过使用附图通过附加的特征和细节描述和解释本发明,其中,
图1是示出可实现本发明的方面的具有示例性存储装置的计算机存储环境的框图;
图2是示出可实现本发明的方面的计算机系统中的示例性数据存储系统的硬件结构的框图;
图3是示出通过来自固定尺寸块的数据采样提高线上重复删除的示例性方法的流程图;
图4是用于提高线上重复删除效率的示例性方法的流程图;
图5是用于提高线上重复删除效率的另一示例性方法的流程图。
具体实施方式
如上所述,伴随存储云服务的出现,在数据重复删除的方面,特别是当存储云服务提供商希望通过使用诸如重复删除的技术减少他们的存储空间的消耗时,对于存储云服务提供商存在新的一组问题。存储云服务提供商可选择使用后处理重复删除和/或线上重复删除。通过后处理重复删除,新数据首先存储于存储装置上,然后,在后面的时间出现的处理分析寻找重复的数据。益处是不用等待散列计算以及在存储数据之前完成散列表索引中的查找操作,由此确保存储性能不劣化。线上重复删除是当数据实时进入装置时在目标装置上创建重复删除散列计算的处理。如果装置认出装置已存储于存储系统上的块,那么装置不存储新块,而简单地引用现有的块。线上重复删除优于后处理重复删除的益处在于,由于数据不重复,因此线上重复删除需要更少的存储。另一方面,由于散列表索引中的散列计算和查找操作经历明显的时间延迟从而导致数据吸取明显变慢,因此,随着装置的后备吞吐量减小,效率降低。
在现有技术的当前状态中,线上重复删除技术可应于对象存储。在确定对象是否适于重复删除和随后的对象存储之前的运行时间计算整个对象的散列。一般地,这趋于招致与重复删除技术一体化的性能代价,特别是对于对象存储(被启用以存储对象的NAS箱)。例如,已知散列是计算成本高的操作并且是高度存储器密集的。如果特定的工作负载具有带非常大足迹的文件/对象(例如,千兆字节(GB)的文件),那么,通过使用当前技术可用的线上重复删除技术,整个对象的散列招致巨大的性能代价。
在当前的对于对象进行线上重复删除的系统中,计算在超文本传输协议(HTTP)上接收的文件的指纹(例如,散列值)的技术是比较整个对象的计算的指纹与存储系统上的现有文件的一组可用指纹。但是,缓冲整个文件(例如,可大到几千兆字节)、计算散列值并然后对于比较使用散列查找表是存储器扩展处理。主要是散列计算是密集的操作,并且对于大的对象是十分费时的(例如,对于大于10GB的尺寸的对象,大于10秒)。散列计算延迟会根据使用的散列函数改变。这种延迟对于在HTTP上通信实在是不可接受的。这些延迟导致影响性能的瓶颈,并且,在极端的情况下,会导致网络服务上的拒绝服务(Dos)条件。
因此,需要在应用级上提供快速的线上重复删除能力。伴随云存储服务和对于HTTP上的存储部件的访问的发展,在这里,每秒数以千计的HTTP请求以数据流向存储网络服务,因此,在应用(网络服务)级上提供重复删除支持是极其关键的。
为了解决这些不足,示出的实施例的机构寻求通过智能地尽可能早地减少指纹操作而对于对象存储操作提供提高的线上重复删除效率。在一个实施例中,与等待要在对象存储部件上接收的整个对象并然后在整个对象上执行散列相对照,机构开始缓冲HTTP请求中的对象。机构寻求在通过导线向对象存储部件传送对象的同时通过明显减少耗费于较大对象的散列计算上的时间并确定早期的对象的重复删除的适用性/可能性而提高线上重复删除性能。示出的实施例的机构寻求使用于线上重复删除的大多数重要的资源(例如,时间,CPU和/或存储器等)的利用最小化并减少由HTTP客户机经历的延迟。提出最优化方法,以通过包括通过完成从整个对象提取较小的块的智能、粒化、迭代处理来尽可能早地检测并存储(例如,在盘上)唯一对象(例如,当前不处于存储部件上的新的对象)的机构,更迅速地确定可被重复删除的对象以及哪些对象不能被重复删除。
在一个实施例中,机构通过计算环境中的处理器装置在第n次迭代中对于来自从请求线上重复删除的对象提取的固定尺寸数据块的数据采样计算散列值。(应当注意,数据采样可以是预定的固定尺寸)。该方法还包括:对于第n次迭代中的每一个,使在第n个散列索引表中对于来自固定尺寸数据块的数据采样计算的散列值与存储部件中存在的对象的相应的散列值匹配。第n个散列索引表是对于来自固定数据块的数据采样中的每一个而构建的。在检测到在匹配中对于来自固定尺寸数据块的数据采样中的每一个而计算的散列值不匹配的情况下,离开第n个散列索引表。在检测不匹配的情况下,不匹配被确定为是唯一对象并且唯一对象被存储。当在对象存储部件中创建对象时,用状态“成功”响应客户机。作为离线后处理的一部分,计算整个对象的散列值。用计算的对象的散列值和计算的唯一对象的散列值更新主散列索引表。并且,在离线处理中,用来自新唯一对象的固定尺寸数据块的数据采样的第n次迭代上的散列值更新第n个索引表。
在一个实施例中,对来自固定尺寸数据块的固定尺寸数据采样计算散列值,这里,数据采样具有预定的固定尺寸(例如,对于数据采样具有1千字节(KB)的尺寸),并且,固定尺寸数据块具有预定的固定尺寸(例如,对于数据块具有1兆节(MB)的尺寸)。更特别地,机构对于作为固定尺寸数据块的最前面的固定尺寸数据采样的固定尺寸数据采样计算散列值。换句话说,机构从首先处于固定尺寸数据块中线上(例如,首先排序)的固定尺寸数据采样开始,对于固定尺寸数据采样计算散列值。例如,机构在每次迭代中处理诸如1兆字节(MB)的固定尺寸的块,同时从数据的1兆字节(MB)块中的每一个中拾取最前面的1千字节(KB)尺寸数据采样的采样。机构可计算固定尺寸采样数据的散列值,并在与进行的迭代对应的散列表中寻找匹配。机构继续前面的处理,直到发现匹配为止。如果发现不匹配,机构可中断处理,然后,机构可对于第n次迭代在散列表中插入散列值(HTi)。机构确定采样的数据的不匹配表示采样的数据是唯一数据对象。
现在转到图1,示出可实现本发明的方面的示例性计算机系统10。计算机系统10包含与大规模存储装置14和存储器装置16连接的中央处理单元(CPU)12。大规模存储装置可包括可配置为独立盘的冗余阵列(RAID)的硬盘驱动器(HDD)装置。存储器装置16可包括诸如电可擦除可编程只读存储器(EEPROM)的存储器或相关装置的主机。存储器装置16和大规模存储装置14通过信号承载介质与CPU12连接。另外,CPU12通过通信端口18与具有附连的多个附加的计算机系统22和24的通信网络20连接。计算机系统10可包括一个或多个处理器装置(例如,CPU12)和用于计算机系统10的各单个部件的附加的存储器装置16。
图2是表示根据本发明的计算机系统的数据存储系统的硬件结构的示例性框图200。示出了主机计算机210、220、225,每个用作用于作为数据存储系统200的一部分执行数据处理的中央处理单元。集群主机/节点(物理或虚拟装置)210、220和225可以是用于在数据存储系统200中实现本发明的目的的一个或多个新的物理器件或逻辑器件。网络(例如,存储架构)连接260可以是光纤信道架构、光纤信道点对点链接、以及通过以太网架构或点对点链接的光纤信道、FICON或ESCON I/O接口。主机210、220和225可以是局部的或者分布于一个或更多个位置上,并且可配有任意类型的架构(或架构信道)(图2未示出)或到存储控制器240的网络适配器260,诸如光纤信道、FICON、ESCON、以太网、光纤、无线或共轴适配器。数据存储系统200因此配有适当的用于通信的架构(图2未示出)或网络适配器260。在图2中示出包含存储控制器240和集群主机210、220和225的数据存储系统200。集群主机210、220和225可包含集群节点。
为了有利于更清楚地理解这里描述的方法,存储控制器240在图2中被示为单个处理单元,包括在后面更详细地描述的微处理器242、系统存储器243和非易失性存储部件(“NVS”)216。注意,在一些实施例中,存储控制器240包含分别具有自身的处理器联合和系统存储器的多处理单元,并且,通过数据存储系统200内的专用网络相互连接。并且,假定使用存储架构网络连接260,可通过使用存储架构260以使多个存储控制器240一起与连接到各存储控制器240的一个或多个集群主机210、220和225连接,使用附加的结构配置。
在一些实施例中,存储控制器240的系统存储器243包含操作软件250,并且存储处理器242在执行与执行本发明的步骤和方法相关的功能和方法步骤时可访问的程序指令和数据。如图2所示,系统存储器243也可包含用于缓存分别参照写入/读取请求和它们的相关数据的“写入数据”和“读取数据”的这里也称为“高速缓存存储器”的高速缓存245或者与其通信。在一个实施例中,高速缓存245被分配在系统存储器243的外部的装置中,然而保持可被微处理器242访问,并且,除了实施这里描述的操作以外,可用于提供针对数据损失的附加的安全性。
在一个实施例中,为了提高数据存储系统200的性能,高速缓存245可通过易失性存储器和非易失性存储器被实现,并且通过局部总线(图2未示出)与微处理器242耦合。包含于数据存储控制器中的NVS216可被微处理器242访问,并用于对于在其它附图中描述的操作和执行提供附加的支持。NVS216也可称为“永久”高速缓存或“高速缓存存储器”,并且通过可以利用或者可以不利用外部电力以保持存储于其中的数据的易失性存储器被实现。出于适于实现本发明的目的的任何目的,NVS可存储于高速缓存245内并且通过其被存储。在一些实施例中,诸如电池的后备电源(图2未示出)向NVS216供给足够的电力,以在数据存储系统200丢失电力的情况下保持存储于其中的数据。在某些实施例中,NVS216的容量小于或等于高速缓存245的总容量。
存储控制器240可包含线上重复删除模块255、第n个散列索引表模块257和主散列索引表模块259。线上重复删除模块255、第n个散列索引表模块257和主散列索引表模块259可以是一个同时起作用的完整的模块或者单独的模块。线上重复删除模块255、第n个散列索引表模块257和主散列索引表模块259可以具有转移函数算法可存储未处理、处理或“半处理”数据的一些内部存储器(未示出)。线上重复删除模块255、第n个散列索引表模块257和主散列索引表模块259可与存储控制器240、主机210、220、225和可通过存储架构260远程连接的其它存储控制器240和主机210、220和225的每个以及每个部件共同工作。线上重复删除模块255、第n个散列索引表模块257和主散列索引表模块259可在结构上是一个完整的模块,或者可与其它单独的模块相关联并且/或者被包含。线上重复删除模块255、第n个散列索引表模块257和主散列索引表模块259也可位于高速缓存245或存储控制器240的其它部件内。第n个散列索引表模块257和主散列索引表模块259可在各模块中包含一个或多个散列索引表,并且可结合其它表工作。
存储控制器240包含用于控制对于主机计算机210、220和225的光纤信道协议的控制开关241、用于控制所有的存储控制器240的微处理器242、用于存储用于控制存储控制器240的操作的微程序(操作软件)250的非易失性控制存储器243、用于暂时存储(缓冲)数据的高速缓存245和用于帮助高速缓存245读取和写入数据的缓冲器244、用于控制到/从处理器分配模块255的数据传送的协议的控制开关241和其中可设定信息的转移函数模块257。多个缓冲器244可实现为帮助这里描述的方法和步骤。
在一个实施例中,集群主机/节点210、220、225和存储控制器240通过网络适配器(可以是光纤信道)260作为接口连接,即,通过称为“架构”的开关。在一个实施例中,图2所示的系统的操作可描述如下。微处理器242可控制存储器243以存储来自集群主机/节点装置(物理或虚拟)210的命令信息和用于识别集群主机/节点装置(物理或虚拟)210的信息。控制开关241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、处理器分配模块255和转移函数模块257相互通信,并可以是单独的或一个单个的部件。并且,如果不是全部,则可在存储器243内包含诸如操作软件250这样的几个部件。出于适于本发明的目的,示出的装置中的部件的每一个可被链接在一起,并且可相互通信。
本发明可利用用于提高线上重复删除效率的图1和图2的部件以及在本领域中公知的其它云存储系统(未示出)结构。在一个实施例中,仅作为例子,图1和图2的部件的机构和/或其它云存储系统结构(未示出)在“第n次”迭代中执行重复删除操作。在每次迭代中,机构可增加来自从要被重复删除的文件获得的数据块的固定尺寸的数据采样的尺寸。迭代如下面描述的那样继续。首先,对于数据采样的第一“N1”字节执行读取操作,对于数据采样计算散列值,并且,在标为“HT1”的散列表中(或通过使用类似的机构)执行查找操作,该散列表是通过对已存在于存储系统中的文件/对象的第一“N1”字节计算的散列值构建的。然后,如果在对固定尺寸数据块的数据采样计算的散列值与已存在于存储部件中的文件/对象的散列值之间发现匹配,那么机构继续从对于要被重复删除的整个对象的请求收集数据。对于下一个第n次迭代执行这种数据的收集和提取,直到机构接收“N2”字节为止。并且,在标“HT2”的散列表中(或通过使用类似的机构)执行查找操作,该散列表是通过对已存在于存储系统中的文件/对象的第一“N2”字节计算的散列值而构建的。机构继续重复上述的处理,从而读取对象的第N3、第N4、第N5…第Nn个字节并查找散列表HT3、HT4、HT5…HTn中。应当注意,对于用于达到对象的全尺寸的第n次迭代中的每一个,数据块的第n个字节的尺寸是固定尺寸。可通过机构确定来自历史数据的样式,以用于基于重复删除比增加数据采样的尺寸。如果重复删除比(例如,重复删除对象/总对象)较高,那么第n次迭代减小,并且,如果重复删除比较低,则第n次迭代增加。
即使在执行上述的操作之后,如果机构没有在散列表的查找操作中定位不匹配并且对象被耗尽(意味着整个对象已被成功分成较小的固定尺寸数据块),那么机构仍可计算整个/全尺寸对象的散列值,并在主散列表中执行查找操作。如果机构在主散列表的查找操作中检测到不匹配,那么机构将对象写入存储部件(例如,盘上),并在主散列表(具有由全尺寸文件/对象计算的散列的散列表)中形成条目。
如果在前面描述的步骤中的任一个中,机构在查找操作中检测到不匹配,那么机构可终止重复删除处理。不匹配表示对象和/或小的迭代的固定尺寸数据块是唯一的(例如,当前不处于存储部件中的新的对象)。在终止重复删除的情况下,机构可存储对象和/或小的、迭代的固定尺寸数据块,并向HTTP客户机回送成功响应。在离线模式中,机构计算实际全尺寸对象的散列,并将散列写入称为主散列表的实际的散列表中。当对象被确定为唯一时,该处理使得机构能够在非常早的阶段停止散列计算。通过存储提供商达到对象的最大支持尺寸的跳跃的数量可以是可配置的,并且,用于增加每次迭代的对象尺寸的函数也可被配置为调谐性能。
以下的图3是示出用于通过来自固定尺寸块的数据采样提高线上重复删除的示例性方法300的流程图。如上所述,框图300示出计算固定尺寸数据块302(在示图中,示为标为302A的块1、标为302B的块2、标为302C的块3、标为302D的底部块)的散列值。这些固定尺寸数据块302代表请求重复删除的整个对象/文件。对于固定尺寸数据块302的每次迭代,对于从数据块302提取的数据采样(未示出)计算散列值。使用给定块尺寸的每次迭代的相应的散列索引表以执行查找操作。执行查找操作是为了使固定尺寸数据块的数据采样中的每一个的计算的散列值与已存储于数据存储部件中的对象匹配。在检测到第一不匹配的情况下,离开散列表,并且,固定尺寸数据块302被确定为唯一并被存储(例如,在盘上)。向HTTP客户机回送响应。并且,在离线模式中计算整个对象的散列值(从中提取迭代的固定尺寸数据块302),并且更新主索引表(HT主机)。应当注意,可由用户或从示出历史样式的反馈预定固定尺寸数据块302。
以下的图4是示出用于提高线上重复删除效率的示例性方法400的流程图。方法400开始(步骤402)。方法400从来自固定尺寸数据块的对象/文件、形式和数据采样读取“Ni”字节,并且对于来自从文件/对象读取的固定尺寸数据块的数据采样计算散列值“Hi”(步骤404)。应当注意,这些数据采样具有固定尺寸并可被预定。方法400在来自固定尺寸数据块的相应数据采样的散列表“Hi-第i个”中执行查找操作(步骤406)。方法400确定是否发现来自固定尺寸数据块的数据采样的计算散列值与已存在于存储部件中的文件/对象的散列值之间的匹配(步骤408)。如果没有发现匹配(例如,不匹配表示来自固定尺寸数据块的小的迭代的数据采样是唯一的,这意味着固定尺寸数据块是新的并且当前不存在于存储部件中),那么机构存储完整对象/文件和/或固定尺寸数据块,并且,在后台(即,在离线模式中)计算完整和整个对象/文件的散列值(步骤410)。方法400可然后在主散列表“HT-主机”中存储完整唯一对象的散列值(步骤412)并且方法400可结束(步骤422)。
现在返回步骤408,如果发现匹配,那么方法400确定是否已达到了对象/文件的结束(步骤414)。如果没有,那么方法400返回步骤404并继续从对象/文件读取“Ni”字节,并从固定尺寸数据块形成数据采样并对于块计算散列值“Hi”(步骤404)。如果达到文件的结束,那么方法400计算整个文件的散列值并在主散列索引表“HT-主机”中执行查找操作(步骤416)。方法400确定是否发现整个/完整对象/文件的计算的散列值与已存在于存储部件中的对象/文件的散列值之间的匹配(步骤418)。如果发现匹配,那么方法400可通过链接到主机单个文件上进行数据减少(步骤420)并且方法400可结束(步骤422)。
但是,如果没有发现匹配(例如,不匹配表示来自固定尺寸数据块的对象和/或小的迭代的数据采样是唯一的,例如,对象是新的并且当前不存在于存储部件中),那么方法400在主散列表“HT-主机”中存储完整唯一对象的散列值(步骤412)并且方法400也结束(步骤422)。
图5是示出用于提高线上重复删除效率的另一示例性方法500的流程图。方法500开始(步骤402)。方法500从对象/文件读取“N”字节(标为524),并且从检查的尺寸N的当前块(M小于N)对于第一M字节的固定采样块尺寸计算散列值“Hi”(步骤504)。例如,对于每10MB尺寸数据块,对1千字节(KB)固定尺寸数据采样计算散列值。方法500在来自固定尺寸数据块的相应数据采样的散列表“Hi-第i个”中执行查找操作(步骤506)。对于来自固定尺寸数据块的数据采样的每次迭代进行该处理。方法500确定是否发现来自固定尺寸数据块的数据采样的计算的散列值与已存在于存储部件中的文件/对象的散列值之间的匹配(步骤508)。如果没有发现匹配(例如,不匹配表示来自固定尺寸数据块的小的迭代的数据采样是唯一的,这意味着固定尺寸数据块是新的并且当前不存在于存储部件中),那么方法500存储完整对象/文件和/或固定尺寸数据块,并且在后台(即,在离线模式中)计算完整和整个对象/文件的散列值(步骤510)。并且,如果没有发现匹配,那么方法500在发现第一不匹配时离开查找操作。方法500可然后在主散列表“HT-主机”中存储整个唯一对象的散列值(步骤512)并且方法500可结束(步骤522)。
如果发现匹配,那么方法500确定是否达到了对象/文件的结束(步骤514)。如果对于来自固定尺寸数据块的给定数据采样没有发现匹配散列值,那么方法500确保来自散列索引表的散列值在逻辑上和顺序上与与发现的先前的散列值相同的文件有关。如果没有,那么方法500返回步骤504并继续从对象/文件读取“N”字节,并对尺寸为M字节的块计算散列值“Hi”(步骤504)。如果达到文件的结束,那么方法500计算整个文件的散列值并在主散列索引表“HT-主机”中执行查找操作(步骤516)。方法500确定是否发现整个、完整对象/文件的计算的散列值与已存在于存储部件中的对象/文件的散列值之间的匹配(步骤518)。如果发现匹配,那么方法500可通过链接到主机单个文件上进行数据减少(步骤520)并且方法500可结束(步骤522)。应当注意,如果发现所有的散列值对于来自固定尺寸数据块的数据采样的每一个匹配,那么重复删除对象/文件。并且,可在任意时间向用户回送表示匹配和/或不匹配的响应。
但是,如果没有发现匹配(例如,不匹配表示对象和/或小的迭代的固定数据块是唯一的,例如,对象是新的并且当前不存在于存储部件中),那么方法500在主散列表“HT-主机”中存储完整唯一对象的散列值(步骤512)并且方法500也结束(步骤422)。
仅作为例子,考虑以下的方案。考虑例如如果完整文件尺寸是1100240234字节(例如,大于1GB)。1)机构将仅收集第一N1=1000字节(形成较小的块)并然后对于小的固定尺寸数据块N1的数据采样计算散列值。在填充有存在于存储部件中的前1000个字节的指纹(散列值)的散列表H1000中执行查找操作。如果机构检测到小的块的计算的散列值之间的不匹配,那么机构通过新的指纹(散列值)在散列表H1000中放置条目并继续处理。2)在第2迭代步骤中,机构收集N2=10000(N1*10)字节,并然后对于固定尺寸数据块N2的数据采样计算散列值。并且,通过如上面描述的那样匹配较小块N2的计算的散列值与存储于存储部件中的在散列表H10000中填充的对象的前1000个字节的指纹(散列值),执行查找操作。3)机构通过N3=100000(N2*10)、N4=1000000(N3*10)等继续以上的步骤,直到查找操作检测到匹配和/或不匹配为止。
在另一例子中,假定完整文件尺寸为1100240234字节(例如,大于1GB)。1)机构可仅收集形成预定的固定尺寸数据块M1(例如,M1=1MB)的数据采样N1(例如,N1=1000字节)的前N1字节,并然后对于固定尺寸数据块M1的数据采样N1计算散列值。在填充有存在于存储部件中的对象的前H个字节(例如,H=1000字节)的指纹(散列值)的散列表H1000中执行查找操作。如果机构检测到对固定尺寸数据块M1的数据采样N1计算的散列值之间的不匹配,那么机构通过新的指纹(散列值)在散列表H1000中放置条目并继续处理。2)在第2迭代步骤中,机构在第二固定尺寸数据块M2(例如,M2=1MB)上收集形成数据采样N2的第一N2字节(例如,N2=1000字节),并然后对于第二固定尺寸数据块M2的数据采样计算散列值。并且,通过如上面描述的那样匹配第二固定尺寸数据块M3的数据采样N2的计算的散列值与存在于存储部件中的在散列表H1000中填充的对象的前H个字节(例如,1000字节)的指纹(散列值),执行查找操作。3)机构对于固定尺寸数据块的M数量的第n次迭代继续以上的步骤,直到查找操作检测到匹配和/或不匹配。
在另一例子中,机构可在每次迭代中处理诸如1兆字节(MB)的固定尺寸的块,同时从数据的固定(例如,1兆字节(MB))块的每一个中拾取固定尺寸数据采样(例如,第一1千字节(KB))尺寸。机构可计算固定尺寸采样数据的散列值并在与进行的迭代对应的散列表中寻找匹配。机构继续该处理,直到发现匹配为止。如果发现不匹配,则机构中断,并且在第n次迭代的散列表中插入散列值(HTi)。机构确定采样数据的不匹配表示采样数据是唯一数据对象。
在替代性实施例中,仅作为例子,每次迭代中检查的固定数据块尺寸可对数地增加;例如,1MB、2MB、4MB、8MB、16MB、…nMB,并且,在每次迭代,形成数据采样的数据的第一N字节(例如,1K字节)尺寸被拾取并被散列,以在该迭代中在相应的散列表中发现匹配。固定数据采样对于每次迭代的每个固定尺寸数据块保持相同的预定尺寸。一旦发现匹配或者检查的数据对象耗尽,机构可停止重复删除操作。在替代方案中,机构可继续在相应的散列表中插入在每次迭代中计算的散列(在迭代号N上,为“HTi”)。
应当注意,示出的实施例的机构提供自适应的线上重复删除操作。机构可以是自适应的,其通过从样式学习机构绘制和来自最近观察的观测。换句话说,如果重复删除比(重复删除对象/总对象)高,那么到达对象的全尺寸可进行更少的跳跃,而如果重复删除比降低,那么跳跃的数量可增加。在极端的情况下,可以只检查第一N(例如,1000)字节,并且,如果发现匹配,那么计算将对象视为唯一对象的完整对象的散列。因此,使用的机构(例如,算法)的类型可以是灵活的并且根据存储于存储系统中的对象的样式被调整。
因此,通过上述的机构,通过分析接收的对象的最近的历史获得更快的自适应线上重复删除。当重复删除比(例如,重复删除对象/检查的总对象)低时(例如,当由于重复删除对象的数量少于发现的总对象而发现更多的唯一对象时),出现较少的跳跃,并且,当重复删除比高时(例如,当由于重复删除对象的数量多于发现的总对象而发现更少的唯一对象时),出现较多的跳跃。可以使用预定的重复删除阈值以建立最小/最大量和或用于比较、评价和确定该比。重复删除比帮助减少对象的重复删除所需要的查找操作的数量,并增加以快速和更加速的方式确定哪些对象唯一的机会。这允许在唯一对象运行时避免完整对象的散列值的不必要的计算。在一个实施例中,机构可通过它从获取的反馈观察和确定的对象的样式调整自身,由此当重复删除比(重复删除对象/总对象)高时采取较大的跳跃(例如,当重复删除比比预定的阈值高时,第n次迭代减少),并且当重复删除比低时采取较小的跳跃(例如,当重复删除比比预定的阈值低时,第n次迭代增加)。换句话说,随着重复删除比增加,第n次迭代可减少,并且,当重复删除比减少时,第n次迭代可增加。这帮助使重复删除所需要的运行时间计算最小化,并减少响应延迟,从而使得重复删除引擎/模块运行更快。
如上所述,各种实施例提供在计算环境中提高线上重复删除效率的方法、系统和计算机程序产品。实施例的机构通过处理器装置在计算环境中在第n次迭代中对于来自从请求线上重复删除的对象提取的固定数据块计算散列值。实施例还包括:对于第n次迭代中的每一个,使在第n个散列索引表中固定数据块的计算的散列值与存储部件中的存在的对象的相应的散列值匹配。第n个散列索引表是对于固定数据块的每一个构建的。在检测到在匹配过程中对于固定数据块的每一个计算的散列值不匹配的情况下,离开第n个散列索引表。不匹配被确定为是唯一对象并被存储。当在对象存储部件中创建对象时,用状态“成功”响应客户机。作为离线后处理的一部分,计算整个对象的散列值。用计算的对象的散列值和计算的唯一对象的散列值更新主散列索引表。并且,在离线处理中,用新唯一对象的固定数据块的第n次迭代上的散列值更新第n个索引表。
所属技术领域的普通技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以利用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或物理计算机可读存储介质。物理计算机可读存储介质可以为例如但不限于电子、磁、光学、晶体、聚合物、电磁、红外或半导体系统、装置或设备,或者以上的任意适当的组合。物理计算机可读存储介质的例子包括但不限于具有一个或多个导线的电气连接、便携式计算机盘、硬盘、RAM、ROM、EPROM、快擦写存储器、光纤、CD-ROM、光学存储装置、磁存储装置或以上的任意适当的组合。在本文的上下文中,计算机可读存储介质可以是可包含或存储供指令执行系统、装置或设备使用或与其结合的程序或数据的任何有形介质。
可通过使用包含但不限于无线、有线、光纤电缆、射频(RF)等或以上的任意适当的组合的任何适当的介质传送体现于计算机可读介质上的程序代码。可以以诸如“C”编程语言的任何静态语言或其它类似的编程语言书写用于实施本发明的各方面的操作的计算机代码。可完全在用户的计算机上、部分地在用户的计算机上、作为独立式软件包、部分地在用户的计算机上并且部分地在远程计算机上或者完全在远程计算机或服务器上执行计算机代码。在后一种方案中,远程计算机可通过包括但不限于局域网络(LAN)或广域网络(WAN)、统合式网络的任意类型的网络或通信系统与用户的计算机连接,或者,可进行与外部计算机的连接(例如,通过使用因特网服务提供商的因特网)。
上面参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令的制造品(article of manufacture)。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
上述附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然详细示出了本发明的一个或多个实施例,但是,本领域的一个普通技术人员可以想到,在不背离在以下的权利要求中阐述的本发明的范围的情况下,可以提出对这些实施例的修改和调整。

Claims (21)

1.一种在计算环境中通过处理器装置提高线上重复删除效率的方法,该方法包括:
在第n次迭代中对于来自从请求线上重复删除的对象提取的固定尺寸数据块的数据采样计算散列值;
对于第n次迭代中的每一次,使在第n个散列索引表中对于来自固定尺寸数据块的数据采样计算的散列值与存储部件中的存在的对象的相应的散列值匹配,其中,第n个散列索引表是对于属于固定数据块的数据采样的每一个构建的;
在检测到在匹配过程中对于来自固定尺寸数据块的数据采样的每一个计算的散列值不匹配的情况下,离开第n个散列索引表,其中,不匹配被确定为是唯一对象并被存储;和
计算对象的散列值,其中,用计算的对象的散列值和计算的唯一对象的散列值更新主散列索引表。
2.根据权利要求1的方法,其中,对于来自固定尺寸数据块的数据采样计算散列值包含对于固定尺寸数据采样计算散列值。
3.根据权利要求2的方法,其中,对于来自固定尺寸数据块的数据采样计算散列值包含从首先处于固定尺寸数据块中的固定尺寸数据采样开始对于固定尺寸数据采样计算散列值。
4.根据权利要求1的方法,其中,对于来自固定尺寸数据块的数据采样计算散列值包含对于来自具有预定的固定尺寸的固定尺寸数据块的数据采样计算散列值。
5.根据权利要求1的方法,还包括基于重复删除比从历史数据确定多个样式,其中,第n次迭代随重复删除比的增加而减小,并且,第n次迭代随重复删除比的减小而增加。
6.根据权利要求1的方法,还包括,在没有检测到第n个散列索引表中的不匹配时完成对象中的固定尺寸数据块的提取并执行匹配的情况下,在主散列索引表中对于对象的计算的散列值执行匹配。
7.根据权利要求4的方法,还包括,在检测到主散列索引表中的不匹配的情况下,存储对象并更新主散列索引表。
8.根据权利要求5的方法,还包括,在主索引表和第n个索引表中的一个中的匹配过程中检测到不匹配的情况下,终止线上重复删除并向客户机发送成功响应。
9.根据权利要求1的方法,还包括,在离线模式中计算对象的散列值。
10.根据权利要求1的方法,还包括,与匹配结合,如果发现对于来自固定尺寸数据块的数据采样计算的散列值与存储部件中存在的对象的相应的散列值匹配,那么继续从对象提取数据,以构建来自固定尺寸数据块的数据采样的第n个。
11.一种在计算环境中提高线上重复删除效率的系统,该系统包括:
可在计算环境中操作的处理器装置,其中,处理器装置适于:
在第n次迭代中对于来自从请求线上重复删除的对象提取的固定尺寸数据块的数据采样计算散列值;
对于第n次迭代中的每一次,使在第n个散列索引表中对于来自固定尺寸数据块的数据采样计算的散列值与存储部件中的存在的对象的相应的散列值匹配,其中,第n个散列索引表是对于属于固定数据块的数据采样的每一个构建的;
在检测到在匹配过程中对于来自固定尺寸数据块的数据采样的每一个计算的散列值不匹配时,离开第n个散列索引表,其中,不匹配被确定为是唯一对象并被存储;和
计算对象的散列值,其中,用计算的对象的散列值和计算的唯一对象的散列值更新主散列索引表。
12.根据权利要求11的系统,其中,处理器装置还适于:依照对于来自固定尺寸数据块的数据采样计算散列值,对于固定尺寸数据采样计算散列值。
13.根据权利要求12的系统,其中,处理器装置还适于:依照对于来自固定尺寸数据块的数据采样计算散列值,从首先处于固定尺寸数据块中的固定尺寸数据采样开始对于固定尺寸数据采样计算散列值。
14.根据权利要求11的系统,其中,处理器装置还适于:依照对于来自固定尺寸数据块的数据采样计算散列值,对于来自具有预定的固定尺寸的固定尺寸数据块的数据采样计算散列值。
15.根据权利要求11的系统,其中,处理器装置还适于为了达到对象的全尺寸对于第n次迭代的每一次增加固定尺寸数据块的尺寸。
16.根据权利要求11的系统,其中,处理器装置还适于为了基于重复删除比的增加从历史数据确定多个样式,其中,第n次迭代随重复删除比的增加而减小,并且,第n次迭代随重复删除比的减小而增加。
17.根据权利要求11的系统,其中,处理器装置还适于:在没有检测到第n个散列索引表中的不匹配时完成从对象中的固定尺寸数据块提取数据采样并执行匹配的情况下,在主散列索引表中对于对象的计算的散列值执行匹配。
18.根据权利要求17的系统,其中,处理器装置还适于:在检测到主散列索引表中的不匹配的情况下,存储对象并更新主散列索引表。
19.根据权利要求18的系统,其中,处理器装置还适于:在主索引表和第n次索引表的一个中的匹配过程中检测到不匹配的情况下,终止线上重复删除并向客户机发送成功响应。
20.根据权利要求11的系统,其中,处理器装置还适于:在离线模式中计算对象的散列值。
21.根据权利要求11的系统,其中,处理器装置还适于:与匹配结合,如果发现对于来自固定尺寸数据块的数据采样计算的散列值与存储部件中存在的对象的相应的散列值匹配,那么继续从对象提取数据,以构建来自固定尺寸数据块的数据采样的第n个。
CN201310113525.1A 2012-04-05 2013-04-03 提高线上重复删除效率的方法和系统 Active CN103365954B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/440,659 2012-04-05
US13/440,659 US8688652B2 (en) 2012-04-05 2012-04-05 Increased in-line deduplication efficiency

Publications (2)

Publication Number Publication Date
CN103365954A true CN103365954A (zh) 2013-10-23
CN103365954B CN103365954B (zh) 2018-01-12

Family

ID=49210068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310113525.1A Active CN103365954B (zh) 2012-04-05 2013-04-03 提高线上重复删除效率的方法和系统

Country Status (3)

Country Link
US (2) US8688652B2 (zh)
CN (1) CN103365954B (zh)
DE (1) DE102013205069B4 (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US11636031B2 (en) * 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US10409527B1 (en) * 2012-12-28 2019-09-10 EMC IP Holding Company LLC Method and apparatus for raid virtual pooling
US9436697B1 (en) * 2013-01-08 2016-09-06 Veritas Technologies Llc Techniques for managing deduplication of data
US20140317411A1 (en) * 2013-04-18 2014-10-23 Intronis, Inc. Deduplication of data
US9251160B1 (en) * 2013-06-27 2016-02-02 Symantec Corporation Data transfer between dissimilar deduplication systems
US9268502B2 (en) 2013-09-16 2016-02-23 Netapp, Inc. Dense tree volume metadata organization
US9405783B2 (en) 2013-10-02 2016-08-02 Netapp, Inc. Extent hashing technique for distributed storage architecture
US9152684B2 (en) 2013-11-12 2015-10-06 Netapp, Inc. Snapshots and clones of volumes in a storage system
US9201918B2 (en) 2013-11-19 2015-12-01 Netapp, Inc. Dense tree volume metadata update logging and checkpointing
US9170746B2 (en) 2014-01-07 2015-10-27 Netapp, Inc. Clustered raid assimilation management
US9529546B2 (en) 2014-01-08 2016-12-27 Netapp, Inc. Global in-line extent-based deduplication
US9251064B2 (en) 2014-01-08 2016-02-02 Netapp, Inc. NVRAM caching and logging in a storage system
US9448924B2 (en) 2014-01-08 2016-09-20 Netapp, Inc. Flash optimized, log-structured layer of a file system
US9152330B2 (en) 2014-01-09 2015-10-06 Netapp, Inc. NVRAM data organization using self-describing entities for predictable recovery after power-loss
US9483349B2 (en) 2014-01-17 2016-11-01 Netapp, Inc. Clustered raid data organization
US9454434B2 (en) 2014-01-17 2016-09-27 Netapp, Inc. File system driven raid rebuild technique
US9268653B2 (en) 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
US9256549B2 (en) 2014-01-17 2016-02-09 Netapp, Inc. Set-associative hash table organization for efficient storage and retrieval of data in a storage system
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
CN105446964B (zh) * 2014-05-30 2019-04-26 国际商业机器公司 用于文件的重复数据删除的方法及装置
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9524103B2 (en) 2014-09-10 2016-12-20 Netapp, Inc. Technique for quantifying logical space trapped in an extent store
US9501359B2 (en) 2014-09-10 2016-11-22 Netapp, Inc. Reconstruction of dense tree volume metadata state across crash recovery
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
WO2016048331A1 (en) * 2014-09-25 2016-03-31 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9659047B2 (en) * 2014-12-03 2017-05-23 Netapp, Inc. Data deduplication utilizing extent ID database
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US10565230B2 (en) 2015-07-31 2020-02-18 Netapp, Inc. Technique for preserving efficiency for replication between clusters of a network
US10394660B2 (en) 2015-07-31 2019-08-27 Netapp, Inc. Snapshot restore workflow
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US9785525B2 (en) 2015-09-24 2017-10-10 Netapp, Inc. High availability failover manager
US20170097771A1 (en) 2015-10-01 2017-04-06 Netapp, Inc. Transaction log layout for efficient reclamation and recovery
US9836366B2 (en) 2015-10-27 2017-12-05 Netapp, Inc. Third vote consensus in a cluster using shared storage devices
US10235059B2 (en) 2015-12-01 2019-03-19 Netapp, Inc. Technique for maintaining consistent I/O processing throughput in a storage system
US10528624B2 (en) * 2015-12-07 2020-01-07 Sap Se Optimal hash calculation of archive files and their file entries
US10229009B2 (en) 2015-12-16 2019-03-12 Netapp, Inc. Optimized file system layout for distributed consensus protocol
US9401959B1 (en) 2015-12-18 2016-07-26 Dropbox, Inc. Network folder resynchronization
US9830103B2 (en) 2016-01-05 2017-11-28 Netapp, Inc. Technique for recovery of trapped storage space in an extent store
US10108547B2 (en) 2016-01-06 2018-10-23 Netapp, Inc. High performance and memory efficient metadata caching
US9846539B2 (en) 2016-01-22 2017-12-19 Netapp, Inc. Recovery from low space condition of an extent store
US10545670B2 (en) 2016-02-26 2020-01-28 Red Hat Israel, Ltd. Scalable page migration after memory de-duplication
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US9952767B2 (en) 2016-04-29 2018-04-24 Netapp, Inc. Consistency group management
US10788988B1 (en) 2016-05-24 2020-09-29 Violin Systems Llc Controlling block duplicates
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10725869B1 (en) * 2016-09-29 2020-07-28 EMC IP Holding Company LLC Deduplication-based customer value
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
US10235080B2 (en) 2017-06-06 2019-03-19 Saudi Arabian Oil Company Systems and methods for assessing upstream oil and gas electronic data duplication
US10587287B2 (en) 2018-03-28 2020-03-10 International Business Machines Corporation Computer system supporting multiple encodings with static data support
US10587284B2 (en) 2018-04-09 2020-03-10 International Business Machines Corporation Multi-mode compression acceleration
US10720941B2 (en) 2018-04-09 2020-07-21 International Business Machines Corporation Computer system supporting migration between hardware accelerators through software interfaces
US10374629B1 (en) 2018-05-07 2019-08-06 International Business Machines Corporation Compression hardware including active compression parameters
US10447296B1 (en) 2018-06-22 2019-10-15 International Business Machines Coporation Accelerated compression/decompression including predefined dictionary
US11093176B2 (en) * 2019-04-26 2021-08-17 EMC IP Holding Company LLC FaaS-based global object compression
US11438142B1 (en) * 2019-08-19 2022-09-06 Marvell Asia Pte, Ltd. System and method for mining digital currency in a blockchain network
US11301427B2 (en) * 2019-10-15 2022-04-12 EMC IP Holding Company LLC Inline and post-process data deduplication for a file system
US11573928B2 (en) * 2020-03-13 2023-02-07 EMC IP Holding Company LLC Techniques for data deduplication
US20240036908A1 (en) * 2021-04-21 2024-02-01 NEC Laboratories Europe GmbH Method and system for supporting memory deduplication for unikernel images
US11778077B2 (en) * 2021-06-28 2023-10-03 Raytheon Company Application layer payload optimization
CN114064621B (zh) * 2021-10-28 2022-07-15 江苏未至科技股份有限公司 一种重复数据判断方法
US20230350763A1 (en) * 2022-04-27 2023-11-02 Cohesity, Inc. Utilizing fixed-sized and variable-length data chunks to perform source side deduplication

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276366A (zh) * 2007-03-27 2008-10-01 株式会社日立制作所 防止文件重复存储的计算机系统
US20090271454A1 (en) * 2008-04-29 2009-10-29 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
CN101963982A (zh) * 2010-09-27 2011-02-02 清华大学 基于位置敏感哈希的删冗存储系统元数据管理方法
US20110246741A1 (en) * 2010-04-01 2011-10-06 Oracle International Corporation Data deduplication dictionary system
CN102378973A (zh) * 2009-03-30 2012-03-14 爱萨有限公司 用于数据重复删除的系统及方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962452B2 (en) * 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation 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
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US8078593B1 (en) * 2008-08-28 2011-12-13 Infineta Systems, Inc. Dictionary architecture and methodology for revision-tolerant data de-duplication
US8626723B2 (en) * 2008-10-14 2014-01-07 Vmware, Inc. Storage-network de-duplication
US7733247B1 (en) * 2008-11-18 2010-06-08 International Business Machines Corporation Method and system for efficient data transmission with server side de-duplication
US8346736B2 (en) * 2009-03-16 2013-01-01 International Business Machines Corporation Apparatus and method to deduplicate data
US8140491B2 (en) * 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8200641B2 (en) * 2009-09-11 2012-06-12 Dell Products L.P. Dictionary for data deduplication
US8407193B2 (en) * 2010-01-27 2013-03-26 International Business Machines Corporation Data deduplication for streaming sequential data storage applications
AU2010200866B1 (en) * 2010-03-08 2010-09-23 Quantum Corporation Data reduction indexing
US9053032B2 (en) * 2010-05-05 2015-06-09 Microsoft Technology Licensing, Llc Fast and low-RAM-footprint indexing for data deduplication
US8935487B2 (en) * 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
WO2011159322A1 (en) * 2010-06-18 2011-12-22 Hewlett-Packard Development Company, L.P. Data deduplication
US9678688B2 (en) * 2010-07-16 2017-06-13 EMC IP Holding Company LLC System and method for data deduplication for disk storage subsystems
US8396905B2 (en) * 2010-11-16 2013-03-12 Actifio, Inc. System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies
US8271462B2 (en) * 2010-12-10 2012-09-18 Inventec Corporation Method for creating a index of the data blocks
US9110936B2 (en) * 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US9639543B2 (en) * 2010-12-28 2017-05-02 Microsoft Technology Licensing, Llc Adaptive index for data deduplication
GB2477607B (en) * 2011-01-17 2011-12-28 Quantum Corp Sampling based data de-duplication
WO2013008264A1 (en) * 2011-07-08 2013-01-17 Hitachi, Ltd. Storage system and its data processing method
US8521705B2 (en) * 2011-07-11 2013-08-27 Dell Products L.P. Accelerated deduplication
US8990171B2 (en) * 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US9442951B2 (en) * 2011-09-23 2016-09-13 Dell Products L.P. Maintaining deduplication data in native file formats
US9071584B2 (en) * 2011-09-26 2015-06-30 Robert Lariviere Multi-tier bandwidth-centric deduplication
US8775759B2 (en) * 2011-12-07 2014-07-08 Jeffrey Tofano Frequency and migration based re-parsing
US8639669B1 (en) * 2011-12-22 2014-01-28 Emc Corporation Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
US8667032B1 (en) * 2011-12-22 2014-03-04 Emc Corporation Efficient content meta-data collection and trace generation from deduplicated storage
WO2013115822A1 (en) * 2012-02-02 2013-08-08 Hewlett-Packard Development Company, L.P. Systems and methods for data chunk deduplication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276366A (zh) * 2007-03-27 2008-10-01 株式会社日立制作所 防止文件重复存储的计算机系统
US20090271454A1 (en) * 2008-04-29 2009-10-29 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
CN102378973A (zh) * 2009-03-30 2012-03-14 爱萨有限公司 用于数据重复删除的系统及方法
US20110246741A1 (en) * 2010-04-01 2011-10-06 Oracle International Corporation Data deduplication dictionary system
CN101963982A (zh) * 2010-09-27 2011-02-02 清华大学 基于位置敏感哈希的删冗存储系统元数据管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
门涛: "P2P文件共享系统防止重复下载的方法研究", 《通信技术》 *

Also Published As

Publication number Publication date
US8688652B2 (en) 2014-04-01
US9268497B2 (en) 2016-02-23
US20140181465A1 (en) 2014-06-26
DE102013205069A1 (de) 2013-10-10
CN103365954B (zh) 2018-01-12
US20130268497A1 (en) 2013-10-10
DE102013205069B4 (de) 2021-09-16

Similar Documents

Publication Publication Date Title
CN103365954A (zh) 提高线上重复删除效率的方法和系统
US11775392B2 (en) Indirect replication of a dataset
US8682869B2 (en) Increased in-line deduplication efficiency
US9471620B2 (en) Sub-block partitioning for hash-based deduplication
US9569367B1 (en) Cache eviction based on types of data stored in storage systems
US20140108723A1 (en) Reducing metadata in a write-anywhere storage system
US10642837B2 (en) Relocating derived cache during data rebalance to maintain application performance
CN103907100A (zh) 用于次级高速缓冲存储器的填充的动态调整阈值
US10210188B2 (en) Multi-tiered data storage in a deduplication system
US10540114B2 (en) System and method accelerated random write layout for bucket allocation with in hybrid storage systems
US20170068675A1 (en) Method and system for adapting a database kernel using machine learning
CN116601596A (zh) 使用数据相似度来选择分段进行垃圾收集
CN104092670A (zh) 网络缓存服务器处理文件的方法及处理缓存文件的设备
CN102355502B (zh) 存储系统远程接入桌面操作系统的远程接入方法
US10789234B2 (en) Method and apparatus for storing data
CN102609508B (zh) 一种面向网络存储的文件高速访问方法
US10416901B1 (en) Storage element cloning in presence of data storage pre-mapper with multiple simultaneous instances of volume address using virtual copies
Yan et al. Hmfs: efficient support of small files processing over HDFS
Ren et al. A low-latency multi-version key-value store using B-tree on an FPGA-CPU platform
US11789917B2 (en) Data deduplication in a storage system
Lee et al. Boosting compaction in B-tree based key-value store by exploiting parallel reads in flash ssds
CN109213746A (zh) Pb级历史数据和在线数据的实时计算的可视化建模方法
Qian et al. FastCache: A client-side cache with variable-position merging schema in network storage system
CN114356241A (zh) 小对象数据的存储方法、装置、电子设备和可读介质
CN115718767A (zh) 一种面向大数据平台的远程缓存替换方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant