分布式计算系统中路由信息的按需传播的制作方法

文档序号:7937482阅读:182来源:国知局
专利名称:分布式计算系统中路由信息的按需传播的制作方法
技术领域
本发明总体上涉及分布式计算系统,而且更具体地,涉及分布 式计算系统中用以请求路由器的路由信息的传播。
背景技术
分布式计算系统已经在许多不同的计算环境中得以应用,特别 是那些需要高性能和/或高可用性和容错性的环境。在分布式计算系 统中,由网络进行链接的多个计算机允许通信和/或分担负载。分布 式计算系统几乎支持所有类型的计算模型,包括点对点和客户端_服 务器计算。
分布式计算系统的 一种特定类型称为集群计算系统。"集群" 通常指多个计算机或节点相互联网以协作执行计算机任务的计算机 系统组织。计算机集群的重要方面是集群中的所有节点呈现单一 系 统映像,也就是说,从客户端或者用户的角度,集群中的节点共同 呈现为单一的计算机或实体。在客户端-服务器计算模型中,例如, 对于试图访问集群的任意客户端,集群的节点共同呈现为单一的服 务器。
集群通常用于关注高性能和可靠性的、相对较大的多用户计算 系统中。例如,集群可以用于提供冗余或容错性,从而在集群中的 任意节点出现故障的情况下,将之前由该节点执行的操作转交给集 群中的其它节点。由于多个节点通常能够并行地处理多于单个计算 机的大量任务,超过单一计算机,还使用集群来提高整体性能。通 常,可以利用负载均衡确保在节点之间合理地分配任务,以防止单 个节点超载,并由此最大化整体系统性能。例如,集群的一个特定 应用是提供对诸如数据库或存储设备等共享资源的多用户访问,因为多节点能够处理相对较大数目的用户访问请求,而且即使当集群 中的任意节点故障时,共享资源通常仍然对用户可用。
随着对集群以及其它分布式计算系统的需求与复杂度的增加, 对可扩展性和性能的关注不断增加。期待分布式计算系统为潜在的 数百万客户端提供服务并非不合理,并且已经发现,随着服务于这 些客户端的分布式计算系统的复杂度增加,对于此类系统的稳定性 和性能而言,在服务器、节点或构成此类系统的其它计算机件之间 的负载分配变得越发关键。在分布式计算系统中,将客户端请求路 由到恰当的计算机,(例如,服务器)是恰当地分配负载的关键。
从潜在的数百万客户端中有效地协调请求的路由,已经成为分 布式计算系统整体性能的关键因素。路由协议不仅需要在可用服务 器之间平均分配负载,还要能够处理某些服务器不可用的情况,以 及仅在服务器的子集间进行分配。
集中式路由首先将所有客户端请求发送到一个服务器或组件, 随后将其路由到恰当的服务器予以处理,这种集中式路由可能是故
障的源头和性能的瓶颈。在较大的分布式计算系统中,已经发现,
与集中式路由方法相关联的许多障碍。在许多传统设计中,自行进 行路由决策的客户端称为"智能客户端。"
为了使客户端做出将客户请求路由到何处的正确决策,需要将 能够用于进行可靠决策的路由信息提供给客户端。典型地,对客户 端而言,与监测分布式计算系统状态相关联的开销过于高昂,而且 在一些情形中,客户端可能无法访问进行正确路由决策所需的一些 系统状态信息,由于上述事实,即使是在客户端-侧路由方法中,路 由信息也是在服务器上或者在客户端之外产生和更新的。由于路由 信息是集中更新的,因此路由信息继而向外传播到客户端,以更新 存储在每个客户端中的本地路由信息。
许多传统设计使用"推送(push)"或周期式方法,每当服务器
上的路由信息发生变化时,便由服务器或其它中央组件来启动路由信息向客户端的传播。通过如此操作,确保了客户端在大部分时间 内都可获得最新的路由信息。
分布式计算系统变得更加复杂、强大和动态,然而,这些系统 中维护的路由信息本质上变得明显更加动态。服务器可能死机或变 得停机,其他服务器可能上线,可能增加或移除服务,或是移动到 不同的服务器上。由于可能许多服务器竟争有限的系统资源,单个 服务器的工作负荷可能改变。服务器还可能经历资源使用(例如,
未决请求,线程,CPU使用,存储器使用,1/0使用,数据锁使用,
等等)的变化以及配置的变化。因此,分布式计算系统的最佳路由 信息持续地处于变迁状态。
在传统协议下,由系统配置和操作状况的变化所导致的路由信 息更新被传播到所有的客户端,由此,在服务潜在数百万用户的、 持续变化的复杂分布式计算系统中,将当前路由信息传播到所有客 户端的有关的外开销可能无法承受的。
因此,本领域存在如下显著需求,即,对在分布式计算系统中 传播用于路由客户请求的路由信息的、较为高效且低成本的方式。

发明内容
本发明提供了 一种利用路由信息的按需传播来降低与在整个分 布式计算系统中分发路由信息相关联的开销的装置、程序产品和方 法,其解决了与现有技术相关的这些及其它问题。特别地,在按照 本发明的许多实施方式中,基于针对需要重新路由的客户端而发布 的客户端请求的数目和/或频率(其例如在响应于客户端请求而回复 的响应中指示),测量用于路由针对该特定客户端的客户端请求的
路由信息的陈旧性(staleness)。 一旦客户端请求的重新路由满足预 期的传播标准,则为客户端请求更新的路由信息。由此,在许多情 形中,相比推送类型的方法,分布式计算系统中为客户端传播路由 信息的相关开销显著降低,并且传播更侧重于为最需要最新路由信 息的那些客户端分配路由信息。按照本发明的一个方面,例如,通过以下方式在分布式计算系
统中路由客户端请求跟踪按照与客户端相关联的路由信息而路由 的、来自该客户端的客户端请求的重新路由,并且基于所跟踪的客 户端请求的重新路由,选择性地启动更新路由信息的传播。
表征本发明特征的这些和其它优点以及特性在所附权利要求中 记载,并形成其另一部分。然而,为了更好理解本发明以及使用它 所能实现的优点和目标,应该参照附图以及描述了本发明示例性实 施方式的补充描述内容。


图1是包含有按需路由信息传播的集群计算系统的结构图; 图2是包含有按需路由信息的客户端-服务器计算系统的结构
图3是包含有客户端和服务器处理之间的按需路由信息传播的 分布式计算系统的结构图4是包含有按需路由信息传播的基于网关的分布式计算系统 的结构图;以及
图5是示出了能够被图1中集群计算系统中客户端执行的示例 性请求处理程序的程序流程的流程图。
具体实施例方式
下面描述的实施方式提供在分布式计算系统中按需传播用于路 由客户端请求的路由信息。与许多传统路由信息传播技术不同,按 需传播显著地降低开销,因此改进整体系统性能,而且在许多情形 中降低系统反应时间。在如下意义上,所示实施方式中的路由信息 传播是按需的,即,当确定用于路由客户端请求的路由信息需要更 新时,由客户端或为客户端启动路由信息的传播。
可以认为,按照本发明的路由信息实际上包括反映察觉到的 客户端请求向多个可用服务器中特定服务器的最佳路由的任意信息。在许多实施方式中,路由信息将包含在路由表中,当然,在其 他实施方式中可以使用其它路由信息,例如,端点、端点可用性、 由每个端点提供的服务、以及每个端点中的服务作用(具有诸如服
务器权重、CPU使用、存储器使用,操作历史等附加信息)。分配
给或传播到客户端的路由信息可以在所有客户端中保持一致,而且 可以与每个服务器中维护的信息相同。在备选方案中,客户端上维
护的路由信息可能仅仅反映服务器中所维护信息的子集,并且还可 能限于与该特定客户端相关的路由信息。当由客户端或为客户端利 用路由信息进行路由决策时,该路由信息与特定客户端相关联。
如上所述,路由信息是为客户端按需传播的,即,响应于确定 路由信息需要更新。典型地,基于跟踪请求的重新路由来做出该确 定,所述请求例如如下请求,该请求被确定为已由服务器误传,并 且由此,不正确的服务器向请求客户端(或其代理)返回针对该请 求的、指明该情况的响应。例如,可以跟踪重新路由请求的数目和/ 或频率,以确定为客户端更新路由信息的需求。
在这些图示说明的实施方式中,例如,重新路由的请求是通过 计数器来跟踪的,对于接收到指示该请求需要被重新路由的响应的 每个请求,该计数器递增。利用第二计数器来跟踪请求的全部数目, 存储在这些计数器中的数值被比较以得到重新路由比。如果重新路
由比超过预定阈值(例如,2%),则认为客户端的路由信息过时, 而且由客户端或为客户端"推送"更新的路由信息。然而,可以意 识到,在备选方式中,可以跟踪其它重新路由统计,而且可以由这 些跟踪信息来计算其它度量,以确定是否需要为客户端更新路由信 息。还可以使用备选阈值或策略作为确定何时需要更新的传播标准。
另外,为客户端启动更新路由信息传播的方式可以有多种不同 的实施方式,例如,经由对维护路由信息的服务器或服务的任意数 目类型的请求。对受益于当前披露的本领域技术人员,其它变形将 是易见的。
转到附图,贯穿附图,相同的数字表示相同的部分。图l示出了示例性分布式计算系统10,此处实施为集群计算系统,其适于实
施与本发明一致的按需路由信息传播。具体地,图l示出了集群计
算系统10中的多个节点12,其通过网络18耦合到多个客户端16。 典型地,节点12驻留在单个物理计算机上,例如,服务器类型的计 算机,可以意识到,在许多实施方式中,也可以是多个节点驻留在 相同的物理计算机上,例如,在经过逻辑分区计算机中。此处使用 的术语"节点,,和"服务器"可以互换,而且同样地,可以意识到, 可以认为集群计算系统中的给定计算机在特定集群环境中作为 一个 或多个节点或服务器的主机。
例如,每个节点12典型地实施为多种多用户计算机中的任意一 种,诸如网络服务器、中程计算机、主机等。同样,每个客户端16 典型地实施为多种单用户计算机中的任意一种,诸如工作站、桌上 型计算机、便携式计算机等。然而,可以意识到,备选地,节点12 或者客户端16可以使用各种多用户或单用户计算机来实现,同样可 以实现在诸如手持计算机、机顶盒、移动电话等各种其它可编程电 子设备中。特别地,当在面向服务架构或效用计算架构中使用时, 在实践中,在按照本发明的集群计算环境中可以使用能够访问和/或 提供计算服务的任意网络设备。
一般地,每个客户端16包括中央处理单元(CPU) 20,其包 括一 个或多个系统处理器,并且通常通过一级或多级高速緩冲存储 器(未示出)耦合至存储器或主存22。另外,CPU20可以经由用户 接口 26耦合到其他外围组件,例如,大容量存储设备24 (例如, DSAD或者一个或多个磁盘驱动器)、各种输入/输出设备(例如, 控制板、显示器、键盘、鼠标、扬声器、麦克风,和/或专用工作站 等),以及经由网络接口 28耦合到一个或多个网络18。同样,每个 节点12典型地包括与每个客户端相似配置的CPU30、存储器32、 大容量存储设备34、用户接口 36和网络接口 38,当然,其通常是 更适合于服务器类型或者多用户负载的组件。在备选方案中,客户 端或节点都可以采用任意数目的备选计算机架构。每个客户端16和节点12进一步配置用于容纳各种与集群相关 的软件组件,这些软件组件用于为每个客户端提供集群相关的服务。 例如,客户端16包含请求处理机组件40,其用于处理由客户端中的 一个或多个客户端应用或服务42、 44启动的集群相关的请求。相应 地,每个节点12包括集群基础结构组件50,其与每个客户端中的请 求处理机40通信,以向客户端提供对各种集群主机应用和/或服务 52、 54的访问。可以在客户端或节点内通过多种方式来实现请求处 理机40和集群基础结构50,例如,实现在内核或操作系统内、中间 件组件内、设备驱动器内,或本领域技术人员受益于本公开将易见 的其它方式。
以下讨论将侧重于用于实施上面描述的策略管理功能的特定例 程。被执行以实施本发明实施方式的例程,无论其被实现为操作系 统的一部分还是特定应用、组件、程序、目标、模块或指令序列, 在此均称为"计算机程序代码"或简称为"程序代码"。计算机程 序代码通常包括在各个时刻驻留在计算机的各种存储器或存储设备 中的一个或者多个指令,而且,当被计算机中的一个或多个处理器 读取或执行时,该指令使得计算机执行实现本发明多个方面所需执 行的步骤或组件。而且,虽然已经和将要在完整功能计算机及计算 系统的上下文中描述本发明,但是本领域技术人员可以意识到,本 发明的各种实施方式能够作为各种形式的程序产品来发布,而且无
论实际上采用何种类型的计算机可读信号承载介质来执行该发布, 本发明同样适用。计算机可读信号承载介质的实例包括但不局限于 诸如易失和非易失存储器设备的物理可记录类型介质、软盘和其它 移动磁盘、硬盘驱动器、光盘(例如,CD-ROM或DVD等)以及其 它的,以及诸如数字和模拟通信链接的传输类型介质。
另外,下面描述的各种程序代码可以基于应用或软件组件被标
施。然而,应意识到,仅仅为了方便才使用下面的任意特定程序术 语,因此不应该局限到仅在由该术语标识和/或暗示的任意特定应用中使用本发明。而且,已知有无数种将计算机程序组成程序、步骤、 方法、模块、目标等的典型方式,以及在驻留于典型计算机内的各
种软件层(例如,操作系统,库,API,应用,小应用程序等)之间 分配程序功能性的各种方式,可以意识到,本发明不局限于这里描 述的特定组织和程序功能性分配。
本发明还包括适当程序代码的部署,以在分布式计算环境中实 施按需路由信息传播。这种部署可以包括将程序代码部署到一个或 多个服务器和/或一个个或多个客户端,而且可以包括此类程序代码 的自动化或自动安装。例如,部署可以包括响应于客户端尝试连 接分布式计算机系统,在该客户端中按需安装程序代码。部署还可 以包括程序代码通过传播介质的传播和/或可以包含经由外部存储设 备的程序代码加载和安装。
本领域技术人员将认识到,图1示出的示例性环境并非意在限 制本发明。实质上,本领域技术人员将认识到,可以在不脱离本发 明范围的情况下使用其它备选硬件和/或软件环境。
特别地,在实践中,按需路由信息传播可以在如下任何计算环 境中使用,在这些计算环境中,用于路由客户端请求的路由信息在 分布式计算系统的各个组件之间分布;特别地,按需路由信息传播 可以在如下任何计算环境中使用,在这些计算环境中,路由信息的 生成、优化和管理独立于路由信息在路由客户端请求中的使用(例 如,在不同物理机器内,或甚至在驻留在相同物理机器中的不同进 程之中)。
例如,图2-4分别示出可以使用按照本发明的按需路由信息传播 的多个备选实现。
例如,如图2所示,可以在除集群计算系统之外的多用户分布 式计算环境中使用按需路由信息传播。在这个实施中,客户端计算 机100通过网络104耦合到一组服务器102,其中,至少该服务器的 子集能够为客户端提供一个或多个服务。路由信息管理器106驻留 在一个或多个服务器102中,其管理主路由信息108。管理器106的功能包括创建和更新路由信息,以及路由信息向客户端100的传 播(例如,如方框110所示),以供请求路由器112用于将客户端 100中发起的请求路由到适当的服务器102。
通常,服务器102中维护的路由信息本质上是高度动态的,例 如,基于服务器负载的变化、各种服务器的整体状况、分布式计算 系统增加或移除服务器、服务和/或客户端等。然而,转发到每个客 户端100的路由信息110 (可以包括全部或部分主路由信息108), 通常仅在由服务器转发时才更新。路由信息向客户端较为频繁的传 播通常将改进请求路由器112的精度,而且得到整体系统的更佳路 由性能。频繁传播的成本是与通信和更新每个客户端中的路由信息 相关联的附加通信和处理开销。然而,路由信息较不频繁的传播通 常将增加请求路由器112的错误路由决策的次数,但是其传播开销 较低。
由于在 一 些情形中,作为客户端操作的组件在其它情形中可以 操作为服务器,因此可以意识到,此处使用的术语"客户端"和"服 务器"仅仅是相对而言的。
由此原因,可以认为客户端包含能够充当特定服务的"请求者" 或者"调用者,,的任何组件,而认为服务器包含能够提供该特定服 务的任意组件,例如,作为"应答者"或"被调用者"。仅仅作为 一个实例,在n层分布式架构中,前层服务器经常充当后层服务器 的客户端,其方式与充当web服务器客户端的用户计算机以及充当 数据库服务器客户端的web服务器相同。
而且,如图3中最佳示出的,客户端和服务器能够组成不同的 进程或者组件,其可以驻留也可以不驻留在相同的物理机器内。图3 示出了通过框架124耦合到多个服务器122的客户端处理120,其中, 路由信息管理器126驻留在一个或多个服务器进程中,以创建和更 新主路由信息128,以及将路由信息(例如,路由信息130)传播到 客户端处理120以供请求路由器组件132使用。例如,在J2EE环境 中,客户端代理可以充当servlet容器的客户端,servlet容器可以充当EJB容器的客户端,EJB容器可以充当后端数据库服务器的客户 端,等等。
另外,可以意识到,请求路由器和/或路由表管理器提供的功能 以及相应客户端和主路由信息的位置,可以在不同实施方式中有所 变化,即,请求路由器和客户端路由信息无需驻留在客户端中,而 路由信息管理器和主路由信息无需驻留在服务器中。例如,如图4 所示,在基于网关的架构中,客户端140可以通过中间网关144与 多个服务器142对接,其中,中间网关144通过网络146、 148 (例 如,WAN和LAN网络)分别耦合至客户端140和服务器142,从而 使所有客户端请求初始发送到网关服务器,该网关服务器为多个客 户端处理请求的路由。在这个情形中,路由信息管理器150和主路 由信息152可以维护在一个或多个服务器142上(或备选地,通过 与任意服务器142分离的组件),但是客户端路由信息154和/或请 求路由器154可以维护在网关144中(网关144本身可以是分立组 件或可以是分布式设备)。在这方面还可以意识到,网关或其它代 理可以跟踪针对多个客户端的请求的重新路由,以及在恰当的情形 中为多个客户端启动路由信息的传播。
在多数实现中,请求路由器使用路由信息将客户端请求路由到 适当的服务器,该请求路由器与维护和更新路由信息的路由信息管 理器处于分离的进程中,从而使得该请求路由器无需感知发生在分 布式计算环境的服务器侧的任何动态变化,例如,由于服务器负载、 服务器可用性、服务可用性、高速緩沖存储器状态、集群状态、性 能等引起的动态变化。
现在回到图1,在集群计算机系统10中,按需路由信息传播是 使用驻留在每个客户端16中的请求处理机40以及驻留在每个节点 或服务器的集群基础结构50来实现的。在图1中,与在请求处理机 40中实施按需路由信息传播相关联的功能被示为组件60-72,而由集 群基础结构50实现的关联功能被示为组件74-84。
请求处理机40包括请求路由器组件60,其接收每个客户端请求以及确定将该请求路由到哪个集群或服务器。请求处理机40依靠于 路由信息,在这个实施中是客户端路由信息表62,其包括来自此客 户端的不同请求应该路由到的服务器的列表。可以意识到,客户端 路由表可以具有任意数目的形式,而且路由信息可以采用路由表的 任意数目的可选形式。路由信息可以是特定于客户端的,或者与其 它客户端使用的相同,而且可以构成每个集群节点12上维护的全部 或者仅仅部分路由信息。
请求处理机40中还使用传播管理器64,其不仅用于通过跟踪客 户端请求的重新路由来跟踪客户端路由表的功效或"新鲜度",还 用于在当前客户端路由表被确定为次最优或陈旧时,启动将更新客 户端路由表传播到客户端。可以基于由传播管理器64维护的传播策
略66来确定客户端路由信息表何时需要更新。在示出的实施方式中, 传播策略可以基于重新路由比,其是根据在请求处理机40处理客户
端请求时分别由传播管理器更新的重新路由计数器68和请求计数器 70而计算的,例如,如果重新路由请求与所有请求的比超过诸如2% 的阈值,则启动传播。包含在传播管理器64中的路由表更新器组件 72用于在传播策略66认为需要时启动客户端路由表62的更新。
对于每个节点12上的集群基础结构50,路由控制器74处理涉 及集群节点的传入客户端请求,这部分地包括检验客户端的路由决 策是否恰当。路由控制器通常依赖于服务器路由表76,其对应于客 户端路由表62,但是其根据集群计算机系统的当前操作状况较为频 繁地更新,而且因此比驻留在客户端上的路由信息更加准确也更新。
如果路由控制器基于服务器路由表确定了该请求被误路由,贝'J 请求重新路由器组件7 8确定应当将请求路由到哪个集群节点,并且 响应生成器组件80产生响应并将其返回给客户端,指示该需求需要 被重新路由。如果客户端的路由决策是正确的,则响应生成器80将 在访问所请求的集群服务之后返回恰当的响应。
路由表管理器组件82管理服务器路由表76,基于当前集群配置 以及其它环境和负载状况来更新该表。路由表传播组件84响应于来自路由表更新器72的请求,从服务器路由表76分配路由信息到每 个客户端。
请注意,在集群节点12中维护并由路由表管理器82管理的路 由信息通常分布在每个集群节点12中,从而使每个节点维护最佳路 由信息的当前拷贝。在其它实施方式中,路由信息的管理可以集中 到例如节点12之外的组件中。还将意识到,按照本发明,可以使用 用于生成和更新路由信息以最优化分布式计算系统的性能的任何已
知技术。
可以意识到,按照本发明,组件60-84中包含的功能在不同组件 中实现。因此本发明并不局限于在图1中所公开的特定实现。
图5的请求处理例程160进一步示出了请求处理机40处理客户 端请求的操作。例程160响应于客户端请求而启动,并且开始于方 框162,其增加请求计数器以记录请求的接收。接着,在方框164, 基于客户端路由表中的路由信息,选择目标服务器以处理该请求。 接着,在方框166,将请求转发到选定的目标服务器,并且例程160 等待来自选定的服务器的响应,该响应在方框168中接收。
响应于该请求,该目标服务器可以选择处理该请求,或者备选 地,基于节点或服务器中更多的当前路由信息,可以确定该目标服 务器不能或者不应该处理该请求。在前一种情形中,响应通常包括 任意所请求的数据以及该请求完成的指示。备选地,如果处理该请 求时检测到错误,服务器还可以在响应中返回此类指示。然而,如 果目标服务器确定应该由其它服务器处理该请求,目标服务器将指 示该请求需要重新路由,附加包括正确服务器的标识。因此,例 程160的方框170根据该响应来确定是否该请求需要被重新路由。
如果不需要,控制进行到方框172,向客户端中的请求器返回响 应,并且例程160完成。否则,方框170将控制进行到方框174,递 增重新路由计数器,以记录重新路由请求的出现。接着,在方框176, 通过将存储在重新路由计数器中的数值除以存储在请求计数器中的 数值来计算重新路由比。接着,方框178确定该重新路由比是否大于传播阈值(例如,2%)。例如,传播阈值可以存储在传播策略中, 并且在许多情形中可以是可配置的。
如果重新路由比不大于传播阈值,则控制进行到方框180,将请 求重新路由至响应中所标识的服务器。接着控制进行到方框168,从 新服务器接收响应。否则,如果重新路由比大于传播阈值,则方框 178将控制进行到方框182,从节点12之一请求更新的路由信息, 以有效地启动更新的路由信息到客户端的传播。控制接着进行到方 框180,以上文描述的方式重新路由该请求。 一旦从恰当的服务器收 到适当响应,方框170将控制进行到方框172,将响应返回给客户端 上的适当请求器,例程160完成。
在备选实施方式中,可以不在重新路由响应中标识正确的服务 器。在此类实例中,请求处理机可以启动更新的路由信息的传播, 并且此后使用更新的路由信息来重新路由该请求。对受益于当前公 开的本领域技术人员而言,其它变形是易见的。
由此,将会理解,示出的实施方式经常能够显著地降低在分布 式计算系统中向客户端或其它客户端请求处理机传播路由信息的开 销。在基于周期的系统中,路由信息响应于实践中系统操作状况的 每个变化而在服务器与客户端之间进行同步,与此不同,在本发明 中,路由信息仅仅传播到本地路由信息已经相当过时的客户端请求 处理才几。
可以不脱离本发明的精神和范围,对示出的实施方式进行多种 变形。例如,在按照本发明的某些实施方式中,客户端无需重新发 送已认定为重理由请求的请求。例如,在某些实施方式中,确定请 求应该路由到不同服务器的目标服务器可以将请求转发到正确的服 务器,而且备选地,可以向客户端发送独立的响应以指示该请求已 经转发。在备选方案中,由原始目标服务器向其转发请求的服务器 可以在其响应中指示该请求被重新路由。在另一些实施方式中,不 应该接收请求的目标服务器仍然能够服务于该请求,而且可以在响 应中指示该请求应该被路由到其它服务器。在后一种情况中,为了按需传播路由信息,尽管该请求仍然由该服务器处理,但是可以将其认为是重新路由的请求。
其它变形对本领域技术人员是易见的。因此,本发明由所附权利要求限定。
权利要求
1.一种在分布式计算系统中路由客户端请求的方法,所述方法包括响应于接收到所述客户端中的请求基于驻留在所述客户端中的路由表,从多个服务器中选择一个服务器来处理所述请求;以及将所述请求发送给选定的服务器;以及响应于从所述选定的服务器接收到针对所述请求的响应确定所述响应是否指示所述请求需要重新路由;如果所述响应指示所述请求需要被重新路由,则更新重新路由统计;和如果所述重新路由统计满足传播标准,则为所述客户端获取所述路由表的更新拷贝。
2. —种在分布式计算系统中传播路由信息的方法,所述方法包括跟踪来自所述客户端的客户端请求的重新路由,其是按照与所述 客户端相关联的路由信息来路由的;以及基于所跟踪的客户端请求的重新路由,选择性地启动更新路由信息的传播。
3. 根据权利要求2的方法,其中与所述客户端相关联的所述路 由信息驻留在所述客户端中,并且其中跟踪客户端请求的重新路由 以及选择性地启动路由信息的传播由所述客户端来执行。
4. 根据权利要求3的方法,进一步包括在所述客户端中,根 据驻留在所述客户端中的所述路由信息来路由所述客户端请求。
5. 根据权利要求4的方法,其中路由所述客户端请求包括对 于第一请求,基于所述路由信息从多个服务器中选择一个服务器来 处理所述第一请求,以及将所述第一请求转发到选定的服务器。
6. 根据权利要求5的方法,其中所述多个服务器包括集群,并且其中所述客户端是所述集群中的客户端。
7. 根据权利要求5的方法,其中所述客户端和所述多个服务器 中的每一个都包含进程。
8. 根据权利要求2的方法,其中与所述客户端相关联的所述路 由信息驻留在网关中,并且其中所述网关执行以下至少一个跟踪 客户端请求的重新路由,以及选择性地启动路由信息的传播。
9. 根据权利要求2的方法,其中所述路由信息包括路由表。
10. 根据权利要求2的方法,其中跟踪客户端请求的重新路由包 括响应于接收到针对客户端请求的、指示所述请求需要重新路由 的响应,递增重新路由计凄t器。
11. 根据权利要求10的方法,进一步包括响应于接收到针对 客户端请求的响应而递增请求计数器,其中,基于所跟踪的客户端 请求的重新路由而为所述客户端选择性地启动^各由信息的传播包 括响应于重新路由计数器与请求计数器之间的比超过阈值,为所 述客户端启动路由信息的传播。
12. 根据权利要求2的方法,其中基于所跟踪的客户端请求的重 新路由而为所述客户端选择性地启动路由信息传播包括响应于重 新路由比满足传播标准,为所述客户端启动路由信息的传播。
13. 根据权利要求12的方法,其中所述传播标准是所述客户 端的重新路由比超过阈值。
14. 根据权利要求2的方法,其中基于所跟踪的客户端请求的重 新路由而为所述客户端选择性地启动路由信息的传播,是响应于接 收到针对客户端请求的、指示所述请求需要重新路由的响应而执行。
15. 根据权利要求2的方法,其中为所述客户端启动路由信息的 传播包括请求为所述客户端下载路由表的更新拷贝。
16. 根据权利要求2的方法,进一步包括在第一进程中更新与 所述客户端相关联的所述路由信息,所述第一进程独立于按照所述 路由信息来路由客户端请求的第二进程,其中为所述客户端启动更 新路由信息的传播包括将所述第 一进程中生成的更新路由信息获取到第二进程中。
17. 根据权利要求16的方法,其中在所述第一进程中更新所述 路由信息包括基于以下至少 一 个来更新所述路由消息服务器负载、 服务器可用性、服务可用性、高速緩冲存储器状况、集群状况和性 能。
18. —种装置,包括 至少一个处理器;以及程序代码,其配置为由所述处理器执行以实施任意前述权利要求 的步骤。
19. 一种程序产品,包括被配置为在分布式计算系统中传播路由信息的程序代码,当所述 程序代码被处理逻辑执行时,导致执行权利要求2到17中任一项的 步骤。
全文摘要
一种装置、程序产品和方法,其利用路由信息的按需传播来降低与在整个分布式计算系统中分发路由信息相关联的开销。基于针对需要重新路由的客户端而发布的客户端请求的数目和/或频率(其例如在响应于客户端请求而回复的响应中指示),测量用于路由客户端请求的路由信息的陈旧性。一旦客户端请求的重新路由满足预期的传播标准,则为客户端请求更新的路由信息。
文档编号H04L29/08GK101652977SQ200880011147
公开日2010年2月17日 申请日期2008年3月26日 优先权日2007年4月6日
发明者沈金梅, 浩 王 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1