首页> 中国专利> 减少总线连接的消费者和产生者之间的消息流

减少总线连接的消费者和产生者之间的消息流

摘要

公开了用于减少消息总线上的消息流的系统、方法和计算机可读介质。该方法包括:确定多个逻辑操作符中的至少一个逻辑操作符是否需要在物理节点群组中的给定物理处理节点上进行处理。响应于确定逻辑操作符需要在给定物理处理节点上进行处理,将逻辑操作符固定到给定物理处理节点。将多个逻辑操作符中的每个逻辑操作符指派给消息总线上的物理处理节点群组中的初始物理处理节点。

著录项

  • 公开/公告号CN101495978A

    专利类型发明专利

  • 公开/公告日2009-07-29

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200780027832.0

  • 发明设计人 J-J·詹格;C·A·朗;I·R·斯塔诺伊;

    申请日2007-07-10

  • 分类号G06F13/36;

  • 代理机构北京市金杜律师事务所;

  • 代理人王茂华

  • 地址 美国纽约

  • 入库时间 2023-12-17 22:23:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-21

    未缴年费专利权终止 IPC(主分类):G06F13/36 专利号:ZL2007800278320 申请日:20070710 授权公告日:20111214

    专利权的终止

  • 2011-12-14

    授权

    授权

  • 2009-09-23

    实质审查的生效

    实质审查的生效

  • 2009-07-29

    公开

    公开

说明书

技术领域

本发明总体上涉及分布式处理系统的领域,并且更具体地,涉及 降低分布式处理系统中的处理节点之间的消息流。

背景技术

公司在日益使其商业过程自动化,并且更重要的是,公司使所涉 及的更多较低层任务自动化。当前,诸如Sarbanes-Oxley、HIPPA和 Patriotic Act的内部和外部法规要求公司维护文档处理、行为、过程 和商业报告的准确簿记。作为响应,机构依靠诸如商业行为监控 (“BAM”)的解决方案来使其商业过程自动化并控制其商业过程。

除了与新的联邦法规兼容的需求之外,对商业过程的自动监控还 导致产生率的提高。由于事件在若干企业层面之间流动,因此可以使 用事件来提供对这些层面的各组件的集成化视图。事件类似于在整个 系统中流动的血液细胞,其携带信息并且维系整个过程。

下文讨论示出了由完全利用事件的复杂监控系统所引起的一些 挑战。第一个挑战是相对于事件源和监控器的可扩展性。例如,考虑 由于复杂监控应用的需求而产生的对事件管理的影响。事件在各个架 构性层面之间流动,并且其随后被存储和检索,以用于与监控相关的 分析处理的任务。作为商业过程任务自动化的结果,所产生的以及需 要分析的事件的数目有所增加。同时,对这些事件日益复杂的查询需 求也逐步增多。这些过程针对相同的事件管理资源进行竞争。流过系 统的事件的数目增加的另一影响是网络和计算资源的拥塞。

注意,通过仅仅允许简单的查询来降低事件管理存储的负载是不 可选用的,因为这导致了监控系统的特征和潜力的下降。另一挑战是 事件存储和查询竞争。增加自动化商业任务的数目和细节的结果是更 大量的事件。至少应当存储对必需关键绩效指标(“KPI”)的计算有 所贡献的事件,以用于进一步分析。该信息对于理解度量所指示的问 题的起源是必需的。在将要存储的事件的量有所增加的同时,对事件 的查询的数目和复杂性也有所增加。由于事件管理数据库必须支持更 新和查询二者,所以该数据库变成了整个系统的瓶颈。

另一挑战是网络和计算资源。例如,很多当前的复杂监控系统经 历了由商业过程所生成的事件的数目和速率的增加而导致的网络和 中间件拥塞。这些复杂的监控系统还在应用层面执行无用的计算。仍 然要处理和过滤度量计算不需要的事件,这可能导致另一潜在的瓶 颈。很多当前的监控系统也执行冗余计算。过滤步骤可以包括在不同 监控上下文之间、甚至是在不同监控者之间冗余的计算。

因此,需要克服现有技术的上述问题。

发明内容

总体上,根据本发明,公开了用于减少消息总线上消息流的系统、 方法和计算机可读介质。该方法包括:确定多个逻辑操作符中的至少 一个逻辑操作符是否需要在物理节点群组中的给定物理处理节点上 进行处理。响应于确定逻辑操作符需要在给定物理处理节点上进行处 理,将该逻辑操作符固定(pin)到该给定物理处理节点。将多个逻辑 操作符中的每个逻辑操作符指派给消息总线上的物理处理节点群组 中的初始物理处理节点。

在另一实施方式中,公开了一种用于减少消息总线上的消息流的 系统。该系统包括通信性地耦合至消息总线的多个物理处理节点。至 少一个信息处理系统通信性地耦合至多个物理处理节点。该信息处理 系统包括逻辑操作符固定器(pinner),用于确定驻留在至少一个物 理处理节点上的多个逻辑操作符中的至少一个逻辑操作符是否需要 在物理处理节点之一上进行处理。响应于确定逻辑操作符需要在给定 物理处理节点上进行处理,逻辑操作符固定器将该逻辑操作符固定到 该给定的物理处理节点。该信息处理系统还包括逻辑操作符指派器, 用于将多个逻辑操作符中的每个逻辑操作符指派给消息总线上的多 个物理处理节点中的初始物理处理节点。

在另一实施方式中,公开了一种用于减少消息总线上消息流的计 算机可读介质。该计算机可读介质包括指令,其用于确定多个逻辑操 作符中的至少一个逻辑操作符是否需要在物理节点群组中的给定物 理处理节点上进行处理。响应于确定逻辑操作符需要在给定物理处理 节点上进行处理,将该逻辑操作符固定到该给定物理处理节点。将多 个逻辑操作符中的每个逻辑操作符指派给消息总线上的物理处理节 点群组中的初始物理处理节点。

本发明的一个优点在于:减少了分布式流处理系统的组件之间的 消息流,并且平衡了处理负载。本发明的另一优点在于:通过标识订 阅应用不必需的事件,缓解了由事件的存储和查询而引起的数据拥 塞。在一个实施方式中,使用了基于应用的监控计算模型的、模型驱 动的“数据辨别”方法,以过滤出对于订阅应用而言无用的事件。这减 少了发送给网络的消息的数目,减少了不同组件处的计算,并且减少 了冗余的过滤条件。

附图说明

附图用来进一步示出各种实施方式,以及阐释根据本发明的各种 原理和优点,其中贯穿分离的视图,同样的标号表示相同或者功能上 类似的元件,这些附图与下文的详细描述一起并入说明书并构成说明 书的一部分,其中:

图1是示出了根据本发明实施方式的总线连接的分布式处理系统 中的事件流的系统流程图;

图2是示出了根据本发明实施方式的分布式处理系统的图示;

图3是根据本发明实施方式的信息处理系统的详细视图;

图4是示出了根据本发明实施方式的示例性消息总线的图示;

图5是示出了根据本发明实施方式的、将逻辑操作符固定在物理 处理节点的有向无环图(directed acyclic graph);

图6示出了图5的有向无环图,其中已经根据本发明的实施方式 对逻辑操作符做出注释以显示消息流速率;

图7示出了图5的有向无环图,其中已经根据本发明的实施方式 将逻辑操作符指派给初始物理处理节点;

图8示出了根据本发明实施方式的、对于图7中的父逻辑操作符 到被指派给子逻辑操作符的物理处理节点的重新指派;

图9示出了根据本发明实施方式的、对于图7中的逻辑操作符到 物理处理节点的重新指派;

图10是示出了根据本发明实施方式的逻辑操作符初始指派给物 理处理节点的示例性过程的操作流程图;

图11是示出了根据本发明实施方式的、将逻辑操作符重新指派 给物理处理节点的示例性过程的操作流程图;以及

图12是示出了根据本发明实施方式的、将父逻辑操作符重新指 派给被指派给子逻辑操作符的物理处理节点的示例性过程的操作流 程图。

具体实施方式

本领域的技术人员将会了解,本发明可以通过硬件或软件或者硬 件和软件的组合来产生。然而,一个实施方式中,本发明是通过软件 来实现的。根据结合优选实施方式而公开的发明原理的系统或者方法 可以在单一计算机系统中产生,该单一计算机系统具有用于执行所描 述或者所要求的单独功能或者步骤的独立元件或者装置,或者具有结 合了所公开或者所要求的任何功能或者步骤的执行的一个或多个元 件或者装置,或者所述系统或者方法可以布置在通过本领域普通技术 人员已知的任何适当装置互连的分布式计算机系统中。

根据结合优选实施方式公开的发明原理,本发明和发明原理不限 于任何特定类型的计算机系统,而是如本领域普通技术人员所知的, 其可以与被配置为执行所描述功能和所描述方法步骤的任何通用计 算机一起使用。如上所述的这种计算机的操作可以按照包含在介质上 的、用于在计算机的操作和控制中使用的计算机程序来进行,正如本 领域的普通技术人员已知的那样。计算机介质可以用来保持或者包含 计算机程序产品,计算机介质可以是计算机的固定设备(诸如嵌入式 存储器),或者可以位于可移动介质上(诸如盘),正如本领域普通 技术人员已知的那样。

本发明不限于任何特定的计算机程序或者逻辑或者语言或者指 令,而是可以利用任何此类适当的程序、逻辑或者语言或者指令来付 诸实践,正如本领域普通技术人员已知的那样。在不限制所公开发明 的原理的前提下,除其他之外,任何这种计算机系统至少尤其可以包 括允许计算机从计算机可读介质读取数据、指令、消息或者消息分组 以及其他计算机可读信息的计算机可读介质。计算机可读介质可以包 括非易失性存储器,诸如ROM、闪存存储器、软盘、磁盘驱动存储 器、CD-ROM以及其他永久性存储器。而且,计算机可读介质例如可 以包括易失性存储器,诸如RAM、缓冲器、高速缓存存储器以及网 络电路。

此外,计算机可读介质可以包括瞬态(transitory state)介质(诸 如,网络链路和/或网络接口)中的计算机可读信息,包括允许计算机 读取这种计算机可读信息的有线网络或者无线网络。根据一个实施方 式,本发明通过提供更为有效的存储器复制操作机制克服了现有技术 的问题。本发明允许处理器在存储器复制操作期间继续执行后续指 令,由此避免了不必要的处理器停止时间。

事件总线连接的系统的示例性系统流

图1示出了事件发布者102、104、106和消费者108的总线连接 的系统100中的事件流和元数据。在一个实施方式中,事件发布者 102、104、106生成各种事件,并且将这些事件发送给公共事件基础 架构(例如,事件/消息总线110),在此将其称为“消息总线110”。 在一个实施方式中,事件是包括与状态变化相关的信息的消息。例如, 从传感器或者定时器进行的读取。事件可以包括依赖于时间的信息, 并且可以是结构化或者非结构化文本。

在一个实施方式中,多个事件存储在事件数据库112中,以用于 将来的数据挖掘。还可以在事件发生时将事件递送给事件监控器,诸 如消费者应用108。例如,发布者通过消息总线110将事件传输给事 件监控器108。备选地,在监控器(消费者108)处生成处理需求, 并且可以将其一直下推送(选择性地)到发布者104。该过程可以称 为推送/异步模型。备选地,事件监控器可以通过查询事件数据库112 来检索事件。该过程可以称为拉动/同步模型。异步递送的事件通常在 监控器(例如,消费者应用108)中进一步处理,以便计算更高层面 的关键绩效指标(“KPI”)。在一个实施方式中,事件总线110负责 相关和事件存储/检索,同时监控器负责KPI计算和到监控面板的递 送。在一个实施方式中,监控面板将来自监控任务的结果提供给诸如 分析师的用户。

如果经历复杂的相关或者高事件存储/检索率,则消息总线110 可以变成瓶颈。类似地,在事件递送和复杂KPI计算规则的情况下, 诸如消费者应用108的监控器可能变得过载。由于多个事件对于任何 面板指示都没有贡献并且可以被过滤掉,这些事件给消息总线110和 监控器108增加了不必要的负载。因此,本发明的一个优点在于:将 很多事件过滤和存储操作“向上游”推送到事件发布者102、104、106 以减少消息流,这反过来最小化了消息总线110处的瓶颈。

在一个实施方式中,较靠近事件发布者102、104、106的过滤和 存储操作的放置可以通过使用商业分析订阅提取器(“BASE”)模块 114和关于事件的条件的放置与分析模块(“PLACE”)116来实现。 在一个实施方式中,BASE模块114分析来自监控器108的事件订阅, 并且从这些订阅中提取已准备好部署的独立订阅的标准集合。在一个 实施方式中,订阅是针对已处理事件的请求。处理可以是基本的,诸 如过滤条件,或者更为复杂,诸如联接(join)。在一个实施方式中, 准备好部署的订阅是按照正确的格式来形成或者准备以独立进行正 确处理的订阅。在一个实施方式中,PLACE模块116将这些订阅作 为输入,并且根据依赖关系和负载考虑来确定应当将每个订阅“向上 游”推送多远。在一个实施方式中,BASE模块114使用监控器108 所使用的监控模块的规范。BASE模块114和PLACE模块116将在 下文更详细地讨论。

示例性分布式流处理系统

根据本发明的实施方式,如图2所示,示出了示例性分布式处理 系统200。图2示出了通过物理处理节点202、204、206、208、210 的子集进入系统200的各实时流212、214、216、218。在一个实施方 式中,分布式处理系统200是物理处理节点的系统,其中物理处理节 点通过消息总线(诸如图1所示的消息总线110)在相互之间传递消 息。处理节点102、104、106、108、110可以是共址的,例如位于单 个集群之内,或者可以在地理上分布在广大区域上。

图2还示出了作为逻辑操作符或者处理元件(“PE”)(例如PE A 200)的网络而部署在处理节点202、204、206、208、210上的应用。 每个数据流212、214、216、218是包括流数据对象(SDO)的序列, 其中SDO是数据流的基础信息单元。每个处理元件对从其输入数据 流接收到的SDO执行某些计算,例如选择、过滤、聚合、相关、分 类或者变换。在一个实施方式中,每个物理处理节点202、204、206、 208、210可以是事件产生者,或者事件消费者,或者同时为二者。

示例性信息处理系统

图3是示出了一个信息处理系统的详细视图的框图。在一个实施 方式中,信息处理系统可以是图2的物理处理节点202、204、206、 208、210中的任何节点。在另一实施方式中,信息处理系统是独立的、 不同的信息处理系统,其通信性地耦合至图2的处理节点202、204、 206、208、210。

信息处理系统是基于适于实现本发明示例性实施方式的、经过适 当配置的处理系统。类似地,本发明的实施方式可以将任何经过适当 配置的处理系统(例如,个人计算机、工作站等)用作信息处理系统 124。信息处理系统包括计算机302。计算机302具有处理器304,其 通过系统总线314连接至主存储器306、海量存储接口308、终端接 口310以及网络适配器硬件312。海量存储接口308用来将诸如数据 存储设备316的海量存储设备连接到信息处理系统。一种特定类型的 数据存储设备是计算机可读介质,诸如CD驱动器,其可以用来将数 据存储到CD 318或其等同体上以及从中读取数据。另一种类型的数 据存储设备是被配置用于支持例如NTFS类型文件系统操作的数据存 储设备。

主存储器306包括逻辑操作符固定器320。在一个实施方式中, 逻辑操作符固定器320确定逻辑操作符(例如,SELECT(选择)、 JOIN(联接)等)需要特定物理处理节点的处理。例如,发布事件需 要在原始事件发布者处进行,而在一个实施方式中,KPI结果需要由 监控组件(例如,消费者应用108)返回。在一个实施方式中,逻辑 操作符可以具有所处理事件的成本、选择性、输入和输出条件、约束 条件和与之关联的其他事项。如果逻辑操作符需要由特定物理处理节 点处理,则逻辑操作符固定器320将该操作符固定到其所需的节点。 换言之,如果逻辑操作符被固定,则该操作符不会被指派给其他物理 处理节点。

主存储器306还包括逻辑操作符注释器322。在一个实施方式中, 逻辑操作符注释器322确定逻辑操作符的消息流速率。例如,针对每 个逻辑操作符确定输入消息流速率和输出消息流速率。在一个实施方 式中,逻辑操作符注释器322继而以其输入/输出消息流速率对每个逻 辑操作符进行注释。主存储器306还包括逻辑操作符指派器324。在 一个实施方式中,逻辑操作符指派器324将每个逻辑操作符指派给物 理处理节点。例如,在一个实施方式中,逻辑操作符指派器324将每 个逻辑操作符指派给初始物理处理节点。

在对物理处理节点初始指派逻辑操作符之后,成本估计器326可 以估计与该初始指派相关联的总消息流成本。例如,总消息流成本基 于的是与向物理处理节点传输消息的每个逻辑操作符所关联的消息 流速率。在一个实施方式中,逻辑操作符指派器324还可以执行将逻 辑操作符向物理处理节点的后续指派。例如,消息流速率分析器328 分析每个逻辑操作符的输入和输出消息流速率。消息流速率分析器 328继而确定消息流输入速率的总和是否大于或者等于消息流输出速 率的总和。如果为真,则逻辑操作符指派器324将逻辑操作符指派给 这样一个物理处理节点,该物理处理节点位于用于给定消息流序列的 事件/消息总线上的、被指派了该逻辑操作符的当前物理处理节点的位 置之前的位置处。

如果逻辑操作符的输入速率的总和大于或者等于输出速率的总 和,则逻辑操作符可能在执行过滤。通过重新指派该逻辑操作符使其 在时间上较早地执行其过滤,有助于避免消息总线上的瓶颈。例如, 如果过滤是在消息总线110上的较远处执行,则多余的消息被传递给 了不需要该消息的物理处理节点。如果输入速率的总和并未大于或者 等于输出速率的总和,则逻辑操作符可能在生成消息。因此,逻辑操 作符指派器将该逻辑操作符重新指派给这样一个物理处理节点,该物 理处理节点位于用于给定消息流序列的事件/消息总线上的、当前被指 派了该逻辑操作符的物理处理节点的位置之后的位置处。这允许在更 靠近消息的消费者处生成消息,并且避免事件/消息总线上的瓶颈。

一旦逻辑操作符被重新指派,则由指派成本估计器326确定针对 该后续指派的总消息流成本。逻辑操作符指派器324对与初始指派相 关联的消息流成本和后续指派的消息流成本进行比较。如果后续消息 流成本低于初始消息流成本,则逻辑操作符指派器选择该指派。在另 一实施方式中,可以执行指派过程的多次迭代,来确定提供可能的最 低消息流成本的指派配置。

在另一实施方式中,逻辑操作符指派器324在将物理处理节点指 派给逻辑操作符时考虑处理节点的可用资源。例如,当逻辑操作符指 派器324已经决定应当将一个逻辑操作符重新指派给在前的物理处理 节点时,在一个实施方式中,逻辑操作符指派器324确定:如果该逻 辑操作符的处理需求大于物理处理节点的可用资源,则不将该节点指 派给该逻辑操作符。在另一实施方式中,在逻辑操作符指派器324将 逻辑操作符重新指派给物理处理节点时,其确定是否将任何父逻辑操 作符指派给在当前指派给其子逻辑操作符的物理处理节点之前的物 理处理节点。如果为真,逻辑操作符指派器324将父逻辑操作符重新 指派给该子逻辑操作符的物理处理节点。这允许父逻辑操作符和子逻 辑操作符之间的消息流传输在相同的处理节点上发生,与流传输从一 个处理节点通过消息总线到另一处理节点相比,此方式节省了资源。

在又一实施方式中,BASE模块114也可以包括在主存储器306 中。PLACE模块也可以包括在主存储器306中,并且包含上文讨论 的驻留在主存储器306中的一个或多个元件。

尽管被示为同时驻留在主存储器306中,但是显然,不要求主存 储器306的各个组件始终或者同时全部驻留在主存储器306中。在一 个实施方式中,信息处理系统300利用传统的虚拟寻址机制来允许程 序运转为就像它们访问大的、单个存储实体(在此称为计算机系统存 储器)那样,而不是像它们访问多个较小的存储实体(诸如主存储器 306和数据存储设备316)那样。注意,这里使用的术语“计算机系统 存储器”一般指信息处理系统300的整个虚拟存储器。

尽管针对计算机302仅示出了一个CPU 304,但是可以同样有效 地使用具有多个CPU的计算机系统。本发明的实施方式还包含接口, 每个接口包括独立的、完全编程的微处理器,该微处理器用来从CPU 304卸载处理。终端接口310用来将一个或多个终端330直接连接到 计算机302,以便为计算机302提供用户接口。这些终端330(可以 是非智能的或者完全可编程的工作站)用来允许系统管理员和用户与 信息处理系统300进行通信。终端330还可以包括连接到计算机302、 并由终端I/F 310中所包括的终端接口硬件所控制的用户接口和外围 设备,其中终端接口硬件包括视频适配器和用于键盘、指示设备等的 接口。

主存储器306中所包括的操作系统(未示出)是适当的多任务操 作系统,诸如Linux、UNIX、Windows XP和Windows Server 2003 操作系统。本发明的实施方式能够使用任何其他适当的操作系统。本 发明的一些实施方式使用这样的架构,诸如面向对象的框架机制,该 架构允许操作系统(未示出)的组件的指令在位于信息处理系统300 内的任何处理器上执行。网络适配器硬件312用来对诸如无线网络、 WLAN、LAN之类的网络(未示出)提供接口。本发明的实施方式能 够适于利用包括当前的虚拟和/或数字技术的任何数据通信连接进行 工作,或者通过未来的网络互连机制进行工作。

尽管本发明的示例性实施方式是在全功能计算机系统的上下文 中描述的,但是本领域的技术人员将会意识到,实施方式能够作为程 序产品通过CD/DVD(例如,CD 318)或者其他形式的可读介质来分 发,或通过任何类型的电子传输机制来分发。

示例性消息总线

图4示出了示例性的事件/消息总线410,其在一个实施方式中是 公共事件接口。在一个实施方式中,物理处理节点402、404、406、 408、414通信性地耦合至消息总线410。在一个实施方式中,物理处 理节点可以包括事件/消息的产生者和/或事件/消息的消费者(诸如, 监控应用)。在一个实施方式中,每个物理处理节点402、404、406、 408、414与一组语义和计算约束条件(诸如,成本和选择性)相关联。 在一个实施方式中,这些约束条件指明了可以将逻辑操作符置于哪个 物理处理节点之上。在一个实施方式中,消息总线410订阅由事件发 布者产生的主题。针对这些主题而发布的消息通过消息总线410处理 和/或存储,继而被路由至订阅这些事件的逻辑操作符。另一方面,逻 辑操作符接收并处理事件。逻辑操作符按照监控模型(诸如,商业观 察监控器模型)来进一步处理接收到的消息。另一方面,应用是结果 通常所返回的端点。

在一个实施方式中,应用所使用的监控计算模型可以由逻辑操作 符414的DAG 412来表示。DAG 412包括表示逻辑操作符的节点。 在一个实施方式中,每个逻辑操作符414具有相关联的成本、选择性 等。例如,成本可以是每个时间单位所处理的消息数目。在一个实施 方式中,叶节点是处理传入事件的逻辑操作符,并且没有父节点的节 点是完成关键绩效指标(“KPI”)计算的逻辑操作符。在一个实施方 式中,BASE模块114提取可以被向下推送给事件总线110或者发布 者的操作符的子图。

在一个实施方式中,可以将BASE模块114描述为架构性框架“之 外”的组件,因为其分析所有的监控模型。这些订阅存储在XML文件 中,并被赋予PLACE,以便分布到所有组件。在部署中,BASE模块 114可以在订阅每次改变时运行,或者以较低频率运行。BASE模块 114运行的越频繁,则产生每个过滤条件的越高的选择性。应当注意, 无论何时监控组件的范围“扩展”(也即,接受更多事件),必需运行 最小的BASE模块114。这有助于避免对所需事件的不正确的过滤。

PLACE模块116是BASE模块114得到的订阅与分布式处理系 统200中的具有处理能力的组件之间的协调者。PLACE模块116从 BASE模块114生成的XML文件中读取DAG订阅,并且通过类似于 负载均衡协议的协议来与其他组件交互。如果可以将订阅形式的可计 算图一直推送到发布者,则其变为发布者过滤条件,由此降低了该发 布者生成的事件数目。如果将订阅推送到消息总线410中,可以向相 关引擎添加过滤条件,由此降低递送给监控上下文的事件数目。

为了将负载考虑在内,在一个实施方式中,PLACE模块116构 建表示处理组件、该处理组件的能力以及可用性的拓扑结构。PLACE 模块116周期性地监控其主机的负载,并且使用标准负载均衡协议来 与其相邻PLACE组件交换该信息。在一个实施方式中,PLACE模块 116将逻辑操作符(从DAG订阅)指派给物理节点,该物理节点是 具有处理能力的事件消费者或者发布者。下面讨论指派过程。

逻辑操作符到物理处理节点的指派

图5-图9示出了DAG,该DAG示出了逻辑操作符到物理处理节 点的指派。图5示出DAG 500,其包括对应于逻辑操作符的多个节点。 图5(以及图6-图9)还包括示例性消息总线510,其包括一组物理 处理节点502、504、506、508、512、514、516。示出消息总线510 作为参考,以示出事件总线510上物理处理节点的放置。例如,在给 定的消息流序列中,物理处理节点C0 502在物理处理节点C 1504之 前执行处理。

如上所述,每个逻辑操作符包括当将操作符指派给处理节点时逻 辑操作符指派器324所使用的相关联的每个消息处理的成本、选择性、 输入和输出条件、约束条件等。在一个实施方式中,物理处理节点502、 504、506、508、512、514、516还具有接受和处理订阅的已知能力(例 如,分配用以处理订阅的存储器和CPU资源)。如果任何逻辑操作 符需要在特定物理处理节点上进行处理,则将这些逻辑操作符固定到 该节点。例如,在一个实施方式中,逻辑操作符518、520、522、524、 526、528、530、532分别需要在物理处理节点C0 502、C1 504、e1 508、 e2 512、e3 514、e6 516上进行处理。因此,将这些逻辑操作符518、 520、522和发布逻辑操作符524、526、528、530、532固定到这些物 理处理节点。换言之,不会将所固定的逻辑操作符518、520、522、 524、526、528、530、532重新指派给其他物理处理节点。固定的逻 辑操作符由逻辑操作符内的黑圈表示。

在一个实施方式中,如图6所示,利用预期的流速率对将一个逻 辑操作符连接到另一逻辑操作符的每条边进行注释。例如,从逻辑操 作符524到逻辑操作符522的预期消息流速率是每个时间单位15个 消息。在一个实施方式中,预期消息流速率是根据从分布和/或初始速 率假设而计算的统计、观察、简单假设(例如,高/低的等级或者高/ 中/低的等级)等来确定的。如图7所示,继而将逻辑操作符指派给初 始物理处理节点。例如,将已固定子图734、736指派给根的主控组 件。在一个实施方式中,已固定子图是具有根、已固定节点和未固定 的所有子节点的子图。在一个实施方式中,为初始指派确定初始成本, 其作为每个时间单位的消息。例如,图7中所示的初始指派的分区 1734的成本是(15+40+2+21+1)(2)=158个消息/时间单位,而初始指派 的分区2736的成本是(8+8+10+1)(2)=54个消息/时间单位。因此,初 始指派的总成本是212个消息/时间单位。将每个子图734、736的消 息流成本乘以2,因为消息通过消息总线510从一个物理节点流到另 一物理处理节点。

应当注意,就物理处理节点的资源而言,逻辑操作符到物理处理 节点的初始指派可能得到不可行的解决方案。然而,如下所述,将对 初始指派进行进一步细化,以确定该指派得到更为优化的指派配置。

图8示出了图7中所示的物理处理节点的初始指派的细化。从 DAG 500的底部开始并且向上移动,为每个操作符指派从“早”变化到 “晚”的放置选择的有序集合。在一个实施方式中,这是通过对逻辑操 作符的输入消息流速率的总和与输出消息流速率的总和进行比较来 完成的。例如,如果输入消息流速率的总和大于或者等于输出消息流 速率的总和,则将逻辑操作符尽可能“早”的放置在物理处理节点上。 例如,初始指派给物理处理节点C1 504的节点n8 838具有的输入消 息流速率为40,具有的输出消息流速率为20。因此将节点n8 838重 新指派给这样一个物理处理节点,该物理处理节点位于用于给定消息 流序列的消息总线510上的、在当前指派给节点n8 838的物理处理节 点的位置之前的位置处。

如果逻辑操作符正在输出的消息数目小于输入的消息数目,该逻 辑操作符可能在执行过滤。通过向上游移动过滤操作、从而使其较早 而不是较晚的执行,不会将多余的消息传递到不需要它们的应用上。 这最小化了消息总线510上的瓶颈。在一个实施方式中,在将逻辑操 作符指派给物理处理节点时,考虑物理处理节点的可用资源。换言之, 如果可用资源小于与逻辑操作符相关联的成本,则不会将该特定处理 节点指派给逻辑操作符。

如果输入消息流速率的总和小于输出消息流速率的总和,如果物 理处理节点具有可用资源,则尽可能“晚”地放置该逻辑操符。例如, 初始指派给物理处理节点C0 502的节点(逻辑操作符)n10 840具有 的输入消息流速率是11,具有的输出消息流速率是47。因此,将节 点n10 840重新指派给物理处理节点C2 506,物理处理节点C2 506 位于用于给定消息流序列的消息总线510上的、在指派给节点n10 840 的当前物理处理节点C1 504的位置之后的位置处。在一个实施方式 中,如果处理节点输出的消息多于接收到的消息数目,该处理节点可 能是消息的产生者。通过将这些逻辑操作符移动到物理处理节点、从 而尽可能晚地执行消息的产生,消息总线10没有由于消息而饱和, 从而没有导致瓶颈。

在一个实施方式中,对周期进行求解。换言之,对于每个父逻辑 操作符,确定该父逻辑操作符是否被指派给了比其任何子逻辑操作符 “更早”的物理处理节点。如果为真,则将父逻辑操作符重新指派给那 个子逻辑操作符的物理处理节点。例如,图8示出了被指派给物理处 理节点C0 502的父逻辑操作符n11 842。然而,其子逻辑操作符n12 844被指派给处理节点C1 500,它是比C0 502“晚”的处理节点。应 当注意,在此示例中,节点ID是任意的。这使得从父节点n11 842 传输到其子节点n12 844以及反向传输的消息必须通过消息总线510。 因此,如图9所示,将父节点重新指派给物理处理节点C0 502,该物 理处理节点当前被指派给子节点n12 844。因此,父节点n11 842与子 节点n12 844之间的消息无需穿过消息总线510,从而节省了系统资 源并使瓶颈最小化。

在一个实施方式中,还确定与重新指派的物理处理节点配置相关 联的成本。例如,指派给物理处理节点C0 502的逻辑操作符的成本 是(8+8)(2)+47=79,指派给物理处理节点C1 504的逻辑操作符的成本 是(15+10+2+21+1)(2)=98,并且指派给物理处理节点C2 506的逻辑操 作符的成本是(10+1)=11,得到重新指派的总消息流成本是 79+98+11=188。继而可以将与重新指派配置相关联的成本同与初始配 置相关联的成本(是212)进行比较。可以看到,与重新指派配置相 关联的成本小于与初始配置相关联的成本,由此选择它用于实现。可 以执行后续指派,以确定是否存在更为优化的(例如,成本更低的) 物理处理节点指派配置。

将物理处理节点初始指派给逻辑操作符的示例性过程

图10示出了将物理处理节点初始指派给逻辑操作符的示例性过 程。图10的操作流程图开始于步骤1002,并且直接进到步骤1004。 在步骤1004,逻辑操作符指派器324确定是否有任何逻辑操作符需要 由特定物理处理节点的处理。如果该确定的结果是否定的,则控制进 到步骤1008。如果该确定的结果是肯定的,则在步骤1006,逻辑操 作符指派器324将这些逻辑操作符固定在它们所需的物理处理节点。 在步骤1008,逻辑操作符指派器324确定每个逻辑操作符的输入和输 出消息流速率。在步骤1010,继而将每个逻辑操作符指派给初始物理 处理节点。在步骤1012,逻辑操作符指派器继而确定物理处理节点到 逻辑操作符的初始指派的总消息流成本。继而控制流继续到图11的 进入点A。

将物理处理节点重新指派给逻辑操作符的示例性过程

图11示出了将物理处理节点重新指派给逻辑操作符以确定最优 指派配置的示例性过程。操作流程图在进入点A进入,并且直接进到 步骤1102。在步骤1102,逻辑操作符指派器324对每个逻辑操作符 的输入和输出消息流速率进行分析。在步骤1104,逻辑操作符指派器 324针对每个逻辑操作符来确定输入消息流速率的总和是否大于或者 等于输出消息流速率的总和。如果该确定的结果是否定的,则在步骤 1106,逻辑操作符指派器324将该逻辑操作符指派给位于用于给定消 息流序列的消息总线324上的、在当前指派给该逻辑操作符的物理处 理节点之后的位置处的物理处理节点。控制继而进到步骤1110。

如果该确定的结果是肯定的,则在步骤1108,逻辑操作符指派器 324将该逻辑操作符指派给位于(用于给定消息流序列的)消息总线 上的、在当前指派给该逻辑操作符的物理处理节点的位置之前的位置 处的物理处理节点。在步骤1110,逻辑操作符指派器324确定与物理 处理节点到逻辑操作符的重新指派相关联的总消息流成本。

在步骤1112,逻辑操作符指派器324继而确定后续总消息流成本 是否低于初始消息流成本。如果该确定的结果是肯定的,则在步骤 1114,逻辑操作符指派器324选择后续指派。控制流继而在步骤1116 退出。如果该确定的结果是否定的,则在步骤1118,逻辑操作符指派 器324选择初始指派。控制流继而在步骤1120退出。在一个实施方 式中,当逻辑操作符在重新指派逻辑操作符时,其将候选物理处理节 点的可用资源考虑在内。例如,如果物理处理节点的可用资源不大于 或者等于该逻辑操作符的成本,则不将逻辑操作符指派给该物理处理 节点。

将父逻辑操作符重新指派给子逻辑操作符的物理处理节点的示例性过程

图12示出了将父逻辑操作符指派给其子逻辑操作符之一的物理 处理节点的示例性过程。操作流开始于步骤1202,并且直接进到步骤 1204。在步骤1204,逻辑操作符指派器324确定是否将父逻辑操作符 指派给位于消息总线上的、在当前指派给子逻辑操作符的物理处理节 点的位置之前的位置处的物理处理节点。如果该确定的结果是否定 的,控制流继而在步骤1206退出。如果该确定的结果是肯定的,在 步骤1208,逻辑操作符指派器324将父逻辑操作符重新指派给当前被 指派给该子逻辑操作符的物理处理节点。控制流继而在步骤1210退 出。

非限制性示例

本发明可以通过硬件、软件或者硬件和软件的组合来实现。根据 本发明优选实施方式的系统可以在一个计算机中以集中式方式来实 现,或者可以以不同元件遍布多个互连计算机系统的分布式方式来实 现。任意类型的计算机系统或者适于执行在此描述方法的其他装置都 是适合的。硬件和软件的典型组合可以是具有计算机程序的通用计算 机系统,其中当加载和执行计算机程序时,该计算机程序控制该计算 机系统,使其执行在此描述的方法。

一般地,在此将执行以实现本发明实施方式的例程称为“程序”, 不论其是作为操作系统的部分或是特定的应用、组件、程序、模块、 对象或者指令序列而实现的。计算机程序通常包括多条指令,这些指 令将由本机转换为机器可读格式,因此是可执行的指令。而且,程序 包括程序本地驻留的、或者是在存储器中或存储设备上发现的变量和 数据结构。另外,在此描述的各种程序可以根据其在本发明的特定实 施方式中针对其而实现的应用来标识。然而,应当意识到,之后的任 何具体的程序术语仅仅是用于方便,因此不应将本发明限于仅在这些 术语所标识和/或暗示的任何具体应用中使用。

尽管已经公开了本发明的特定实施方式,但本领域的普通技术人 员将会理解,可以在不脱离本发明范围的情况下对特定实施方式进行 改变。因此,本发明的范围不限于特定的实施方式,所附权利要求书 意在涵盖任何以及所有本发明范围之内的这种应用、修改和实施方 式。

权利要求书(按照条约第19条的修改)

1.一种方法,其与信息处理系统一起使用,用于减少消息总线上 的消息流,所述方法包括:

确定多个逻辑操作符中的至少一个逻辑操作符是否需要在物理 节点群组中的给定物理处理节点上进行处理;

响应于确定所述逻辑操作符需要在所述给定物理处理节点上进 行处理,将所述逻辑操作符固定到所述给定物理处理节点;

将所述多个逻辑操作符中的每个逻辑操作符指派给消息总线上 的所述物理处理节点群组中的初始物理处理节点;

其中所述指派步骤包括以下步骤:

针对所述多个逻辑操作符中的至少一个逻辑操作符,确定与所述 逻辑操作符相关联的输入消息流速率集的总和是否是大于以及等于 与所述逻辑操作符相关联的输出消息流速率集的总和中的至少一个;

响应于所述输入消息流速率集的总和大于或者等于所述输出消 息流速率集的总和,将所述逻辑操作符指派给在前物理处理节点,所 述在前物理处理节点位于用于给定消息流序列的所述消息总线上的、 在所述逻辑操作符当前所关联的物理处理节点之前的位置处;以及

响应于所述输入消息流速率集的总和小于所述输出消息流速率 集的总和,将所述逻辑操作符指派给后续处理节点,所述后续处理节 点位于用于所述给定消息流序列的所述消息总线上的、在所述逻辑操 作符当前所关联的物理处理节点之后的位置处。

2.根据权利要求1所述的方法,其中所述消息流速率是根据以下 至少之一来确定的:

统计;

观察;以及

假设。

3.根据权利要求1所述的方法,进一步包括:

确定与将所述多个逻辑操作符中的每个逻辑操作符指派给相应 的初始物理处理节点相关联的总消息流成本。

4.根据权利要求3所述的方法,其中所述消息流成本包括:与向 所述初始物理处理节点传输消息的每个逻辑操作符相关联的消息流 速率的总和。

5.根据权利要求1所述的方法,其中响应于所述输入消息流速率 集的总和大于或者等于所述输出消息流速率集的总和,所述指派进一 步包括:

确定所述物理处理节点是否包括满足所述逻辑操作符的资源需 求的可用资源;以及

响应于所述物理处理节点包括可用资源,将所述逻辑操作符指派 给物理处理节点,所述物理处理节点位于所述消息总线上的、在所述 逻辑操作符当前所关联的所述物理处理节点的位置处。

6.根据权利要求1所述的方法,进一步包括:

确定所述多个逻辑操作符中的至少一个逻辑操作符是否是至少 一个其他逻辑操作符的父逻辑操作符;

响应于所述逻辑操作符是父逻辑操作符,确定所述逻辑操作符是 否被指派给了在前物理处理节点,所述在前物理处理节点位于用于所 述给定消息流序列的所述消息总线上的、在所述逻辑操作符的子逻辑 操作符被指派给的物理处理节点之前的位置处;以及

响应于所述逻辑操作符在所述在前物理处理节点上,将所述逻辑 操作符重新指派给所述子逻辑操作符被指派给的物理处理节点。

7.根据权利要求1所述的方法,进一步包括:

确定与将所述多个逻辑操作符指派给每个物理处理节点相关联 的总消息流成本。

8.根据权利要求1所述的方法,其中所述消息流成本包括与向物 理处理节点传输消息的每个逻辑操作符相关联的消息流速率的总和。

9.根据权利要求1所述的方法,进一步包括:

确定与将每个所述逻辑操作符指派给所述在前物理处理节点和 所述后续物理处理节点之一相关联的后续消息流成本是否低于与将 所述逻辑操作符的每一个指派给初始物理处理节点相关联的初始消 息流成本;以及

响应于所述后续消息流成本低于所述初始消息流成本,选择与所 述后续消息流成本相关联的逻辑操作符的指派。

10.一种系统,所述系统包括适于执行根据前述任一项方法权利 要求的方法的所有步骤的装置。

11.一种计算机程序,所述计算机程序包括指令,所述指令用于 当在计算机系统上执行所述计算机程序时,执行根据前述任一项方法 权利要求的方法的所有步骤。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号