用于多处理环境中的数据聚合的方法和系统的制作方法

文档序号:6571163阅读:365来源:国知局
专利名称:用于多处理环境中的数据聚合的方法和系统的制作方法
技术领域
本发明通常涉及在分布式处理环境中的数据管理,特别是,涉及用于以容错方式从分布式处理环境的多个处理单元收集(collection)和聚合(aggregation)数据。
背景技术
在分布式处理环境(例如,集群环境)中,从环境的多个处理单元收集和聚合(aggregate)数据。该聚合数据能在许多任务中使用,这些任务包括但不限于在处理环境内的工作负荷管理。
在以前,为了收集该数据,由处理单元将数据发送到环境的中央管理器。然后,中央管理器负责将数据聚合。然而,在处理单元与中央管理器之间的通信介质是非可靠的,因此,会丢失数据和/或反复发送数据。这导致数据聚合的不准确。

发明内容
基于以上描述,需要一种用于从环境的多个处理单元收集和聚合数据的增强型设备。特别是,需要一种用于数据收集和聚合的容错设备,其中,中央管理器能够容许数据的丢失和重复。
通过提供一种用于在多处理环境中进行数据聚合的方法,克服现有技术的缺点,并提供额外的优点。该方法包括例如由处理环境的中央管理器对处理环境的多个处理单元的多个处理单元中每个处理单元的本地聚合数据进行跟踪,其中,处理单元的本地聚合数据是关于该处理单元的数据,且其中,跟踪确保重复的本地聚合数据和过时的本地聚合数据被丢弃;和由中央管理器聚合该多个处理单元的本地聚合数据,以获得多处理环境的总聚合数据。
在另一实施例中,提供了一种在多处理环境中聚合数据的方法。该方法包括例如由多处理环境的多个处理单元的多个处理单元中每个处理单元对数据进行本地聚合,本地聚合确保不会丢失要聚合的任何数据,其中,处理单元的本地聚合数据包括与该处理单元有关的数据;由该多处理单元的每个处理单元将其本地聚合数据通过一个或多个非可靠连接转发到中央管理器,其中,该转发容许零或更多次失败的转发尝试;由中央管理器对每个处理单元的本地聚合数据进行跟踪,其中,跟踪确保重复的本地聚合数据和过时的本地聚合数据被丢弃;和由中央管理器对该多个处理单元的本地聚合数据进行聚合,以获得多处理环境的可靠总聚合数据。
此外,此处还描述和要求保护对应于上述方法的系统和计算机程序产品。
通过本发明的技术,可实现更多特征和优点。此处,更详细地描述本发明的其他实施例和方面,并将其视为所要求保护的发明的一部分。


下面,将具体指出本发明的一个或多个方面,其被明确声明作为说明书结束后权利要求范围内的示例。结合附图,通过下面的详细描述,会明白本发明的上述及其他目的、特征和优点,其中图1表示包含并使用本发明的一个或多个方面的处理环境的一个实施例;图2根据本发明的方面表示如图所示处理单元的更多细节;图3根据本发明的方面表示与按照容错方式收集和聚合数据相关联的逻辑的一个实施例;图4根据本发明的方面表示响应在处理环境内重新启动,与收集和聚合数据相关联的逻辑的一个实施例;图5根据本发明的方面表示中央管理器收集数据、聚合数据和处理丢失数据的一个具体实例;和图6表示包含本发明的一个或多个方面的计算机程序产品的一个示例。
具体实施例方式
根据本发明的方面,提供一种容错功能,以便可靠地收集和聚合来自多个处理单元的不同数据。在一处理单元处,对该处理单元的数据进行收集和本地聚合。存储本地聚合数据,并将其定期转发到中央管理器。响应于接收数据,中央管理器确定在处理环境的数据总聚合中是否应包括该数据。如果确定应包括该数据,则中央管理器将该数据添加到总聚合中。然后,中央管理器可在若干种情形(包括例如份额调度情形)中使用总聚合。
下面,参照图1,描述包括和使用本发明的一个或多个方面的处理环境的一个实施例。在一个示例中,处理环境为分布式处理环境,例如,集群环境,在其中,共享环境资源以执行系统任务。尽管此处将集群环境描述成包括和使用本发明的一个或多个方面,不过,其他类型的环境,包括非集群环境,也可从本发明的一个或多个方面受益。
图1表示包括例如多个处理单元102的集群环境100,该多个处理单元102通过一个或多个连接106与至少一个其他处理单元104相连。连接106例如为非可靠的连接,包括但不限于有线连接、无线连接或任何类型的网络连接,例如局域网(LAN)、广域网(WAN)、令牌环、以太网连接等。或者,也可通过一个或多个连接将处理单元102与一个或多个其他处理单元102相连接。
在一个示例中,处理单元包括例如个人计算机、膝上型计算机、工作站、主机、小型机或任何其他类型的处理单元。作为一个具体示例,每个处理单元为国际商用机器公司(纽约Armonk)提供的pSeries服务器。“pSeries”为国际商用机器公司(纽约Armonk)的注册商标。每个处理单元可以是与另一单元类型相同或不同的处理单元。在一个示例中,每个处理单元都执行操作系统,例如,Linux,或国际商用机器公司提供的AIX。“AIX”为国际商用机器公司(纽约Armonk)的注册商标。一个处理单元的操作系统可以与另一处理单元的操作系统相同或不同。此外,在其他示例中,一个或多个处理单元可以不包括操作系统。
根据本发明的方面,每个处理单元102(或其子集)为数据的收集器,因此,此处将其称为收集器或收集器机器。例如,当在处理单元上执行的作业终止时,或以定期间隔,收集器收集关于在该处理单元上进行处理的作业的资源利用信息。然后,将收集器收集的信息转发到处理单元104,此处将处理单元104称为中央管理器。中央管理器负责对处理环境的各种任务进行全局管理。例如,中央管理器包括用于在环境内进行公平份额调度的作业调度器,并将收集的信息用于公平份额调度。特别是,在该示例中,每个收集器收集数据,该数据对于由中央管理器(例如,作业调度器)用于调度要执行的作业的合成数据聚合形成贡献。
下面,参照图2,描述关于收集器和中央管理器的更多细节。在一个实施例中,每个收集器102包括有存储器200,用于存储所收集数据的本地聚合202。该数据对收集它的收集器而言是惟一的,这是由于该数据与执行在该收集器上的作业相关联。在一个示例中,数据包括或具有与其关联的时间戳,用于表明数据最近何时被聚合。收集器102还包括数据库204或与数据库204相连接,在数据库204中,存储有本地聚合数据的持久性(persistent)拷贝。数据库204例如存储在与收集器102相连的存储介质(例如,磁盘)上。
每个收集器102将其本地聚合数据发送到中央管理器104,中央管理器104保持有收集器的数据的本地拷贝210。中央管理器104还包括数据结构,例如表212,表212具有列表214,其中具有针对每个收集器的表项。列表中的每个表项存储有从相应收集器接收的最新聚合值的本地拷贝及其时间戳。表212也包括总聚合值216,总聚合值216为来自列表的所有本地拷贝的聚合。
下面,参照图3,描述与多个收集器收集和聚合数据相关联的逻辑的一个实施例。最初,当收集器上处理的作业终止时,或以定期间隔,收集器收集与该作业相关的新数据,并本地聚合该数据。例如,收集器可收集所报告的该作业所用CPU时间的量,并将该时间与已收集的CPU时间聚合。将该本地聚合数据保存在收集器的存储器中,或保存在数据库中以进行持久保存。这确保不会丢失任何新数据。
之后,例如以定期间隔(例如,每2分钟)或当作业终止时,收集器将其本地聚合数据和表明数据何时被聚合的时间戳发送到中央管理器,步骤302。在一个示例中,该信息通过非可靠的通信连接发送。
当中央管理器从收集器接收本地聚合数据时,它确定数据是否过时,质询304。在一个示例中,通过将与数据一起发送的时间戳与在中央管理器处已存储的针对该收集器的数据的时间戳或缺省值进行比较,来实现该确定。如果在输入数据上的时间戳早先于表项中的数据,则丢弃输入数据,步骤306。否则,中央管理器更新该收集器的本地聚合数据,步骤308。在一个示例中,用新数据代替在表中与发送该数据的收集器相关联的聚合值。此外,例如,通过以新数据代替在旧总聚合数据中的旧数据,或通过将本地拷贝加在一起以得到新总聚合数据,对总聚合数据进行更新,步骤310。
通过以上述方式收集和聚合数据,能够容许失序(out-of-order)更新和/或丢失数据。此外,如有必要重新启动收集器和/或中央管理器,则保留该数据。下面,将参照图4对此进行更详细的描述。
当重新启动(或启动)收集器时,中央管理器104请求收集器向中央管理器发送其本地聚合数据,步骤400。在另一实施例中,收集器在不被提示的条件下发送信息。收集器从其本地数据库读取数据,步骤402,并将本地聚合数据及其从本地数据库恢复的时间戳发送到中央管理器,步骤404。数据通过或许并不可靠的通信介质发送。从而,在收集器重试和发送重复更新的情形中,中央管理器容许多次接收相同数据的情形,这是因为它仅替换列表中合适本地表项中的数据,并重新计算总聚合值。如果中央管理器接收失序更新,它忽略/丢弃时间戳旧于相应本地表项上时间戳的任何更新。由于较迟更新(从收集器角度看,由中央管理器在较早更新之前接收)已包括较旧更新,相应本地聚合是有效的。在因不可靠连接而使来自收集器的一个或多个更新丢失的情形中,由于数据在收集器上是持久的,下一个成功的更新包括丢失更新的所有贡献。
如果中央管理器失效并重新启动,步骤406,则用来自被请求的更新的数据填充表中的本地表项,步骤408。由于数据在收集器处是持久的,从而不会丢失任何数据。在另一实施例中,可将中央管理器处的本地数据保持在持久存储状态,如果重新启动中央管理器则可使用该数据。
下面,参照图5,描述收集器收集和存储数据,以及通过收集器对中央管理器进行更新的一个具体示例。图5还表示出处理丢失数据的示例。在该示例中,使用聚合算子“+”,给定数据A和B构成A+B。已知“+”算子是服从结合律的,从而,(A+B)+C等于A+(B+C)。此外,“+”可为时间相关操作。例如,(r1,t1)+(r2,t2)=(r,t2),且r=r1*exp(-k*(t2-t1))+r2,其中,k为延迟常数。
作为具体示例,对于在一组分布式机器上执行的作业,收集的数据为作业资源利用数据,例如,作业CPU数据。数据的聚合将由工作负荷管理系统的调度器使用。也可存在其他示例和变型例。
参照图5,在步骤500中,在时间t1(例如,时间0-当前时间)收集器1接收新数据片r1(例如,100CPU分钟)。在步骤502,收集器1更新其本地聚合R1为r1,将T1更新为t1,从而,R1=100,T1=0。在步骤504,收集器1使用新R1/T1值更新其本地数据库DB1。在步骤506,收集器1将其新本地聚合R1=100/T1=0发送到中央管理器104。在步骤508处,中央管理器接收更新,并利用R1/T1对收集器1的表项509进行更新,并重新计算总聚合为R=r1=100,T=t1=0(510)。
在步骤511中,在时间t2(例如,50秒)收集器2接收新数据片r2(例如,200CPU分钟)。在步骤512,收集器2更新其本地聚合R2为r2,将T2更新为t2,从而,R2=200,T2=50。在步骤514,收集器2使用新R2=200/T2=50值更新其本地数据库DB2。然后,在步骤516,收集器2将其新本地聚合R2/T2发送到中央管理器。但在该情形中,事务出现丢失。
在步骤518中,在时间t3(例如,150秒)收集器2接收新数据片r3(例如,120CPU分钟)。在步骤520,收集器2更新其本地聚合R2为r2+r3,将T2更新为t3。该更新有益地包括在步骤516处丢失的更新。从而,R2=r2+r3=320,T2=r3=150。在步骤522,收集器2使用新R2/T2值更新其本地数据库DB2。然后,在步骤524,收集器2将其新本地聚合R2=320/T2=150发送到中央管理器。在步骤526处,中央管理器104利用R2/T2对收集器2的表项进行更新,并重新计算总聚合为R=r1+r2+r3=420,T=t3=150。
以上详细描述了能够以容错方式从多个处理单元收集和聚合数据的收集和聚合功能。
可将本发明的一个或多个方面包括在例如具有计算机可用介质的制造产品(例如,一个或多个计算机程序产品)中。此处,介质例如具有用于提供和实现本发明的一个或多个方面的功能的计算机可读程序代码装置或逻辑(例如,指令、代码、命令等)。可将制造产品作为计算机系统的一部分包括在内,或单独将其出售。
下面,参照图6,描述包括本发明的一个或多个方面的制造产品或计算机程序产品的一个示例。计算机程序产品600例如包括一个或多个计算机可用介质602,以便在其上存储用于提供和实现本发明的一个或多个方面的计算机可读程序代码装置或逻辑604。该介质可为电子、磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的示例包括只读光盘(CD-ROM)、可擦写光盘(CD-R/W)和DVD。
由一个或多个计算机可读程序代码装置或逻辑定义的程序指令序列或一个或多个相关模块的逻辑组件,控制着本发明的一个或多个方面的执行。
可将此处所述功能的一个或多个方面包括在多个产品中,这些产品包括但不限于工作负荷管理产品,如国际商用机器公司提供的Tivoli Workload Scheduler LoadLeveler。“LoadLeveler”是国际商用机器公司(纽约Armonk)的注册商标。其他产品包括但不限于其他工作负荷管理产品,能够包括本发明的一个或多个方面。
有利的是,本发明的一个或多个方面能够实现自多个处理单元的容错数据收集和聚合。重复数据、失序数据和丢失数据都能被容许。每个收集器保持有本地聚合数据的数据库,其在收集器失效的情形中是持久的。此外,中央管理器也保持有收集器的本地聚合数据的存储器拷贝或者持久性拷贝,并使用时间戳确定是否将接收的本地聚合数据包括在环境的总聚合数据中。
尽管在此提供了一个或多个示例,但它们仅作为示例。在不偏离本发明精神的条件下,可对这些示例进行多种变型。例如,除此处所提供示例之外的处理环境也可包括和/或受益于本发明的一个或多个方面。例如,环境可以不是集群环境和/或其可包括比此处所述或多或少的处理单元。此外,该环境可包括除Linux或AIX之外的操作系统。此外,还可使用除此处所述之外的其他网络和/或连接。此外,一个或多个处理单元可不同于pSeries服务器。存在多种其他变型。
例如,适用于存储和/或执行程序代码的数据处理系统用于包括通过系统总线与存储器单元直接或间接相连的至少一个处理器。存储器单元包括例如在程序代码实际执行期间采用的本地存储器、大容量存储器和为至少某些程序代码提供临时存储以便减少在执行期间必须从大容量存储器检索代码次数的高速缓冲存储器。
可将输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)直接或通过中间I/O控制器与系统连接。此外,还可将网络适配器与系统连接,以便使数据处理系统变为通过中间专用或公用网络与其他数据处理系统或远程打印机或存储设备连接。调制解调器、电缆调制解调器和以太网卡仅是可用类型的网络适配器中的一些。
作为其他变型例,还可使用多于一个的中央管理器,和/或可收集和聚合除资源利用数据之外的数据。存在多种其他变型。
可将本发明的一个或多个方面的功能实现于软件、固件、硬件或其组合中。可提供机器可读取的、包括机器可执行的至少一个指令程序的至少一个程序存储设备。
此处所示流程图仅作为示例。在不偏离本发明精神的条件下,此处所述这些图例和步骤(或操作)存在多种变型。例如,这些步骤可按不同的顺序执行,或可对步骤进行添加、删除或修改。所有这些变型都被考虑作为所要求保护的发明的一部分。
尽管此处详细表示和描述了优选实施例,但该相关领域的技术人员应该理解,在不偏离本发明的精神的条件下,可进行多种修改、添加、替换等,因此,将其考虑在本发明的范围内,本发明的范围由下面的权利要求来定义。
权利要求
1.一种用于在多处理环境中进行数据聚合的方法,所述方法包括由处理环境的中央管理器对处理环境的多个处理单元的多个处理单元中每个处理单元的本地聚合数据进行跟踪,其中,处理单元的本地聚合数据是关于该处理单元的数据,且其中,该跟踪确保重复的本地聚合数据和过时的本地聚合数据被丢弃;和由中央管理器聚合该多个处理单元的本地聚合数据,以获得多处理环境的总聚合数据。
2.根据权利要求1的方法,其中,该跟踪包括在数据结构中保持多处理环境的一个或多个处理单元的列表,以及针对该一个或多个处理单元中至少一个处理单元的每个处理单元,保持该处理单元的本地聚合数据。
3.根据权利要求1的方法,其中,对处理单元的本地聚合数据的跟踪包括由中央管理器从该处理单元接收本地聚合数据;将所接收的本地聚合数据的时间戳与中央管理器所保持的该处理单元的本地聚合数据的时间戳以及缺省值之一进行比较;和响应于比较表明要跟踪该本地聚合数据,存储该本地聚合数据。
4.根据权利要求3的方法,其中聚合包括响应于比较表明要包括该本地聚合数据,重新计算总聚合数据以包括该本地聚合数据。
5.根据权利要求1的方法,还包括由多处理环境的处理单元收集该处理单元的数据;在该处理单元处聚合所收集的数据,以获得该处理单元的本地聚合数据;以及将本地聚合数据转发到中央管理器,以用于中央管理器的跟踪。
6.根据权利要求5的方法,还包括,将该处理单元的本地聚合数据存储在该处理单元的数据库中,以提供该本地聚合数据的持久性拷贝。
7.根据权利要求5的方法,其中,该处理单元的本地聚合数据具有与之相关联的时间戳,所述时间戳被转发到中央管理器,并且在跟踪时用于确保忽略过时的数据。
8.根据权利要求1的方法,还包括,重新启动该多个处理单元的处理单元,并且响应于此,将重新启动的处理单元的本地聚合数据和与之相关联的时间戳转发到中央管理器,用于中央管理器的跟踪。
9.根据权利要求1的方法,其中,重新启动中央管理器,并且响应于重新启动,中央管理器从多处理环境的一个或多个处理单元获得本地聚合数据,并由获得的本地聚合数据确定总聚合数据。
10.一种在多处理环境中聚合数据的方法,所述方法包括由多处理环境的多个处理单元的多个处理单元中每个处理单元对数据进行本地聚合,该本地聚合确保不丢失要聚合的任何数据,其中,处理单元的本地聚合数据包括与该处理单元有关的数据;由该多个处理单元的每个处理单元将其本地聚合数据通过一个或多个非可靠连接转发到中央管理器,其中,该转发容许零或更多次失败的转发尝试;由中央管理器对每个处理单元的本地聚合数据进行跟踪,其中,跟踪确保重复的本地聚合数据和过时的本地聚合数据被丢弃;和由中央管理器对该多个处理单元的本地聚合数据进行聚合,以获得多处理环境的可靠总聚合数据。
11.一种用于多处理环境中的数据聚合的系统,所述系统包括处理环境的中央管理器,用于跟踪处理环境的多个处理单元的多个处理单元中每个处理单元的本地聚合数据,其中,处理单元的本地聚合数据为与该处理单元相关的数据,且其中,跟踪确保重复的本地聚合数据和过时的本地聚合数据被丢弃;以及中央管理器,用于将该多个处理单元的本地聚合数据聚合,以获得多处理环境的总聚合数据。
12.根据权利要求11的系统,还包括数据结构,所述数据结构包括多处理环境的一个或多个处理单元的列表,以及针对该一个或多个处理单元中至少一个处理单元的每个处理单元,该列表保持该处理单元的本地聚合数据。
13.根据权利要求11的系统,还包括多处理环境的处理单元,用于收集该处理单元的数据,并在该处理单元处将收集的数据聚合,以获得该处理单元的本地聚合数据;以及该处理单元将本地聚合数据转发到中央管理器,用于中央管理器的跟踪。
全文摘要
公开了在多处理环境中用于数据聚合的方法和系统。容错功能用于可靠地收集和聚合来自多个处理单元的不同数据。在处理单元处,对该处理单元的数据进行收集和本地聚合。将本地聚合数据存储在本地数据库中,并将其定期转发到中央管理器。当接收数据时,中央管理器确定在处理环境的数据总聚合是否应包括该数据。
文档编号G06F9/46GK101063973SQ20071000542
公开日2007年10月31日 申请日期2007年2月8日 优先权日2006年4月27日
发明者戴维·P.·布里尔斯福德, 理查德·J.·库彭格, 亚历山大·杜拉雅恩, 钟恩慈 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1