生成具有可配置压缩的数据流的制作方法

文档序号:27693348发布日期:2021-12-01 04:19阅读:122来源:国知局
生成具有可配置压缩的数据流的制作方法

1.本发明的实施方式总体上涉及生成具有各种属性的数据流。更具体地,本发明的至少一些实施方式涉及用于生成压缩可配置的数据流的系统、硬件、软件、计算机可读介质以及方法。


背景技术:

2.开发者和其他人员经常需要模拟由处在开发阶段的应用程序生成的真实世界数据流的特性。对例如压缩性的真实世界数据流特性的模拟使开发者能够在应用程序或应用程序的修订版本推出之前识别和校正任何问题并且增强应用程序的性能。
3.已经开发出了各种算法以用于生成数据流。然而,通过这些算法生成的数据流在其应用性和可用性方面可能相对较窄。这可归因于各种因素。举例来说,生成此类流的速度可能不够。作为另一个示例,通过此类算法生成的数据流可能不可压缩。此外,此类数据流可能不可去重。这些和其他因素可倾向于限制由一些数据流生成算法产生的数据流在一些应用中的有效性。
附图说明
4.为了描述可获得本发明的优点和特征中的至少一些的方式,对本发明的实施方式的更具体描述将参考在附图中图示的本发明的特定实施方式来显现。应理解,这些附图仅描绘本发明的典型实施方式,并且因此不被认为是对其范围的限制,本发明的实施方式将通过使用附图以另外的特异性和细节来描述和解释。
5.图1公开了用于本发明的一些实施方式的示例操作环境的多个方面。
6.图2公开了示例主机配置的多个方面。
7.图3公开了配置的一些一般方面,在所述配置中,将一个或多个不可压缩数据流与一个或多个可压缩数据流混合以生成具有特定压缩性的混合数据流。
8.图3a到图3g公开了不可压缩数据流的示例部分。
9.图4a到图4d公开了可用于组合多个数据流以创建具有特定压缩性的输出数据流的方式的示例。
10.图5是公开了用于生成混合数据流的方法的一些一般方面的流程图。
具体实施方式
11.本发明的实施方式总体上涉及生成具有各种属性的数据流。更具体地,本发明的至少一些实施方式涉及用于生成压缩可配置的数据流的系统、硬件、软件、计算机可读介质以及方法。给定数据流中的数据在本文中可被称为数据集。
12.更特别地,本发明的示例实施方式采用数据流混合以生成具有特定压缩性质的数据流。视实现方式而定,可混合两个或更多个数据流。通过混合两个或更多个数据流创建的所得数据流可在多种应用中使用。为了说明,此类所得或合成的数据流可在多个应用中使
用,在所述多个应用中,应用程序、硬件和/或其他元件的自动和/或手动测试需要高速生成具有特定压缩性质的数据流。示例数据流可以超过1gbps的速率生成。在至少一些实施方式中,可压缩流和不可压缩数据流可通过在相关申请中的一个或多个中公开的方法和系统生成。
13.数据流中的将与一个或多个其他数据流混合的一个数据流可具有约0%的压缩性,尽管不要求如此。此类数据流的示例和用于生成此类数据流的方法在本文中提到的相关申请中的一个或多个中公开。另外地或替选地,数据流中的将与一个或多个其他数据流混合的一个数据流可具有约100%的压缩性,尽管不要求如此。
14.在一些实施方式中,将多个数据流混合在一起以生成具有特定压缩性的新数据流。在将任何两个或更多个数据流混合在一起的情况下,数据流的相应数据可例如基于数据块、数据序列或其他形式而交织,以形成新数据流。最后,数据流可以例如聚类、均匀、随机或归一化混合的多种方式来混合。
15.因而有利地,本发明的实施方式可提供相对于常规硬件、软件、系统和方法的配置和操作的各种益处和改进。举例来说,本发明的一实施方式能够定制数据流以满足计算环境中的测试、分析和诊断需求。同样地,本发明的一实施方式能够生成具有特定的

非零’压缩性的数据流。此外,本发明的一实施方式能够相对于由计算实体群体中的计算实体生成的相应数据流生成具有特定压缩性的数据流。压缩性特征帮助模拟部分可压缩的数据,所述数据在许多应用中具有共同数据类型。共性特征帮助模拟跨多个组的所有者共有的数据。这在去重引擎和过程的情况下有用,去重引擎和过程在其去重操作中需要有效性和高效性两者。此外,本发明的实施方式的灵活性能够生成尤其适合于在计算环境中进行定制测试、分析和诊断过程的数据流。其中,此类实施方式能够识别在应用程序和/或计算系统硬件和其他软件的操作中可能得做出改进的区域。
16.应当注意,各种实施方式的前述有利方面仅以举例方式呈现,并且本发明的示例实施方式的各种其他有利方面将自本公开显而易见。还要注意,未必需要任何实施方式实现或能够实现本文中公开的此类有利方面中的任一者。
17.a.示例操作环境的多个方面
18.下面是对用于本发明的各种实施方式的示例操作环境的多个方面的讨论。该讨论不意图以任何方式限制本发明的范围或实施方式的应用性。
19.一般地,本发明的实施方式可结合单独地和/或共同地实现和/或致使实现数据生成和数据管理操作的系统、软件和部件来实现。此类数据管理操作可包括但不限于数据读取/写入/删除操作、数据去重操作、数据备份操作、数据还原操作、数据克隆操作、数据存档操作以及灾难恢复操作。因此,尽管本文中的讨论在一些方面可以针对数据保护环境和操作的讨论,但是本发明的范围不限于此。因而更一般地,本发明的范围涵盖任何所公开的概念在其中可用的操作环境。在一些例子中,本发明的实施方式生成数据流以供在各种环境中在测试系统和应用程序中使用,所述环境的一个示例是数据保护环境。
20.数据保护环境例如可采取公共或私有云存储环境、本地(on

premises)存储环境以及包括公共和私有元素的混合式存储环境的形式,尽管本发明的范围也扩展到任何其他类型的数据保护环境。这些示例存储环境中的任何一个可被部分地或完全地虚拟化。存储环境可包括可操作以为由一个或多个客户端启动的读写操作服务的数据中心,或由所述数
据中心组成。
21.除了存储环境外,操作环境也可包括各自托管一个或多个应用程序的一个或多个主机装置,例如客户端。因而,特定客户端可使用生成需要保护的数据的一个或多个应用程序中的每一个的一个或多个实例,或以其他方式与所述一个或多个实例相关联。一般地,客户端所使用的应用程序不限于任何特定功能性或功能性类型。一些示例应用程序和数据包括例如ms交换的电子邮件应用程序、文件系统以及例如oracle数据库和sql服务器数据库的数据库。客户端上的应用程序可生成需要保护的新数据和/或修改后数据。
22.操作环境中的包括客户端、服务器和主机的装置中的任一者可采取软件、物理机或虚拟机(vm)或这些的任何组合的形式,尽管没有任何实施方式需要特定的装置实现方式或配置。类似地,例如数据库、存储服务器、存储卷(lun)、存储盘、复制服务、备份服务器、还原服务器、备份客户端以及还原客户端的数据保护系统部件可同样采取软件、物理机或虚拟机(vm)的形式,尽管没有任何实施方式要求特定的部件实现方式。在使用vm的情况下,可使用超级管理程序或其他虚拟机监视器(vmm)以创建和控制vm。
23.如本文所使用,术语

数据’意图在范围上是广义的。因此,所述术语以举例而非限制的方式涵盖例如可通过数据流分段过程产生的数据片段、数据组块、数据块、原子数据、电子邮件、任何类型的对象、文件、联系人、目录、子目录、卷以及前述各项中的一项或多项的任何组。
24.本发明的示例实施方式可适用于能够存储和处理呈模拟、数字或其他形式的各种类型的对象的任何系统。尽管可以举例的方式使用例如文档、文件、块或对象的术语,但是本公开的原理不限于表示和存储数据或其他信息的任何特定形式。确切地说,此类原理同样适用于能够表示信息的任何对象。
25.现在特别注意图1,操作环境的一个示例总体上用100表示。在一些实施方式中,操作环境可包括数据保护环境,或由数据保护环境组成。操作环境可包括企业数据中心,或云数据中心,或两者。数据保护环境可支持各种数据保护过程,包括例如数据复制、数据去重、克隆、数据备份和数据还原。如本文所使用,术语备份意图被广义地解释,并且包括但不限于部分备份、增量备份、完全备份、克隆、快照、连续复制以及任何其他类型的数据拷贝,以及前述各项的任何组合。前述各项中的任何一者可以或不可被去重。
26.在所示出的示例中,操作环境100可包括任何类型和数目的数据生成器102、104和106。一般地,数据生成器102

106可以是可操作以生成数据的任何软件、硬件或软件与硬件的组合。在一些实施方式中,软件可包括一个或多个应用程序或由一个或多个应用程序组成,并且应用程序可以是任何类型的。因此,在一些情况下,数据生成器102

106中的一个或多个可包括托管一个或多个应用程序的客户端装置。由数据生成器生成的数据可以或不可作为例如在云数据中心处保护和备份的目标。在一些实施方式中,数据生成器102

106中的一个、一些或全部可包括专门建造的实体,所述实体可包括被特别配置成生成不可压缩数据流和/或可压缩数据流的硬件和/或软件。
27.如图1中进一步指示,操作环境100可包括混合器108。一般地,混合器108可操作以组合来自数据生成器102

106的数据流以便创建新数据流。由混合器108创建的每个新数据流可以使得数据流具有特定压缩属性的方式生成。
28.混合器108的操作可经由各种参数可配置,并且这些参数可帮助整形输出数据流
的性质。由混合器108创建的输出数据流的这些参数可例如由用户使用与混合器108相关联的用户界面(ui)108a和/或应用程序接口(api)来指定。ui可以是任何类型的用户界面,包括但不限于图形用户界面(gui)或命令行界面(cli)。混合器108于是可使用用户输入以通过混合两个或更多个输入数据流来生成新数据流。借助于ui和/或其他机制提供的用户输入可包括但不限于以下各项中的任何一个或多个:输出流的数据量;一个或多个自生种子;一个或多个基本种子;源数据流的一致;数据生成器的一致;所要求的共性因子(cf);每个源数据流的相应压缩性参数;以及由混合器108产生的数据流的所要求的压缩性参数。在一实施方式中,混合器108可将例如来自多个相应源(例如来自数据生成器102

106)中的每一个的多个数据流组合。
29.混合器108可实现为硬件、软件或硬件和软件的组合。在一些实施方式中,混合器108采取可在服务器或任何其他类型的主机装置上托管的应用程序的形式。混合器108可驻留在用户处所、云数据中心和/或任何其他站点处。在一些实施方式中,混合器108可以是例如去重服务器的另一系统或装置的元件。因此,在此类实施方式中,由混合器108生成的输出数据流接着可由去重服务器进行去重。然而,混合器108不必是去重服务器的元件,并且在其他实施方式中,可将由混合器108生成的输出数据流提供给去重服务器以进行去重。
30.继续参考图1,混合器108可构成测试环境109的元素,或与测试环境109通信。测试环境109可包括例如一个或多个应用程序110和/或一个或多个硬件装置112。一般地,由混合器108生成的数据流可由混合器108提供给应用程序110和/或硬件装置112,以进行测试、分析和/或诊断操作。此类数据流在提供给测试环境109之前可以或可不被去重。
31.更特别地,由混合器108生成的数据流可提供给应用程序110和/或硬件装置112并且由应用程序110和/或硬件装置112利用。应用程序110和/或硬件112的输出和/或其他响应可接着被提供给评估模块114以用于分析和诊断。在一些实施方式中,评估模块114是混合器108的元件。然而,在其他实施方式中,评估模块114与混合器108是分开的并且不同。
32.通过使用来自一个或多个数据生成器的输入来生成数据流,混合器108能够对应用程序110和/或硬件112进行测试,因此可进行分析,并且找到观测到的任何问题的解决方案。实施方式在定制由混合器108生成的数据流的共性和/或压缩性方面的灵活性实现用于模仿或复制真实世界条件的广泛多种测试和评估情境。
33.b.示例主机和服务器配置
34.现在简要参考图2,数据生成器102

106、混合器108、测试平台109、应用程序110、硬件112、评估模块114、实体306以及混合器308中的任何一个或多个可采取物理计算装置的形式,或包括物理计算装置,或在物理计算装置上实现,或由物理计算装置托管,物理计算装置的一个示例用200表示。同样地,在前述元件中的任一者包括虚拟机(vm)或由vm组成的情况下,该vm可以构成图2中公开的物理部件的任何组合的虚拟化。
35.在图2的示例中,物理计算装置200包括:存储器202,所述存储器可以包括以下各项中的一者、一些或全部:随机存取存储器(ram)、非易失性随机存取存储器(nvram)204、只读存储器(rom)和永久性存储器;一个或多个硬件处理器206;非暂时性存储介质208;ui装置210以及数据存储器212。物理计算装置200的存储器部件202中的一个或多个可采取固态装置(ssd)存储器的形式。同样地,提供包括可执行指令的一个或多个应用程序214。此类可执行指令可以采取各种形式,包括例如可执行以进行本文中公开的任何方法或其部分的指
令,和/或可由存储站点(不管是企业本地,还是云存储站点)、客户端、数据中心、备份服务器、区块链网络或区块链网络节点中的任一者执行/在所述任一者处执行以进行本文中公开的功能的指令。同样地,此类指令可执行以进行本文中公开的其他操作中的任一者,所述其他操作包括但不限于数据流混合、数据流评估和分析、数据流生成、读取、写入、备份和还原操作和/或任何其他数据保护操作、审计操作、云服务操作。
36.c.具有可配置压缩的修改后数据流
37.现在直接注意图3,提供了关于用于生成具有用户可配置压缩的数据流的系统和过程的细节。在图3的示例300中,一个或多个不可压缩数据流302与一个或多个可压缩数据流304混合在一起或合并。数据流可以均匀、随机、归一化或聚类分布的方式混合在一起。任何特定输入和/或输出数据流或多个数据流可压缩的程度(如果有的话)可由用户或计算实体指定。同样地,用于将两个或更多个数据流混合在一起的一种或多种方式可由用户或计算实体指定。应当注意,图3中公开的布置300仅以举例方式呈现,并且受益于本公开的人将了解,关于图3公开的原理也可扩展到多种其他情形和配置。
38.在图3的特定示例中,不可压缩数据流302可例如由数据生成器来生成,在本文中公开了数据生成器的示例。在一些实施方式中,不可压缩数据流302可由被特殊配置成生成不可压缩数据流的实体306生成。如所指示,不可压缩数据流302可基于初始化参数而生成,初始化参数可被称为

种子’或

种子值’。在相关申请中公开了其他示例数据生成器。
39.不可压缩数据流302可被称为具有0%或约0%的压缩性。因此,不可压缩数据流302可包括块序列,或由块序列组成,所述块的每一个是唯一的。为了说明,不可压缩数据流302可包括块序列

abcdef
…’
。如这个示例所图示,在该序列中仅存在每个块的单个实例。因此,数据流302的序列abcdef不能被压缩,这是因为没有重复块可以从序列去除以缩小(即,压缩)序列的大小。在相关申请中的一个或多个申请中公开了不可压缩数据流的示例和用于生成不可压缩数据流的过程。
40.另一方面,数据流304可以是部分或完全可压缩的。在后一种情况下,数据流304可被称为具有100%或约100%的压缩性。因此,可压缩数据流304可包括字符、部分或其他数据段的序列,或由字符、部分或其他数据段的序列组成,所述字符、部分或其他数据段全部相同。为了说明,可压缩数据流304可包括序列

xxxxxx
…’
。如这个示例所示,在这个序列中存在同一个字符的多个实例。因此,数据流304的序列xxxxxx高度可压缩,尽管可能不是100%可压缩,这是因为所述序列中的所有字符都是重复的,并且可将几乎全部的重复字符从该序列去除以缩小(即,压缩)序列的大小。下面在图4a到图4d讨论数据流压缩的另外示例。
41.在一些实施方式中,数据流302和304可由例如由主机装置托管的应用程序的同一个实体产生。在其他实施方式中,数据流302可由被特殊配置成生成不可压缩数据流的专门建造的实体(其可包括硬件和/或软件)生成,并且数据流304可由例如本文中公开的数据生成器产生。
42.继续参考图3,数据流302和304可被提供给混合器308,所述混合器可与在图1中公开的混合器108相似或相同。因此,到混合器308的输入(种子,n)是用作生成不可压缩数据流302的基础的种子,和

n’或来自在由混合器308生成输出流时将使用的可压缩数据流304的数据的百分比。为了利用示例说明,由混合器308生成的可压缩数据流310可包含来自数
据流302的70%的不可压缩数据,和来自数据流304的30%(即,

n’%)的数据。混合器308对这两个数据流的组合产生30%可压缩的输出数据流310。即,输出数据流310可被压缩到其初始大小的70%。如先前示例所说明,可按需要选择

n’的值。
43.继续参考图3,示出了又一个示例。如果

n’例如由用户使用与混合器308通信的ui指定为33%,则由混合器308生成的数据流310为约33%可压缩的。因此,示例输出数据流310中的数据的一部分可由数据流302供应,并且示例输出数据流310中的数据的另一部分可由数据流304供应。更一般地,可将任何数目

x’个输入数据流混合在一起以生成输出数据流,其中x为≥2的整数。输出数据流310的示例序列可包括9个块并且看起来像

abxcdxefx
…’
,其中所述块的6/9(即,ab、cd和ef)或数据的约67%取自数据流302,并且所述块的3/9(即x、x、x)或数据的约33%取自数据流304。
44.d.可配置压缩性
45.目前为止的讨论已经解决了关于组合各自具有在约0%至约100%的范围内的相应压缩性的两个或更多个数据流以生成具有所要求的压缩性的输出数据流的各种问题。一般地,可结合本发明的实施方式生成任何程度压缩性(在约0%至约100%的范围内)的数据流。可通过用本文中公开的和/或从本公开可了解的广泛多种不同方式中的任一种混合两个或更多个数据流来生成所述数据流。因此,以下对可用来创建具有所要求的压缩性的数据流的方式的说明仅以举例而非限制的方式提供。
46.暂时注意图3a到图3g,公开了不可压缩数据序列的数据(大小为近似8kb)的示例块300。可由数据生成器生成的块300在图3a上开始并且在图3g的底部结束。用302和304表示的块300的部分各自为128字节示例,所述示例在随后讨论中用于说明性目的。在图4a到图4d的示例中的每一个中,混合数据流可包括例如可借助于例如数据流304(图3)的数据流提供的可压缩数据,并且所述混合数据流可包括例如借助于例如数据流302(图3)的数据流提供的不可压缩数据。
47.现在整体地参考图4a到图4d,提供了关于可以如何组合多个数据流以创建具有特定压缩性的输出数据流的一些特定示例的细节。可例如由混合器来实现图4a到图4d中公开的示例,混合器的实施方式在本文中公开。
48.接下来转到图4a,出于讨论的目的将假设:一共包含256个字节的示例块部分302和304(参见图3a)表示相应的8kb块402和404。图4b中公开的示例说明了可用于关于示例块402和404达成所要求的压缩性水平的一种方式。从块402和404显而易见,那些块是不可压缩的,这是因为任何字节序列(其中序列长度为1或更大)明显不会再次出现在那些块中。因此,如果图4a所示的256字节数据序列被发送到去重引擎,则块402和404不能被去重引擎压缩。
49.然而,在图4b的示例中,块402a和404a表示在已经引入所要求的压缩性之后的块402和404。出于说明的目的将假设:块402a和404a在创建时应当具有约75%的压缩性,所要求的压缩性的实现在块级别发生,并且块的大小为8kb。然而,请注意,用户和/或例如去重引擎的计算实体可以规定例如但不限于以下各项中的一个或多个参数:(i)块大小;(ii)所要求的压缩性;和(iii)进行压缩应处于的级别、块或其他。另外的替选的参数可以在压缩性将在数据流中实现时考虑。
50.继续参考图4b,块的第一32个字节没有变化,因此,那些字节保持相同的原始偏
移。然而,块402的剩余96个字节用00取代,其中00指的是具有值0或十六进制的0x00的字节。00值位于字节33到128,这样产生具有约75%的压缩性的块402b。关于块404a是类似地,并且鉴于在字节33到128处插入了00值,字节33到64处的原始值现在以不同的偏移重新定位,即重新定位在字节129到160处,后面跟随接下来96个字节处的00值。因此,块402a和404a现在各自具有约75%的压缩性。将理解,前述过程可反复地进行,直到整个数据流或其部分包含各自可压缩到特定程度(在这个示例中为75%)的块,或由所述块组成。
51.现在转到图4c,公开了关于图4b的过程的变型。一般地,图4c公开了用于在块或其他级别达成所要求的压缩性的观念,块的可压缩部分可由任何可压缩数据构成。因此,如图4c所指示,可压缩数据不需要为00值。在示例块402b和404b中,可压缩数据分别为41424344(abcd)和45464748(efgh)。可以看到,这个数据会像如在图4b的示例中已经使用了00值一样容易压缩。还可以看到,所使用的可压缩数据可以但是不要求对于同一数据流的不同块是不同的。因此,块402b的可压缩数据为41424344,而块404b的可压缩数据为45464748。
52.同样地,并且类似于图4b的示例,块402b的第一32个字节的偏移不因为可压缩数据41424344的插入而改变。然而,原始字节33到64仍存在,但是现在由于可压缩数据41424344的插入而位于129到160的偏移处。
53.在图4b和图4c的示例中,例如00值的可压缩数据或例如41424344(abcd)和45464748(efgh)的其他可压缩数据被插入到数据块402a、404a、402b和404b中,因此达成所要求的块级别压缩性。在其他实施方式中,可使用除数据插入以外的过程以在生成混合数据流时达成所要求的压缩性。因此,现在直接注意图4d,其中公开了块402c和404c。在这个示例中,可压缩数据被覆写在不可压缩数据中的一些上方,而不是如在图4b和图4c的实例中,在不可压缩数据中插入可压缩数据。
54.因此,如图4d的示例所指示,并且首先参考块402c,可压缩数据被覆写在第一32个字节之后的所有字节上方。类似于本文中公开的其他示例,第一32个字节的偏移没有变化。参考块404c能够更清楚地看到覆写的效果。在块404c中,可压缩数据被覆写在不可压缩数据中的一些(具体地,字节33到64)上方。因此,不是字节33到128被移动到129到160的偏移,如同当插入可压缩数据时(图4b和图4c)发生的,而是那些字节33到128在图4d的示例中被覆写,并且最初在字节129到160处的数据因此保持在129到160的偏移。块404c的字节161到256被可压缩数据覆写。
55.e.示例数据流混合方法
56.考虑先前示例,请注意,当将两个或更多个数据流混合在一起时,两个数据流中的数据的混合可以各种方式进行。举例来说,混合可以是均匀、聚类、随机、归一化或任何其他数学分布或者这些示例分布中的一者或多者的混合。所使用的特定混合过程可基于所涉及的特定情况来选择。在下文讨论这些混合过程的一些示例。
57.可参考示例来了解对示例混合过程的一些方面的理解。特别地,保持应用于去重(deduplication)(或

去重(dedupe)’)引擎可创建的每个块的压缩在至少一些情形中有用。对于通常创建例如8kb块的去重引擎,从0%和100%压缩性流选择多个部分,使得所述部分的和为约8k。因此,对于75%的所要求的压缩,2kb的数据来自0%可压缩流,而6kb来自100%可压缩流。然而,在250kb是选取自0%可压缩流,后面跟随来自100%可压缩流的750kb的情况下不能达成相同结果。因此,数据混合所用的特定方式暗示了在包括所述数据
的混合数据流中最终可达成的压缩性。
58.举例来说,去重引擎可能需要数据流中的特定平均或总体压缩性,但是在这个特定情况下,压缩性在数据流中不应当始终相同。因此,这个示例中的压缩逻辑可以使得更大数目的块的平均压缩性为所要求的值的方式进行配置,尽管任何给定块或甚至一组块的压缩性可能不是平均压缩性。
59.为了利用示例进行说明,混合数据流可以被配置成20%的块具有65%的压缩性,20%的块具有70%的压缩性,20%的块具有75%的压缩性,20%的块具有80%的压缩性,并且20%的块具有90%的压缩性。这样可产生具有75%的平均压缩性的混合流,即使仅20%的块具有75%的压缩性。混合数据流中的这种压缩性变化可比具有完全75%可压缩的块的混合数据流更准确地反映一些真实世界数据流。如下文所讨论的,块的均匀、随机、归一化和聚类混合可确定在块序列中在哪里创建压缩性不同的块。
60.举例来说,用于混合数据流的一种技术是均匀地混合或合并组成流的数据。举例来说,如果100g流应具有90%独特数据和10%共同数据,则数据的非均匀混合是以例如10%共同数据后面跟随90%独特数据或相反的串行方式来布置数据。相反地,数据的均匀混合可采取例如如此布置在混合数据流中的数据的形式:1mb(共同)、9mb(独特)、1mb(共同)、9mb(独特)、
……
,直到定义了100gb的混合数据流。这样,共同数据和独特数据均匀地分布在混合数据流中。在一些情况下,设置数据的组块或分组的最小大小可能有用。在以上示例中,组块是1mb或9mb。如果组块大小过小,则去重服务器可能不能分辨数据的共性,并且因此,数据流中的所有数据对于去重服务器来讲都可能错误地表现为是独特的。
61.在图3的示例中,来自混合器308的输出数据流反映了将均匀混合过程应用于输入数据流。特别地,输出数据流呈现如下形式:2个部分(来自不可压缩流的ab),后面跟随1个部分(来自可压缩流的x),后面跟随2个块(来自不可压缩流的cd),后面跟随1个部分(来自可压缩流的x),后面跟随2个部分(来自不可压缩流的ef),后面跟随1个块(来自可压缩流的x)

诸如此类。
62.混合数据流的另一种方法是随机地混合数据。在这个混合数据流的方法中,组块大小是随机的。相反地,在前面的示例中,组块大小不是随机的,而是1mb或9mb。举例来说,组块大小可选择为100k、75k、125k、
……
。在这种情况下,混合流的流大小可被指定,例如100gb。同样地,可指定最小和/或最大组块大小,并且可指定在那些边界内的随机组块大小。参考先前示例,可指定50k的最小组块大小,和/或可指定150k的最大组块大小。如所提及,最小组块大小可帮助确保混合流的粒度不会太精细而使得去重服务器不能辨识混合流中的共同数据。
63.混合或合并多个数据流的又一种方法涉及来自组成数据流的数据的归一化混合。在展示归一化混合的数据流中,数据组块可如此布置:独特数据;混合数据;独特数据;
……
。因此,在具有归一化混合的数据流中,混合数据将分布在数据流的一个或多个特定部分中。
64.混合或合并多个数据流的又一种方法涉及数据流中的数据的聚类混合。特别地,混合数据流可被配置,使得数据流包括组成流的数据没有混合在一起的部分,并且数据流包括组成数据流的数据被混合在一起的其他部分。
65.请注意,多种不同的混合技术可结合特定混合数据流来使用。因此,上文提及的技
术仅以举例方式提出,并且可定义和实现使用两个或更多个混合过程以创建混合数据流的另外其他技术。
66.f.一些示例方法的方面
67.现在参考图5,提供了关于用于混合两个或更多个数据流的示例方法的方面的细节,其中这种方法的一个示例总体上用500表示。方法500可由混合器和/或在混合器的引导下进行,在本文中公开了混合器的示例。方法500的一些部分可由例如测试平台的其他实体进行。然而,一般地,图5中所指示的功能分配仅以举例方式提供,并且在其他实施方式中,在图5中公开的功能可以各种其他方式来分配。
68.方法500可在502开始,此时在混合器处接收多个数据流2

n,其中n≥2。可从数据生成器接收数据流中的一个或多个。同样地,可从被特别配置成生成数据流的实体接收数据流中的一个或多个。在一些情况下,从共同实体接收数据流中的两个或更多个,而在其他情况下,从不同的相应实体接收数据流中的两个或更多个。接收到的数据流中的每一个可具有相应的压缩性特性。
69.在接收502到

n’个数据流之后或之前,混合器也可以接收504呈一个或多个合并参数的形式的输入,所述一个或多个合并参数可由混合器使用以创建具有特定特性的混合数据流。此类特性包括例如压缩性和共性。合并参数可借助于例如ui或api从用户接收504。在一些实施方式中,混合器可肯定地访问例如库(library),并且检索合并参数中的一个或多个。
70.使用合并参数,混合器接着能够合并506接收到的数据流,以创建具有由合并参数指定的特性的混合数据流。数据流可以多种方式中的任一者合并在一起506。举例来说,混合器可采用均匀、随机、归一化或聚类混合过程或这些混合过程的组合,以生成506输出数据流。
71.接着可由混合器输出508混合数据流。混合数据流拥有由合并参数指定的压缩性特性。混合器可将混合数据流输出508到多个接收者中的任一者。在一些情况下,可存储混合数据流。另外地或替选地,可将混合数据流输出508到测试平台,并且由测试平台接收510。
72.测试平台可将数据流用作进行测试操作512的基础。测试操作512可涉及例如将数据流提供给应用程序和/或硬件,然后观测并记录应用程序和/或硬件对数据流的响应。在至少一些实施方式中,数据流模仿或复制真实世界条件。这样,例如开发者的人员能够观测例如应用程序对数据的响应。在一些实施方式中,可存储应用程序和/或硬件的响应。同样地,根据本发明的实施方式的模拟流可由顾客使用以测试顾客考虑购买的去重解决方案的有效性,这是因为顾客考虑到安全性问题或与破坏其正常操作环境有关的问题而可能不想将其真实数据发送到新平台。
73.接着可分析514数据流和/或响应信息。其中,此类分析514可涉及识别关于数据流在测试512期间被供应到的应用程序和/或硬件的操作的任何问题。分析514也可以包括识别并且实现解决在测试512期间识别出的问题的一个或多个校正动作。
74.这样,本发明的实施方式能够例如在开发过程期间测试应用程序和其他软件以及硬件,以便帮助确保应用程序、软件和硬件将如预期地操作。这样可减少或消除应用程序、硬件和软件的购买者和/或用户可能另外经历的一个或多个问题。此外,因为根据本发明的
实施方式生成的混合数据流至少在其压缩性和共性方面高度可配置,所以可生成此类混合数据流以适合多种条件和情境。本发明的示例实施方式的各种其他优点将从本公开显而易见。
75.g.示例计算装置和相关联的介质
76.本文中公开的实施方式可包括使用包括各种计算机硬件或软件模块的专用或通用计算机,如在下文更详细地讨论。计算机可包括处理器和携带指令的计算机存储介质,所述指令在由处理器执行和/或致使由处理器执行时进行本文中公开的方法中的任何一个或多个。
77.如上文所指示,在本发明的范围内的实施方式也包括计算机存储介质,所述计算机存储介质是用于携带计算机可执行指令或数据结构或在其上存储所述计算机可执行指令或数据结构的物理介质。此类计算机存储介质可以是可由通用或专用计算机存取的任何可用物理介质。
78.以举例而非限制的方式,此类计算机存储介质可包括硬件存储器,例如固态盘/装置(ssd)、ram、rom、eeprom、cd

rom、闪存、相变存储器(“pcm”)或其他光盘存储装置、磁盘存储装置或其他磁性存储装置,或可用于存储呈计算机可执行指令或数据结构的形式的程序码的任何其他硬件存储装置,所述计算机可执行指令或数据结构可由通用或专用计算机系统存取和执行以实现本发明公开的功能性。以上各项的组合也应包括在计算机存储介质的范围内。此类介质也是非暂时性存储介质的示例,并且非暂时性存储介质也涵盖基于云的存储系统和结构,尽管本发明的范围不限于非暂时性存储介质的这些示例。
79.计算机可执行指令包括例如致使通用计算机、专用计算机或专用处理装置执行特定功能或功能组的指令和数据。尽管主题已经用结构特征和/或方法动作特有的语言进行描述,但是将理解,在随附权利要求书中定义的主题未必限于以上描述的特定特征或动作。确切地说,本文中公开的特定特征和动作是以实现权利要求的示例形式公开。
80.如本文所使用,术语

模块’或

部件’可指代在计算系统上执行的软件对象或例程。本文中描述的不同部件、模块、引擎和服务可实现为例如作为单独线程在计算系统上执行的对象或过程。尽管本文中描述的系统和方法可用软件实现,但是用硬件或软件与硬件的组合实现也是可能的并且预期的。在本公开中,

计算实体’可以是如本文中先前所定义的任何计算系统,或在计算系统上运行的任何模块或模块的组合。
81.在至少一些例子中,提供可操作以实行用于执行例如本文中公开的方法和过程的方法或过程的可执行指令的硬件处理器。硬件处理器可以包括或不包括其他硬件的元件,例如本文中公开的计算装置和系统。
82.关于计算环境,本发明的实施方式可在无论是网络或本地环境的客户端

服务器环境中或在任何其他合适环境中执行。用于本发明的至少一些实施方式的合适操作环境包括云计算环境,其中客户端、服务器或其他机器中的一个或多个可在云环境中驻留并且操作。
83.本发明可以其他特定形式体现而不偏离本发明的精神或基本特性。所描述的实施方式应仅作为说明而非限制而在所有方面考虑。本发明的范围因此由随附权利要求书指示,而非由先前描述指示。在权利要求的等效物的意义和范围内的所有变化应被涵盖在权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1