CN110019039B - 元数据分离的容器格式 - Google Patents
元数据分离的容器格式 Download PDFInfo
- Publication number
- CN110019039B CN110019039B CN201810809900.9A CN201810809900A CN110019039B CN 110019039 B CN110019039 B CN 110019039B CN 201810809900 A CN201810809900 A CN 201810809900A CN 110019039 B CN110019039 B CN 110019039B
- Authority
- CN
- China
- Prior art keywords
- file
- metadata
- file segments
- data
- data management
- 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
Links
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3064—Segmenting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3091—Data deduplication
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3091—Data deduplication
- H03M7/3095—Data deduplication using variable length segments
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
数据管理设备包括持久存储装置和处理器。持久存储装置包括对象存储装置。处理器将文件分割为文件段。处理器生成文件段的元数据。处理器将一部分文件段存储在对象存储装置的数据对象中。处理器将文件段的一部分元数据存储在对象存储装置的元数据对象中。
Description
技术领域
本公开的各实施例涉及数据管理领域。
背景技术
计算设备生成、使用和存储数据。数据例如可以是与任何文件相关联的图像、文档、网页或元数据。数据可以本地存储在计算设备的持久存储装置上和/或可以远程存储在另一计算设备的持久存储装置上。
发明内容
在一个方面,根据本发明的一个或多个实施例的数据管理设备包括持久存储装置,其包括对象存储装置和处理器。处理器将文件分割为文件段,生成文件段的元数据,将一部分文件段存储在对象存储装置的数据对象中,并将文件段的一部分元数据存储在对象存储装置的元数据对象中。
在一个方面,根据本发明的一个或多个实施例的操作数据管理设备的方法包括:通过数据管理设备将文件分割为文件段;通过数据管理设备生成文件段的元数据;通过数据管理设备将一部分文件段存储在对象存储装置的数据对象中;以及通过数据管理设备将文件段的元数据存储在对象存储装置的元数据对象中。
在一个方面,根据本发明的一个或多个实施例的非暂时性计算机可读介质包括计算机可读程序代码,该计算机可读程序代码在由计算机处理器执行时使计算机处理器能够执行用于操作数据管理设备的方法,该方法包括:通过数据管理设备将文件分割为文件段;通过数据管理设备生成文件段的元数据;通过数据管理设备将一部分文件段存储在对象存储装置的数据对象中;以及通过数据管理设备将文件段的元数据存储在对象存储装置的元数据对象中。
附图说明
将参考附图描述本发明的某些实施例。然而,附图仅通过示例的方式示出了本发明的某些方面或实施方式,而并不意味着对权利要求的范围加以限制。
图1A示出了根据本发明的一个或多个实施例的系统的图。
图1B示出了根据本发明的一个或多个实施例的对象存储装置的图。
图2A示出了根据本发明的一个或多个实施例的数据对象的图。
图2B示出了根据本发明的一个或多个实施例的元数据对象的图。
图2C示出了根据本发明的一个或多个实施例的存储在元数据对象中的元数据的图。
图2D示出了根据本发明的一个或多个实施例的数据关系的图。
图3A示出了根据本发明的一个或多个实施例的文件的图。
图3B示出了根据本发明的一个或多个实施例的文件的文件段与文件之间的关系的图。
图4A示出了根据本发明的一个或多个实施例的在对象存储装置中存储数据的方法的流程图。
图4B示出了根据本发明的一个或多个实施例的分割文件的方法的流程图。
图4C示出了根据本发明的一个或多个实施例的对文件段进行重复删除(deduplicate)的方法的流程图。
图4D示出了根据本发明的一个或多个实施例的将经重复删除的文件段存储在数据对象中的方法的流程图。
图4E示出了根据本发明的一个或多个实施例的将经重复删除的文件段的元数据存储在元数据对象中的方法的流程图。
图5A示出了将数据存储在对象存储装置中的示例的第一部分。
图5B示出了在对象存储装置中存储数据的示例的第二部分。
图5C示出了在对象存储装置中存储数据的示例的第三部分。
具体实施方式
现在将参照附图详细说明本发明的具体实施例。在以下描述中,会给出众多细节作为本发明的实例。本领域技术人员应理解,可以在没有这些细节的情况下实施本发明的一个或多个实施例,在不脱离本发明范围的前提下,可以做出众多变化或修改。某些细节对于本领域技术人员是熟知的,因此将它们省略以避免使描述模糊。
在以下对附图的说明中,在本发明的多种实施例中参照某个附图说明的任何部件可以等同于参照任何其他附图说明的一个或多个以类似方式命名的部件。为了简洁起见,不会参照每个附图重复说明这些部件。因此,每个附图的部件的每种实施例通过引用结合在此,并假定其可选地存在于具有一个或多个以类似方式命名的部件的每个其他附图中。此外,根据本发明的多种实施例,对附图部件的任何说明应理解为可选的实施例,这种可选的实施例可以是除相对于任何其他附图中以类似方式命名的相应部件说明的实施例之外的实施例,与这些实施例结合实施,或者代替这些实施例。
一般来说,本发明的实施例涉及用于管理数据的系统、设备和方法。更具体来说,所述系统、设备和方法可以减少存储数据所需的存储量。
在本发明的一个或多个实施例中,数据管理设备可以包括对象存储装置。所述对象存储装置可以存储两种不同类型的对象。第一种类型是存储文件各部分的数据对象。文件可以被分割成多个段,这些段可以被存储在一个或多个数据对象中。第二种类型是存储关于在数据对象中存储的文件的各部分的信息的元数据对象。关于在元数据对象中存储的文件的部分(例如段)的信息可以包括文件的各部分的指纹(例如各段的指纹)以及在数据对象中存储的文件各部分和/或文件的大小。
在本发明的一个或多个实施例中,对象存储装置可以是重复删除存储装置。待存储在对象存储装置中的数据可以在存储之前被重复删除,方式为将待存储的数据分割成文件段,识别出是原先在对象存储装置中存储的文件段的副本的文件段,删除所识别出的副本文件段并将其余的文件段存储在对象存储装置的数据对象中。对应于现在存储的文件段的元数据可以存储在对象存储装置的元数据对象中。在与没有经过重复删除的存储待存储数据所需的存储空间量相比时,移除副本文件段可以减少存储待存储数据所需的存储量。
图1示出了根据本发明的一个或多个实施例的系统。该系统可以包括客户端(100),客户端将数据存储在数据管理设备(110)。客户端(100)和数据管理设备(110)可以可操作地彼此连接。下文将论述系统的每一个组件。
客户端(100)可以是计算设备。该计算设备例如可以是移动电话、平板电脑、笔记本电脑、台式电脑、服务器或云资源。所述计算设备可以包括一个或多个处理器、存储器(例如随机存取存储器)以及持久存储装置(例如,硬盘、固态硬盘等)。持久存储装置可以存储计算机指令例如计算机代码,所述计算机代码在由所述计算设备的处理器执行时,使得计算设备执行本申请所描述的功能。在不脱离本发明的前提下,数据管理设备(110)可以是其他类型的计算设备。
客户端(100)可以经编程以将数据存储在数据管理设备(110)中。更具体来说,客户端(100)可以将数据发送至数据管理设备(110)进行存储,并且可以请求由数据管理设备(110)所管理的数据。数据管理设备(110)可以存储数据或响应于此类请求而提供所请求的数据。
数据管理设备(110)可以是计算设备。该计算设备例如可以是移动电话、平板电脑、笔记本电脑、台式电脑、服务器或云资源。所述计算设备可以包括一个或多个处理器、存储器(例如随机存取存储器)以及持久存储装置(例如,硬盘、固态硬盘等)。持久存储装置可以存储计算机指令例如计算机代码,所述计算机代码在由计算设备的处理器执行时,使得计算设备执行本申请所描述和至少图4A至图4E中所示的功能。在不脱离本发明的前提下,数据管理设备(110)可以是其他类型的计算设备。
数据管理设备(110)可以包括持久存储装置(120)和对象生成器。数据管理设备(110)的每个组件在下文论述。
数据管理设备(110)可以包括持久存储装置(120)。持久存储装置(120)可以包括物理存储设备。物理存储设备例如可以是硬盘、固态硬盘、支持随机存取的磁带或任何其他类型的持久存储介质。持久存储装置(120)可以包括任何数量和/或组合的物理存储设备。
持久存储装置(120)可以包括用于存储来自客户端(100)的数据的对象存储装置(130)。如本文所使用,对象存储装置是将数据作为对象管理的数据存储架构。每个对象可以包括用于在该对象中存储数据的数个字节。在本发明的一个或多个实施例中,对象存储装置不包括文件系统。而是,可以使用命名空间(125)来组织在对象存储装置中存储的数据。关于对象存储装置(130)的其他细节见图1B。
持久存储装置(120)可以包括命名空间(125)。命名空间(125)可以是存储在持久存储装置(120)的物理存储设备上的数据结构,用于组织物理存储设备的数据存储资源。
在本发明的一个或多个实施例中,命名空间(125)可以将文件与在持久存储装置中存储的文件菜单(file recipe)相关联。文件菜单可以用于使用在对象存储装置(130)中存储的文件段来产生在对象存储装置(130)中存储的文件。每一个文件菜单可以包括使得数个文件段从对象存储装置中被提取的信息。然后所提取的文件段可以用于生成在对象存储装置中存储的文件。关于文件段的其他细节,请见图2A、图3A和图3B。
数据管理可以包括对象生成器(150)。对象生成器(150)可以生成在对象存储装置(130)中存储的对象。对象生成器(150)可以生成不同类型的对象。更具体来说,对象生成器(150)可以生成存储文件段的数据对象以及存储关于在数据对象中存储的文件段的元数据对象。关于在数据对象和元数据对象的其他细节,请见图2A至图2D。
在本发明的一个或多个实施例中,对象生成器(150)可以是物理器件。物理器件可以包括电路。物理器件例如可以是场可编程门阵列、特殊应用集成电路、可编程处理器、微控制器、数字信号处理器或其他硬件处理器。物理器件可以调试以提供在本申请中所描述的功能并执行在图4A至图4E中所示的方法。
在本发明的一个或多个实施例中,对象生成器(150)可以实施为存储在持久存储装置上的计算机指令(例如计算机代码),所述计算机指令在由数据管理设备(110)的处理器执行时使得数据管理设备(110)提供本申请所描述的功能并执行在图4A至图4E中所示的方法。
如上所论述,对象生成器(150)可以生成在对象存储装置(130)中存储的对象。图1B示出了根据本发明的一种或多种实施例的对象存储装置(130)的图示。对象存储装置(130)可以是将所存储的数据组织成对象的数据结构。
在本发明的一个或多个实施例中,对象存储装置(130)可以包括数据对象(132A)和元数据对象(133A)。数据对象(132A)可以包括文件的文件段。元数据对象(133A)可以包括关于在数据对象(132A)中存储的文件段的元数据。
图2A示出了根据本发明的一个或多个实施例的数据对象的实例。数据对象A(132B)可以包括标识符(200)、压缩区域描述(205)以及压缩区域(210A)。
标识符(200)可以是名称、位序列或用于识别该数据对象的其他信息。标识符(200)可以唯一地将数据与来自本地对象存储装置的其他对象区别开来。
压缩区域描述(205)可以包括关于压缩区域(210A)的描述信息。压缩区域描述(205)可以包括使得在压缩区域(210A)中存储的文件段被读取的信息。压缩区域描述(205)可以包括例如说明在压缩区域中存储的每一个文件段的开头、每一个文件段的长度和/或每一个文件段的末尾的信息。在不脱离本发明的前提下,压缩区域描述(205)可以包括其他信息。
压缩区域(210A)可以包括任何数目的文件段(210B至210N)。压缩区域(210A)的文件段可以集合在一起。压缩区域(210A)可以被压缩。压缩区域(210A)的压缩可以是无损耗压缩。
图2B示出了根据本发明的一个或多个实施例的元数据对象的实例。元数据对象A(133B)可以包括标识符(220)、元数据区域描述(225)以及元数据区域(230A)。
标识符(220)可以是名称、位序列或用于识别该数据对象的其他信息。标识符(220)可以唯一地将数据与来自本地对象存储装置的其他对象区别开来。
元数据区域描述(225)可以包括关于元数据区域(230A)的描述信息。元数据区域描述(225)可以包括使得在元数据区域(230A)中存储的文件段元数据被读取的信息。元数据区域描述(225)可以包括例如说明在元数据区域(230A)中存储的每一个文件段元数据的开头、每一个文件段元数据的长度和/或每一个文件段元数据的末尾的信息。在不脱离本发明的前提下,元数据区域描述(225)可以包括其他信息。
元数据区域(230A)可以包括在对象存储装置的一个或多个数据对象中存储的文件段的文件段元数据(230B至230N)。在元数据区域(230A)中存储的文件段元数据可以集成在一起。在本发明的一个或多个实施例中,元数据区域(230A)没有被压缩。
图2C示出了根据本发明的一个或多个实施例的文件段元数据的实例。文件段A元数据(230B)包括关于在对象存储装置的数据对象中存储的关联文件段的元数据。文件段A元数据(230B)包括文件段A指纹(250)和文件段A(255)的大小。文件段A元数据(230B)可以包括关联文件段的指纹。文件段A(255)的大小可以说明关联文件段的大小。
如本文所使用,文件段的指纹可以是实质上唯一地从在对象存储装置中存储的其他文件段识别出该文件段的位序列。如在本文所使用,实质上唯一就意味着,与导致致命失误的其他不可避免的缘由相比,在包括不同数据的两个文件段的各个指纹之间发生碰撞的概率可以忽略不计。在本发明的一个或多个实施例中,概率是10的-20次方(10^-20)或更低。在本发明的一个或多个实施例中,不可避免的致命失误可能由自然力诸如例如飓风所导致。换言之,说明不同数据的任何两个文件段的指纹实质上将是永远不会相同的。
在对象存储装置中存储的文件段的指纹可以用于对文件进行重复删除以便存储在对象存储装置中。为了进一步厘清文件、文件段和指纹之间的关系,图2D、图3A和图3B包括这些关系的图形表示。
更具体来说,图2D示出根据本发明的一个或多个实施例的在元数据的文件段、文件段的元数据和元数据的指纹之间的关系图示。
如从图中可见,在关于在对象存储装置中存储的文件段的元数据与在对象存储装置中存储的文件段之间存在一对一关系。换言之,对于在对象存储装置的数据对象中存储的实例文件段A(271)来说,关联文件段A元数据(270)将会被存储在元数据对象存储装置中。文件段A(271)的单一副本和文件段A元数据(270)将会被存储在对象存储装置中。
此外,如从图2D中所见,在文件段与指纹之间存在一对多关系。更具体来说,不同文件的文件段或同一文件的不同段可以具有相同的指纹。例如,如果第一文件的文件段A(271)和第二文件的文件段B(272)包括相同数据的话,两者可以具有相同的指纹A(275)。
图3A示出了根据本发明的一个或多个实施例的文件(300)的图示。该文件可以包括数据。该数据可以是任何类型的数据,可以是任何格式,可以是任何长度。
图3B设计出该数据的文件(300)的文件段(310-318)的图示。每一个文件段可以包括该文件(300)的独立的相异的部分。所述文件段中的每一个可以是不同但相似的长度。例如,每一个文件段可以包括大约8千字节的数据,如,第一文件段可以包括8.03千字节的数据,第二文件段可以包括7.96千字节的数据,等等。在本发明的一个或多个实施例中,每一个文件段的平均数据量在7.95千字节与8.05千字节之间。可以使用在图4B中所示的方法来将文件分解成文件段。
如上文所论述,数据管理设备(110,图1A)可以从客户端(100,图1A)接收数据来存储。数据管理设备(110,图1A)可以将数据存储在对象存储装置(130,图1A)中。图4A至图4E示出将数据存储在对象存储装置(130,图1A)中的方法的流程图。
图4A示出了根据本发明的一个或多个实施例的方法的流程图。图4A所示的方法可以用于根据本发明一个或多个实施例在对象存储装置中存储数据。图4A中所示的方法例如可以通过对象生成器(150,图1A)来执行。在不脱离本发明的前提下,数据管理设备(110)的其他组件或所示系统可以执行在图4A中所示的方法。
在步骤400中,获得文件进行存储。可以通过从客户端接收说明该文件的文件存储请求来获得该文件。
在步骤410中,将该文件分割以获得文件段。可以通过执行在图4B中所示的方法分割该文件来获得文件段。图4B。在不脱离本发明的前提下,可以使用不同于在图4B中所示方法的方法来分割该文件获得文件段。
在步骤420中,对所述文件段重复删除。可以使用图4C中所示的方法来对文件段重复删除。在不脱离本发明的前提下,可以使用不同于在图4C中所示的方法来对文件段重复删除。
在步骤430中,经重复删除的文件段被存储在数据对象中。可以使用在图4D中所示的方法来将所述文件段存储在数据对象中。在不脱离本发明的前提下,可以使用不同于在图4D中所示的方法来将文件段存储在数据对象中。
在步骤440中,将经重复删除的文件段的元数据存储在元数据对象中。可以使用在图4E中所示的方法来将经重复删除的文件段的元数据存储在元数据对象中。在不脱离本发明的前提下,可以使用不同于在图4C中所示的方法来将经重复删除的文件段的元数据存储在元数据对象中。
方法可在步骤440之后结束。
图4B示出了根据本发明的一种或多种实施例的方法的流程图。根据本发明一个或多个实施例,图4B中所示的方法可以用于存储文件的文件段。图4A中所示的方法例如可以通过对象生成器(150,图1A)来执行。在不脱离本发明的前提下,数据管理设备(110)的其他组件或所示系统可以执行在图4B中所示的方法。
在步骤401中,选择文件的未处理窗口。如本文所使用,该文件的一部分的窗口是该文件的预定数目的位。例如,第一窗口可以是文件的前1024个位,第二窗口可以是该文件的从该文件的第二位开始的1024个位,第三窗口可以是从第三位开始的1024个位,等等。该文件的每一个窗口可以被认为在图4B所示方法的开始阶段是未处理的。
在步骤402中,获得由未处理窗口指定的文件的一部分的散列(hash)。在本发明的一个或多个实施例中,该散列可以是加密散列。在本发明的一个或多个实施例中,加密散列是安全散列算法1(SHA-1)散列。在本发明的一个或多个实施例中,该加密散列是安全散列算法2(SHA-2)或安全散列算法3(SHA-3)散列。在不脱离本发明的前提下,也可以使用其他散列。
在步骤403中,将散列与预定位序列进行比较。如果散列匹配该预定位序列,方法前进至步骤404。如果散列不匹配该预定位序列,方法前进至步骤405。
在本发明一个或多个实施例中,该预定位序列包括与散列相同数目的位。该预定位序列可以是任何位图案。每当将散列与在图4B中所示方法中的位序列进行比较时,可以使用相同的位图案。
在步骤404中,可以基于所选择的未处理窗口来生成分段断点。该分段断点可以指定该文件的一个位。该文件的所述位可以是由该未处理窗口所指定的该文件的第一位。
在步骤405中,所选的未处理窗口被标记为已处理。通过例如将指定该文件的一个位的书签递增至该文件的下一个位,可以将所选的未处理窗口标记为未处理。
在步骤406中,确定是否该文件的所有窗口都为已处理的。如果该文件的所有窗口都为已处理的,方法前进至步骤407。如果并不是该文件的所有窗口都为已处理的,方法前进至步骤401。
在本发明的一个或多个实施例中,可以使用窗口长度和指定该文件的位的书签来确定是否所有窗口都为已处理的。具体来说,可以使用书签和窗口长度来确定是否窗口超过了文件的长度。
在步骤407中,使用分段断点将文件分割成文件段。如上所论述,分段断点可以指定文件的位。可以将文件分割成在每个断点开始和结束的文件段。
方法可在步骤407之后结束。
在本发明的一个或多个实施例中,图4B中所示的方法可以描述为执行该文件的滚动散列(rolling hash)。执行该滚动散列可以生成对应于该文件的部分的散列,即位序列。该文件的每一个部分可以在该文件的不同位开始,并且包括相同数目的位。可以将所生成的散列中的每一个与预定的位序列比较,从而生成分段断点。每当使用在图4B中所示方法来分割文件时,可以在步骤403中使用相同的预定位序列。在步骤403中使用相同的位序列将增加每次分割同一文件的副本时文件被以相似方式分割的机会。
图4C示出了根据本发明的一个或多个实施例的方法的流程图。根据本发明一个或多个实施例,图4C中所示的方法可以用于对文件的文件段重复删除。图4C中所示的方法例如可以通过对象生成器(150,图1A)来执行。在不脱离本发明的前提下,数据管理设备(110)的其他组件或所示系统可以执行在图4C中所示的方法。
在步骤411中,选择文件的未处理文件段。在图4C中所示方法的开始处,文件的所有文件段可以被认为是未处理的。
在步骤412中,生成所选的未处理文件段的指纹。在本发明的一个或多个实施例中,使用拉宾(Rabin)指纹算法来生成未处理的文件段的指纹。在本发明的一个或多个实施例中,使用加密散列函数来生成未处理的文件段的指纹。该加密散列函数例如可以是信息摘要(MD)或安全散列算法(SHA)。信息MD算法可以是MD5。SHA可以是SHA-0、SHA-1、SHA-2或SHA-3。在不脱离本发明的前提下,也可以使用其他指纹算法。
在步骤413中,确定所生成的指纹是否匹配在对象存储装置中存储的现有的指纹。如果所生成的指纹匹配现有的指纹,方法前进至步骤414。如果所生成的指纹不匹配现有的指纹,方法前进至步骤405。
在本发明的一个或多个实施例中,所生成的指纹仅匹配到在对象存储装置中存储的指纹的一部分。例如,可以仅将对象存储装置的元数据对象的一部分中存储的指纹载入到存储器中,并将其用作与所生成的指纹进行比较的基础。
在步骤414中,将所选的未处理文件段标记为副本。
在步骤415中,将所选的未处理文件段标记为已处理。
在步骤416中,确定是否该文件的所有文件段都为已处理的。如果该文件的文件段的所有窗口为已处理的,方法可前进至步骤417。如果该文件的文件段的所有窗口为未处理的,方法可前进至步骤411。
在步骤417中,所有被标记为副本的文件段被删除。其余文件段——即在步骤417中没有被删除的文件段——为重复删除的文件段。
方法可在步骤417之后结束。
尽管在图4C中示出通过识别出重复段的群组然后删除这些段的方式来执行重复删除过程,但是在不脱离本发明的前提下也可以使用不是以批次过程来执行的其他方法。例如,不论何时在步骤413中识别出指纹与现有指纹不匹配,可以将对应文件段存储在数据对象中。换言之,在不脱离本发明的前提下,可以使用连续流水线方法而不是批次方法。
图4D示出了根据本发明的一个或多个实施例的方法的流程图。根据本发明一个或多个实施例,图4D中所示的方法可以用于将重复删除的文件段存储在对象存储装置中。图4D中所示的方法例如可以通过对象生成器(150,图1A)来执行。在不脱离本发明的前提下,数据管理设备(110)的其他组件或所示系统可以执行在图4A中所示的方法。
在步骤421中,选择未处理的重复删除的文件段。在图4C中所示方法的开始处,文件的所有文件段可以被认为是未处理的。在图4D中所示的方法的开始处,可以将所有的文件段认为是未处理的。
在步骤422中,将所选的未处理的重复删除的文件段添加到数据对象中。
在本发明的一个或多个实施例中,可以将所选的未处理的重复删除的文件段添加到数据对象的压缩区域中。未处理的重复删除的文件段可以先被压缩,然后再被添加到压缩区域。该数据对象的压缩区域描述可以基于添加而更新。更具体来说,在该数据对象内的重复删除的文件段的开始、长度和/或末尾可以被添加到压缩区域描述中。在不脱离本发明的前提下,可以将不同的信息添加到压缩区域描述中以更新压缩区域描述。
在步骤423中,确定该数据对象是否已满。如果该数据对象已满,方法前进至步骤424。如果该数据对象未满,方法前进至步骤425。
可以基于在压缩区域中存储的数据的量来确定数据对象已满。更具体来说,可以基于存储压缩区域的被压缩的文件段所需的字节数来进行该确定。位的数目可以是预定数量的位,诸如例如5兆字节。
在步骤424中,将该数据对象存储在对象存储装置中。
在本发明的一个或多个实施例中,可以先将压缩区域的文件段压缩然后再将数据对象存储在对象存储装置中。
在步骤425中,所选的未处理的重复删除的文件段被标记为已处理的。
在步骤426中,确定是否所有的重复删除文件段都为已处理的。如果所有的重复删除文件段都为已处理的,方法可以在步骤426之后结束。如果不是所有的重复删除文件段都为已处理的,方法可前进至步骤421。
图4E示出了根据本发明的一个或多个实施例的方法的流程图。图4E所示的方法可以用于根据本发明一个或多个实施例将元数据存储在对象存储装置中。图4E中所示的方法例如可以通过对象生成器(150,图1A)来执行。在不脱离本发明的前提下,数据管理设备(110)的其他组件或所示系统可以执行在图4E中所示的方法。
在步骤431中,选择未处理的重复删除的文件段。在图4C中所示方法的开始处,文件的所有文件段可以被认为是未处理的。
在步骤432中,将所选择的未处理的重复删除的文件段的指纹添加到元数据对象。
在本发明的一个或多个实施例中,所选的未处理的重复删除的文件段的指纹可以被添加到元数据对象的元数据区域。该元数据对象的元数据区域描述可以基于所述添加来更新。更具体来说,在该数据对象内的指纹的开始、长度和/或末尾可以被添加到元数据区域描述中。在不脱离本发明的前提下,可以将不同的信息添加到元数据区域描述中以更新该元数据区域描述。例如,在不脱离本发明的前提下,除指纹以外,可以将所选择的未处理的重复删除的文件段的大小添加到元数据区域。
在步骤433中,确定元数据对象是否已满。如果元数据对象已满,方法前进至步骤434。如果元数据对象未满,方法前进至步骤435。
可以基于在元数据区域中存储的数据的量来将该元数据对象确定为已满。更具体来说,可以基于存储该元数据区域的元数据所需的字节数来做出该确定。位的数目可以是预定数量的位,诸如例如5兆字节。
在步骤434中,该元数据对象被存储在对象存储装置中。
在步骤435中,将所选择的未处理的重复删除的文件段标记为已处理的。
在步骤436中,确定是否所有的重复删除的文件段都是已处理的。如果所有的重复删除的文件段都是已处理的,方法可以在步骤436之后结束。如果不是所有的重复删除的文件段是已处理的,方法可以在步骤431之后结束。
尽管在图4D和图4E中图示为独立的方法,本发明的实施例不限于独立执行的方法。例如,两种方法可以同时执行。步骤432-435可以同图4D中的步骤422-425协调执行。
以下为一解释性实例。包括该解释性实例,是出于解释性目的而非限制性。
实例
客户端将数据存储请求发送至数据管理设备。如图5A所示,该数据存储请求指定文本文档500。
响应于该数据存储请求,数据管理设备获得所请求的文本文档500。该文本文档例如可以是包括记录项目状态的报告的最终草稿的词语文档。记录项目状态的报告的之前的草稿已经存储在数据管理设备中。
该数据管理设备将该文件分割成第一文件段(501)、第二文件段(502)以及第三文件段(503)。该数据管理设备生成第一文件段(501)的第一指纹(511)、第二文件段(502)的第二指纹(512)以及第三文件段(503)的第三指纹(513)。第一文件段包括相对于报告的草稿没有变化的该报告的介绍性部分。第二文件段包括相对于报告的草稿发生变化的该报告的所要求的材料部分。第三文件段包括相对于报告的草稿发生变化的项目完成时间线。
然后将文件段(501-503)重复删除。在图5B所示的重复删除期间,该数据管理设备将第一指纹(511)匹配到该草稿报告的包括报告的介绍性部分的第一段所对应的存储的指纹(515)。第二指纹(512)和第三指纹(513)不匹配在对象存储装置中的任何指纹。
基于该匹配,只有第二文件段(502)和第三文件段(503)被添加到数据对象(520)中以存储在对象存储装置中,如图5C所示。第一文件段(501)被删除。相似地,只有第二指纹(512)和第三指纹(513)被添加到对象存储装置的元数据对象(550)中。
在数据对象(520)和元数据对象(550)存储在对象存储装置中之后,该实例结束。
可以使用由在数据存储设备中的一个或多个处理器执行的指令来实施本发明的一个或多个实施例。另外,此类指令可以对应于在一个或多个非暂时性计算机可读介质上存储的计算机可读指令。
本发明的一个或多个实施例可以实现以下中的一种或多种:1)与在同一对象中存储数据和元数据的对象存储相比时,减少对文件重复删除所需的磁盘输入输出(IO)操作数量;2)与在同一对象中存储数据和元数据的对象存储相比时,减少执行垃圾收集所需的磁盘输入输出(IO)操作数量;以及3)减少当该对象存储的一部分利用远程计算设备的数据存储时执行重复删除所用的带宽。
虽然本发明是参照有限数量的实施例说明的,但是受益于本公开的本领域技术人员能理解,可以设计出不脱离本文中所公开的本发明范围的其他实施方式。因此,本发明的范围仅由所附权利要求限定。
Claims (12)
1.一种数据管理设备,包括:
持久存储装置,包括对象存储装置,其中所述对象存储装置包括:
数据对象,其中所述数据对象包括:
与第一文件相关联的第一多个文件段;及
元数据对象,其中所述元数据对象包括:
所述第一多个文件段的第一元数据;
元数据区域描述符,其指定包括所述第一多个文件段的所述第一元数据的元数据区域的内容,其中所述元数据区域描述符的内容包括所述第一多个文件段的所述第一元数据的开始位置、长度和末尾;和
处理器,被编程为:
将所述第一文件分割为所述第一多个文件段;
生成所述第一多个文件段的所述元数据;
将所述第一多个文件段的一部分存储在所述数据对象中;和
将所述第一多个文件段的所述元数据的一部分存储在所述元数据对象中。
2.根据权利要求1所述的数据管理设备,其中所述数据对象包括:
压缩区域描述符,其指定包括所述第一多个文件段和第二多个文件段的压缩区域的内容。
3.根据权利要求2所述的数据管理设备,其中压缩区域被压缩。
4.根据权利要求1所述的数据管理设备,其中所述第一多个文件段的所述第一元数据包括:
所述第一多个文件段的文件段的指纹;和
所述第一多个文件段的所述文件段的大小。
5.根据权利要求1所述的数据管理设备,其中所述元数据区域不被压缩。
6.根据权利要求1所述的数据管理设备,其中将所述第一文件分割为第一多个文件段包括:
生成所述第一文件的滚动散列;
基于所述滚动散列来选择多个分段断点;和
基于所述分段断点来将所述第一文件划分为所述第一多个文件段。
7.根据权利要求1所述的数据管理设备,其中生成所述第一多个文件段的元数据包括:
生成所述第一多个文件段中的第一文件段的指纹;
将所述指纹与存储在所述对象存储装置中的第二多个指纹进行匹配;
做出所述指纹与所述第二多个指纹的指纹相匹配的确定;和
基于所述确定来删除所述第一文件段。
8.根据权利要求7所述的数据管理设备,其中所述第二多个指纹存储在所述对象存储装置的数据对象中,所述数据对象不包括存储在所述对象存储装置中的任何文件的文件段。
9.根据权利要求1所述的数据管理设备,其中生成所述第一多个文件段的元数据包括:
生成所述第一多个文件段中的第一文件段的指纹;
将所述指纹与存储在所述对象存储装置中的第二多个指纹进行匹配;
做出所述指纹与所述第二多个指纹的指纹不匹配的确定;和
选择所述数据对象中的所述第一文件段以用于存储。
10.根据权利要求1所述的数据管理设备,其中将所述第一多个文件段的所述部分存储在所述对象存储装置的所述数据对象中包括:
将所述第一多个文件段中的第一文件段添加到第一数据对象;
基于所述第一文件段的添加来做出所述第一数据对象已满的确定;
响应于所述确定,将所述第一数据对象存储在所述对象存储装置中;和
将所述第一多个文件段中的第二文件段添加到未满的第二数据对象。
11.根据权利要求1所述的数据管理设备,其中将所述第一多个文件段的所述元数据的所述部分存储在所述对象存储装置的所述元数据对象中包括:
将所述第一多个文件段中的第一文件段的指纹添加到所述元数据对象;
基于所述第一文件段的所述指纹的添加来做出所述第一元数据对象未满的确定;和
响应于所述确定,将所述第一多个文件段中的第二文件段的指纹添加到所述元数据对象。
12.一种操作数据管理设备的方法,包括:
通过所述数据管理设备,将文件分割为多个文件段;
通过所述数据管理设备,生成所述多个文件段的元数据,其中通过所述数据管理设备,生成所述多个文件段的元数据包括:
通过所述数据管理设备,生成所述多个文件段中的第一文件段的指纹;
通过所述数据管理设备,将所述指纹与存储在对象存储装置的元数据对象中的第二多个指纹进行匹配;
通过所述数据管理设备,做出所述指纹与所述第二多个指纹的指纹相匹配的确定;和
通过所述数据管理设备,基于所述确定来删除所述第一文件段;
通过所述数据管理设备,将所述多个文件段的一部分存储在对象存储装置的数据对象中;和
通过所述数据管理设备,将所述多个文件段的元数据存储在所述对象存储装置的元数据对象中,
其中所述元数据对象还包括元数据区域描述符,所述元数据区域描述符指定包括所述多个文件段的所述元数据的元数据区域的内容,其中所述元数据区域描述符的内容包括所述多个文件段的所述元数据的开始位置、长度和末尾。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/656,338 US11461269B2 (en) | 2017-07-21 | 2017-07-21 | Metadata separated container format |
US15/656,338 | 2017-07-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019039A CN110019039A (zh) | 2019-07-16 |
CN110019039B true CN110019039B (zh) | 2023-08-11 |
Family
ID=63014457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810809900.9A Active CN110019039B (zh) | 2017-07-21 | 2018-07-23 | 元数据分离的容器格式 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11461269B2 (zh) |
EP (1) | EP3432168B1 (zh) |
CN (1) | CN110019039B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6860037B2 (ja) * | 2019-05-20 | 2021-04-14 | 日本電気株式会社 | 重複排除記憶方法、重複排除記憶制御装置、重複排除ストレージシステム、プログラム |
US11861169B2 (en) * | 2020-06-26 | 2024-01-02 | Netapp, Inc. | Layout format for compressed data |
US20220237176A1 (en) * | 2021-01-27 | 2022-07-28 | EMC IP Holding Company LLC | Method and system for managing changes of records on hosts |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567427A (zh) * | 2010-12-30 | 2012-07-11 | 中国移动通信集团公司 | 一种对象数据处理方法及装置 |
CN103812939A (zh) * | 2014-02-17 | 2014-05-21 | 李漾 | 一种大数据存储系统 |
CN105511814A (zh) * | 2015-12-11 | 2016-04-20 | 上海爱数信息技术股份有限公司 | 一种静态数据文件的存储方法 |
Family Cites Families (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976134B1 (en) | 2001-09-28 | 2005-12-13 | Emc Corporation | Pooling and provisioning storage resources in a storage network |
IL147073A0 (en) | 2001-12-10 | 2002-08-14 | Monosphere Ltd | Method for managing the storage resources attached to a data network |
CA2384185A1 (en) | 2002-04-29 | 2003-10-29 | Ibm Canada Limited-Ibm Canada Limitee | Resizable cache sensitive hash table |
US6928526B1 (en) | 2002-12-20 | 2005-08-09 | Datadomain, Inc. | Efficient data storage system |
JP2005165486A (ja) | 2003-12-01 | 2005-06-23 | Sony Corp | ファイル管理装置、ストレージ管理システム、ストレージ管理方法、プログラム及び記録媒体 |
US7284093B2 (en) | 2004-01-16 | 2007-10-16 | International Business Machines Corporation | Self-tuning cache |
US7117310B2 (en) | 2004-02-18 | 2006-10-03 | Lsi Logic Corporation | Systems and methods for cache synchronization between redundant storage controllers |
US7818515B1 (en) | 2004-08-10 | 2010-10-19 | Symantec Operating Corporation | System and method for enforcing device grouping rules for storage virtualization |
US8739020B2 (en) | 2005-08-03 | 2014-05-27 | Aol Inc. | Enhanced favorites service for web browsers and web applications |
US7536500B2 (en) | 2006-09-29 | 2009-05-19 | Intel Corporation | Header blocks for flash memory writes |
US7844581B2 (en) | 2006-12-01 | 2010-11-30 | Nec Laboratories America, Inc. | Methods and systems for data management using multiple selection criteria |
US8214517B2 (en) | 2006-12-01 | 2012-07-03 | Nec Laboratories America, Inc. | Methods and systems for quick and efficient data management and/or processing |
JP2008217216A (ja) | 2007-03-01 | 2008-09-18 | Hitachi Ltd | 負荷分散方法及び計算機システム |
US7769971B2 (en) | 2007-03-29 | 2010-08-03 | Data Center Technologies | Replication and restoration of single-instance storage pools |
US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
US8190835B1 (en) | 2007-12-31 | 2012-05-29 | Emc Corporation | Global de-duplication in shared architectures |
WO2009087413A1 (en) | 2008-01-08 | 2009-07-16 | Taptu Ltd. | Data storage |
US8515909B2 (en) | 2008-04-29 | 2013-08-20 | International Business Machines Corporation | Enhanced method and system for assuring integrity of deduplicated data |
US8204868B1 (en) | 2008-06-30 | 2012-06-19 | Symantec Operating Corporation | Method and system for improving performance with single-instance-storage volumes by leveraging data locality |
US8046551B1 (en) | 2008-08-14 | 2011-10-25 | Emc Corporation | Techniques for processing I/O requests |
US8316064B2 (en) | 2008-08-25 | 2012-11-20 | Emc Corporation | Method and apparatus for managing data objects of a data storage system |
WO2010045262A1 (en) | 2008-10-14 | 2010-04-22 | Wanova Technologies, Ltd. | Storage-network de-duplication |
US8060715B2 (en) | 2009-03-31 | 2011-11-15 | Symantec Corporation | Systems and methods for controlling initialization of a fingerprint cache for data deduplication |
US20110055471A1 (en) | 2009-08-28 | 2011-03-03 | Jonathan Thatcher | Apparatus, system, and method for improved data deduplication |
WO2011024239A1 (en) | 2009-08-31 | 2011-03-03 | Hitachi, Ltd. | Storage system having plurality of flash packages |
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 |
US8121993B2 (en) | 2009-10-28 | 2012-02-21 | Oracle America, Inc. | Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting |
US8782323B2 (en) | 2009-10-30 | 2014-07-15 | International Business Machines Corporation | Data storage management using a distributed cache scheme |
US9514055B2 (en) | 2009-12-31 | 2016-12-06 | Seagate Technology Llc | Distributed media cache for data storage systems |
US8407193B2 (en) * | 2010-01-27 | 2013-03-26 | International Business Machines Corporation | Data deduplication for streaming sequential data storage applications |
US8468455B2 (en) | 2010-02-24 | 2013-06-18 | Novell, Inc. | System and method for providing virtual desktop extensions on a client desktop |
US8805967B2 (en) | 2010-05-03 | 2014-08-12 | Panzura, Inc. | Providing disaster recovery for a distributed filesystem |
US8935487B2 (en) | 2010-05-05 | 2015-01-13 | Microsoft Corporation | Fast and low-RAM-footprint indexing for data deduplication |
US8898114B1 (en) | 2010-08-27 | 2014-11-25 | Dell Software Inc. | Multitier deduplication systems and methods |
US8577850B1 (en) | 2010-11-15 | 2013-11-05 | Symantec Corporation | Techniques for global data deduplication |
US8396841B1 (en) | 2010-11-30 | 2013-03-12 | Symantec Corporation | Method and system of multi-level and multi-mode cloud-based deduplication |
US8898119B2 (en) | 2010-12-15 | 2014-11-25 | Netapp, Inc. | Fingerprints datastore and stale fingerprint removal in de-duplication environments |
US8904120B1 (en) | 2010-12-15 | 2014-12-02 | Netapp Inc. | Segmented fingerprint datastore and scaling a fingerprint datastore in de-duplication environments |
US9442671B1 (en) | 2010-12-23 | 2016-09-13 | Emc Corporation | Distributed consumer cloud storage system |
US9280550B1 (en) | 2010-12-31 | 2016-03-08 | Emc Corporation | Efficient storage tiering |
US8676834B2 (en) | 2011-02-16 | 2014-03-18 | International Business Machines Corporation | Set-level comparisons in dynamically formed groups |
US8341312B2 (en) | 2011-04-29 | 2012-12-25 | International Business Machines Corporation | System, method and program product to manage transfer of data to resolve overload of a storage system |
US8688650B2 (en) | 2011-08-01 | 2014-04-01 | Actifio, Inc. | Data fingerprinting for copy accuracy assurance |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US8732521B2 (en) | 2011-08-31 | 2014-05-20 | Oracle International Corporation | Detection of logical corruption in persistent storage and automatic recovery therefrom |
US8990171B2 (en) | 2011-09-01 | 2015-03-24 | Microsoft Corporation | Optimization of a partially deduplicated file |
US8799467B2 (en) | 2011-09-09 | 2014-08-05 | Microsoft Corporation | Storage and communication de-duplication |
US8949208B1 (en) | 2011-09-30 | 2015-02-03 | Emc Corporation | System and method for bulk data movement between storage tiers |
US8943032B1 (en) | 2011-09-30 | 2015-01-27 | Emc Corporation | System and method for data migration using hybrid modes |
US8898120B1 (en) | 2011-10-09 | 2014-11-25 | Symantec Corporation | Systems and methods for distributed data deduplication |
US9047304B2 (en) | 2011-11-28 | 2015-06-02 | International Business Machines Corporation | Optimization of fingerprint-based deduplication |
CN103136114B (zh) | 2011-11-30 | 2015-11-25 | 华为技术有限公司 | 存储方法及存储装置 |
EP2810171B1 (en) | 2012-02-02 | 2019-07-03 | Hewlett-Packard Enterprise Development LP | Systems and methods for data chunk deduplication |
US8732403B1 (en) | 2012-03-14 | 2014-05-20 | Netapp, Inc. | Deduplication of data blocks on storage devices |
WO2013165388A1 (en) | 2012-05-01 | 2013-11-07 | Hewlett-Packard Development Company, L.P. | Segment combining for deduplication |
CN104541252B (zh) | 2012-05-20 | 2021-02-26 | 微软技术许可有限责任公司 | 用于实现基于服务器的分层大容量存储系统的系统和方法 |
US8918390B1 (en) | 2012-06-13 | 2014-12-23 | Emc Corporation | Preferential selection of candidates for delta compression |
US9164688B2 (en) | 2012-07-03 | 2015-10-20 | International Business Machines Corporation | Sub-block partitioning for hash-based deduplication |
US9183200B1 (en) | 2012-08-02 | 2015-11-10 | Symantec Corporation | Scale up deduplication engine via efficient partitioning |
US9367480B2 (en) | 2012-08-07 | 2016-06-14 | Dell Products L.P. | System and method for updating data in a cache |
US9830111B1 (en) | 2012-08-08 | 2017-11-28 | Amazon Technologies, Inc. | Data storage space management |
JP6083973B2 (ja) * | 2012-08-08 | 2017-02-22 | 株式会社メガチップス | データ記憶制御装置およびデータ記憶方法 |
US8700578B1 (en) * | 2012-09-27 | 2014-04-15 | Emc Corporation | System and method for determining physical storage space of a deduplicated storage system |
US9495379B2 (en) | 2012-10-08 | 2016-11-15 | Veritas Technologies Llc | Locality aware, two-level fingerprint caching |
CN103020174B (zh) | 2012-11-28 | 2016-01-06 | 华为技术有限公司 | 相似性分析方法、装置及系统 |
ES2700431T3 (es) | 2012-12-12 | 2019-02-15 | Huawei Tech Co Ltd | Método y dispositivo de procesamiento de datos en un sistema de clúster |
US9274954B1 (en) | 2012-12-18 | 2016-03-01 | Netapp, Inc. | Caching data using multiple cache devices |
GB2509504A (en) | 2013-01-04 | 2014-07-09 | Ibm | Accessing de-duplicated data files stored across networked servers |
US9317218B1 (en) | 2013-02-08 | 2016-04-19 | Emc Corporation | Memory efficient sanitization of a deduplicated storage system using a perfect hash function |
US9798731B2 (en) | 2013-03-06 | 2017-10-24 | Dell Products, Lp | Delta compression of probabilistically clustered chunks of data |
US9244623B1 (en) | 2013-03-13 | 2016-01-26 | Emc Corporation | Parallel de-duplication of data chunks of a shared data object using a log-structured file system |
US9471500B2 (en) | 2013-04-12 | 2016-10-18 | Nec Corporation | Bucketized multi-index low-memory data structures |
US10592347B2 (en) | 2013-05-16 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
US9424185B1 (en) | 2013-06-04 | 2016-08-23 | Emc Corporation | Method and system for garbage collection of data storage systems |
US9298724B1 (en) | 2013-06-14 | 2016-03-29 | Symantec Corporation | Systems and methods for preserving deduplication efforts after backup-job failures |
US9251160B1 (en) | 2013-06-27 | 2016-02-02 | Symantec Corporation | Data transfer between dissimilar deduplication systems |
US9386086B2 (en) | 2013-09-11 | 2016-07-05 | Cisco Technology Inc. | Dynamic scaling for multi-tiered distributed systems using payoff optimization of application classes |
US9336143B1 (en) | 2013-09-26 | 2016-05-10 | Emc Corporation | Indexing a deduplicated cache system by integrating fingerprints of underlying deduplicated storage system |
US9390116B1 (en) | 2013-09-26 | 2016-07-12 | Emc Corporation | Insertion and eviction schemes for deduplicated cache system of a storage system |
US9678973B2 (en) | 2013-10-15 | 2017-06-13 | Hitachi Data Systems Corporation | Multi-node hybrid deduplication |
US9158633B2 (en) | 2013-12-24 | 2015-10-13 | International Business Machines Corporation | File corruption recovery in concurrent data protection |
US9390281B2 (en) | 2013-12-30 | 2016-07-12 | Open Invention Network, Llc | Protecting data in insecure cloud storage |
US9361032B2 (en) | 2014-05-14 | 2016-06-07 | International Business Machines Corporation | Management of server cache storage space |
US10002048B2 (en) | 2014-05-15 | 2018-06-19 | International Business Machines Corporation | Point-in-time snap copy management in a deduplication environment |
US9250823B1 (en) | 2014-05-20 | 2016-02-02 | Emc Corporation | Online replacement of physical storage in a virtual storage system |
CN104010042A (zh) | 2014-06-10 | 2014-08-27 | 浪潮电子信息产业股份有限公司 | 一种云服务的重复数据删除的备份机制 |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US10176117B2 (en) | 2014-10-01 | 2019-01-08 | Cacheio Llc | Efficient metadata in a storage system |
WO2016065080A1 (en) | 2014-10-21 | 2016-04-28 | Twilio, Inc. | System and method for providing a miro-services communication platform |
US10372695B2 (en) | 2014-12-27 | 2019-08-06 | Intel Corporation | Technologies for computing rolling hashes |
US10175894B1 (en) | 2014-12-30 | 2019-01-08 | EMC IP Holding Company LLC | Method for populating a cache index on a deduplicated storage system |
US9952933B1 (en) * | 2014-12-31 | 2018-04-24 | Veritas Technologies Llc | Fingerprint change during data operations |
JP6476932B2 (ja) | 2015-02-02 | 2019-03-06 | 富士通株式会社 | ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法 |
US9436392B1 (en) | 2015-02-17 | 2016-09-06 | Nimble Storage, Inc. | Access-based eviction of blocks from solid state drive cache memory |
US20160323367A1 (en) | 2015-04-30 | 2016-11-03 | Lifespeed, Inc. | Massively-scalable, asynchronous backend cloud computing architecture |
US9612749B2 (en) | 2015-05-19 | 2017-04-04 | Vmware, Inc. | Opportunistic asynchronous deduplication using an in-memory cache |
US10296219B2 (en) | 2015-05-28 | 2019-05-21 | Vmware, Inc. | Data deduplication in a block-based storage system |
US20170017907A1 (en) | 2015-07-13 | 2017-01-19 | Cisco Technology, Inc. | Supply chain excellence as a service |
US10104167B2 (en) | 2015-09-28 | 2018-10-16 | Verizon Patent And Licensing Inc. | Networking functions in a micro-services architecture |
WO2017113123A1 (zh) | 2015-12-29 | 2017-07-06 | 华为技术有限公司 | 重复数据删除方法及存储设备 |
US10261946B2 (en) | 2016-01-12 | 2019-04-16 | International Business Machines Corporation | Rebalancing distributed metadata |
US10078451B1 (en) | 2016-01-22 | 2018-09-18 | Red Hat, Inc. | Deduplicating data based on boundary identification |
US20170220334A1 (en) | 2016-01-29 | 2017-08-03 | General Electric Company | Mobile management of industrial assets |
US10140066B2 (en) | 2016-02-01 | 2018-11-27 | International Business Machines Corporation | Smart partitioning of storage access paths in shared storage services |
US10445292B1 (en) | 2016-03-30 | 2019-10-15 | Veritas Technologies Llc | Sharing services between deduplication systems |
US10453076B2 (en) | 2016-06-02 | 2019-10-22 | Facebook, Inc. | Cold storage for legal hold data |
US9973573B2 (en) | 2016-06-08 | 2018-05-15 | International Business Machines Corporation | Concurrency reduction service |
CN109690493B (zh) | 2016-09-29 | 2023-03-31 | 华睿泰科技有限责任公司 | 用于修复去重存储装置中的映像的系统和方法 |
US10735553B2 (en) | 2016-11-23 | 2020-08-04 | Level 3 Communications, Llc | Micro-services in a telecommunications network |
US10102150B1 (en) | 2017-04-28 | 2018-10-16 | EMC IP Holding Company LLC | Adaptive smart data cache eviction |
US11010300B2 (en) | 2017-05-04 | 2021-05-18 | Hewlett Packard Enterprise Development Lp | Optimized record lookups |
-
2017
- 2017-07-21 US US15/656,338 patent/US11461269B2/en active Active
-
2018
- 2018-07-20 EP EP18184842.5A patent/EP3432168B1/en active Active
- 2018-07-23 CN CN201810809900.9A patent/CN110019039B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567427A (zh) * | 2010-12-30 | 2012-07-11 | 中国移动通信集团公司 | 一种对象数据处理方法及装置 |
CN103812939A (zh) * | 2014-02-17 | 2014-05-21 | 李漾 | 一种大数据存储系统 |
CN105511814A (zh) * | 2015-12-11 | 2016-04-20 | 上海爱数信息技术股份有限公司 | 一种静态数据文件的存储方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3432168B1 (en) | 2022-12-28 |
US11461269B2 (en) | 2022-10-04 |
EP3432168A1 (en) | 2019-01-23 |
CN110019039A (zh) | 2019-07-16 |
US20190026299A1 (en) | 2019-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7478113B1 (en) | Boundaries | |
CN104871155B (zh) | 优化用于去重的数据块大小 | |
US10552640B2 (en) | In-situ data verification for the cloud | |
US9792306B1 (en) | Data transfer between dissimilar deduplication systems | |
US11182256B2 (en) | Backup item metadata including range information | |
CN107229420B (zh) | 数据存储方法、读取方法、删除方法和数据操作系统 | |
US20130067237A1 (en) | Providing random access to archives with block maps | |
KR102187127B1 (ko) | 데이터 연관정보를 이용한 중복제거 방법 및 시스템 | |
US10366072B2 (en) | De-duplication data bank | |
CN110019039B (zh) | 元数据分离的容器格式 | |
US10972569B2 (en) | Apparatus, method, and computer program product for heterogenous compression of data streams | |
US10795860B1 (en) | WAN optimized micro-service based deduplication | |
US11409766B2 (en) | Container reclamation using probabilistic data structures | |
US11093453B1 (en) | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication | |
CN110019056B (zh) | 用于云层的容器元数据分离 | |
CN104965835A (zh) | 一种分布式文件系统的文件读写方法及装置 | |
JP2016514393A (ja) | 差分符号化のためのシリアライゼーション | |
US10949088B1 (en) | Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system | |
US10860212B1 (en) | Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier | |
US11163748B1 (en) | Fingerprint backward compatibility in deduplication backup systems | |
CN114840502A (zh) | 使用不同的散列大小和压缩大小进行散列 | |
CN114064361A (zh) | 备份相关操作中执行的写数据方法和备份网关系统 | |
US20170048303A1 (en) | On the fly statistical delta differencing engine | |
US10649846B2 (en) | Disassembly and reassembly of a tar archive | |
US20190034282A1 (en) | Offline repopulation of cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |