CN113728314A - 生成具有可配置共性的数据流 - Google Patents

生成具有可配置共性的数据流 Download PDF

Info

Publication number
CN113728314A
CN113728314A CN201980095569.1A CN201980095569A CN113728314A CN 113728314 A CN113728314 A CN 113728314A CN 201980095569 A CN201980095569 A CN 201980095569A CN 113728314 A CN113728314 A CN 113728314A
Authority
CN
China
Prior art keywords
data
data streams
commonality
stream
data stream
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
CN201980095569.1A
Other languages
English (en)
Other versions
CN113728314B (zh
Inventor
S·丹吉
E·达扎
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Publication of CN113728314A publication Critical patent/CN113728314A/zh
Application granted granted Critical
Publication of CN113728314B publication Critical patent/CN113728314B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种示例方法包括:接收‘n’个数据流,其中‘n’≥2;接收共性参数‘F’;通过将来自所述‘n’个数据流的数据混合在一起来创建具有共性‘F’的混合数据流;以及输出所述混合数据流。可将所述混合数据流提供给去重引擎以对与一个或多个其他数据流共有的流数据去重。

Description

生成具有可配置共性的数据流
相关申请
本申请与以下各项有关:在2018年7月31日授权的题为“GENERATING A LARGE,NON-COMPRESSIBLE DATA STREAM”的美国专利10,038,733(序列号14/489,317,在2014年9月17日提交);在2018年10月30日授权的题为“GENERATING A DATA STREAM WITH APREDICTABLE CHANGE RATE”的美国专利10,114,832(序列号14/489,363,在2014年9月17日提交);以及在2018年10月30日授权的题为“DATA STREAM GENERATION USING PRIMENUMBERS”的美国专利10,114,850(序列号14/489,295,在2014年9月17日提交)。本申请也与以下各项有关:和本申请同一天提交的题为“GENERATING A DATA STREAM WITHCONFIGURABLE CHANGE RATE AND CLUSTERING CAPABILITY”的美国专利申请(序列号16/389,729);和本申请同一天提交的题为“GENERATING A DATA STREAM WITH CONFIGURABLECOMPRESSION”的美国专利申请(序列号16/389,671);和本申请同一天提交的题为“GENERATING AND MORPHING A COLLECTION OF FILES IN A FOLDER/SUB-FOLDERSTRUCTURE THAT COLLECTIVELY HAS DESIRED DEDUPABILITY,COMPRESSION,CLUSTERINGAND COMMONALITY”的美国专利申请(序列号16/389,741);在2018年12月25日授权的题为“ROTATING BIT VALUES BASED ON A DATA STRUCTURE WHILE GENERATING A LARGE,NON-COMPRESSIBLE DATA STREAM”的美国专利10,163,371(序列号15/420,633,在2017年1月31日提交);以及在2019年3月19日授权的题为“ROTATING BIT VALUES WHILE GENERATING ALARGE,NON-COMPRESSIBLE DATA STREAM”的美国专利10,235,134(序列号15/420,614,在2017年1月31日提交)。前述专利和申请全部分别通过引用以其整体并入本文中。
技术领域
本发明的实施方式总体涉及生成具有各种属性的数据流。更特别地,本发明的至少一些实施方式涉及用于生成压缩和共性可配置的数据流的系统、硬件、软件、计算机可读介质以及方法。
背景技术
开发者和其他人员经常需要模拟由处在开发阶段的应用程序生成的真实世界数据流的特性。对例如共性的真实世界数据流特性的模拟使开发者能够在应用程序或应用程序的修订版本推出之前识别和校正任何问题并且增强应用程序的性能。
已经开发出了各种算法以用于生成数据流。然而,通过这些算法生成的数据流在其应用性和可用性方面可能相对较窄。这可归因于各种因素。举例来说,生成此类流的速度可能不够。作为另一个示例,通过此类算法生成的数据流可能不可压缩。此外,此类数据流可能不可去重。这些和其他因素可倾向于限制由一些数据流生成算法产生的数据流在一些应用中的有效性。
附图说明
为了描述可获得本发明的优点和特征中的至少一些的方式,对本发明的实施方式的更具体描述将参考在附图中所示的本发明的特定实施方式来呈现。应理解,这些附图仅描绘本发明的典型实施方式,并且因此不被认为是对其范围的限制,本发明的实施方式将通过使用附图以另外的特征和细节来描述和解释。
图1公开了用于本发明的一些实施方式的示例操作环境的多个方面。
图2公开了示例主机配置的多个方面。
图3公开了如下配置的一些一般方面,在所述配置中,将两个或更多个数据流混合在一起以生成具有特定数据共性和特定压缩性的混合数据流。
图4是公开了用于生成混合数据流的方法的一些一般方面的流程图。
图5是公开了用于生成具有共性的混合数据流的方法的一些一般方面的流程图。
具体实施方式
本发明的实施方式总体涉及生成具有各种属性的数据流。更特别地,本发明的至少一些实施方式涉及用于生成压缩和/或共性可配置的数据流的系统、硬件、软件、计算机可读介质以及方法。给定数据流中的数据在本文中可被称为数据集。
更特别地,本发明的示例实施方式采用数据流混合以生成具有特定压缩性质和/或共性性质的数据流。视实现方式而定,可混合两个或更多个数据流。通过混合两个或更多个数据流创建的所得数据流可在多种应用中使用。为了说明,此类所得或合成的数据流可在多个应用中使用,在所述多个应用中,应用程序、硬件和/或其他元件的自动和/或手动测试需要高速生成具有特定压缩和/或共性性质的数据流。示例数据流可以超过1GBPS的速率生成。在至少一些实施方式中,可压缩流和不可压缩数据流可通过在相关申请中的一个或多个中公开的方法和系统生成。
数据流中的将与一个或多个其他数据流混合的一个数据流可具有约0%的压缩性,尽管不要求如此。此类数据流的示例和用于生成此类数据流的方法在本文中提到的相关申请中的一个或多个中公开。另外地或替选地,数据流中的将与一个或多个其他数据流混合的一个数据流可具有约100%的压缩性,尽管不要求如此。更一般地,结合本发明的实施方式使用的数据流不需要具有任何特定的压缩性。
根据本发明的各种实施方式,可以将两个或更多个数据流组合在一起,使得生成具有特定共性因子的新数据流。举例来说,组成数据流中的第一组成数据流由作为计算实体群体的一部分的第一计算实体生成。第一组成数据流可包括与由群体中的一个或多个其他计算实体生成的相应数据流共有的数据,或由所述数据组成。组成数据流中的第二组成数据流可包括第二计算实体特有的数据,或由所述数据组成。将第一组成数据流和第二组成数据流彼此混合,以生成相对于群体中的计算实体具有所要程度的共性的新数据流。在一些替选实施方式中,也可以对组成数据流进行处理,使得新数据流除了特定共性因子之外还具有压缩性。这种压缩性自动地产生于组成数据流的相应压缩性以及组成数据流的共性,如在相关申请中的一个或多个中所解释的。
在一些实施方式中,将多个数据流混合在一起以生成具有特定共性因子的新数据流。在将任何两个或更多个数据流混合在一起的情况下,数据流的相应数据可例如基于数据块、数据序列或其他形式而交织,以形成新数据流。数据流可以例如聚类、均匀、随机或归一化混合的多种方式来混合。
最后,并且如先前所提及的,这些组成流在一些实施方式中也可各自具有相应的压缩性。因而,混合数据流同样可拥有特定压缩性,该特定压缩性基于组成数据流的相应压缩性。
因而有利地,本发明的实施方式可提供关于常规硬件、软件、系统和方法的配置和操作的各种益处和改进。举例来说,本发明的一实施方式能够定制数据流以满足计算环境中的测试、分析和诊断需求。本发明的示例实施方式能够相对于由计算实体群体中的计算实体生成的相应数据流生成具有特定共性的数据流。共性特征帮助模拟跨多个组的所有者共有的数据。这在去重引擎和过程的情况下有用,去重引擎和过程在其去重操作中需要有效性和高效性两者。此外,本发明的实施方式的灵活性能够生成尤其适合于在计算环境中进行定制测试、分析和诊断过程的数据流。除了其他方面之外,此类实施方式能够识别在应用程序和/或计算系统硬件和其他软件的操作中可以做出改进的区域。
在一些实例中,本发明另外的其他实施方式提出生成不仅具有所要共性因子,而且具有特定‘非零’压缩性的混合数据流。压缩性特征帮助模拟部分可压缩的数据,所述数据在许多应用中是共有数据类型的。
应当注意,各种实施方式的先前有利方面仅以举例方式呈现,并且本发明的示例实施方式的各种其他有利方面将自本公开变得明显。还要注意,未必需要任何实施方式实现或能够实现本文中公开的此类有利方面中的任一者。
A.示例操作环境的多个方面
下面是对用于本发明的各种实施方式的示例操作环境的多个方面的讨论。这个讨论不意图以任何方式限制本发明的范围或实施方式的应用性。
一般地,本发明的实施方式可结合单独地和/或共同地实现和/或致使实现数据生成和数据管理操作的系统、软件和部件来实现。此类数据管理操作可包括但不限于数据读取/写入/删除操作、数据去重操作、数据备份操作、数据恢复操作、数据克隆操作、数据存档操作以及灾难恢复操作。因此,尽管本文中的讨论在一些方面可以针对数据保护环境和操作的讨论,但是本发明的范围不限于此。因而更一般地,本发明的范围涵盖所公开的概念可在其中使用的任何操作环境。在一些实例中,本发明的实施方式生成数据流以供在各种环境中在测试系统和应用程序中使用,所述环境的一个示例是数据保护环境。
数据保护环境例如可采取公共或私人云存储环境、本地存储环境和包括公共和私人元素的混合式存储环境的形式,尽管本发明的范围也扩展到任何其他类型的数据保护环境。这些示例存储环境中的任何一个可被部分地或完全地虚拟化。存储环境可包括可操作以为由一个或多个客户端发起的读取和写入操作服务的数据中心,或由所述数据中心组成。
除了存储环境外,操作环境也可包括各自托管一个或多个应用程序的一个或多个主机装置,例如客户端。因而,特定客户端可使用生成需要保护的数据的一个或多个应用程序中的每一个的一个或多个实例,或另外与所述一个或多个实例相关联。一般地,客户端所使用的应用程序不限于任何特定功能或功能类型。一些示例应用程序和数据包括例如MS交换的电子邮件应用程序、文件系统、以及例如Oracle数据库和SQL服务器数据库的数据库。客户端上的应用程序可生成需要保护的新的和/或经修改的数据。
操作环境中的包括客户端、服务器和主机的装置中的任一者可采取软件、物理机或虚拟机(VM)或这些装置的任何组合的形式,尽管没有任何实施方式需要特定的装置实现或配置。类似地,例如数据库、存储服务器、存储卷(LUN)、存储盘、复制服务、备份服务器、恢复服务器、备份客户端以及恢复客户端的数据保护系统部件可同样采取软件、物理机或虚拟机(VM)的形式,尽管没有任何实施方式要求特定的部件实现。在使用VM的情况下,可使用超级管理程序或其他虚拟机监视器(VMM)以创建和控制VM。
如本文所使用,术语‘数据’意图在范围上是广义的。因此,所述术语以举例而非限制的方式涵盖例如可通过数据流分段过程产生的数据片段、数据组块、数据块、原子数据、电子邮件、任何类型的对象、文件、联系人、目录、子目录、卷以及前述各项中的一项或多项的任何组。
本发明的示例实施方式可适用于能够存储和处置呈模拟、数字或其他形式的各种类型的对象的任何系统。尽管可以举例的方式使用例如文档、文件、块或对象的术语,但是本公开的原理不限于表示和存储数据或其他信息的任何特定形式。确切地说,此类原则同样适用于能够表示信息的任何对象。
现在特别注意图1,操作环境的一个示例总体上用100表示。在一些实施方式中,操作环境可包括数据保护环境,或由数据保护环境组成。操作环境可包括企业数据中心、或云数据中心、或两者。数据保护环境可支持各种数据保护过程,包括例如数据复制、数据去重、克隆、数据备份和数据恢复。如本文所使用,术语备份意图被广义地解释,并且包括但不限于部分备份、增量备份、全量备份、克隆、快照、连续复制以及任何其他类型的数据拷贝,以及前述各项的任何组合。前述各项中的任何一者可以或可以不被去重。
在所示示例中,操作环境100可包括任何类型和数目的数据生成器102、104和106。一般地,数据生成器102…106可以是可操作以生成数据的任何软件、硬件、或软件与硬件的组合。在一些实施方式中,软件可包括一个或多个应用程序或由一个或多个应用程序组成,并且应用程序可以是任何类型的。因此,在一些情况下,数据生成器102…106中的一个或多个可包括托管一个或多个应用程序的客户端装置。例如在云数据中心处,由数据生成器生成的数据可以或可以不作为保护和备份的目标。在一些实施方式中,数据生成器102…106中的一个、一些或全部可包括专门建造的实体,所述实体可包括被特别配置成生成具有特定共性因子的混合数据流的硬件和/或软件。在一些实施方式中,此类混合数据流也可具有特定的压缩性。
如图1中进一步指示,操作环境100可包括混合器108。一般地,混合器108可操作以组合来自数据生成器102…106的数据流以便创建新的数据流。由混合器108创建的每个新的数据流可以使得数据流具有特定的共性属性且在一些实施方式中具有特定的压缩属性的方式生成。
混合器108的操作可经由各种参数可配置,并且这些参数可帮助整形输出数据流的性质。由混合器108创建的输出数据流的这些参数可例如由用户使用与混合器108相关联的用户界面(UI)108a和/或应用程序接口(API)来指定。UI可以是任何类型的用户界面,包括但不限于图形用户界面(GUI)或命令行界面(CLI)。混合器108然后可使用用户输入以通过混合两个或更多个输入数据流来生成新的数据流。借助于UI和/或其他机构提供的用户输入可包括但不限于以下各项中的任何一者或多者:输出流的数据量;一个或多个自生种子;一个或多个基本种子;源数据流的标识;数据生成器的标识;所要共性因子F(输入数据流中的每一个的一组相应共性值);以及每个源数据流的相应压缩性参数。在一实施方式中,混合器108可将例如来自多个相应源(例如来自数据生成器102…106)中的每一个的多个数据流组合。
混合器108可实现为硬件、软件、或硬件和软件的组合。在一些实施方式中,混合器108采取可在服务器或任何其他类型的主机装置上托管的应用程序的形式。混合器108可驻留在用户处所、云数据中心和/或任何其他站点处。在一些实施方式中,混合器108可以是例如去重服务器的另一系统或装置的元件。因此,在此类实施方式中,由混合器108生成的输出数据流然后可由去重服务器进行去重。然而,混合器108不必是去重服务器的元件,并且在其他实施方式中,可将由混合器108生成的输出数据流提供给去重服务器以进行去重。还要注意,由混合器108生成的输出数据流可被馈送到例如去重服务器的任何一个或多个模块,以进行模拟测试。同样地,由混合器108生成的输出数据流能够被转换成例如文件结构的较小桶,并且这些桶然后被馈送到例如去重服务器的任何一个或多个模块,以对作用于桶保护和去重服务器的应用程序进行测试。
继续参考图1,混合器108可构成测试环境109的元素,或与测试环境109通信。测试环境109可包括例如一个或多个应用程序110和/或一个或多个硬件装置112。一般地,由混合器108生成的数据流可由混合器108提供给应用程序110和/或硬件装置112,以进行测试、分析和/或诊断操作。此类数据流在提供给测试环境109之前可以或可以不被去重。
更特别地,由混合器108生成的数据流可提供给应用程序110和/或硬件装置112并且由应用程序110和/或硬件装置112利用。应用程序110和/或硬件112的输出和/或其他响应可然后被提供给评估模块114以用于分析和诊断。在一些实施方式中,评估模块114是混合器108的元件。然而,在其他实施方式中,评估模块114与混合器108是分开的并且不同。
通过使用来自一个或多个数据生成器的输入来生成数据流,混合器108能够对应用程序110和/或硬件112进行测试,因此可进行分析,并且找到观测到的任何问题的解决方案。实施方式在定制由混合器108生成的数据流的共性和/或压缩性方面的灵活性实现用于模仿或复制真实世界条件的多种测试和评估情境。还请注意,包括应用程序/去重引擎的测试环境的性能基准测试可用最少量的资源来进行,这是因为混合器108在与相关申请的数据生成算法结合时可以以远高于最快可用驱动器的速度生成数据流。
B.示例主机和服务器配置
现在简要参考图2,数据生成器102…106、混合器108、测试平台109、应用程序110、硬件112、评估模块114、数据生成器402和404、混合器410以及去重引擎中的任何一个或多个可采取物理计算装置的形式,或包括物理计算装置,或在物理计算装置上实现,或由物理计算装置托管,物理计算装置的一个示例用200表示。同样地,在前述元件中的任一者包括虚拟机(VM)或由VM组成的情况下,该VM可以构成图2中公开的物理部件的任何组合的虚拟化。
在图2的示例中,物理计算装置200包括:存储器202,所述存储器可以包括以下各项中的一者、一些或全部:随机存取存储器(RAM)、非易失性随机存取存储器(NVRAM)204、只读存储器(ROM)和永久性存储器;一个或多个硬件处理器206、非暂时性存储介质208、UI装置210以及数据存储器212。物理计算装置200的存储器部件202中的一个或多个可采取固态装置(SSD)存储器的形式。同样地,提供包括可执行指令的一个或多个应用程序214。此类可执行指令可以采取各种形式,包括例如可执行以进行本文中公开的任何方法或其部分的指令,和/或可由任何存储站点(不管是企业本地,还是云存储站点、客户端、数据中心、备份服务器、区块链网络或区块链网络节点)执行/在所述任何存储站点处执行以执行本文中公开的功能的指令。同样地,此类指令可执行以进行本文中公开的其他操作中的任一者,所述其他操作包括但不限于数据流混合、数据流评估和分析、数据流生成、读取、写入、备份和恢复操作和/或任何其他数据保护操作、审计操作、云服务操作。
C.具有可配置共性的经修改的数据流
现在提供关于被配置成生成具有所要共性因子的数据流的一些布置的细节。一般地,输出数据流的所要共性因子‘F’可例如由用户指定,然后,混合器组合两个或更多个组成数据流以创建具有所要共性因子的输出数据流。请注意,在将‘n’个输入流(‘n’为≥2的整数)提供给混合器的情况下,作为合并参数提供给混合器的共性因子F实际上是包括基本种子中的每一个的相应共性值的一组值。因此,例如,‘n’个基本种子的共性因子F将包括共性值f1、f2、f3…fn。如下文所讨论的,一些特定实施方式提供不仅具有所要共性因子,而且拥有压缩性的数据流。
举例说明,假设客户端群体中的客户端中的每一个生成相应的数据流,所述数据流的80%是相应客户端独有的,而所述数据流的其他20%与群体中的一个或多个其他客户端共有。在这个示例中,使用各自识别特定的客户端群体中的相应客户端的独特组合。因此,基本种子1对应于特定的客户端群体,而自生种子101标识所述群体中的特定客户端。因而,所述特定客户端可通过独特组合(1,101)来标识。同一群体中的另一个客户端可通过独特组合(1,102)来标识,在所述独特组合中,基本种子1标识群体,而自生种子102是所述群体的另外客户端独有的。
两个客户端(即通过独特组合(1,101)和(1,102)分别标识的客户端)的相应数据流然后可被彼此独立地馈送到去重引擎。因为客户端(1,101)和(1,102)中的每一个生成数据有20%与另一个客户端共有(即,20%基本数据)并且包括为相应客户端所独有的80%的数据(即,80%的自生种子数据)的数据流,所以20%的共有数据可由去重引擎去重。显而易见,基本数据量和自生种子数据量对于两个或更多个流可以相同。在其他实施方式中,基本数据与自生种子数据的混合从一个数据流到另一个数据流改变。
现在特别注意图3,提供了关于用于生成具有用户可配置共性的数据流的系统和过程的细节。如在本文中和在相关申请中所讨论的,一些替选实施方式提出不仅具有用户可配置共性,而且具有用户可配置压缩性的数据流的创建。
在图3的示例400中,两个或更多个数据生成器402和404生成被供应给混合器410的数据流406和408。混合器410可类似或等同于在本文中或在相关申请中公开的其他混合器中的任一者。
在一些实施方式中,数据流406和408可由同一个计算实体供应。在一些实施方式中,计算实体可采取专门建造的实体的形式,所述专门建造的实体被配置成相对于由实体群体中的一个或多个其他实体生成的相应数据流生成具有特定共性的数据流。然而,更一般地,数据流406和/或408可由能够生成数据流的任何计算实体生成。
尽管图3的示例指示两个组成数据流被供应给混合器410,但是请注意,三个或更多个组成数据流可由单个计算实体或由多个不同的计算实体(例如数据生成器402、404和数据生成器‘n’405)供应给混合器410。因此,图4的布置仅以举例的方式呈现,并且任何数目‘n’个数据流可由任何数目‘n’个数据生成器供应给混合器410,其中‘n’为≥2的正整数。
如图3中所指示,提供给混合器410的输入或合并参数包括由混合器410生成的输出数据流的所要共性因子‘F’。因此,提供基本种子、自生种子和共性因子‘F’,但是省略压缩因子M和N。共性因子‘F’可要求,例如,输出数据流中的数据的20%将从与另一个数据流共有的基本种子数据获取,并且输出数据流中的数据的另外80%将从自生种子数据获取。以下内容是关于针对共性的混合的一些另外示例和讨论。
如果假设例如挑选来自两个流的两个分量作为800KB和200KB,则混合流可分层为800/200/800/200/800/200。此类交织提供具有相对精细粒度的混合数据流。然而,如果混合流被分层为大得多的组块,例如8GB/2GB/8GB/2GB,并且调用方恰好选取20GB,则满足20%的共性要求(16GB独有+4GB共有),但是如果调用方仅需要15GB,例如8GB/2GB/5GB,则由于我们具有13/2的独有/共有比率,因此仅存在约15.4%的共性(2/13=15.38%)。因此,应选择较小的组块。另一方面,如果混合流被分层为小得多的组块,例如4KB/1KB,则在理论上满足20%的共性要求,但是实际上,去重引擎可能不能检测1KB共有区域。
如这些示例表明的,应当选择将使去重引擎有效地并且高效地工作的组块大小。这是保持大于去重引擎的组块大小的最小组块大小的一个原因。作为一示例,当去重引擎典型地创建8KB的组块时,将序列保持为用于1%共性的7920KB/80KB会有用。如果所要准确性粒度更细(即0.1%),则将序列保持为用于0.1%共性的79920KB/80KB会有用。
对于800KB/200KB序列的情况,这是良好的均匀分布,这是因为在每个800KB后看到来自基本种子的数据。混合也可以改变,并且来自流1和/或流2的数据的可变量以平均值仍是800KB/200KB的方式获得。可变分层可基于均匀、随机或归一化分布。在这里,自生/基本大小将是不同的,但是来自基本流的相同量的数据可以以所要数学分布交织,从而得到相同的所要共性因子。
请注意,在一些实施方式中,至少如压缩性因子M和N所证明的压缩可由402和404分别注入,并且压缩将在相应的输入数据流406和408中反映。举例来说,可使用4个输入流(0%自生、100%用于自生、0%基本和100%用于基本,N和M),并且混合器级生成基本N和自生M。下一个级然后混合基本N和自生M以达成所要共性。
最后,并且如本文中所提及,共性过程可涉及处理来自客户端的包括任何数目的分量或成分的输入流。以说明的方式,共性过程可涉及来自客户端101的流,所述流具有可压缩70%的80%独有数据、可压缩75%的来自组1的12%共有数据和可压缩50%的来自组2的8%共有数据。因此,对客户端数据流中的分量的数目没有限制。
先前关于图3所提及,本发明的一些实施方式提供不仅具有所要共性因子‘F’,而且具有基于输入流的共性和压缩性的特定压缩性的数据流。因此,在此类实施方式中,除了所要共性因子‘F’外,合并参数、基本种子、自生种子、和压缩因子M和N是作为混合器410输入提供的。
如图3的示例中所指示,数据流406和408可以是由计算实体生成的单一数据流的分量。举例来说,由计算实体生成的数据流可具有基本种子分量和自生种子分量,其中基本种子分量包括与由其他相应数据生成器生成的一个或多个数据流共有的数据或由所述数据组成,并且自生种子分量包括客户端计算系统独有的数据或由所述数据组成。此外,数据流406可包括例如‘ABCDEFGH…’的基本种子数据,并且具有N%的压缩性。数据流408可包括例如‘abcdefgh…’的自生种子数据,并且具有M%的压缩性。‘M’和‘N’的相应值可以是范围0到100中的任何值。
因此,使用前述合并参数的结果是由混合器410生成的混合输出数据流‘AabcBdefCghiD…’412,所述混合输出数据流具有一定程度的数据共性F,并且也可压缩到由压缩因子M和N指定的程度。因此,输出数据流的压缩性是数据共性F以及压缩性因子M(例如30)和N(例如20)的函数。
为了简要地说明输出数据流412的压缩性性质,如果100GB输出流中的20GB数据是基本种子数据(即,F=20%),并且所述输出数据流的80GB数据是自生种子数据,则相应压缩性值的应用指示基本种子数据可压缩到16GB(20GB x(1.00-0.20)),而自生种子数据可压缩到56GB(80GB x(1-0.3))。因此,100GB的数据可压缩到总共72GB(16GB+56GB),从而给出输出数据流的近似28%的总压缩性。应当注意,这个示例中的所有数字是近似值,因为所使用数据的量和所达成的压缩性可能并不准确。即使这个100GB流在一定程度上自身可压缩到72GB,这个流实际上也可去重到仅80GB(20GB共有分量是纯复本)并且在应用压缩后为56GB。
考虑图3的先前讨论,请注意,当将两个或更多个数据流混合在一起时,两个数据流中的数据的混合可以各种方式进行。举例来说,混合可以是均匀、聚类、随机或归一化的。所使用的特定混合过程可基于所涉及的特定情况来选择。在下文讨论这些混合过程的一些示例,并且结合本发明的实施方式可使用的混合过程也在相关案例中公开。
用于混合数据流的一种特定技术是均匀地混合或合并组成流的数据。举例来说,如果100G流要具有90%独有数据和10%共有数据,则数据的非均匀混合是以例如10%共有数据后面跟随90%独有数据或相反的串行方式来布置数据。相反地,数据的均匀混合可采取例如如此布置在混合数据流中的数据的形式:1MB(共有)、9MB(独有)、1MB(共有)、9MB(独有)、…,直到定义了100GB的混合数据流。这样,共有数据和独有数据均匀地分布在混合数据流中。在一些情况下,设置数据的组块或分组的最小大小可能有用。在以上示例中,组块是1MB或9MB。如果组块大小过小,则去重服务器可能不能分辨数据的共性,并且因此,数据流中的所有数据可能对于去重服务器错误地表现为是独有的。
混合数据流的另一种方法是随机地混合数据。在这个混合数据流的方法中,组块大小是随机的。相反地,在前面的示例中,组块大小不是随机的,而是1MB或9MB。举例来说,组块大小可选择为100K、75K、125K、…。在这种情况下,混合流的流大小可被指定,例如100GB。同样地,可指定最小和/或最大组块大小,并且可指定在那些边界内的随机组块大小。参考先前示例,可指定50K的最小组块大小,和/或可指定150K的最大组块大小。如所提及,最小组块大小可帮助确保混合流的粒度不会太精细而使得去重服务器不能辨识混合流中的共有数据。
混合或合并多个数据流的另一方法涉及来自组成数据流的数据的归一化混合。在展示归一化混合的数据流中,数据组块可如此布置:独有数据;混合数据;独有数据;…。因此,在具有归一化混合的数据流中,混合数据将在数据流的一个或多个特定部分中看到。
混合或合并多个数据流的又一方法涉及数据流中的数据的聚类混合。特别地,混合数据流可被配置,使得数据流包括组成流的数据没有混合在一起的部分,并且数据流包括组成数据流的数据被混合在一起的其他部分。
请注意,多种不同的混合技术可结合特定混合数据流来使用。因此,上文提及的技术仅以举例方式提出,并且可定义和实现使用两个或更多个混合过程以创建混合数据流的其他技术。
D.一些示例方法的方面
现在参考图4,提供了关于用于混合两个或更多个数据流的示例方法的方面的细节,其中这种方法的一个实例总体上用500表示。方法500可由混合器和/或在混合器的引导下进行,在本文中公开了混合器的示例。方法500的一些部分可由例如测试平台的其他实体进行。然而,一般地,图4中所指示的功能分配仅以举例方式提供,并且在其他实施方式中,在图4中公开的功能可以各种其他方式来分配。
方法500可在502开始,此时在混合器处接收多个数据流2…n,其中n≥2。可从数据生成器接收数据流中的一个或多个。同样地,可从被特别配置成生成数据流的实体接收数据流中的一个或多个。在一些情况下,从共同实体接收数据流中的两个或更多个,而在其他情况下,从不同的相应实体接收数据流中的两个或更多个。接收到的数据流中的每一个可具有相应的压缩性和/或共性特性。
在接收到‘n’个数据流502之后或之前,混合器也可以接收呈一个或多个合并参数504的形式的输入,所述一个或多个合并参数504可由混合器使用以创建具有特定特性的混合数据流。此类特性包括例如压缩性和共性。合并参数504可借助于例如UI或API从用户接收。在一些实施方式中,混合器可肯定地访问例如库(library),并且检索合并参数中的一个或多个。
使用合并参数,混合器然后能够合并506接收到的数据流,以创建具有由合并参数指定的特性的混合数据流。数据流可以多种方式中的任一种合并在一起506。举例来说,混合器可采用均匀、随机、归一化或聚类混合过程或这些混合过程的组合,以生成506输出数据流。
然后可由混合器输出508混合数据流。混合数据流拥有由合并参数指定的压缩性和/或共性特性。混合器可将混合数据流输出508到多种接收者中的任一者。在一些情况下,可存储混合数据流。另外地或替选地,可将混合数据流输出508,并且由测试平台接收510。
测试平台可将数据流用作进行测试操作512的基础。测试操作512可涉及例如将数据流提供给应用程序和/或硬件,然后观测并记录应用程序和/或硬件对数据流的响应。在至少一些实施方式中,数据流模仿或复制真实世界条件。这样,例如开发者的人员能够观测例如应用程序对数据的响应。在一些实施方式中,可存储应用程序和/或硬件的响应。同样地,根据本发明的实施方式的模拟流可由顾客使用以测试顾客考虑购买的去重解决方案的有效性,这是因为顾客考虑到安全性问题或与破坏其正常操作环境有关的问题而可能不想将其真实数据发送到新平台。
然后可分析514数据流和/或响应信息。除其他方面之外,此类分析514可涉及识别关于数据流在测试512期间被供应到的应用程序和/或硬件的操作的任何问题。分析514也可以包括识别并且实现解决在测试512期间识别出的问题的一个或多个校正动作。
这样,本发明的实施方式能够在开发过程期间测试例如应用程序和其他软件以及硬件,以便帮助确保应用程序、软件和硬件将如预期地操作。这样可减少或消除应用程序、硬件和软件的购买者和/或用户否则可能经历的一个或多个问题。此外,因为根据本发明的实施方式生成的混合数据流至少在其压缩性和共性方面高度可配置,所以可生成此类混合数据流以适合多种条件和情境。本发明的示例实施方式的各种其他优点将从本公开变得明显。
接下来注意图5,提供了关于用于混合两个或更多个数据流的示例方法的方面的细节,其中这种方法的一个示例总体上用600表示。方法600可由混合器和/或在混合器的引导下进行,在本文中公开了混合器的示例。方法600的一些部分可由例如去重引擎的其他实体进行。在一些实施方式中,混合器和去重引擎可为单个共同计算实体的元件。然而,一般地,图5中所指示的功能分配仅以举例方式提供,并且在其他实施方式中,在图5中公开的功能可以各种其他方式来分配。
方法600可在例如混合器的实体接收‘n’个数据流602时开始。一般地,‘n’可为≥2的任何正整数,并且本发明的范围不限于数据流的任何特定数目。数据流可从单一源接收602,单一源例如作为多个计算实体的群体的一个成员的客户端,但是不要求如此。因此,在其他实施方式中,数据流中的一个或多个可从不同的相应源接收602。
混合器也可接收一个或多个合并参数604。在图5的示例中,合并参数可包括共性因子‘F’,或由共性因子‘F’组成。如本文中公开的,共性因子‘F’指示由混合器或其他实体创建的混合数据流包括相对于计算实体群体中的一个或多个计算实体共有的数据的程度。因为共性因子‘F’可被指定,所以可按需要实现输出数据流的特定共性‘F’。请注意,在一些替选实施方式中,共性因子‘F’可在接收602‘n’个数据流之前被接收604。在其他实施方式中,共性因子‘F’和‘n’个数据流可同时被接收。如先前所提及的,提供给混合器以作为合并参数的共性因子F是包括基本种子中的每一个的相应共性值的一组值。因此,例如,‘n’个基本种子的共性因子F将包括共性值f1、f2、f3…fn。
在任何情况下,在已接收602‘n’个数据流并且已接收604例如共性因子‘F’的(一个或多个)合并参数输入之后,混合器或其他实体然后可基于合并参数来合并606接收的‘n’个数据流。‘n’个数据流的这种合并或混合606可包括将‘n’个数据流的相应数据分层在一起以创建混合数据流606。混合数据流的一个或多个特性,包括混合数据流的共性可模仿由应用程序或其他数据生成器生成的真实世界数据的特性。
然后可将由混合器创建606的混合数据流输出608到一个或多个计算实体,以供那些实体使用和/或由那些实体进行处理。在图5的示例中,将混合数据流输出608到去重引擎。去重引擎然后接收610所述混合数据流。在图5的示例中,去重引擎对从混合器接收610的混合数据流进行去重过程612。更特别地,去重引擎对混合数据流中的与由去重引擎接收到的一个或多个其他数据流共有的数据去重612。过程600可以在去重612已进行之后或在所述混合数据流已创建606或传输608之后结束。
E.示例计算装置和相关联的介质
本文中公开的实施方式可包括使用包括各种计算机硬件或软件模块的专用或通用计算机,如在下文更详细地讨论。计算机可包括处理器和携带指令的计算机存储介质,所述指令在由处理器执行和/或使得由处理器执行时进行本文中公开的方法中的任何一个或多个。
如上文所指示,在本发明的范围内的实施方式也包括计算机存储介质,所述计算机存储介质是用于携带计算机可执行指令或数据结构或在其上存储所述计算机可执行指令或数据结构的物理介质。此类计算机存储介质可以是可由通用或专用计算机访问的任何可用物理介质。
以举例而非限制的方式,此类计算机存储介质可包括硬件存储器,例如固态盘/装置(SSD)、RAM、ROM、EEPROM、CD-ROM、闪存、相变存储器(“PCM”)或其他光盘存储装置、磁盘存储装置或其他磁性存储装置,或可用于存储呈计算机可执行指令或数据结构的形式的程序码的任何其他硬件存储装置,所述计算机可执行指令或数据结构可由通用或专用计算机系统访问和执行以实现本发明的公开功能性。以上各项的组合也应包括在计算机存储介质的范围内。此类介质也是非暂时性存储介质的示例,并且非暂时性存储介质也涵盖基于云的存储系统和结构,尽管本发明的范围不限于非暂时性存储介质的这些示例。
计算机可执行指令包括例如使得通用计算机、专用计算机或专用处理装置执行特定功能或功能组的指令和数据。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是将理解,在随附权利要求书中定义的主题未必限于以上描述的特定特征或动作。确切地说,本文中公开的特定特征和动作是以实现权利要求的示例形式公开的。
如本文所使用,术语‘模块’或‘部件’可指代在计算系统上执行的软件对象或例程。本文中描述的不同部件、模块、引擎和服务可实现为例如作为单独线程在计算系统上执行的对象或进程。尽管本文中描述的系统和方法可以软件实现,但是以硬件或软件与硬件的组合实现也是可能的并且预期的。在本公开中,‘计算实体’可以是如本文中先前所定义的任何计算系统,或在计算系统上运行的任何模块或模块的组合。
在至少一些实例中,提供可操作以实行用于执行例如本文中公开的方法和过程的方法或过程的可执行指令的硬件处理器。硬件处理器可以包括或不包括其他硬件的元件,例如本文中公开的计算装置和系统。
在计算环境方面,本发明的实施方式可在无论是网络或还是本地环境的客户端-服务器环境中或在任何其他合适环境中执行。用于本发明的至少一些实施方式的合适操作环境包括云计算环境,其中客户端、服务器或其他机器中的一者或多者可在云环境中驻留并且操作。
本发明可以其他特定形式具体化而不悖离本发明的精神或本质特性。所描述实施方式应仅作为说明而非限制而在所有方面被考虑。因此本发明的范围由随附权利要求书指示,而非由先前描述指示。在权利要求的等效含义和范围内的所有变化应被涵盖在权利要求的范围内。

Claims (20)

1.一种方法,所述方法包括:
接收‘n’个数据流,其中‘n’≥2;
接收共性参数‘F’;
通过将来自所述‘n’个数据流的数据混合在一起来创建具有共性‘F’的混合数据流;以及
输出所述混合数据流。
2.如权利要求1所述的方法,其中,所述‘n’个数据流全部从单个计算实体接收。
3.如权利要求1所述的方法,其中,将来自所述‘n’个数据流的数据混合在一起包括将来自所述‘n’个数据流中的每一个的相应数据分层。
4.如权利要求3所述的方法,其中,根据以下各项中的一者来进行对所述数据的分层:均匀分布;随机分布;聚类分布;或归一化分布。
5.如权利要求1所述的方法,其中,输出所述混合数据流包括将所述混合数据流供应给去重引擎。
6.如权利要求1所述的方法,其中,所述共性‘F’包括一组的‘n’个共性值,其中,每个共性值对应于相应的输入流。
7.如权利要求1所述的方法,其中,所述共性‘F’指示所述混合数据流中的数据与两个或更多个其他数据流共有的程度。
8.如权利要求1所述的方法,所述方法还包括对所述混合数据流的与一个或多个其他数据流共有的数据去重。
9.如权利要求1所述的方法,其中,所述‘n’个数据流中的一者包括基本种子数据,并且所述‘n’个数据流中的另一者包括自生种子数据。
10.如权利要求1所述的方法,所述方法还包括在所述‘n’个数据流中的两个或更多个中注入相应压缩性。
11.一种非暂时性存储介质,所述非暂时性存储介质中存储有计算机可执行指令,所述计算机可执行指令在由一个或多个硬件处理器执行时进行以下操作:
接收‘n’个数据流,其中‘n’≥2;
接收共性参数‘F’;
通过将来自所述‘n’个数据流的数据混合在一起来创建具有共性‘F’的混合数据流;以及
输出所述混合数据流。
12.如权利要求11所述的非暂时性存储介质,其中,所述‘n’个数据流全部从单个计算实体接收。
13.如权利要求11所述的非暂时性存储介质,其中,将来自所述‘n’个数据流的数据混合在一起包括将来自所述‘n’个数据流中的每一个的相应数据分层。
14.如权利要求13所述的非暂时性存储介质,其中,根据以下各项中的一者来进行对所述数据的分层:均匀分布;随机分布;聚类分布;或归一化分布。
15.如权利要求11所述的非暂时性存储介质,其中,输出所述混合数据流包括将所述混合数据流供应给去重引擎。
16.如权利要求11所述的非暂时性存储介质,其中,所述共性‘F’包括一组的‘n’个共性值,其中每个共性值对应于相应的输入流。
17.如权利要求11所述的非暂时性存储介质,其中,所述共性‘F’指示所述混合数据流中的数据与两个或更多个其他数据流共有的程度。
18.如权利要求11所述的非暂时性存储介质,其中,所述操作还包括对所述混合数据流的与一个或多个其他数据流共有的数据去重。
19.如权利要求11所述的非暂时性存储介质,其中,所述‘n’个数据流中的一者包括基本种子数据,并且所述‘n’个数据流中的另一者包括自生种子数据。
20.如权利要求11所述的非暂时性存储介质,其中,所述操作还包括在所述‘n’个数据流中的两个或更多个中注入相应压缩性。
CN201980095569.1A 2019-04-19 2019-12-16 生成具有可配置共性的数据流 Active CN113728314B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/389,700 US11283853B2 (en) 2019-04-19 2019-04-19 Generating a data stream with configurable commonality
US16/389,700 2019-04-19
PCT/US2019/066632 WO2020214215A1 (en) 2019-04-19 2019-12-16 Generating a data stream with configurable commonality

Publications (2)

Publication Number Publication Date
CN113728314A true CN113728314A (zh) 2021-11-30
CN113728314B CN113728314B (zh) 2023-10-31

Family

ID=69177202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980095569.1A Active CN113728314B (zh) 2019-04-19 2019-12-16 生成具有可配置共性的数据流

Country Status (4)

Country Link
US (1) US11283853B2 (zh)
EP (1) EP3956772A1 (zh)
CN (1) CN113728314B (zh)
WO (1) WO2020214215A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789782A (zh) * 2008-03-04 2012-11-21 弗劳恩霍夫应用研究促进协会 对输入数据流进行混合以及从中产生输出数据流
CN103650399A (zh) * 2011-07-14 2014-03-19 微软公司 纠正数据单元的自适应生成
US20140279874A1 (en) * 2013-03-15 2014-09-18 Timmie G. Reiter Systems and methods of data stream generation
CN105813549A (zh) * 2013-12-12 2016-07-27 谷歌公司 组合来自多个格式的信息
US10114832B1 (en) * 2014-09-17 2018-10-30 EMC IP Holding Company LLC Generating a data stream with a predictable change rate

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
JP2003501887A (ja) * 1999-05-27 2003-01-14 ノーテル・ネットワークス・リミテッド カオス信号を使用したマルチプル・アクセス通信システムおよびカオス信号を発生・抽出する方法
US6816093B1 (en) 2003-12-03 2004-11-09 International Business Machines Corporation Apparatus method and system for increased digital media recording throughput
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
US11128935B2 (en) * 2012-06-26 2021-09-21 BTS Software Solutions, LLC Realtime multimodel lossless data compression system and method
US20140118541A1 (en) 2012-10-26 2014-05-01 Sensormatic Electronics, LLC Transcoding mixing and distribution system and method for a video security system
US9256503B2 (en) * 2012-11-13 2016-02-09 Load DynamiX, Inc. Data verification
US9386126B2 (en) * 2014-05-02 2016-07-05 Huawei Technologies Co., Ltd. System and method for hierarchical compression
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
US10235134B1 (en) 2014-09-17 2019-03-19 EMC IP Holding Company LLC Rotating bit values while generating a large, non-compressible data stream
US10114850B1 (en) 2014-09-17 2018-10-30 EMC IP Holding Company LLC Data stream generation using prime numbers
US9804951B2 (en) 2014-10-08 2017-10-31 Signalfx, Inc. Quantization of data streams of instrumented 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
US9838495B2 (en) * 2015-04-21 2017-12-05 International Business Machines Corporation Managing data acquisition
US10783118B2 (en) 2016-01-28 2020-09-22 Quest Software Inc. Read-only file system for testing de-duplication
US10638150B1 (en) * 2019-04-19 2020-04-28 EMC IP Holding Company LLC Generating a data stream with configurable compression

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789782A (zh) * 2008-03-04 2012-11-21 弗劳恩霍夫应用研究促进协会 对输入数据流进行混合以及从中产生输出数据流
CN103650399A (zh) * 2011-07-14 2014-03-19 微软公司 纠正数据单元的自适应生成
US20140279874A1 (en) * 2013-03-15 2014-09-18 Timmie G. Reiter Systems and methods of data stream generation
CN105813549A (zh) * 2013-12-12 2016-07-27 谷歌公司 组合来自多个格式的信息
US10114832B1 (en) * 2014-09-17 2018-10-30 EMC IP Holding Company LLC Generating a data stream with a predictable change rate

Also Published As

Publication number Publication date
US20200336531A1 (en) 2020-10-22
US11283853B2 (en) 2022-03-22
CN113728314B (zh) 2023-10-31
WO2020214215A1 (en) 2020-10-22
EP3956772A1 (en) 2022-02-23

Similar Documents

Publication Publication Date Title
US11132264B2 (en) Point-in-time copy restore
US11748316B2 (en) Generating and morphing a collection of files in a folder/sub-folder structure that collectively has desired dedupability, compression, clustering and commonality
US11468193B2 (en) Data masking in a microservice architecture
US9760449B2 (en) Restoring a point-in-time copy
US9760450B2 (en) Restoring a clone point-in-time copy
CN113728555B (zh) 生成具有可配置压缩的数据流
CN113728314B (zh) 生成具有可配置共性的数据流
US11983148B2 (en) Data masking in a microservice architecture
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
US11386118B2 (en) Physical to virtual journal cascading
US11580262B2 (en) Data masking in a microservice architecture
US20230342259A1 (en) Balancing of slices with consolidation and re-slicing
WO2021236292A1 (en) Data masking in a microservice architecture
CN116804944A (zh) 可扩展数据保护环境中的自适应数据移动器资源分配

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