CN113646741A - 在文件夹/子文件夹结构中生成共同具有期望的可去重复性、压缩、聚类和通用性的文件集合并使其变形 - Google Patents
在文件夹/子文件夹结构中生成共同具有期望的可去重复性、压缩、聚类和通用性的文件集合并使其变形 Download PDFInfo
- Publication number
- CN113646741A CN113646741A CN201980094923.9A CN201980094923A CN113646741A CN 113646741 A CN113646741 A CN 113646741A CN 201980094923 A CN201980094923 A CN 201980094923A CN 113646741 A CN113646741 A CN 113646741A
- Authority
- CN
- China
- Prior art keywords
- files
- generation
- data stream
- file
- storage medium
- 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.)
- Pending
Links
- 230000006835 compression Effects 0.000 title description 8
- 238000007906 compression Methods 0.000 title description 8
- 238000000034 method Methods 0.000 claims abstract description 85
- 238000004088 simulation Methods 0.000 claims abstract description 14
- 238000003860 storage Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 40
- 238000012360 testing method Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000002910 structure generation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
- G06F16/192—Implementing virtual folder structures
-
- 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
- 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
- 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
-
- 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/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
-
- 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/18—File system types
- G06F16/188—Virtual file systems
- G06F16/196—Specific adaptations of the file system to access devices and non-file objects via standard file system access operations, e.g. pseudo file systems
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
- G06F3/068—Hybrid storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种示例性方法包括:接收一组文件系统参数;基于所述文件系统参数创建模拟文件系统;接收文件集合的一组目标特性;基于所述目标特性,将数据流切片成一组数据切片;用所述数据切片填充模拟文件以创建所述文件集合;以及使所述文件集合从一代向前或反向变形到另一代,而无需重写整个文件集合。
Description
相关申请
本申请涉及:2018年7月31日授权的标题为“GENERATING A LARGE,NON-COMPRESSIBLE DATA STREAM”的美国专利US 10,038,733(申请号14/489,317,提交于2014年9月17日);2018年10月30日授权的标题为“GENERATING A DATA STREAM WITH APREDICTABLE CHANGE RATE”的美国专利US 10,114,832(申请号14/489,363,提交于2014年9月17日);2018年10月30日授权的标题为“DATA STREAM GENERATION USING PRIMENUMBERS”的美国专利US 10,114,850(申请号14/489,295,提交于2014年9月17日);2019年3月19日授权的标题为“ROTATING BIT VALUES WHILE GENERATING A LARGE,NON-COMPRESSIBLE DATA STREAM”的美国专利US 10,235,134(申请号15/420,614,提交于2017年1月31日);以及2018年12月25日授权的标题为“ROTATING BIT VALUES BASED ON A DATASTRUCTURE WHILE GENERATING A LARGE,NON-COMPRESSIBLE DATA STREAM”的美国专利US10,163,371(申请号15/420,633,提交于2017年1月31日)。本申请还涉及:与其同日提交的标题为“GENERATING A DATA STREAM WITH CONFIGURABLE COMPRESSION”的美国专利申请(申请号16/389,671);与其同日提交的标题为“GENERATING A DATA STREAM WITHCONFIGURABLE COMMONALITY”的美国专利申请(申请号16/389,671);与其同日提交的标题为“GENERATING A DATA STREAM WITH CONFIGURABLE CHANGE RATE AND CLUSTERINGCAPABILITY”的美国专利申请(申请号16/389,729)。所有前述专利和申请的相应的全部内容都以引用方式并入本文。
技术领域
本发明的实施方式总体上涉及具有各种属性的数据流的生成。更具体地,本发明的至少一些实施方式涉及用于基于具有期望参数的数据流生成文件集合的系统、硬件、软件、计算机可读介质以及方法。
背景技术
开发人员和其他人员通常需要模拟由处于开发阶段的应用程序生成的数据流。数据流的模拟使得开发人员能够在应用程序推出之前识别和纠正任何问题,并且增强应用程序的性能。
已经开发了各种算法来生成数据流。由这些算法生成的数据流可能具有各种期望的特性,但是这类数据流可能更适合用于某些应用程序,而不是其他应用程序。
附图说明
为了描述可以获得本发明的优点和特征中的至少一些所用的方式,将通过参考本发明在附图中示出的具体实施方式来呈现对本发明的实施方式的更特定描述。应理解,这些附图仅描绘本发明的典型实施方式,并且因此不被认为是对其范围的限制,本发明的实施方式将通过使用附图以另外的特异性和细节来描述和解释。
图1公开了本发明的一些实施方式的示例性操作环境的各方面。
图2公开了示例性文件系统合成模块的各方面。
图3公开了示例性主机配置的各方面。
图4公开了示例性文件系统和文件结构方案。
图5公开了其中将数据流切片成文件的示例性布置。
图6是公开用于创建第0代文件集合的方法的一些一般方面的流程图。
图7公开了一种示例性布置,其中比较数据流并且基于比较更新文件集合。
图8是公开用于将文件集合变形为不同代的示例性方法的各方面的流程图。
图9是公开用于将文件集合反向变形为不同代的示例性方法的各方面的流程图。
具体实施方式
本发明的实施方式总体上涉及具有各种属性的数据流的生成。更特定地,本发明的至少一些实施方式涉及用于基于具有期望特性的数据流生成文件集合的系统、硬件、软件、计算机可读介质以及方法。
更详细地,本发明的示例性实施方式可以结合各种类型的数据流来采用,所述数据流包括例如具有特定特性的数据流。这类特性包括但不限于例如可去重复性(即,数据流可以被去重复的程度(如果有的话))、可压缩性、通用性、数据变化率和聚类。应注意,可去重复性可以存在于单个数据流内和/或跨多个数据流存在。在相关申请中公开了用于生成这类数据流的系统和方法。
结合具有用户定义的文件结构的文件系统来实施本发明的示例性实施方式。更特定地,收集许多参数(诸如文件集合的总大小、集合增长、集合中每个实体的平均大小、集合中实体大小的差异、每个文件夹和子文件夹处集合实体的分布、以及每个文件夹级别的最小值、最大值、差异)并且将所述参数用于创建文件系统的模拟文件结构。然后,按顺序创建要包括在文件系统中的每个实体,并且使用来自数据流的数据填充实体。在采用多个数据流的情况下,不需要按顺序创建实体。
以这种方式,对文件系统中的文件赋予一个或多个数据流的各种特性。从另一个角度考虑,本发明的实施方式在具有指定文件夹/子文件夹文件结构配置的文件系统中生成文件集合并使其变形,使得所得到的文件分组共同拥有客户期望的特性,例如,诸如可去重复性、压缩、聚类和通用性。以下示例是说明性的。
基本文件集合的生成可能涉及采用具有特定特性的数据流的L0(在一些情境下也可以称为第0天)版本,并且然后使用来自该数据流的数据来填充模拟文件以生成具有那些特性的基本文件集合。然而,本发明的实施方式不仅限于生成基本文件集合。
例如,本发明的其他实施方式提供将文件集合向前或反向变形为该文件集合的另一版本。这将在下面通过示例进行简要说明,在所述示例中,将文件集合从第N-1代向前变形为第N代。
该特定的变形示例涉及在存储器中生成Ln(第n天)和Ln-1(第n-1天)版本的数据流,以及然后以较小的块(例如,诸如1KB)将这些版本进行相互比较。可以根据需要选择块的大小。举例来说,在模拟跟踪以64KB级别变化的跟踪器例如VM(VMware)CBT(改变的区块跟踪)的操作的实施方式中,块的大小可以是64KB。当识别出差异时,也就是说,当文件中某个块的第N代版本与所述块的第N-1代版本不同时,将用第N代版本的块覆写第N-1代版本的块。由于数据生成速度可能非常高,因此数据流比较过程和文件集合变形过程两者都可以高速执行。此外,由于所有现有实体都不再读取或写入,因此仅更改受影响的文件和受影响的区域。如本文别处以及相关申请中更详细地公开的,可以通过使用掩码在没有自组织数据流生成的情况下执行文件集合变形。
然后,有利地,本发明的实施方式可以提供相对于常规硬件、软件、系统和方法的配置和操作的各种益处和改进。例如,本发明的实施方式提供文件集合的高速生成,所述文件集合具有生成文件集合所根据的数据赋予的期望特性。本发明的实施方式特别适合用于测试和评估备份应用程序以及相关联的部件和过程,因为一些备份应用程序未被配置为处置数据流,但是可以处置文件集合形式的数据。此外,本发明的实施方式可以操作成以与生成数据流的速度相同或几乎相同的速度来使文件集合变形。本发明的实施方式消除了复制整个文件和/或集合的需要,并且替代地仅写入已改变的数据。
应注意,各种实施方式的前述有利方面仅通过示例的方式呈现,并且本发明的示例性实施方式的各种其他有利方面将从本公开中变得明显。还应注意,并非任何实施方式能实现或使能本文公开的任何这类有利方面。
A.示例性操作环境的各方面
以下是对本发明的各种实施方式的示例性操作环境的各方面的论述。该论述不意图以任何方式限制本发明的范围或实施方式的适用性。
通常,本发明的实施方式可以结合对系统、软件和部件的测试、分析、诊断和评估来实施,这些系统、软件和部件单独和/或共同实施数据生成和数据管理操作和/或引起对数据生成和数据管理操作的实施。这类数据管理操作可以包括但不限于数据读取/写入/删除操作、数据去重复操作、数据备份操作、数据恢复操作、数据克隆操作、数据归档操作和灾难恢复操作。因此,虽然本文的论述在一些方面可能涉及对数据保护环境和操作的论述,但是本发明的范围不限于此。然后,更一般地,本发明的范围包括可以在其中使用所公开的概念的任何操作环境。在一些情况下,本发明的实施方式生成数据流以在各种环境中的测试系统和应用程序中使用,所述环境的一个示例是数据保护环境。
例如,数据保护环境可以采用公共或私有云存储环境、本地存储环境以及包括公共和私有要素的混合存储环境的形式,但是本发明的范围同样扩展到任何其他类型的数据保护环境。这些示例性存储环境中的任一个可以部分或完全虚拟化。存储环境可以包括数据中心或由数据中心组成,所述数据中心可操作以服务于由一个或多个客户端发起的读取和写入操作。
除了存储环境之外,操作环境还可以包括一个或多个主机装置,例如,客户端,每个主机装置托管一个或多个应用程序。因此,特定客户端可以采用生成期望受保护的数据的一个或多个应用程序中每一个的一个或多个实例,或以其他方式与一个或多个实例相关联。通常,客户端采用的应用程序不限于任何特定功能性或任何类型的功能性。例如,一些示例性应用程序和数据包括电子邮件应用程序(诸如MS Exchange、文件系统)以及数据库(诸如Oracle数据库和SQL服务器数据库)。客户端上的应用程序可以生成期望受保护的新的和/或已修改的数据。
操作环境中的任何装置,包括客户端、服务器和主机,都可以采用软件、物理机或虚拟机(VM)或这些装置的任意组合的形式,但是任何实施方式都不需要特定的装置实现方式或配置。类似地,诸如数据库、存储服务器、存储卷(LUN)、存储磁盘、复制服务、备份服务器、还原服务器、备份客户端和还原客户端等数据保护系统部件可以同样采用软件、物理机或虚拟机(VM)的形式,但是任何实施方式都不需要特定的部件实施方式。在使用VM的情况下,可以采用管理程序或其他虚拟机监视器(VMM)来创建和控制VM。
如本文所使用的,术语‘数据’旨在范围广泛。因此,该术语以举例而非限制的方式涵盖诸如可以由数据流分段过程产生的数据段、数据块、数据区块、原子数据、电子邮件、任何类型的对象、文件、联系人、目录、子目录、卷以及上述一者或多者的任何组。
本发明的示例性实施方式适用于能够以模拟、数字或其他形式存储和处置各种类型的对象的任何系统。虽然可以以举例的方式使用诸如文档、文件、区块或对象等术语,但是本公开的原理不限于表示和存储数据或其他信息的任何特定形式。而是,这类原理同样适用于能够表示信息的任何对象。
现在特别注意图1,操作环境的一个示例总体上以100表示。在一些实施方式中,操作环境可以包括数据保护环境、由数据保护环境组成或者是数据保护环境的一部分,但是这些布置中的任何一个都不是必需的。操作环境可以包括企业数据中心或云数据中心,或两者。例如,数据保护环境可以支持各种数据保护过程,包括数据复制、数据去重复、克隆、数据备份和数据恢复。如本文所使用的,术语备份旨在被广泛解释,并且包括但不限于部分备份、增量备份、完整备份、克隆、快照、连续复制和任何其他类型的数据副本以及前述各者的任何组合。前述任一者可能会或可能不会被去重复。
在所示示例中,操作环境100通常包括与一个或多个备份服务器300通信的多个客户端200。备份服务器300与文件系统合成服务器400和数据中心500通信,在一些实施方式中,所述数据中心可以是云数据中心,但这不是必需的。最后,数据流生成器600与数据中心500、模拟服务器400和备份服务器300通信。在以下论述中提供了关于这些部件中的每一个的进一步细节。
客户端200可以包括1…n个的任意数量的客户端。在图1的示例中,指示了客户端202、204和206。客户端200中的每一个分别包括备份代理202a、204a和206a的相应实例。备份代理202a、204a和206a与备份服务器300上的备份应用程序302协作以创建客户端200数据的备份以存储在数据中心500处。
除了备份应用程序302之外,备份服务器300还可以包括文件系统合成模块304和去重复引擎306。通常,并且如本文别处更详细论述的,文件系统合成模块304操作以生成具有包括一个或多个目录和子目录的文件结构的模拟文件系统。同样,文件系统合成模块304操作以用由数据流生成器600生成的数据填充文件系统。在以下图2的论述中阐述了关于示例性文件系统合成模块304的进一步细节。去重复引擎306对由备份应用程序302生成的备份(包括文件)进行去重复,然后将经去重复的数据传输到数据中心500以存储在数据中心存储装置501中。在一些实施方式中,文件系统合成模块304和/或去重复引擎306可以托管在相应的独立服务器处,而不是集成在备份服务器300或其他部件中。
因此,并继续参考图1,一些实施方式包括独立文件系统服务器400,所述独立文件系统服务器与备份服务器300通信并将模拟文件的集合传输到备份服务器300以供备份应用程序302使用。在一些其他实施方式中,包括文件系统合成模块502作为数据中心500的要素,或者可以包括文件系统合成模块602作为数据流生成器600的要素。同样,在一些实施方式中,可以省略数据流生成器600,并且由数据中心的数据流生成器504实施数据流功能。
如将从图1的配置和论述可以明显看出的,本文公开的功能分配仅作为示例呈现。通常,可以以任何其他合适的方式在操作环境100的要素之间分配所公开的功能,并且本发明的范围不限于所公开的配置和布置。
继续参考图1,提供了关于一些公开要素的操作方面的简要介绍性论述。通常,数据流生成器600操作以生成具有各种期望特性的一个或多个高速数据流。这些数据流被提供给模拟逻辑(诸如文件系统合成模块304),或者使这些数据流可被所述模拟逻辑访问。文件系统合成模块304基于数据流及其相关联的特性创建具有包括文件、目录和子目录的文件结构的模拟文件系统。然后用来自数据流的数据填充模拟文件系统以创建文件集合,所述文件集合共同拥有数据流特性并且可以用于测试备份应用程序302和/或去重复引擎306等的操作和性能。由文件系统合成模块304创建的文件集合可以由文件系统合成模块304使用不同代的数据流和/或通过使用掩码(其示例在相关申请中公开)向前或向后变形一代或几代。
现在参考图2,提供了关于模拟服务器700的示例性实施方式的细节,所述模拟服务器可以包括模拟逻辑或由模拟逻辑组成,所述模拟逻辑可以是或者可以不是文件系统合成模块的形式。在所示示例中,模拟服务器700可以包括文件结构和文件引擎702,所述文件结构和文件引擎通常操作以创建包括特定文件结构和模拟文件的模拟文件系统。文件结构和文件的特定特性可以在特性文件或模块704中指定,所述特性文件或模块至少在一些实施方式中被配置为接收来自用户的输入。填充引擎706从由数据流生成器创建的一个或多个数据流接收数据并且用该数据填充文件。最后,变形引擎708操作以将由文件结构和文件引擎702以及填充引擎706协作创建的文件集合向前或向后变形一代或多代。可以使用来自一个或多个数据流的数据和/或通过使用一个或多个掩码来执行变形,所述掩码指示在一代或多代数据流中数据已经发生的变化。
B.示例性主机和服务器配置
现在简要参考图3,客户端200、备份代理202a、204a、206a、备份服务器300、备份应用程序302、文件系统合成模块304、去重复引擎306、文件系统合成服务器400、数据中心500、存储装置501、文件系统合成模块502、数据流生成器504、数据流生成器600、文件系统合成模块602、文件结构和文件引擎702、特性数据704、填充引擎706和变形引擎708中的任何一者或多者可以采取物理计算装置的形式,或者包括物理计算装置,或者在物理计算装置上实施,或者由物理计算装置托管,所述物理计算装置的一个示例以800表示。同样,在前述要素中的任一者包括虚拟机(VM)或由VM组成的情况下,该VM可以构成图3中公开的物理部件的任何组合的虚拟化。
在图3的示例中,物理计算装置800包括:存储器802,所述存储器可以包括以下各者中的一者、一些或全部:随机存取存储器(RAM)、非易失性随机存取存储器(NVRAM)804、只读存储器(ROM)和持久性存储器、一个或多个硬件处理器806、非暂时性存储介质808、I/O装置810以及数据存储装置812。物理计算装置800的存储器部件802中的一者或多者可以采用固态装置(SSD)存储装置的形式。同样,提供包括可执行指令的一个或多个应用程序814。这类可执行指令可以采用各种形式,包括例如可执行来执行本文公开的任何方法或其部分的指令、和/或可由任何存储站点/在任何存储站点处(不管是企业本地,还是云存储站点、客户端、数据中心、备份服务器或网络节点)执行来执行本文公开的功能的指令。同样,这类指令可执行以执行本文公开的任何其他操作和过程的部分或全部,包括但不限于数据流生成、文件生成、文件结构生成、变形、填充、去重复、数据存储和检索,以及读取、写入、备份、克隆和恢复操作和/或任何其他数据保护操作、审计操作、云服务操作。
C.模拟文件系统的创建
现在将注意力转向图4,提供了关于用于生成模拟文件系统和文件的系统和过程的细节,这些文件系统和文件可以用于例如测试和评估应用程序的性能,例如,备份应用程序。这类文件系统和文件在本文中可以称为“模拟”,因为它们不是由在生产环境中操作的应用程序生成的“真实世界”文件,而是被配置为非常接近地模仿真实世界文件和数据。如上所述,用于填充模拟文件的数据可以由数据流生成器生成。在执行填充过程之前,模拟文件系统中没有实际文件。而是,最初只有尚未填充数据的模拟文件存在于模拟文件系统中。文件系统中的文件和目录可以以多种方式创建。例如,在执行任何数据填充之前,都可以创建空的文件和目录。可替代地,可以单独创建和填充文件和目录。最后,模拟文件系统可以是任何类型的,并且本发明的范围不限于任何特定类型的文件系统。一些示例性模拟文件系统包括Windows NTFS、ReFS、ExFAT、Linux ext4、btrfs、zfs和Mac。
如图4所指示,公开了具有文件结构902的示例性模拟文件系统900。文件系统900和相关联的文件结构902可以由用户指定。通常,文件结构可以是任意大小和配置的,并且包括任意数量和大小的目录和文件。同样,文件系统900中的每个实体或文件都具有如由各种输入参数指定的模拟大小,如下文更详细论述的。因此,图4中所示的文件结构902仅出于说明的目的而呈现并且不旨在以任何方式限制本发明的范围。
本发明的实施方式在可以诸如由用户或由计算实体指定的文件系统900参数方面是灵活的。那些参数包括但不限于:文件结构902的配置,包括文件、目录和/或子目录两者之间/更多者之间的结构关系和布置;文件大小;文件数量;文件类型;目录数量;子目录的数量;目录/子目录中文件的大小/数量/类型;整个文件结构中文件的特定分布;文件系统的总大小;以及目录和子目录的大小和内容。这些参数中的任何参数的值可以被指定和存储以供以后使用,或者可以作为测试和评估程序(例如涉及备份应用程序和/或去重复引擎)的一部分实时和内联地提供给系统。
如所述,文件系统900中的模拟文件的集合可以用来自由数据流生成器生成的数据流的数据填充。因此,不仅可以指定文件系统900的参数,而且还可以指定特别涉及模拟文件的参数。这些参数在本文中可以被称为文件集合参数,因为它们涉及文件系统900中的特定文件集合。这类文件集合参数包括但不限于:文件集合的总大小;集合增长;集合中每个实体(文件)的平均大小;集合中实体大小的差异;在每个文件夹和子文件夹处集合实体的分布;以及每个文件夹级别处的最小值/最大值/差异。文件集合参数与文件系统参数一起被收集并用于构建模拟文件系统900。
在一些实施方式中,模拟文件系统900是基于用户输入自组织创建的。在其他实施方式中,模拟文件系统900可以通过从另一个模拟文件系统和/或从实际真实世界文件系统选取一个或多个参数来自动创建。
最后,文件结构902可以但不是必需地模仿要由备份应用程序备份的实际或预期的真实世界文件结构。因为备份应用程序通常被配置为结合文件和文件系统操作,所以模拟文件系统900提供了一种很好的机制来测试备份应用程序和/或去重复应用程序/引擎的性能和操作。因此,如由本发明的实施方式所提供的,利用模拟文件系统获得的测试和性能结果可以提供对备份应用程序和去重复应用程序/引擎性能和功能的有用洞察。例如,本发明的一个或多个实施方式可以用于确定备份文件系统的最佳和最有效方式。特定地,通过以各种方式遍历文件结构,并了解去重复引擎的优点/缺点,可以共同开发更好的备份机制。
D.模拟文件集合的创建
现在参考图5,提供了关于使用来自由数据流生成器创建的数据流的数据生成文件集合的示例性结构和过程的细节。如图5所示,生成数据流1000,所述数据流体现各种指定特性1002,期望向将使用来自数据流1000的数据创建的文件集合赋予这些特性。在相关申请中阐述了关于数据流的特性和生成两者的详细信息,并且因此,此处不提供对那些要素的深入论述。然而,通常,数据流1000的一些示例性特性1002可以包括但不限于可去重复性、压缩、聚类和通用性,数据流1000的一些示例性特性1002结合数据流1000的创建指定,并且可以反映在使用来自该数据流1000的数据创建的文件集合中。
当数据流1000已被创建为具有期望特性1002时,数据流1000被切片成多个部分1004,所述部分的相应大小对应于文件系统900中模拟文件的相应大小。这些部分1004的集合特性对应于要包括在文件系统900中的文件集合的期望特性。
切片过程可以例如由文件系统合成模块和/或由数据流生成器执行,并且可以在生成数据流时或在已经生成并存储数据流之后内联地进行。切片过程可以基于结合文件系统的配置指定的文件特性,并且包括例如文件集合的总大小、集合增长、集合中每个实体(文件)的平均大小、以及集合中实体大小的差异。为了进行说明,文件特性可以指定要创建13个文件(文件A到文件M),平均大小为20MB。因此,切片过程将从数据流中切得13个片段,同时还确保13个片段的集合的平均大小为20MB。
切片过程所针对的数据流1000的一个或多个特定部分可以根据需要而变化,以确保所得到的13个文件形成的组在该示例中共同拥有期望的特性1002。因此,当决定从数据流1000切割哪些数据以及何时/何处切割时,切片过程可以考虑数据流1000的特性。数据流1000的切片可以是或者可以不是随机的。在一些实施方式中,切片可以针对或避免数据流1000的一个或多个特定部分,诸如前1GB或中间10GB,但是这两种方法都不是必需的。在一些其他实施方式中,可以在整个数据流1000上以统一方式执行切片过程,所述切片过程可以是虚拟过程。
继续参考图4,并且如前所述,从数据流1000获取的数据切片然后用于填充文件系统900。每个切片对应于特定文件并且可以构成特定文件。在一些实施方式中,文件系统900中的文件是使用从数据流获取的数据按顺序创建的。该文件创建可以与切片过程串联执行,使得在切片时,切片数据立即用于填充对应的文件。在其他情况下,可以制作和存储一个或多个切片以供以后填充文件集合中的一个或多个文件时使用。一旦模拟文件已经填充有来自数据流1000的数据,文件集合就可以用于例如备份应用程序和/或去重复引擎的测试和评估。
继续关注图5,并且现在也参考图6,提供了关于用于创建模拟文件系统以及然后从数据流生成文件集合的方法的细节,其中这种方法的一个示例总体上以1100表示。例如,方法1100的部分或全部可以由文件系统合成模块执行。
通常,图6中公开的方法可以用于创建尚不存在的文件集合。因此,图6中公开的和本文论述的方法可以被称为生成基本文件集合的方法。例如,如结合图7所论述的,并且通过与图6对比,现有文件集合可以向前或向后变形为该现有文件集合的另一代。
示例性方法1100可以在接收1102一个或多个文件系统参数时开始,所述参数指定旨在包括在要创建的模拟文件系统中的各种属性。然后可以使用所述参数来创建1104模拟文件系统。
在创建1104模拟文件系统之前、期间或之后,接收1106要存储在模拟文件系统中的文件集合的目标特性。如本文和相关申请中所述,这类目标特性可以包括例如可压缩性、通用性、数据变化率和聚类。可以另外或替代地接收1106文件集合的各种其他目标特性。应注意,过程1102和1106可以并行执行,或者如图6所示按顺序执行。
接下来,将数据流切片1108为对应于要包括在文件集合中的文件的数据部分。通常,文件是从单个大数据流一个接一个地从数据流中切片1108。数据流可以在切片过程1108之前或同时生成,并且被切片1108的数据流拥有期望反映在文件集合中的目标特性。在至少一些实施方式中,目标特性被用作数据流生成的基础,和/或目标特性被用于驱动数据流切片过程1108,以便确保最终创建的文件集合共同反映目标特性。应注意,过程1104和1108可以在增量基础上执行,即在每个文件级别处执行。
在数据流切片过程1108之后或期间,数据流的所得数据部分用于填充1110所创建1104的模拟文件。在至少一些实施方式中,模拟文件以与从数据流中获取1108数据切片的次序相对应的顺序填充1110,但是该顺序不是必需的。应注意,文件占用数据,因此在过程1100中模拟文件的大小。此外,该模拟文件系统的集合大小与从数据流中获取的数据大小相同。
在用来自数据流的数据填充1110模拟文件之后,可以存储文件集合和/或将文件集合输出1112给最终用户。可以将文件集合存储1112在例如数据中心、客户端、备份服务器和/或操作环境中的其他实体处。
另外或替代地,可以将文件集合传输1112给终端用户(诸如包括备份应用程序的备份服务器)以用于测试和评估1114目的。例如,备份应用程序可以使用文件集合来创建备份,然后在将备份存储在数据中心或其他目标处之前将备份传输到去重复引擎以进行去重复。以这种方式,备份应用程序和/或去重复引擎的操作可以在使用模拟真实世界文件的文件的情况下进行测试,诸如所述文件可以由客户在生产站点创建并传输到备份服务器以创建备份并进行去重复。
当备份应用程序首次运行文件集合并对文件集合进行备份时,备份应用程序会扫描所有文件,读取文件中的数据,并将数据发送到去重复引擎。即使切出顺序和备份顺序彼此不同,去重复引擎也会将备份数据视为非常接近具有相同特性,就好像原始流被写入作为单个大文件一样。因此,当备份应用程序处理和发送数据时,仍然可以实现期望的去重复/压缩/通用性。因此,即使备份应用程序不能直接处理长的数据流,其仍然可以通过模拟的切出的文件系统有效地操作。
E.模拟文件集合的变形
接下来转到图7,提供了关于将文件集合从一代向前变形为另一代的过程和布置的细节。在所示示例中,文件集合从第N-1代变形为第N代。然而,文件集合可以向前变形多代,并且可以向后变形一代或多代。因此,图7的示例是为了说明的目的而呈现的,并且不限制本发明的范围。
在一个或多个相关申请中指出,数据生成算法可以重新生成描绘已知变化率的流。因此,可以利用图6的方法重新应用相同的切割逻辑并重新创建所有文件并利用备份应用程序处理这些文件。以这种方式,去重复引擎对文件集合的重新处理将生成期望的可去重复性以及压缩/通用性和任何其他感兴趣的特性。然而,这种方法并不能反映典型的现实生活情况,因为实际上只有一小部分文件会在几代之间发生变化。此外,这种方法将需要再次写入所有文件,因此在时间和处理资源利用方面不是特别有效。
因此,图7的示例性方法通常涉及生成对应于第N-1代的数据流,以及生成对应于第N代的另一个流。可以如相关申请中公开的那样执行这两个数据流的生成。这两个数据流按顺序进行比较以识别两个流之间的差异,同时所述方法也在被比较的文件中前进。当被比较的数据相同时,文件中的数据覆写不执行,但是当数据不同时,执行覆写,并且由此修改映射到已改变的区域的某些文件。由于可以以非常高的速率生成第N-1代和第N代的流,如相关申请中所公开的,并且比较操作同样执行得相对较快,因此对模拟文件系统的改变可以相对较快地生效。因此,所有未映射到已改变的区域的文件都保持未修改。应注意,比较数据流是一种识别需要进行的改变以便对文件集合进行变形的方式,而另一种识别改变的方法是使用如下面结合图7论述的接口。
现在,当备份应用程序运行并执行模拟文件系统的备份时,备份应用程序可以非常快速地跳过所有尚未改变的文件并仅读取已改变的文件。当将已改变的文件的内容发送到去重复引擎时,已修改的数据具有被配置用于数据生成算法的几乎相同的可去重复性、通用性和可压缩性,所述数据生成算法生成了从中获取文件数据的数据流。因此,通过具有两个传入的数据流,并且通过比较它们的内容,可以非常快速地将文件系统从一代向前变形为另一代。同样,可以应用相同的变形逻辑来执行反向变形过程,其中写入在映射文件上的数据是从第N-1代而不是从第N代获取的。
应注意,在一些实施方式中,并且如相关申请中所公开的,可以仅使用第0代数据流来进行此工作。例如,在其中X是文件集合将从第N代向前变形到的代的值的向前变形过程中,具有第X代掩码和第0代数据流就足够了。向前变形过程可以读取X掩码,然后使用第0代数据流更改X掩码中代值大于N的第N代文件集合的任何区块。最后,应注意,可以仅使用该X代掩码来进行这项工作,因为该掩码表示第N代之后所需的改变,并且可以读取受影响的区域,将受影响的区域从第N代修改为第X代,并且然后将其重新写入。应注意,如果N至X之间的间隙非常大,则不应使用最后一种方案,因为这将需要过多的读取/修改/写入量,从而减慢过程。
对于将第X代的文件集合反向变形为该文件集合的前一代N的反向变形过程,仅需要第N代掩码和第X代掩码以及第0代数据流。通常,将第N代掩码值和第X代掩码值进行相互比较,并且基于该比较的结果将第0代数据流变换为或不变换为第N代状态。也就是说,当区块的代X值与该区块的代N值相同时,区块不会被恢复,但是当区块的代X值与代N值不同时,第0代区块被变换为第N代,然后将区块写入到其所属的文件。稍后结合图9论述反向变形过程的一个示例。
现在特别参考图7中公开的布置和方法,一个示例性实施方式1200涉及构成要在对应数据流1215中实施的特性的第一组输入1210。如在相关申请中所指出的,输入1210可以包括数据流的生成名称、用于生成数据流的(一个或多个)种子、以及要生成的数据流1215的期望压缩、通用性和其他特性。在该示例中,数据流1215是第N-1代数据流。数据流1215中的每个细分1212表示数据流中的文件边界。类似地,可以与输入1210相同或不同的另一组输入1220构成要在对应的第N代数据流1225中实施的特性。数据流1215中的每个细分1222表示数据流中的文件边界。如图7所指示,两个数据流1215和1225映射到同一组文件。
继续参考图7的示例,可以看出,第N-1代数据流1215与第N代数据流1225的比较揭示,文件E和文件I这两个不同文件中只有小部分在第N-1代数据流1215与第N代数据流1225之间发生了变化。也就是说,第N-1代数据流1215的文件E部分1214已经改变为第N代数据流1225中的文件E部分1217,并且第N-1代数据流1215的文件I部分1216已经改变为第N代数据流1225中的文件I部分1219。因此,第N代文件集合1250N是通过在文件集合1250中用部分1217覆写部分1214和用部分1219覆写部分1216而创建的,并且没有文件E和I的其他部分或任何其他文件被修改,或需要被修改。
更详细地,用于其中使用第N-1代数据流和第N代数据流的情况的示例性接口可以采用以下形式:
Reset-offsets(N-1,N,other parameters)
Get-me-Next-change(offset-where-change-is,buffer)
Get-me-Next-change(offset-where-change-is,buffer)
Get-me-Next-change(offset-where-change-is,buffer)
…Done.
使用该示例性接口,在第一次调用时,逻辑返回在提供的缓冲区中的部分1217,并返回对应于文件E中某处的偏移量。在下一次调用时,逻辑返回在缓冲区中的部分1219和对应于文件I中某处的偏移量。在任何一种情况下,逻辑都知道将发生下一个改变的确切位置,无论是通过数据流比较,还是使用第0代数据流以及第N-1代和第N代掩码。
如图7的示例所示,本发明的实施方式在所需的时间和处理资源方面可以是经济的,因为只有文件的已改变的部分被覆写,并且不需要重写整个文件或文件组。此外,因为已修改的数据采用文件集合1250的形式,所以已修改的数据可以容易地由备份应用程序和去重复引擎处置和处理。
还可以看到,继续参考图7的示例,第N-1代数据流1215与第N代数据流1225的比较使得文件集合1250能够从第N代反向变形到第N-1代。特定地,数据流的比较揭示了第N代数据流1225的文件E部分1217对应于第N-1代数据流1215中的文件E部分1214,并且第N代数据流1215的文件I部分1219对应于第N-1代数据流1215中的文件I部分1216。因此,文件集合1250可以通过用部分1214覆写部分1217以及用部分1216覆写部分1219而从第N代反向变形到第N-1代。
F.一些示例性方法的各方面
现在参考图8,提供了关于用于将模拟文件集合从一代变形为另一代的示例性方法的各方面的细节,其中文件集合变形方法的一个示例总体上以1300表示。在图8的示例中,第N代的文件集合向前变形到第X代,但是如本文所指出的,文件集合也可以被反向变形。
示例性方法1300可以开始于1302,其中接收第N代数据流和第X代数据流。接下来,将第N代数据流和第X代数据流进行相互比较1304以确定1306是否已经对第N代数据流进行了任何改变,所述改变反映在第X代数据流中。该比较1304可以基于区块、文件或任何其他合适者来执行。因此,虽然图8的说明性示例采用区块基础比较,但是本发明的范围不限于该示例。
继续参考图8,确定1306可以包括关于第X代数据流区块是否与第N代数据流区块相同的确定。如果确定1306第X代数据流区块与第N代数据流区块相同,则方法前进到1308并且不执行对第N代数据流区块的覆写。另一方面,如果确定1306第X代数据流区块与第N代数据流区块不同,则用第X代数据流区块覆写1307第N代数据流区块。
无论区块被覆写1307还是不被覆写1308,方法1300然后都前进到1310,其中确定数据流比较1304是否已经完成。如果未完成,则方法1300返回到1304,如果已经完成,则方法前进到1312,完成文件集合从第N代到第X代的变形。应注意,关于图8的方法,X=N+a,其中a是≥1的任何整数。因此,文件集合可以向前变形任意代的数量。
继续参考图8,可以看出,方法1300可以容易地适于将第X代文件集合反向变形为第N代文件集合,其中N=X-a,并且a是≥1的任何整数。具体地,如果在1306处确定第X代数据流中的区块的代值与第N代数据流中的相同区块的代值不同,则在反向变形场景中,区块的第X代版本用该区块的第N代版本覆写,从而将区块从第X代恢复到第N代。除了在1307处的这种改变之外,方法1300还适用于将文件集合从第X代反向变形到第N代。
最后将注意力转向图9,提供了关于将第X代文件集合反向变形为第N代文件集合的方法和过程的细节,其中一个示例性方法总体上以1400表示。应注意,可以在单代或多代上执行反向变形。因此,图9的示例性方法与图8的示例性方法的类似点在于,这两种方法都可以用于将文件集合从一代变形为另一代。然而,除了图8涉及向前变形以及图9涉及反向变形这一事实之外,图8的方法涉及两个不同数据流的数据区块的比较,而图9的方法涉及掩码值的比较。因此,这两种方法都可以有效地将文件集合从一代变形为另一代,但是采用不同的相应机制来实现。此外,图9的方法可以仅使用单个数据流来执行。通常,如果变形需要已修改的区块,则第0代数据流用作生成已修改的区块的基础。
当接收到1402第0代数据流、第X代掩码和第N代掩码时,示例性方法1400可以开始。然后比较1404第X代掩码和第N代掩码中的相应区块代值。如果确定1406那些区块代值相同,则不需要对区块进行改变1408。也就是说,区块代值相同这个事实指示区块的第X代版本和第N代版本相同。应注意,如本文所使用的,“代值”是指特定数据流的特定区块的代。因此,例如,代值为2的第3代掩码条目意味着与该条目相关联的区块最后在第二代数据流中被修改。
另一方面,如果确定1406第X代掩码和第N代掩码中相应的区块代值不同,则将第0代数据流中的对应区块变换1407为该区块的第N代值,并且然后将已变换的区块写入到其所属的文件。无论第0代区块被变换和写入到文件1407还是未被变换和写入到文件1408,方法1400然后都前进到1410,其中执行检查以确定是否需要更多数据。
当不需要更多数据时,确定1410掩码比较和任何对应的覆写完成,并且过程1400前进到1412并且将文件集合从第X代变形为第N代的过程完成。另一方面,如果需要附加数据,确定1410掩码比较和任何对应的覆写未完成,则过程1400返回到1404。
G.示例性计算装置和相关联的介质
本文公开的实施方式可以包括使用专用或通用计算机,包括各种计算机硬件或软件模块,如下文更详细论述的。计算机可以包括处理器和承载指令的计算机存储介质,所述指令在由处理器执行和/或使所述指令由处理器执行时,执行本文公开的方法中的任何一种或多种。
如上所指示,本发明范围内的实施方式还包括计算机存储介质,所述计算机存储介质是用于承载计算机可执行指令或数据结构或将计算机可执行指令或数据结构存储在其上的物理介质。这类计算机存储介质可以是可以由通用或专用计算机访问的任何可用物理介质。
通过举例而非限制的方式,这类计算机存储介质可以包括硬件存储装置,诸如固态磁盘/装置(SSD)、RAM、ROM、EEPROM、CD-ROM、快闪存储器、相变存储器(“PCM”),或其他光盘存储装置、磁盘存储装置或其他磁存储装置,或任何其他硬件存储装置,它们可以用于存储计算机可执行指令或数据结构形式的程序代码、可以由通用或专用计算机系统访问和执行来实施本发明的公开的功能。以上各者的组合也应包括在计算机存储介质的范畴内。这样的介质也是非暂时性存储介质的示例,并且非暂时性存储介质还包括基于云的存储系统和结构,但是本发明的范围不限于非暂时性存储介质的这些示例。
计算机可执行指令包括例如使通用计算机、专用计算机或专用处理装置执行某一功能或功能组的指令和数据。虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应理解,权利要求中所限定的主题不一定限于上述特定特征或动作。而是,本文所公开的特定特征和动作被公开为实施权利要求的示例性形式。
如本文所使用的,术语“模块”或“部件”可以是指在计算系统上执行的软件对象或例程。本文描述的不同部件、模块、引擎和服务可以被实施为在计算系统上执行的对象或过程,例如,实施为单独的线程。虽然本文描述的系统和方法可以用软件来实施,但是用硬件或软件和硬件的组合来实施也是可能的并且被设想。在本公开中,“计算实体”可以是如本文先前定义的任何计算系统,或者在计算系统上运行的任何模块或模块的组合。
在至少一些情况下,提供了一种硬件处理器,其可操作以执行用于执行方法或过程(诸如本文公开的方法和过程)的可执行指令。硬件处理器可以包括或可以不包括其他硬件的要素,诸如本文公开的计算装置和系统。
在计算环境方面,本发明的实施方式可以在客户端-服务器环境中执行,无论是网络环境还是本地环境,或者在任何其他合适的环境中执行。用于本发明的至少一些实施方式的合适的操作环境包括云计算环境,其中客户端、服务器或其他机器中的一者或多者可以驻留在云环境中并在云环境中操作。
本发明可以在不脱离其精神或必要特征的情况下以其他具体形式体现。所描述的实施方式在所有方面都将被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等同物的含义和范围内的所有变化将涵盖在权利要求的范围内。
Claims (20)
1.一种非暂时性存储介质,所述非暂时性存储介质中存储有指令,所述指令能够由一个或多个硬件处理器执行以执行包括以下各者的操作:
接收一组文件系统参数;
基于所述文件系统参数创建模拟文件系统;
接收文件集合的一组目标特性;
基于所述目标特性,将数据流切片为一组数据切片;以及
用所述数据切片填充模拟文件以创建所述文件集合。
2.如权利要求1所述的非暂时性存储介质,其中所述目标特性包括可去重复性、可压缩性、通用性和聚类中的一者或多者。
3.如权利要求1所述的非暂时性存储介质,其中所述目标特性存在于所述数据流中。
4.如权利要求1所述的非暂时性存储介质,其中所述文件集合共同拥有所述目标特性。
5.如权利要求1所述的非暂时性存储介质,其中所述文件系统参数与所述文件系统的文件结构有关。
6.如权利要求1所述的非暂时性存储介质,其中所述文件系统参数涉及所述模拟文件系统的文件、目录和子目录。
7.如权利要求1所述的非暂时性存储介质,还包括接收文件集合参数,所述文件集合参数包括:所述文件集合的总大小;所述文件集合的增长;以及所述文件集合中每个文件的平均大小。
8.如权利要求1所述的非暂时性存储介质,其中所述文件系统参数的接收与所述文件集合的所述目标特性的接收并行执行。
9.如权利要求1所述的非暂时性存储介质,其中所述模拟文件系统的创建和所述数据流的切片两者都在文件级别的基础上执行。
10.如权利要求1所述的非暂时性存储介质,其中所述文件集合的集合大小与从所述数据流中获取的所述数据切片的集合大小相同。
11.一种非暂时性存储介质,所述非暂时性存储介质中存储有指令,所述指令能够由一个或多个硬件处理器执行以执行包括以下各者的操作:
接收第X代数据流和第N代数据流;
将所述第X代数据流的部分与所述第N代数据流的部分进行比较;
当包括在文件集合中的文件的一部分在所述第X代数据流和所述第N代数据流中具有不同的相应代值,并且所述相应代值中的每一个对应于所述文件的所述部分的不同版本时:
用所述第N代数据流中的所述文件的所述部分覆写所述文件集合中的所述文件的所述部分;或者
用所述第X代数据流中所述文件的所述部分覆写所述文件集合中的所述文件的所述部分;以及
重复所述比较和覆写过程,直到所述文件集合已经变形为第N代文件集合,或直到所述文件集合已经变形为第X代文件集合。
12.如权利要求11所述的非暂时性存储介质,其中所述第X代数据流中的所述文件的所述部分用所述第N代数据流中的所述文件的所述部分覆写,并且继续所述比较和覆写过程,直到所述文件集合已经从第X代文件集合反向变形为第N代文件集合。
13.如权利要求11所述的非暂时性存储介质,其中所述第N代数据流中的所述文件的所述部分用所述第X代数据流中的所述文件的所述部分覆写,并且继续所述比较和覆写过程,直到所述文件集合已经从第N代文件集合向前变形为第X代文件集合。
14.如权利要求11所述的非暂时性存储介质,其中所述第N代数据流早于所述第X代数据流。
15.如权利要求11所述的非暂时性存储介质,其中所述第X代数据流和所述第N代数据流按顺序进行比较。
16.如权利要求11所述的非暂时性存储介质,其中仅文件的已修改部分而不是整个文件被覆写。
17.如权利要求11所述的非暂时性存储介质,其中所述第X代数据流和所述第N代数据流中的每一者都拥有包括可去重复性、可压缩性、通用性和聚类中的一者或多者的目标特性。
18.如权利要求11所述的非暂时性存储介质,其中所述第X代数据流从所述第N代数据流中去除了不止一代。
19.如权利要求11所述的非暂时性存储介质,其中所述第X代数据流和所述第N代数据流中的每一者都拥有包括可压缩性、通用性和聚类中的一者或多者的目标特性,并且所述目标特性在生成所述第X代文件集合时共同存在于所述第X代文件集合中,并且在生成所述第N代文件集合时共同存在于所述第N代文件集合中。
20.如权利要求11所述的非暂时性存储介质,其中所述操作还包括用备份应用程序进行备份,以及在生成所述第X代文件集合时对所述第X代文件集合进行去重复,或者用所述备份应用程序进行备份,以及在生成所述第N代文件集合时对所述第N代文件集合进行去重复。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/389,741 US11455281B2 (en) | 2019-04-19 | 2019-04-19 | Generating and morphing a collection of files in a folder/sub-folder structure that collectively has desired dedupability, compression, clustering and commonality |
US16/389,741 | 2019-04-19 | ||
PCT/US2019/066619 WO2020214214A1 (en) | 2019-04-19 | 2019-12-16 | Generating and morphing a collection of files in a folder/sub-folder structure that collectively has desired dedupability, compression, clustering and commonality |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113646741A true CN113646741A (zh) | 2021-11-12 |
Family
ID=69177201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980094923.9A Pending CN113646741A (zh) | 2019-04-19 | 2019-12-16 | 在文件夹/子文件夹结构中生成共同具有期望的可去重复性、压缩、聚类和通用性的文件集合并使其变形 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11455281B2 (zh) |
EP (1) | EP3956760A1 (zh) |
CN (1) | CN113646741A (zh) |
WO (1) | WO2020214214A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230072477A1 (en) * | 2019-04-19 | 2023-03-09 | EMC IP Holding Company LLC | Generating and morphing a collection of databases that collectively has desired dedupability, compression, clustering and commonality |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103098016A (zh) * | 2010-07-15 | 2013-05-08 | 戴尔菲克斯公司 | 基于文件系统备份的去重 |
CN104272263A (zh) * | 2012-02-29 | 2015-01-07 | 网络装置公司 | 用于执行去重复操作的碎片控制 |
US20170220593A1 (en) * | 2016-01-28 | 2017-08-03 | Dell Software, Inc. | Read-only file system for testing de-duplication |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6816093B1 (en) | 2003-12-03 | 2004-11-09 | International Business Machines Corporation | Apparatus method and system for increased digital media recording throughput |
US7614051B2 (en) * | 2003-12-16 | 2009-11-03 | Microsoft Corporation | Creating file systems within a file in a storage technology-abstracted manner |
US7787974B2 (en) | 2005-01-05 | 2010-08-31 | Verint Americas Inc. | Independent source recording |
US8223673B2 (en) | 2005-11-16 | 2012-07-17 | Cisco Technology, Inc. | Method and system for secure conferencing |
US20120114310A1 (en) | 2010-11-05 | 2012-05-10 | Research In Motion Limited | Mixed Video Compilation |
US20140118541A1 (en) | 2012-10-26 | 2014-05-01 | Sensormatic Electronics, LLC | Transcoding mixing and distribution system and method for a video security system |
US20140279874A1 (en) | 2013-03-15 | 2014-09-18 | Timmie G. Reiter | Systems and methods of data stream generation |
US9665583B1 (en) * | 2013-04-16 | 2017-05-30 | EMC IP Holding Company LLC | Read-write access in a read-only environment |
US10114832B1 (en) | 2014-09-17 | 2018-10-30 | EMC IP Holding Company LLC | Generating a data stream with a predictable change rate |
US10114850B1 (en) | 2014-09-17 | 2018-10-30 | EMC IP Holding Company LLC | Data stream generation using prime numbers |
US10235134B1 (en) | 2014-09-17 | 2019-03-19 | EMC IP Holding Company LLC | Rotating bit values while generating a large, non-compressible data stream |
US10163371B1 (en) | 2014-09-17 | 2018-12-25 | EMC IP Holding Company LLC | Rotating bit values based on a data structure while generating a large, non-compressible data stream |
US10038733B1 (en) | 2014-09-17 | 2018-07-31 | EMC IP Holding Company LLC | Generating a large, non-compressible data stream |
US9846632B2 (en) | 2014-10-08 | 2017-12-19 | Signalfx, Inc. | Real-time reporting based on instrumentation of software |
CA3065452C (en) | 2015-02-27 | 2022-05-17 | Electronics And Telecommunications Research Institute | Zero padding apparatus for encoding fixed-length signaling information and zero padding method using same |
-
2019
- 2019-04-19 US US16/389,741 patent/US11455281B2/en active Active
- 2019-12-16 EP EP19839299.5A patent/EP3956760A1/en active Pending
- 2019-12-16 CN CN201980094923.9A patent/CN113646741A/zh active Pending
- 2019-12-16 WO PCT/US2019/066619 patent/WO2020214214A1/en active Application Filing
-
2021
- 2021-08-17 US US17/404,347 patent/US11748316B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103098016A (zh) * | 2010-07-15 | 2013-05-08 | 戴尔菲克斯公司 | 基于文件系统备份的去重 |
CN104272263A (zh) * | 2012-02-29 | 2015-01-07 | 网络装置公司 | 用于执行去重复操作的碎片控制 |
US20170220593A1 (en) * | 2016-01-28 | 2017-08-03 | Dell Software, Inc. | Read-only file system for testing de-duplication |
Also Published As
Publication number | Publication date |
---|---|
EP3956760A1 (en) | 2022-02-23 |
US11455281B2 (en) | 2022-09-27 |
US20210374108A1 (en) | 2021-12-02 |
WO2020214214A1 (en) | 2020-10-22 |
US20200334215A1 (en) | 2020-10-22 |
US11748316B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11733907B2 (en) | Optimize recovery time objective and costs of cloud based recovery | |
US11281628B2 (en) | Namespace performance acceleration by selective SSD caching | |
US11468193B2 (en) | Data masking in a microservice architecture | |
US11748316B2 (en) | Generating and morphing a collection of files in a folder/sub-folder structure that collectively has desired dedupability, compression, clustering and commonality | |
US11620056B2 (en) | Snapshots for any point in time replication | |
US20220171556A1 (en) | Smart de-fragmentation of file systems inside vms for fast rehydration in the cloud and efficient deduplication to the cloud | |
US11709800B2 (en) | Optimized client-side deduplication | |
US10939132B2 (en) | Generating a data stream with configurable compression | |
US20210365587A1 (en) | Data masking in a microservice architecture | |
US20230072477A1 (en) | Generating and morphing a collection of databases that collectively has desired dedupability, compression, clustering and commonality | |
US10997053B2 (en) | Generating a data stream with configurable change rate and clustering capability | |
US11580262B2 (en) | Data masking in a microservice architecture | |
US11669253B2 (en) | Dynamic shared journal | |
US20230315303A1 (en) | Performing an in-line erasure coding process using a write-ahead log | |
CN113728314B (zh) | 生成具有可配置共性的数据流 | |
US20230342259A1 (en) | Balancing of slices with consolidation and re-slicing | |
WO2021236292A1 (en) | Data masking in a microservice architecture |
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 |