用于标识互补数据对象的方法和系统.pdf

上传人:Y94****206 文档编号:1492085 上传时间:2018-06-18 格式:PDF 页数:18 大小:2.15MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310052011.X

申请日:

2013.02.17

公开号:

CN103336770A

公开日:

2013.10.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20130217|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

国际商业机器公司

发明人:

H·H·马达克里; M·拉本斯金

地址:

美国纽约阿芒克

优先权:

2012.02.28 EP 12157304.2

专利代理机构:

北京市金杜律师事务所 11256

代理人:

王茂华;黄倩

PDF下载: PDF下载
内容摘要

本发明的实施例提供了一种用于标识互补数据对象的方法和系统。在一方面,本发明涉及用于标识互补数据对象的计算机实现方法。该方法包括:提供(101)多个数据对象(D01-D16);应用(102)聚类算法,以用于将至少一些所述数据对象分组到两个或更多簇(215-217,301-303)之中;针对每个簇,计算(103)簇中心(221-223,310-313);针对所述簇中心之中的至少第一簇中心(310)计算(104)互补簇中心(312);确定(105)第二簇的第二簇中心(311),该第二簇中心被确定为簇中心之中具有关于互补簇中心(312)的最小距离的簇中心;选择(106)所确定的第二簇的至少一个数据对象(316)。

权利要求书

1.   一种用于标识互补数据对象的计算机实现的方法,所述方法包括:
‑提供(101)多个数据对象(D01‑D16),每个所述数据对象具有多个属性‑值对(401‑406);
‑应用(102)聚类算法,以用于将至少一些所述数据对象分组到两个或更多簇(215‑217,301‑303)之中,所述分组取决于所述数据对象的所述属性‑值对;
‑针对每个所述簇,计算(103)簇中心(221‑223,310‑313),所述簇中心包含从属于所述簇的所有数据对象的所述属性‑值对衍生的多个衍生属性‑值对;
‑针对所述簇中心之中的至少第一簇中心(310)计算(104)互补簇中心(312),所述第一簇中心是所述簇之中的第一簇(301)的簇中心,所述互补簇中心具有关于所述第一簇中心的最大可能程度的互补性;
‑确定(105)第二簇的第二簇中心(311),所述第二簇中心被确定为所述簇中心之中具有关于所述互补簇中心(312)的最小距离的簇中心;
‑选择(106)所确定的所述第二簇的至少一个数据对象(316)作为与所述第一簇(301)的所述数据对象互补的数据对象。

2.
   根据权利要求1所述的计算机实现的方法,其中每个所述数据对象代表数据片段,并且其中每个数据对象的至少一些所述属性值对是从包含以下项的组中以任意组合选择的:
‑平均CPU利用率;
‑最大CPU利用率;
‑平均磁盘空间利用率;
‑最大磁盘空间利用率;
‑平均存储器利用率;
‑最大存储器利用率;
‑平均磁盘I/O利用率;
‑最大磁盘I/O利用率;
‑平均网络I/O利用率;以及
‑最大网络磁盘I/O利用率。

3.
   根据前述权利要求中任一项所述的计算机实现的方法,其中每个所述数据对象代表数据片段,所述数据片段执行于或存储于硬件资源上,其中一个或多个所述属性是资源消耗属性,所述方法还包括:
‑在一段时间期间监测执行于或存储于所述资源上的所述数据片段的一个或多个所述资源消耗属性的所述值;
‑针对每个被监测的所述属性以及针对每个所述数据对象,计算在一段时间中的最大和/或平均资源消耗属性值;以及
‑将计算出的所述最大和/或平均资源消耗属性值分配给代表被监测的所述数据片段的所述数据对象,以便使用分配的所述属性值作为所述聚类算法的输入。

4.
   根据前述权利要求中任一项所述的计算机实现的方法,其中每个所述数据对象代表将要执行于或存储于硬件资源上的数据片段,还包括:
‑由数据放置引擎接收一个或多个进一步的数据对象(D17‑D19),每个所述进一步的数据对象代表当前执行于或存储于所述硬件资源上的数据片段,每个所述进一步的数据对象包含多个属性‑值对,其中一个或多个所述属性‑值对指示所述硬件资源的当前已消耗的能力;
‑使用接收的所述一个或多个进一步的数据对象,以用于将所述进一步的数据对象分组到一个进一步的簇(222)之中以及用于计算进一步的簇中心(240),所述进一步的簇中心是所述进一步的簇的簇中心;
‑使用所述进一步的簇中心作为所述第一簇中心,以用于计算所述互补簇中心以及用于确定所述第二簇;以及
‑将所述第二簇的数据对象所代表的一个或多个数据片段自动传送至所述硬件资源或者提示用户发起所述传送。

5.
   根据前述权利要求1‑3中任一项所述的计算机实现的方法,还包括:
‑由数据放置引擎(208)接收至少所述第一簇和第二簇的指示;
‑将所述第一簇和所述第二簇的数据对象所代表的数据片段自动传送至硬件资源或者提示用户发起所述传送。

6.
   根据前述权利要求中任一项所述的计算机实现的方法,其中所述聚类算法选自包含以下项的组:
‑k‑均值聚类算法;
‑k‑中心点聚类算法;
‑人口统计聚类算法;
‑自组织映射聚类方法;
‑将数据对象分组到充当簇的预定义数目的类之中的归类算法;以及
‑交叠聚类算法。

7.
   根据前述权利要求中任一项所述的计算机实现的方法,其中所述簇中心的所述计算包括:
‑针对每个所述数据对象,将所述数据对象的所有属性‑值对表示为对象矢量,所述对象矢量的每个元素对应于所述属性之一并且已存储所述属性的值;
‑提供针对每个所述簇的中心矢量,所述中心矢量指定所述簇的所述簇中心,其中处在所述中心矢量中给定位置处的元素和在所述对象矢量中具有相同的所述位置的元素代表所述属性中的相同属性;
‑针对每个所述簇,通过将算术平均值存储到所述簇的中心矢量的每个元素中而计算其相应的簇中心,所述算术平均值是从存储在所述簇的所述对象矢量的对应元素中的所述值计算得出的。

8.
   根据权利要求7所述的计算机实现的方法,还包括:
‑随机选择确定的所述第二簇的一个或多个数据对象或者提示用户执行所述选择;
‑其中对所述一个或多个数据片段的所述传送包括自动传送由所述第二簇的被选择的所述数据对象所代表的所述一个或多个数据片段或者提示用户发起所述传送。

9.
   根据权利要求7‑8中任一项所述的计算机实现的方法,还包括:
‑在计算所述算术平均值之前将存储在所述对象矢量的元素中的所有值规范化,经规范化的所述值大于或等于0并且小于或等于预定义的最大值MaxV;其中通过使用每个相应簇的相应的所述数据对象的经规范化的所述属性‑值对作为输入而计算所有簇的所述簇中心;其中关于所述第一簇的所述互补簇中心的所述计算包括:
●针对已存储属性值PVe的所述第一簇的所述中心矢量的每个元素e,计算互补值CVe,其中CVe=MaxV‑PVe
●将每个互补值CVe存储至充当所述互补簇中心的互补中心矢量的元素;
‑针对每个所述簇,计算所述簇的所述中心矢量与所述互补中心矢量之间的欧氏距离;
‑使用所述欧氏距离以用于将所述第二簇中心确定为所述簇中心之中具有关于所述互补簇中心的最小欧氏距离的簇中心。

10.
   根据前述权利要求中任一项所述的计算机实现的方法,还包括:
‑在GUI上显示一个或多个可选择的第一GUI元素,以用于允许用户选择所述属性中的N个属性,N是大于1的整数;
‑在所述GUI上在N维坐标系中显示第二GUI元素和第三GUI元素,每个所述第二GUI元素代表簇,每个所述第三GUI元素代表数据对象,其中所述第三GUI元素代表彼此不同的不同簇的数据对象,其中所述N维坐标系的每个轴代表被选择的所述N个属性中的一个属性,每个所述数据对象的被选择的所述N个属性的N个值确定代表所述数据对象的所述第三GUI元素的对应轴(304,305,320)的坐标值。

11.
   根据前述权利要求中任一项所述的计算机实现的方法,还包括:
‑从每个数据对象的全体属性‑值对确定属性子集,所述属性子集是通过接收来自用户的选择信号或者通过由数据放置引擎(208)自动确定硬件资源的瓶颈参数而被确定的;
‑针对确定的所述属性子集的属性‑值对,执行应用所述聚类算法和选择性地计算所述簇中心和所述互补簇中心的所述步骤。

12.
   一种数据处理系统,所述数据处理系统包括聚类计算机系统,所述聚类计算机系统包括:
‑已存储多个数据对象(D01‑D16)的存储介质(214)和/或用于经由网络(213)接收所述数据对象的接口,每个所述数据对象具有多个属性‑值对(401‑406);
‑处理器,其适合于:
●应用(102)聚类算法,以用于将至少一些所述数据对象分组到两个或更多簇(215‑217,301‑303)之中,所述分组取决于所述数据对象的所述属性‑值对;
●针对每个所述簇,计算(103)簇中心(221‑223,310‑313),所述簇中心包括从属于所述簇的所有数据对象的所述属性‑值对衍生的多个衍生属性‑值对;
●针对所述簇中心之中的至少第一簇中心(310)计算(104)互补簇中心(312),所述第一簇中心是所述簇之中的第一簇(301)的簇中心,所述互补簇中心具有关于所述第一簇中心的最大可能程度的互补性;
●确定(105)第二簇的第二簇中心,所述第二簇中心被确定为所述簇中心之中具有关于所述互补簇中心(312)的最小距离的簇中心;
●选择(106)所确定的所述第二簇的至少一个数据对象(316)作为与所述第一簇(301)的所述数据对象互补的数据对象。

13.
   根据权利要求12所述的数据处理系统,其中每个所述数据对象代表数据片段,所述数据片段执行于或存储于硬件资源上,其中一个或多个所述属性是资源消耗属性,其中所述聚类计算机系统可操作地耦合至监测模块(207),
‑其中所述监测模块适合于在一段时间期间监测执行于或存储于所述资源上的所述数据片段的所述资源消耗属性的一个或多个所述值;
‑其中所述聚类计算机系统适合于:
●针对每个被监测的所述属性以及针对每个所述数据对象,计算在一段时间中的最大和/或平均资源消耗属性值;以及
●将计算出的所述最大和/或平均资源消耗属性值分配给代表被监测的所述数据片段的所述数据对象,以便使用分配的所述属性值作为所述聚类算法的输入。

14.
   根据权利要求12‑13中任一项所述的数据处理系统(201),还包括数据放置引擎(208),其中所述数据放置引擎适合于:
‑接收一个或多个进一步的数据对象(D17‑D19),每个所述进一步的数据对象代表当前执行于或存储于所述硬件资源上的数据片段,每个所述进一步的数据对象包含多个属性‑值对,其中一个或多个所述属性‑值对指示所述硬件资源的当前已消耗的能力和/或指示预定义资源消耗;
‑使用接收的所述一个或多个进一步的数据对象,以用于将所述进一步的数据对象分组到一个进一步的簇(222)之中以及用于计算进一步的簇中心(240),所述进一步的簇中心是所述进一步的簇的簇中心;
‑使用所述进一步的簇中心作为所述第一簇中心,以用于计算所述互补簇中心以及用于确定所述第二簇;以及
‑将所述第二簇的数据对象所代表的一个或多个数据片段自动传送至所述硬件资源或者提示用户发起所述传送。

说明书

用于标识互补数据对象的方法和系统
技术领域
本发明涉及数据处理领域,更具体地涉及聚类数据对象的领域。
背景技术
快速确定数据对象的相似性和相异性的问题是数据处理和数据挖掘领域中的普遍问题,并且与多种技术应用相关。
根据相应的用例场景,对高度相似数据对象的组合处理,或者备选地,对高度相异数据对象的组合处理可能是有利的。然而,特别是对于相应地包含需要考虑的多个“特性值”或“属性值”的数据对象的庞大集合而言,用于确定数据对象的相似性和相异性的本领域已知方法会消耗大量的时间和处理能力,这是因为所述方法通常基于数据对象的“全部对全部(all‑against‑all)”比较,从而必须分别将多个属性值相互比较。在云计算领域里,一个常见问题是,如果共享同一组硬件资源的虚拟机或其他程序实例在处理能力或存储器方面的要求过于相似,则它们对所述资源的使用将会很差,这例如是因为消耗的处理能力可能很快达到资源的能力限度而同时可能仍存在大量未使用的存储器。然而,对潜在的数千个大型云计算环境的属性执行全部对全部比较以确定相似或相异虚拟机往往由于这样的比较的复杂性和所需的处理时间而不实际可行。
发明内容
本发明的一个目标是提供用于确定互补数据对象的改进的计算机实现方法、计算机程序产品和计算机系统。这一目标通过独立权利要求的特征来解决。在从属权利要求中给出了本发明的优选实施方式。如无明确另行说明,本发明的实施方式可彼此自由组合。
本文所使用的术语“数据对象”是广义的术语并且以其一般意义使用,包括但不限于存在于存储设备之中和/或可对其执行操作的任何一组独特的或可标识的电子信息,例如,单一存储器块的数据内容、文件或者任何其他电子信息集。优选地,数据对象较小(例如,<100千字节)并且基本上包含多个属性‑值对。根据一些实施方式,“数据对象”代表物理对象,例如汽车、机器、人或动物,并且数据对象的属性值对可代表所述物理对象的属性。根据其他实施方式,数据对象代表数据片段,其中数据片段是在以上定义的含义范围内的、本身可能过大而无法用作聚类算法的输入并且因此由仅包含或描述所述数据片段的一些属性(例如,其大小)的数据对象来代表的任何数据对象。例如,数据片段可以是数据文件、可执行程序、虚拟机。
“GUI元素”是图形用户界面(GUI)的可显示元素,因而GUI元素的一些特性指定显示该GUI元素的所述GUI上的区域的形状、布局和/或行为。GUI元素可以是标准GUI元素,诸如按钮、文本框、标签、图标、文本字段、窗格、复选框项目或项目组等。GUI元素同样可以是图像、字母数字字符或其任何组合。
本文所使用的“云”或“云计算环境”是在其中可向一个或多个处理任务动态重新分配计算硬件的数据处理环境。在许多当前的云计算环境中,提供使用例如处理器、主存储器和非瞬态计算机可读存储介质等多个物理硬件资源的多个虚拟机。例如,由组织机构维护的物理机器池可以是运行多个虚拟机(VM)的基础。因此,组织机构在所述VM上运行的应用将不会直接运行在底层物理资源上,而是运行在附加的抽象层VM上。通过使用虚拟机而非直接使用物理机器,可以改善所述组织机构所提供的服务的可靠性和性能,并且可根据实际工作负荷而动态提供所需的硬件资源。
本文所使用的表述“实体及其互补实体”涉及任何与其互补实体相结合而构成完整整体的实体。因此,互补实体补充其相应的参照实体所缺少的参数值或其他特征。因而,实体可以是数据值、数据对象、众多数据值、成组的数据对象或任何包含或已分配有一个或多个属性值对的其他项。完整整体可以是例如作为在给定的用例场景或实现方案中可获得的一个或多个最小可能参数值或最大可能参数值的任何参数值或参数值组合。根据实施方式,所述完整整体可以自动地动态确定或者可以预定义。因此,“互补性的程度”是指示出两个对象关于代表“完整整体”的数据集彼此互补程度的任何值或一组值。所述数据空间例如可由多个接收到的数据对象的所有属性‑值对来给出,可以是预定义数据空间,其是代表例如最大可用CPU能力、存储器或存储空间等一个或多个最大可用资源能力的数据空间。
本文所使用的“资源”或“硬件资源”是单个地或共同地向用户提供一些功能性或服务的任何硬件实体,举例而言,诸如处理器、存储盘、主存储器、适配器、数据库、网卡等。此类服务例如可以是提供应用程序、存储空间、用于执行代码的运行时环境、远程服务,例如web服务等。
本文所使用的“簇”是含一个或多个数据对象的一组数据对象,因此数据对象向相应组的分配是对所有数据对象应用聚类算法的结果。
本文所使用的“聚类算法”包含通过采用相应数据对象的一个或多个属性值对作为输入而进行的任何计算机实现的数据对象到数据对象组(本文中亦称“簇”)中的自动化分组。在聚类过程中,确定数据对象的相似性,并将(关于一个或多个标准)相似的数据对象分组到相同的簇之中。根据一些实施方式,数据对象的聚类还可包括数据对象的归类,其中对数据对象进行归类意味着将数据对象分组到预定义数目的簇(即,“类”)之中。根据优选实施方式,簇的数目根据聚类的数据对象的属性值对而被动态确定。
本文所使用的“矢量”包含含有各自适合存储属性值的一系列元素的任何数据结构,其中处于所述矢量中给定位置的每个元素代表特定的属性。应当理解,本文的矢量包含可在需要时其容量被动态扩大的数据结构,并且还包含具有固定容量的数据结构(亦称为“阵列”)。本文所使用的簇的“簇中心”包含从属于所述簇的所有数据对象的一个或多个属性值得到的任何数据值或数据值集。
表述“资源消耗”包含对硬件资源所提供的一些存储、处理或其他能力的永久或暂时使用,由此,所述使用是因在所述硬件资源上储存或执行数据片段而造成的。
如本领域技术人员所了解,本公开的各方面可实施为系统、方法或计算机程序产品。因此,本公开的各方面可采取完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或将在此可全部统称为“电路”、“模块”或“系统”的软件和硬件方面相结合的实施方式的形式。此外,本公开的各方面可采取在其上实施有计算机可读程序代码的一个或多个计算机可读介质中实施的计算机程序产品的形式。可以利用一个或多个计算机可读介质的任何组合。所述计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备,或者前述之任何适当组合。计算机可读存储介质的更具体示例(非详尽列表)包括以下:具有一个或多个线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD‑ROM)、光存储设备、磁存储设备或者前述之任何适当组合。在本文的上下文中,计算机可读存储介质可以是可包含或存储用于由指令执行系统、装置或设备使用或与其相关使用的程序的任何有形介质。
在一方面中,本发明涉及用于标识互补数据对象的计算机实现方法。提供了多个数据对象,由此每个数据对象包含或已经分配有多个属性‑值对。继而,对所有的数据对象应用聚类算法,以便将至少一些数据对象分组到两个或更多簇之中。因此,分组取决于数据对象的属性‑值对。针对每个簇,计算簇中心,由此所述簇中心包含自属于所述簇的所有数据对象的属性‑值对衍生出的多个衍生属性‑值对。继而,针对簇中心中的至少第一簇中心,计算互补簇中心。第一簇中心是簇中的第一簇的簇中心。互补簇中心在给定数据空间的边界内具有关于第一簇中心的最大可能程度的互补性。确定第二簇中心,该第二簇中心是第二簇的簇中心。第二簇中心被确定为簇中心之中关于互补簇中心具有最小距离的簇中心。继而,所确定的第二簇的至少一个数据对象被选择为与第一簇的数据对象互补的数据对象。例如,一组硬件资源可提供最大可能的CPU能力、最大可用存储空间和/或最大可用存储器。所述最大可能的资源使用参数值可以代表这样的数据空间:在该数据空间中互补的数据对象可以彼此互补,即,在该数据空间中不同的互补数据对象的组合属性值近似地达到所述数据空间的边界。举例而言,在由可用硬件资源所给定的边界内,代表例如具有特定使用消耗特性的虚拟机的第一簇可以与代表互补资源使用消耗参数值的簇中心互补。
所述特征可能是有利的,这是因为提供了标识互补数据对象的非常快速的方式,而该方式不基于数据对象的全部对全部比较。相反,数据对象的簇以及相应的簇中心被确定。针对任何特定簇的互补性数据对象的确定仅需要非常有限的一组处理步骤。甚至没有必要计算所有获得的簇中心的成对距离。相反,有可能通过计算互补簇中心以及确定最近簇中心和对应的簇作为如前所述的第二簇中心和第二簇,以非常少的简单步骤为任何选择的簇和其中所含数据对象确定一个或多个互补性数据对象。
根据其他实施方式,每个数据对象代表数据片段。根据实施方式,数据片段可以是非可执行数据集,例如,非可执行文件、压缩文件存档等。所述数据片段同样可以是虚拟机、应用程序、磁盘镜像或者可执行程序脚本。每个数据对象的属性‑值对可代表预定义的或因在硬件资源上存储或执行所述数据片段和监测一些对应的资源消耗参数而产生的任何种类的特征。数据对象的预定义属性值对可指示出数据片段所固有的或代表所述数据片段的数据对象所固有的特征。预定义属性值可以是在不监测由所述数据对象所代表的数据片段在一个或多个资源上的存储或执行的情况下分配给数据对象属性的任何值。预定义属性例如可以是代表数据片段的数据对象所属于的一种类型的类;数据片段的文件类型或数据类型;所述数据片段所属于的客户;所述数据片段的大小;在数据片段分别为虚拟机的情况下虚拟机的类型;指示出向资源传送由数据对象所代表的数据片段的优先级的优先数。优选地,预定义属性值对不随分配给它的数据对象的生命期而改变。每个数据对象的至少一些属性‑值对是资源消耗属性‑值对,其中资源消耗属性可以以任何组合从包含以下项的组中选择:平均CPU利用率;最大CPU利用率;平均磁盘空间利用率;最大磁盘空间利用率;平均存储器利用率;最大存储器利用率;平均磁盘I/O利用率;最大磁盘I/O利用率;平均网络I/O利用率;以及最大网络盘I/O利用率。
根据其中每个数据对象代表执行于或存储于硬件资源上的数据片段并且其中一个或多个属性是资源消耗属性的实施方式,该方法还包括:在一段时间中监测执行于或存储于资源上的数据片段的一个或多个资源消耗属性的值;所述监测步骤可在例如几分钟、一小时、一天或一周的预定义时间段中执行。继而,针对每个监测的属性和针对每个数据对象,计算在所述时间段中的最大和/或平均资源消耗属性值;以及将计算出的最大和/或平均资源消耗属性值分配给代表监测的数据片段的数据对象,以便使用所述分配的属性值作为聚类算法的输入。所述特征可能是有利的,这是因为通过动态监测资源消耗和以属性‑值对的形式将监测的资源消耗分配给代表被监测的数据片段的数据对象,有可能对可以准确表示特定数据片段在给定时间段中的个别、典型资源消耗的自动获得的资源消耗数据来应用聚类。
根据多个实施方式,定期地——例如每周或每月一次地执行属性‑值对的监测。在每次重复时,通过取相应采集的监测数据作为输入,以自动方式将监测的属性‑值对分配给相应的监测的数据对象/数据片段并且重复执行聚类算法。两次重复之间的时间间隔(优选地为数周或月)通常不同于用以确定相应的资源消耗参数的平均值(例如,比特/每秒、浮点运算/每秒,等)的时间段。自动执行的聚类算法选择性地仅取最近监测的属性‑值对集合作为输入。因此,对虚拟机的关于其实际的——通常是时变的资源消耗的聚类的准确性可得到提高。使用所述实施方式来确定具有互补性资源使用特性的虚拟机在云处理环境中可能特别有利,这是由于所述特征因有可能对于每个硬件资源堆集更多的虚拟机而允许降低提供和维持硬件基础设施的成本。这是通过将互补性虚拟机(即,具有互补性工作负荷特性的虚拟机)传送至相同的硬件资源上而实现的。例如,具有高CPU负荷、低磁盘使用率和低存储器使用率的虚拟机可被自动确定为被造成低CPU负荷但却造成高磁盘和高存储器使用率的另一虚拟机所互补。在另一有利方面中,通过评估已在一段时间中求平均的监测的资源消耗属性值而确定互补性虚拟机可返回比仅考虑在某一时间点获得的资源消耗数据的当前技术水平虚拟机放置方法更加稳定的结果。因此,可以实现对可用资源更好的使用。
根据在其中每个数据对象代表将要执行于或存储于硬件资源上的数据片段的一些实施方式,所述方法还包括:由数据放置引擎接收一个或多个进一步的数据对象,每个进一步的数据对象代表当前执行于或存储于所述硬件资源上的数据片段,每个进一步的数据对象包含多个属性‑值对。一个或多个所述属性‑值对指示当前由所述执行或存储的数据片段消耗的所述硬件资源的能力;将所述进一步的数据对象分组到一个进一步的簇之中并计算进一步的簇中心,所述进一步的簇中心是所述进一步的簇的簇中心;由此,所述进一步的簇中心代表当前执行于或存储于所述硬件资源上的进一步的数据片段;使用所述进一步的簇中心作为第一簇中心以便计算互补簇中心和确定第二簇;以及将所述第二簇的数据对象所代表的一个或多个数据片段自动传送至所述硬件资源或者提示用户发起所述传送。
根据多个实施方式,聚类算法的执行例如通过诸如接收到由放置引擎作出的要将特定数目和类型的附加数据片段传送至云的请求之类的事件来触发。放置引擎可向聚类模块发送命令以触发聚类算法的执行和簇中心的计算。聚类模块继而将计算得出的簇和簇中心作为结果返回给放置引擎,从而允许放置引擎选择由互补数据对象所代表的互补数据片段以及将所述互补数据片段传送至公共资源。
根据其他实施方式,所述方法还包括:由数据放置引擎(例如,VM放置引擎)接收至少第一簇和第二簇的指示;以及将第一簇和第二簇的数据对象所代表的数据片段自动传送至硬件资源或者提示用户发起所述传送。因此,给定的硬件资源的使用率得到优化。根据实施方式,聚类算法可以是下列之一:k‑中心点(k‑Medoids)聚类算法;人口统计聚类算法;自组织映射聚类方法,特别是基于Kohonen自组织映射的算法;将数据对象分组到充当簇的预定义数目的类之中的归类算法;以及交叠聚类算法。本文所使用的“人口统计聚类算法”包含生成由簇的数据对象的值分布所表征的簇的任何基于分布的聚类方法。每个数据对象与当前存在的每个簇的相似性被进行计算。如果计算出的最大相似性高于给定的阈值,则将数据对象添加至相关簇。这个簇的特性相应地改变。如果计算出的相似性不高于该阈值,或者如果不存在簇(最初是这种情况),则创建只包含该数据对象的新簇。簇的最大数目以及相似性阈值可由操作者指定。人口统计聚类可以使用统计孔多塞标准(Statistical Condorcet Criterion)来管理向簇的记录分配和新簇的创建。孔多塞标准评估所发现的每个簇(在其包含的记录相似的方面)有多么均匀以及所发现的簇彼此之间有多么不均匀。如果根据孔多塞标准的聚类结果的改善未证明应进行新的一轮,则发现簇的迭代过程在输入数据上的两轮或更多轮之后停止。
根据一些实施方式,簇中心的计算包括:对于每个数据对象,将所述数据对象的所有属性‑值对表示为对象矢量,所述对象矢量的每个元素对应于属性之一并且已存储了所述属性的值;为每个簇提供中心矢量,该中心矢量指定所述簇的簇中心,其中处在中心矢量中的给定位置的元素和对象矢量中具有相同位置的元素代表属性之中相同的属性;针对每个簇,通过向该簇的中心矢量的每个元素中存储算术平均值而计算其相应的簇中心,该算术平均值是从存储在所述簇的对象矢量的对应元素中的值而计算出的。在此,术语“对应”意指中心矢量的每个元素代表与在对象矢量中具有相同位置的元素相同的属性。根据优选实施方式,属性值对的数目决定矢量大小和聚类的维数。
根据一些实施方式,该方法还包括:随机选择所确定的第二簇的一个或多个数据对象或提示用户执行所述选择的步骤。一个或多个数据片段的传送包括:自动传送由所述第二簇的所述选择的数据对象所代表的一个或多个数据片段,或者例如经由GUI来提示用户发起所述传送。任何组合数据对象选择(例如,数据对象的自动随机选择或用户定义选择)和数据传送(完全自动化或根据用户许可)都是有可能的。
根据多个实施方式,在计算算术平均值之前将存储在对象矢量的元素中的所有的值规范化。所有的规范化值均大于或等于0并且小于或等于预定义最大值MaxV。所有簇的簇中心通过使用每个相应簇的相应数据对象的规范化的属性‑值对作为输入而被计算出。
根据多个实施方式,关于第一簇的互补簇中心的计算包括:针对存储了属性值PVe的第一簇的中心矢量的每个元素e计算互补值CVe,其中CVe=MaxV‑Pve;将每个互补值CVe存储至充当互补簇中心的互补中心矢量的元素;针对每个簇,计算所述簇的中心矢量与互补中心矢量之间的欧氏距离(Euclidian distance);以及使用所述欧氏距离来将第二簇中心确定为簇中心之中关于互补簇中心具有最小欧氏距离的簇中心。应用规范化步骤可以防止单一属性值对占主导地位。例如,以字节为单位表示的具有介于0与1x1015之间的值的磁盘使用量可能很容易相对以百分数表示的CPU利用率占主导地位。在已应用规范化之后,每个单一属性‑值介于0与MaxV之间。
根据各实施方式,该方法还包括:在GUI上显示一个或多个可选择的第一GUI元素,用于允许用户选择N个属性,其中N是大于1的整数;在所述GUI上以N维坐标系显示第二GUI元素和第三GUI元素,每个第二GUI元素代表簇,每个第三GUI元素代表数据对象,其中第三GUI元素代表彼此不同的不同簇的数据对象,其中N维坐标系的每个轴代表三个被选择的属性之一,每个数据对象的所述被选择的属性的三个值确定代表所述数据对象的第三GUI元素的对应轴的坐标值。所述特征是有利的,这是因为它们为用户提供了聚类结果的图形表示,该图形表示可以方便快捷地被理解并且可以用于评估有哪些数据对象彼此互补。在数据对象代表虚拟机的情况下,经由屏幕呈现给用户的所述图形表示可以允许用户确定哪些虚拟机应当被一起放置在云环境的资源池的同一硬件资源上。
根据一些实施方式,该方法还包括从全体属性‑值对确定属性子集,属性子集是通过接收来自用户的选择信号或者通过由数据放置引擎自动确定硬件资源的瓶颈参数而确定的。本文所使用的“瓶颈参数”可以是指示给定数据片段的平均或最大资源使用率的任何参数。瓶颈参数可以是资源使用率参数中相应参数值具有达到或超过给定硬件资源的能力的最高风险的资源使用率参数。一个或多个瓶颈参数可以由用户经由GUI选择,或者可以由数据放置引擎自动确定。数据放置引擎可以可操作用于监测一个或多个硬件资源,以便确定会最先超过相应硬件资源的可用能力的一个或多个资源消耗参数值。所述确定的参数可用作瓶颈参数。继而,通过选择性地取这些属性的被确定为瓶颈参数的属性‑值对作为输入,而执行应用聚类算法以及计算簇中心和互补性簇中心的步骤。对瓶颈参数的所述集中可能是有利的,这是因为执行聚类的速度得以提高,并且聚类结果特别适合于以防止瓶颈的方式将数据片段一起放置在相同的硬件资源上。
在另一方面中,本发明涉及一种包含指令的非瞬态计算机可读存储介质,所述指令在由处理器执行时,执行根据上述任一实施方式的步骤。
在又一方面中,本发明涉及一种包括聚类计算机系统的数据处理系统。该聚类计算机系统包括已存储多个数据对象的存储介质和/或用于经由网络接收数据对象的接口。每个数据对象具有多个属性‑值对。聚类计算机系统还包括处理器,该处理器适合于应用聚类算法以便将至少一些数据对象分组到两个或更多簇之中。分组取决于数据对象的属性‑值对。此外,该处理器适合于:针对每个簇计算簇中心,该簇中心包含自属于所述簇的所有数据对象的属性‑值对衍生出的多个衍生属性‑值对;针对簇中心之中的至少第一簇中心,计算互补簇中心,所述第一簇中心是簇之中的第一簇的簇中心,互补簇中心具有关于第一簇中心的最大可能的互补性;确定第二簇的第二簇中心,所述第二簇中心被确定为簇中心之中关于互补簇中心具有最小距离的簇中心;以及将确定出的第二簇的至少一个数据对象选择为与第一簇的数据对象互补的数据对象。
根据多个实施方式,每个数据对象代表执行或存储于硬件资源上的数据片段。一个或多个属性是资源消耗属性。聚类计算机系统可操作地耦合至监测模块。该监测模块适合于在一段时间中监测执行于或存储于资源上的数据片段的资源消耗属性的一个或多个值。聚类计算机系统适合于执行以下步骤:针对每个监测的属性和针对每个数据对象,计算在一段时间中的最大和/或平均资源消耗属性值;以及将计算出的最大和/或平均资源消耗属性值分配给代表监测的数据片段的数据对象,以便使用所述分配的属性值作为聚类算法的输入。
根据一些实施方式,数据处理系统还包括数据放置引擎。根据一些实施方式,数据放置引擎适合于:
‑接收一个或多个进一步的数据对象,每个所述进一步的数据对象代表当前执行于或存储于所述硬件资源上的数据片段,每个所述进一步的数据对象包含多个属性‑值对,其中一个或多个所述属性‑值对指示所述硬件资源当前被消耗的能力和/或指示预定义资源消耗,例如存储设备大小;
‑使用接收到的一个或多个进一步的数据对象,以便将所述进一步的数据对象分组到一个进一步的簇之中以及计算进一步的簇中心,所述进一步的簇中心是所述进一步的簇的簇中心;
‑使用所述进一步的簇中心作为第一簇中心,以便计算互补簇中心和确定第二簇;以及
‑将所述第二簇的数据对象所代表的一个或多个数据片段自动传送至所述硬件资源或者提示用户发起所述传送。
根据一些实施方式,数据放置引擎附加地或备选地适合于:接收对至少第一和第二簇的指示;以及将第一和第二簇的数据对象所代表的数据片段自动传送至硬件资源或者提示用户发起所述传送。
附图说明
在下文中,将会通过仅参考附图的举例方式更详细地描述本发明的优选实施方式,在附图中:
图1是一种方法的流程图;
图2是包含多个硬件资源的云环境的框图;
图3示出代表聚类结果的GUI元素;
图4示出相应地包含属性‑值对矢量的两个数据对象。
具体实施方式
图1是根据本发明实施方式的一种方法的流程图。在下文中,将会通过参考存储至如图2和图4中所绘存储介质214的数据对象来描述图1的方法步骤。在第一步骤101中,提供多个数据对象。例如,数据对象可以被存储到存储介质214,其通常是包含一个或多个物理存储设备的存储卷。聚类计算机——例如“云管理器计算机”201,可以经由网络213访问存储介质214。备选地,存储介质214可以是云管理器计算机201的一部分。方法步骤102‑105由云管理器计算机201的聚类模块206来执行。可通过聚类模块访问存储介质214或者通过由聚类模块206经由网络213从包含存储介质214的另一计算机接收数据对象,而将数据对象D01‑D19提供给聚类模块206。数据对象D01‑D19中的每一个都包含如图4中所绘的多个属性‑值对401‑406。所有的数据对象共享相同的属性集,但对于每个属性可相应地具有不同的属性值。在第二步骤102中,向数据对象应用聚类算法,以便将至少一些所述数据对象分组到簇215‑217之中。
根据所应用的聚类算法,并非所有的数据对象都一定可以是簇的一部分,例如D07和D16即为这种情况。分组取决于每个数据对象的属性‑值对,并且导致针对其相应属性具有相似值的数据对象被分组到同一组中。在步骤103中,针对每个簇,计算簇中心221‑223。每个簇中心包含多个衍生属性值对或者由该多个衍生属性值对构成。特定属性的每个衍生值衍生自所述簇的所有数据对象的所述特定属性的所有的值。在步骤104中,针对簇中心之中的至少第一簇中心,计算互补簇中心。该互补簇中心并不是(或仅偶然是)已在步骤102中计算出的任何簇的中心。互补性簇中心是第一簇中心的衍生物,并且只是因为其通常与已在步骤102中计算出的所有簇中心共享相同的数据结构而被称为“互补簇中心”。例如,所述数据结构可以是这样的矢量:在该矢量中给定位置处的元素相应地代表对象属性中之一,并且其包含相应的属性值。第一簇(步骤104针对它而执行)可通过以下得以确定:用户经由图形用户界面选择簇之一作为第一簇。
备选地,数据放置引擎可自动地确定代表已部署到特定硬件资源212的数据片段230‑232的一个或多个进一步的数据对象D17‑D19,用以指定进一步的簇222,从该簇222根据步骤103计算出进一步的簇中心240。所述进一步的簇可用作第一簇并且所述进一步的簇中心可用作第一簇中心。在步骤105中,确定作为第二簇的簇中心的第二簇中心。所述确定包括确定簇中心之中关于互补簇中心具有最小距离的簇中心。在图3的描述中将会给出所述步骤的更详细描述。所述步骤可包括计算所有的簇中心关于互补簇中心240或数据对象的所有距离(该计算与计算所有簇中心的“全部对全部”距离相比更快)。在步骤106中,选择确定出的第二簇的至少一个数据对象作为与第一簇的数据对象互补的数据对象。由选择的数据对象所代表的数据片段可于稍后连同由第一簇的数据对象所代表的数据片段一起传送至同一硬件资源。所述传送可通过数据放置引擎自动执行,或者通过提示用户允许或触发该传送而半自动地执行。备选地,可将包含互补数据对象的第一簇和第二簇显示给用户,从而允许用户手动执行由互补数据对象所代表的互补性数据片段(例如,VM)的传送。
图2示出包括聚类计算机系统201的数据处理系统200。聚类计算机系统包括处理器204和存储器203,用于执行存储在存储介质205中的程序指令。聚类模块206可操作用于执行聚类算法,以便计算簇、相应的簇中心、互补簇中心以及簇中心之间的距离。该系统还可包括图形用户界面209用于经由屏幕上的GUI以图形化方式向用户表示数据对象和计算出的簇(另参见图3)。云管理器计算机系统还可包括监测模块207,用于对用以在云202中提供服务的多个硬件资源210‑212进行监测。三个数据片段(例如虚拟机)213‑232已在硬件资源212上存储或执行。监测模块可在一个或多个时间段中监测每个数据片段的资源消耗,并且使用此信息来计算平均或最大属性值以及对代表已存储或已执行数据片段的数据对象D17‑D19进行更新。每个数据对象D17‑D19包含一组属性值对,它们相应地包含在特定于参数的给定时间段(例如,一秒、一分钟或一小时)中监测的属性值。每组属性可表示为如图4中所绘的矢量。
根据多个实施方式,聚类计算机201还包括数据放置引擎208,该数据放置引擎208完成使用由聚类模块206提供的聚类结果来确定代表互补数据片段213‑232的互补数据对象的任务。数据放置引擎208自动地或半自动地将互补数据片段一起传送至硬件资源之一——倘若所述硬件资源具有足够的能力。聚类计算机201可经由还链接至云的网络213与存储介质相连接,从而允许互补数据片段从存储设备(例如VM库(未示出))经由网络向资源210‑212之一的传送。
根据其他实施方式(未示出),放置引擎和/或监测模块可以不是包含聚类模块206的聚类计算机201的一部分,而是与聚类计算机连接的另一计算机的一部分。GUI 209同样可以是另一计算机的一部分。所述其他计算机可经由网络而相应地连接至聚类计算机以及彼此连接。在这种情况下,可将聚类计算机的聚类模块所提供的聚类结果馈入给定的云环境中的任何现有虚拟机放置引擎,用于改善所述放置引擎的放置决策以及用于更加有效地使用可用硬件资源。
图3图示了一个实施方式的GUI,其中由坐标系的轴所表示的属性‑值对的数目N为3。该GUI包括三维(3D)坐标系300,该3D坐标系300包含多个GUI元素。数据对象的属性值对的三个属性中的每一个被相应地表示为一个轴。轴304代表任何数据片段的平均存储器使用率。轴305代表平均存储设备使用率并且轴320代表任何数据片段的平均CPU使用率。所述属性可由用户经由诸如下拉列表(未示出)之类的第一类型的可选择GUI元素来选择。优选地,由三个轴所代表的选择属性是瓶颈属性。第二类型的GUI元素301‑303——在本情况中为虚线立方体,向用户指示和表示单个簇。在此被表示为圆圈的第三类型的GUI元素314‑317分别代表数据对象,因此代表不同簇的数据对象的GUI元素具有不同的影线。簇中心310、311、313由“X”指示。每个数据对象的所述三个选择的属性的三个值确定相应地代表数据对象的每个GUI元素的对应的轴的坐标值。根据图3中描绘的实施方式,将簇301选为第一簇。互补簇中心312由聚类模块206计算得出。第一簇中心310与互补簇中心312之间的距离由线315指示,互补性是关于被聚类的全体数据对象的数据空间而确定的。在已确定互补性簇中心312之后,计算出互补簇中心312与所有的其他簇中心311和313之间的距离,用于在步骤105中确定簇中心之中具有离互补簇中心312的最小距离的簇中心。在所绘实施方式中,簇中心311远比例如簇中心313更接近于互补簇中心312。因此,将簇中心311确定成第二簇中心,并且将对应的簇303确定为包含与第一簇301的数据对象315互补的数据对象316的第二簇。
在数据对象代表数据片段的情况下,可将数据对象316和315所代表的数据片段一起传送至同一硬件资源。可以通过随机选择第二簇303的一个或多个数据对象316、317来选择第二簇303内的互补性数据对象用于传送。备选地,代表所述数据对象的GUI元素可以是可选择的,并且该选择可由用户经由GUI来进行。
根据所绘实施方式,数据对象316与互补性数据中心312之间的距离小于数据对象317与互补簇中心312之间的距离。因此,数据对象316所代表的数据片段可在数据对象317所代表的数据片段之前由用户选择。选择的数据片段继而连同第一簇301的数据对象315所代表的数据片段一起传送至所述硬件资源。
图4示出两个数据对象D01和D06,它们分别包含属性‑值对的矢量401、413。相应矢量的每个位置对应于相同的属性。例如,数据对象D01的第一元素401和数据对象D06的第一元素407代表属性“平均CPU消耗”(CPU)。然而,每个矢量元素可相应地存储不同的值。对于相应数据对象D01和D06的矢量的所有其他元素402‑406和408‑412,情况也是这样。根据优选实施方式,包括互补性簇中心在内的所有簇中心的数据结构都与相应数据对象的数据结构相同。

用于标识互补数据对象的方法和系统.pdf_第1页
第1页 / 共18页
用于标识互补数据对象的方法和系统.pdf_第2页
第2页 / 共18页
用于标识互补数据对象的方法和系统.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《用于标识互补数据对象的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于标识互补数据对象的方法和系统.pdf(18页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103336770 A(43)申请公布日 2013.10.02CN103336770A*CN103336770A*(21)申请号 201310052011.X(22)申请日 2013.02.1712157304.2 2012.02.28 EPG06F 17/30(2006.01)(71)申请人国际商业机器公司地址美国纽约阿芒克(72)发明人 HH马达克里 M拉本斯金(74)专利代理机构北京市金杜律师事务所 11256代理人王茂华 黄倩(54) 发明名称用于标识互补数据对象的方法和系统(57) 摘要本发明的实施例提供了一种用于标识互补数据对象的方法和系统。在一方面,本发。

2、明涉及用于标识互补数据对象的计算机实现方法。该方法包括:提供(101)多个数据对象(D01-D16);应用(102)聚类算法,以用于将至少一些所述数据对象分组到两个或更多簇(215-217,301-303)之中;针对每个簇,计算(103)簇中心(221-223,310-313);针对所述簇中心之中的至少第一簇中心(310)计算(104)互补簇中心(312);确定(105)第二簇的第二簇中心(311),该第二簇中心被确定为簇中心之中具有关于互补簇中心(312)的最小距离的簇中心;选择(106)所确定的第二簇的至少一个数据对象(316)。(30)优先权数据(51)Int.Cl.权利要求书4页 说明。

3、书10页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书4页 说明书10页 附图3页(10)申请公布号 CN 103336770 ACN 103336770 A1/4页21.一种用于标识互补数据对象的计算机实现的方法,所述方法包括:-提供(101)多个数据对象(D01-D16),每个所述数据对象具有多个属性-值对(401-406);-应用(102)聚类算法,以用于将至少一些所述数据对象分组到两个或更多簇(215-217,301-303)之中,所述分组取决于所述数据对象的所述属性-值对;-针对每个所述簇,计算(103)簇中心(221-223,310-313),所述簇中。

4、心包含从属于所述簇的所有数据对象的所述属性-值对衍生的多个衍生属性-值对;-针对所述簇中心之中的至少第一簇中心(310)计算(104)互补簇中心(312),所述第一簇中心是所述簇之中的第一簇(301)的簇中心,所述互补簇中心具有关于所述第一簇中心的最大可能程度的互补性;-确定(105)第二簇的第二簇中心(311),所述第二簇中心被确定为所述簇中心之中具有关于所述互补簇中心(312)的最小距离的簇中心;-选择(106)所确定的所述第二簇的至少一个数据对象(316)作为与所述第一簇(301)的所述数据对象互补的数据对象。2.根据权利要求1所述的计算机实现的方法,其中每个所述数据对象代表数据片段,并。

5、且其中每个数据对象的至少一些所述属性值对是从包含以下项的组中以任意组合选择的:-平均CPU利用率;-最大CPU利用率;-平均磁盘空间利用率;-最大磁盘空间利用率;-平均存储器利用率;-最大存储器利用率;-平均磁盘I/O利用率;-最大磁盘I/O利用率;-平均网络I/O利用率;以及-最大网络磁盘I/O利用率。3.根据前述权利要求中任一项所述的计算机实现的方法,其中每个所述数据对象代表数据片段,所述数据片段执行于或存储于硬件资源上,其中一个或多个所述属性是资源消耗属性,所述方法还包括:-在一段时间期间监测执行于或存储于所述资源上的所述数据片段的一个或多个所述资源消耗属性的所述值;-针对每个被监测的所。

6、述属性以及针对每个所述数据对象,计算在一段时间中的最大和/或平均资源消耗属性值;以及-将计算出的所述最大和/或平均资源消耗属性值分配给代表被监测的所述数据片段的所述数据对象,以便使用分配的所述属性值作为所述聚类算法的输入。4.根据前述权利要求中任一项所述的计算机实现的方法,其中每个所述数据对象代表将要执行于或存储于硬件资源上的数据片段,还包括:-由数据放置引擎接收一个或多个进一步的数据对象(D17-D19),每个所述进一步的权 利 要 求 书CN 103336770 A2/4页3数据对象代表当前执行于或存储于所述硬件资源上的数据片段,每个所述进一步的数据对象包含多个属性-值对,其中一个或多个所。

7、述属性-值对指示所述硬件资源的当前已消耗的能力;-使用接收的所述一个或多个进一步的数据对象,以用于将所述进一步的数据对象分组到一个进一步的簇(222)之中以及用于计算进一步的簇中心(240),所述进一步的簇中心是所述进一步的簇的簇中心;-使用所述进一步的簇中心作为所述第一簇中心,以用于计算所述互补簇中心以及用于确定所述第二簇;以及-将所述第二簇的数据对象所代表的一个或多个数据片段自动传送至所述硬件资源或者提示用户发起所述传送。5.根据前述权利要求1-3中任一项所述的计算机实现的方法,还包括:-由数据放置引擎(208)接收至少所述第一簇和第二簇的指示;-将所述第一簇和所述第二簇的数据对象所代表的。

8、数据片段自动传送至硬件资源或者提示用户发起所述传送。6.根据前述权利要求中任一项所述的计算机实现的方法,其中所述聚类算法选自包含以下项的组:-k-均值聚类算法;-k-中心点聚类算法;-人口统计聚类算法;-自组织映射聚类方法;-将数据对象分组到充当簇的预定义数目的类之中的归类算法;以及-交叠聚类算法。7.根据前述权利要求中任一项所述的计算机实现的方法,其中所述簇中心的所述计算包括:-针对每个所述数据对象,将所述数据对象的所有属性-值对表示为对象矢量,所述对象矢量的每个元素对应于所述属性之一并且已存储所述属性的值;-提供针对每个所述簇的中心矢量,所述中心矢量指定所述簇的所述簇中心,其中处在所述中心。

9、矢量中给定位置处的元素和在所述对象矢量中具有相同的所述位置的元素代表所述属性中的相同属性;-针对每个所述簇,通过将算术平均值存储到所述簇的中心矢量的每个元素中而计算其相应的簇中心,所述算术平均值是从存储在所述簇的所述对象矢量的对应元素中的所述值计算得出的。8.根据权利要求7所述的计算机实现的方法,还包括:-随机选择确定的所述第二簇的一个或多个数据对象或者提示用户执行所述选择;-其中对所述一个或多个数据片段的所述传送包括自动传送由所述第二簇的被选择的所述数据对象所代表的所述一个或多个数据片段或者提示用户发起所述传送。9.根据权利要求7-8中任一项所述的计算机实现的方法,还包括:-在计算所述算术平。

10、均值之前将存储在所述对象矢量的元素中的所有值规范化,经规范化的所述值大于或等于0并且小于或等于预定义的最大值MaxV;其中通过使用每个相应权 利 要 求 书CN 103336770 A3/4页4簇的相应的所述数据对象的经规范化的所述属性-值对作为输入而计算所有簇的所述簇中心;其中关于所述第一簇的所述互补簇中心的所述计算包括:针对已存储属性值PVe的所述第一簇的所述中心矢量的每个元素e,计算互补值CVe,其中CVeMaxV-PVe;将每个互补值CVe存储至充当所述互补簇中心的互补中心矢量的元素;-针对每个所述簇,计算所述簇的所述中心矢量与所述互补中心矢量之间的欧氏距离;-使用所述欧氏距离以用于将。

11、所述第二簇中心确定为所述簇中心之中具有关于所述互补簇中心的最小欧氏距离的簇中心。10.根据前述权利要求中任一项所述的计算机实现的方法,还包括:-在GUI上显示一个或多个可选择的第一GUI元素,以用于允许用户选择所述属性中的N个属性,N是大于1的整数;-在所述GUI上在N维坐标系中显示第二GUI元素和第三GUI元素,每个所述第二GUI元素代表簇,每个所述第三GUI元素代表数据对象,其中所述第三GUI元素代表彼此不同的不同簇的数据对象,其中所述N维坐标系的每个轴代表被选择的所述N个属性中的一个属性,每个所述数据对象的被选择的所述N个属性的N个值确定代表所述数据对象的所述第三GUI元素的对应轴(30。

12、4,305,320)的坐标值。11.根据前述权利要求中任一项所述的计算机实现的方法,还包括:-从每个数据对象的全体属性-值对确定属性子集,所述属性子集是通过接收来自用户的选择信号或者通过由数据放置引擎(208)自动确定硬件资源的瓶颈参数而被确定的;-针对确定的所述属性子集的属性-值对,执行应用所述聚类算法和选择性地计算所述簇中心和所述互补簇中心的所述步骤。12.一种数据处理系统,所述数据处理系统包括聚类计算机系统,所述聚类计算机系统包括:-已存储多个数据对象(D01-D16)的存储介质(214)和/或用于经由网络(213)接收所述数据对象的接口,每个所述数据对象具有多个属性-值对(401-40。

13、6);-处理器,其适合于:应用(102)聚类算法,以用于将至少一些所述数据对象分组到两个或更多簇(215-217,301-303)之中,所述分组取决于所述数据对象的所述属性-值对;针对每个所述簇,计算(103)簇中心(221-223,310-313),所述簇中心包括从属于所述簇的所有数据对象的所述属性-值对衍生的多个衍生属性-值对;针对所述簇中心之中的至少第一簇中心(310)计算(104)互补簇中心(312),所述第一簇中心是所述簇之中的第一簇(301)的簇中心,所述互补簇中心具有关于所述第一簇中心的最大可能程度的互补性;确定(105)第二簇的第二簇中心,所述第二簇中心被确定为所述簇中心之中具。

14、有关于所述互补簇中心(312)的最小距离的簇中心;选择(106)所确定的所述第二簇的至少一个数据对象(316)作为与所述第一簇(301)的所述数据对象互补的数据对象。13.根据权利要求12所述的数据处理系统,其中每个所述数据对象代表数据片段,所权 利 要 求 书CN 103336770 A4/4页5述数据片段执行于或存储于硬件资源上,其中一个或多个所述属性是资源消耗属性,其中所述聚类计算机系统可操作地耦合至监测模块(207),-其中所述监测模块适合于在一段时间期间监测执行于或存储于所述资源上的所述数据片段的所述资源消耗属性的一个或多个所述值;-其中所述聚类计算机系统适合于:针对每个被监测的所述。

15、属性以及针对每个所述数据对象,计算在一段时间中的最大和/或平均资源消耗属性值;以及将计算出的所述最大和/或平均资源消耗属性值分配给代表被监测的所述数据片段的所述数据对象,以便使用分配的所述属性值作为所述聚类算法的输入。14.根据权利要求12-13中任一项所述的数据处理系统(201),还包括数据放置引擎(208),其中所述数据放置引擎适合于:-接收一个或多个进一步的数据对象(D17-D19),每个所述进一步的数据对象代表当前执行于或存储于所述硬件资源上的数据片段,每个所述进一步的数据对象包含多个属性-值对,其中一个或多个所述属性-值对指示所述硬件资源的当前已消耗的能力和/或指示预定义资源消耗;-。

16、使用接收的所述一个或多个进一步的数据对象,以用于将所述进一步的数据对象分组到一个进一步的簇(222)之中以及用于计算进一步的簇中心(240),所述进一步的簇中心是所述进一步的簇的簇中心;-使用所述进一步的簇中心作为所述第一簇中心,以用于计算所述互补簇中心以及用于确定所述第二簇;以及-将所述第二簇的数据对象所代表的一个或多个数据片段自动传送至所述硬件资源或者提示用户发起所述传送。权 利 要 求 书CN 103336770 A1/10页6用于标识互补数据对象的方法和系统技术领域0001 本发明涉及数据处理领域,更具体地涉及聚类数据对象的领域。背景技术0002 快速确定数据对象的相似性和相异性的问题。

17、是数据处理和数据挖掘领域中的普遍问题,并且与多种技术应用相关。0003 根据相应的用例场景,对高度相似数据对象的组合处理,或者备选地,对高度相异数据对象的组合处理可能是有利的。然而,特别是对于相应地包含需要考虑的多个“特性值”或“属性值”的数据对象的庞大集合而言,用于确定数据对象的相似性和相异性的本领域已知方法会消耗大量的时间和处理能力,这是因为所述方法通常基于数据对象的“全部对全部(all-against-all)”比较,从而必须分别将多个属性值相互比较。在云计算领域里,一个常见问题是,如果共享同一组硬件资源的虚拟机或其他程序实例在处理能力或存储器方面的要求过于相似,则它们对所述资源的使用将。

18、会很差,这例如是因为消耗的处理能力可能很快达到资源的能力限度而同时可能仍存在大量未使用的存储器。然而,对潜在的数千个大型云计算环境的属性执行全部对全部比较以确定相似或相异虚拟机往往由于这样的比较的复杂性和所需的处理时间而不实际可行。发明内容0004 本发明的一个目标是提供用于确定互补数据对象的改进的计算机实现方法、计算机程序产品和计算机系统。这一目标通过独立权利要求的特征来解决。在从属权利要求中给出了本发明的优选实施方式。如无明确另行说明,本发明的实施方式可彼此自由组合。0005 本文所使用的术语“数据对象”是广义的术语并且以其一般意义使用,包括但不限于存在于存储设备之中和/或可对其执行操作的。

19、任何一组独特的或可标识的电子信息,例如,单一存储器块的数据内容、文件或者任何其他电子信息集。优选地,数据对象较小(例如,100千字节)并且基本上包含多个属性-值对。根据一些实施方式,“数据对象”代表物理对象,例如汽车、机器、人或动物,并且数据对象的属性值对可代表所述物理对象的属性。根据其他实施方式,数据对象代表数据片段,其中数据片段是在以上定义的含义范围内的、本身可能过大而无法用作聚类算法的输入并且因此由仅包含或描述所述数据片段的一些属性(例如,其大小)的数据对象来代表的任何数据对象。例如,数据片段可以是数据文件、可执行程序、虚拟机。0006 “GUI元素”是图形用户界面(GUI)的可显示元素。

20、,因而GUI元素的一些特性指定显示该GUI元素的所述GUI上的区域的形状、布局和/或行为。GUI元素可以是标准GUI元素,诸如按钮、文本框、标签、图标、文本字段、窗格、复选框项目或项目组等。GUI元素同样可以是图像、字母数字字符或其任何组合。0007 本文所使用的“云”或“云计算环境”是在其中可向一个或多个处理任务动态重新分配计算硬件的数据处理环境。在许多当前的云计算环境中,提供使用例如处理器、主存储说 明 书CN 103336770 A2/10页7器和非瞬态计算机可读存储介质等多个物理硬件资源的多个虚拟机。例如,由组织机构维护的物理机器池可以是运行多个虚拟机(VM)的基础。因此,组织机构在所。

21、述VM上运行的应用将不会直接运行在底层物理资源上,而是运行在附加的抽象层VM上。通过使用虚拟机而非直接使用物理机器,可以改善所述组织机构所提供的服务的可靠性和性能,并且可根据实际工作负荷而动态提供所需的硬件资源。0008 本文所使用的表述“实体及其互补实体”涉及任何与其互补实体相结合而构成完整整体的实体。因此,互补实体补充其相应的参照实体所缺少的参数值或其他特征。因而,实体可以是数据值、数据对象、众多数据值、成组的数据对象或任何包含或已分配有一个或多个属性值对的其他项。完整整体可以是例如作为在给定的用例场景或实现方案中可获得的一个或多个最小可能参数值或最大可能参数值的任何参数值或参数值组合。根。

22、据实施方式,所述完整整体可以自动地动态确定或者可以预定义。因此,“互补性的程度”是指示出两个对象关于代表“完整整体”的数据集彼此互补程度的任何值或一组值。所述数据空间例如可由多个接收到的数据对象的所有属性-值对来给出,可以是预定义数据空间,其是代表例如最大可用CPU能力、存储器或存储空间等一个或多个最大可用资源能力的数据空间。0009 本文所使用的“资源”或“硬件资源”是单个地或共同地向用户提供一些功能性或服务的任何硬件实体,举例而言,诸如处理器、存储盘、主存储器、适配器、数据库、网卡等。此类服务例如可以是提供应用程序、存储空间、用于执行代码的运行时环境、远程服务,例如web服务等。0010 。

23、本文所使用的“簇”是含一个或多个数据对象的一组数据对象,因此数据对象向相应组的分配是对所有数据对象应用聚类算法的结果。0011 本文所使用的“聚类算法”包含通过采用相应数据对象的一个或多个属性值对作为输入而进行的任何计算机实现的数据对象到数据对象组(本文中亦称“簇”)中的自动化分组。在聚类过程中,确定数据对象的相似性,并将(关于一个或多个标准)相似的数据对象分组到相同的簇之中。根据一些实施方式,数据对象的聚类还可包括数据对象的归类,其中对数据对象进行归类意味着将数据对象分组到预定义数目的簇(即,“类” )之中。根据优选实施方式,簇的数目根据聚类的数据对象的属性值对而被动态确定。0012 本文所。

24、使用的“矢量”包含含有各自适合存储属性值的一系列元素的任何数据结构,其中处于所述矢量中给定位置的每个元素代表特定的属性。应当理解,本文的矢量包含可在需要时其容量被动态扩大的数据结构,并且还包含具有固定容量的数据结构(亦称为“阵列”)。本文所使用的簇的“簇中心”包含从属于所述簇的所有数据对象的一个或多个属性值得到的任何数据值或数据值集。0013 表述“资源消耗”包含对硬件资源所提供的一些存储、处理或其他能力的永久或暂时使用,由此,所述使用是因在所述硬件资源上储存或执行数据片段而造成的。0014 如本领域技术人员所了解,本公开的各方面可实施为系统、方法或计算机程序产品。因此,本公开的各方面可采取完。

25、全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或将在此可全部统称为“电路”、“模块”或“系统”的软件和硬件方面相结合的实施方式的形式。此外,本公开的各方面可采取在其上实施有计算机可读程序代码的一个或多个计算机可读介质中实施的计算机程序产品的形式。可以利用一个或多个计算机说 明 书CN 103336770 A3/10页8可读介质的任何组合。所述计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备,或者前述之任何适当组合。计算机可读存储介质的更具体示例(非详尽列表)包括以下:具有一个或多。

26、个线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、磁存储设备或者前述之任何适当组合。在本文的上下文中,计算机可读存储介质可以是可包含或存储用于由指令执行系统、装置或设备使用或与其相关使用的程序的任何有形介质。0015 在一方面中,本发明涉及用于标识互补数据对象的计算机实现方法。提供了多个数据对象,由此每个数据对象包含或已经分配有多个属性-值对。继而,对所有的数据对象应用聚类算法,以便将至少一些数据对象分组到两个或更多簇之中。因此,分组取决于数据对象的属性-值对。

27、。针对每个簇,计算簇中心,由此所述簇中心包含自属于所述簇的所有数据对象的属性-值对衍生出的多个衍生属性-值对。继而,针对簇中心中的至少第一簇中心,计算互补簇中心。第一簇中心是簇中的第一簇的簇中心。互补簇中心在给定数据空间的边界内具有关于第一簇中心的最大可能程度的互补性。确定第二簇中心,该第二簇中心是第二簇的簇中心。第二簇中心被确定为簇中心之中关于互补簇中心具有最小距离的簇中心。继而,所确定的第二簇的至少一个数据对象被选择为与第一簇的数据对象互补的数据对象。例如,一组硬件资源可提供最大可能的CPU能力、最大可用存储空间和/或最大可用存储器。所述最大可能的资源使用参数值可以代表这样的数据空间:在该。

28、数据空间中互补的数据对象可以彼此互补,即,在该数据空间中不同的互补数据对象的组合属性值近似地达到所述数据空间的边界。举例而言,在由可用硬件资源所给定的边界内,代表例如具有特定使用消耗特性的虚拟机的第一簇可以与代表互补资源使用消耗参数值的簇中心互补。0016 所述特征可能是有利的,这是因为提供了标识互补数据对象的非常快速的方式,而该方式不基于数据对象的全部对全部比较。相反,数据对象的簇以及相应的簇中心被确定。针对任何特定簇的互补性数据对象的确定仅需要非常有限的一组处理步骤。甚至没有必要计算所有获得的簇中心的成对距离。相反,有可能通过计算互补簇中心以及确定最近簇中心和对应的簇作为如前所述的第二簇中。

29、心和第二簇,以非常少的简单步骤为任何选择的簇和其中所含数据对象确定一个或多个互补性数据对象。0017 根据其他实施方式,每个数据对象代表数据片段。根据实施方式,数据片段可以是非可执行数据集,例如,非可执行文件、压缩文件存档等。所述数据片段同样可以是虚拟机、应用程序、磁盘镜像或者可执行程序脚本。每个数据对象的属性-值对可代表预定义的或因在硬件资源上存储或执行所述数据片段和监测一些对应的资源消耗参数而产生的任何种类的特征。数据对象的预定义属性值对可指示出数据片段所固有的或代表所述数据片段的数据对象所固有的特征。预定义属性值可以是在不监测由所述数据对象所代表的数据片段在一个或多个资源上的存储或执行的。

30、情况下分配给数据对象属性的任何值。预定义属性例如可以是代表数据片段的数据对象所属于的一种类型的类;数据片段的文件类型或数据类型;所述数据片段所属于的客户;所述数据片段的大小;在数据片段分别为虚拟机的情况下虚拟机的类型;指示出向资源传送由数据对象所代表的数据片段的优先级的优先数。优选地,预定义属性值对不随分配给它的数据对象的生命期而改变。每个数据对象的至少说 明 书CN 103336770 A4/10页9一些属性-值对是资源消耗属性-值对,其中资源消耗属性可以以任何组合从包含以下项的组中选择:平均CPU利用率;最大CPU利用率;平均磁盘空间利用率;最大磁盘空间利用率;平均存储器利用率;最大存储器。

31、利用率;平均磁盘I/O利用率;最大磁盘I/O利用率;平均网络I/O利用率;以及最大网络盘I/O利用率。0018 根据其中每个数据对象代表执行于或存储于硬件资源上的数据片段并且其中一个或多个属性是资源消耗属性的实施方式,该方法还包括:在一段时间中监测执行于或存储于资源上的数据片段的一个或多个资源消耗属性的值;所述监测步骤可在例如几分钟、一小时、一天或一周的预定义时间段中执行。继而,针对每个监测的属性和针对每个数据对象,计算在所述时间段中的最大和/或平均资源消耗属性值;以及将计算出的最大和/或平均资源消耗属性值分配给代表监测的数据片段的数据对象,以便使用所述分配的属性值作为聚类算法的输入。所述特征。

32、可能是有利的,这是因为通过动态监测资源消耗和以属性-值对的形式将监测的资源消耗分配给代表被监测的数据片段的数据对象,有可能对可以准确表示特定数据片段在给定时间段中的个别、典型资源消耗的自动获得的资源消耗数据来应用聚类。0019 根据多个实施方式,定期地例如每周或每月一次地执行属性-值对的监测。在每次重复时,通过取相应采集的监测数据作为输入,以自动方式将监测的属性-值对分配给相应的监测的数据对象/数据片段并且重复执行聚类算法。两次重复之间的时间间隔(优选地为数周或月)通常不同于用以确定相应的资源消耗参数的平均值(例如,比特/每秒、浮点运算/每秒,等)的时间段。自动执行的聚类算法选择性地仅取最近监。

33、测的属性-值对集合作为输入。因此,对虚拟机的关于其实际的通常是时变的资源消耗的聚类的准确性可得到提高。使用所述实施方式来确定具有互补性资源使用特性的虚拟机在云处理环境中可能特别有利,这是由于所述特征因有可能对于每个硬件资源堆集更多的虚拟机而允许降低提供和维持硬件基础设施的成本。这是通过将互补性虚拟机(即,具有互补性工作负荷特性的虚拟机)传送至相同的硬件资源上而实现的。例如,具有高CPU负荷、低磁盘使用率和低存储器使用率的虚拟机可被自动确定为被造成低CPU负荷但却造成高磁盘和高存储器使用率的另一虚拟机所互补。在另一有利方面中,通过评估已在一段时间中求平均的监测的资源消耗属性值而确定互补性虚拟机可。

34、返回比仅考虑在某一时间点获得的资源消耗数据的当前技术水平虚拟机放置方法更加稳定的结果。因此,可以实现对可用资源更好的使用。0020 根据在其中每个数据对象代表将要执行于或存储于硬件资源上的数据片段的一些实施方式,所述方法还包括:由数据放置引擎接收一个或多个进一步的数据对象,每个进一步的数据对象代表当前执行于或存储于所述硬件资源上的数据片段,每个进一步的数据对象包含多个属性-值对。一个或多个所述属性-值对指示当前由所述执行或存储的数据片段消耗的所述硬件资源的能力;将所述进一步的数据对象分组到一个进一步的簇之中并计算进一步的簇中心,所述进一步的簇中心是所述进一步的簇的簇中心;由此,所述进一步的簇中。

35、心代表当前执行于或存储于所述硬件资源上的进一步的数据片段;使用所述进一步的簇中心作为第一簇中心以便计算互补簇中心和确定第二簇;以及将所述第二簇的数据对象所代表的一个或多个数据片段自动传送至所述硬件资源或者提示用户发起所述传送。0021 根据多个实施方式,聚类算法的执行例如通过诸如接收到由放置引擎作出的要将说 明 书CN 103336770 A5/10页10特定数目和类型的附加数据片段传送至云的请求之类的事件来触发。放置引擎可向聚类模块发送命令以触发聚类算法的执行和簇中心的计算。聚类模块继而将计算得出的簇和簇中心作为结果返回给放置引擎,从而允许放置引擎选择由互补数据对象所代表的互补数据片段以及将。

36、所述互补数据片段传送至公共资源。0022 根据其他实施方式,所述方法还包括:由数据放置引擎(例如,VM放置引擎)接收至少第一簇和第二簇的指示;以及将第一簇和第二簇的数据对象所代表的数据片段自动传送至硬件资源或者提示用户发起所述传送。因此,给定的硬件资源的使用率得到优化。根据实施方式,聚类算法可以是下列之一:k-中心点(k-Medoids)聚类算法;人口统计聚类算法;自组织映射聚类方法,特别是基于Kohonen自组织映射的算法;将数据对象分组到充当簇的预定义数目的类之中的归类算法;以及交叠聚类算法。本文所使用的“人口统计聚类算法”包含生成由簇的数据对象的值分布所表征的簇的任何基于分布的聚类方法。。

37、每个数据对象与当前存在的每个簇的相似性被进行计算。如果计算出的最大相似性高于给定的阈值,则将数据对象添加至相关簇。这个簇的特性相应地改变。如果计算出的相似性不高于该阈值,或者如果不存在簇(最初是这种情况),则创建只包含该数据对象的新簇。簇的最大数目以及相似性阈值可由操作者指定。人口统计聚类可以使用统计孔多塞标准(Statistical Condorcet Criterion)来管理向簇的记录分配和新簇的创建。孔多塞标准评估所发现的每个簇(在其包含的记录相似的方面)有多么均匀以及所发现的簇彼此之间有多么不均匀。如果根据孔多塞标准的聚类结果的改善未证明应进行新的一轮,则发现簇的迭代过程在输入数据上。

38、的两轮或更多轮之后停止。0023 根据一些实施方式,簇中心的计算包括:对于每个数据对象,将所述数据对象的所有属性-值对表示为对象矢量,所述对象矢量的每个元素对应于属性之一并且已存储了所述属性的值;为每个簇提供中心矢量,该中心矢量指定所述簇的簇中心,其中处在中心矢量中的给定位置的元素和对象矢量中具有相同位置的元素代表属性之中相同的属性;针对每个簇,通过向该簇的中心矢量的每个元素中存储算术平均值而计算其相应的簇中心,该算术平均值是从存储在所述簇的对象矢量的对应元素中的值而计算出的。在此,术语“对应”意指中心矢量的每个元素代表与在对象矢量中具有相同位置的元素相同的属性。根据优选实施方式,属性值对的数。

39、目决定矢量大小和聚类的维数。0024 根据一些实施方式,该方法还包括:随机选择所确定的第二簇的一个或多个数据对象或提示用户执行所述选择的步骤。一个或多个数据片段的传送包括:自动传送由所述第二簇的所述选择的数据对象所代表的一个或多个数据片段,或者例如经由GUI来提示用户发起所述传送。任何组合数据对象选择(例如,数据对象的自动随机选择或用户定义选择)和数据传送(完全自动化或根据用户许可)都是有可能的。0025 根据多个实施方式,在计算算术平均值之前将存储在对象矢量的元素中的所有的值规范化。所有的规范化值均大于或等于0并且小于或等于预定义最大值MaxV。所有簇的簇中心通过使用每个相应簇的相应数据对象的规范化的属性-值对作为输入而被计算出。0026 根据多个实施方式,关于第一簇的互补簇中心的计算包括:针对存储了属性值PVe的第一簇的中心矢量的每个元素e计算互补值CVe,其中CVeMaxV-Pve;将每个互补值CVe存储至充当互补簇中心的互补中心矢量的元素;针对每个簇,计算所述簇的中心矢量与互补中心矢量之间的欧氏距离(Euclidian distance);以及使用所述欧氏距离来将第二簇中说 明 书CN 103336770 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1