CN101300796B - 基于服务器加入集群的时间发送路由选择数据的方法 - Google Patents

基于服务器加入集群的时间发送路由选择数据的方法 Download PDF

Info

Publication number
CN101300796B
CN101300796B CN200680041285.7A CN200680041285A CN101300796B CN 101300796 B CN101300796 B CN 101300796B CN 200680041285 A CN200680041285 A CN 200680041285A CN 101300796 B CN101300796 B CN 101300796B
Authority
CN
China
Prior art keywords
server
cluster
servers
point
new server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200680041285.7A
Other languages
English (en)
Other versions
CN101300796A (zh
Inventor
P·J·戴克斯
W·纽波特
沈金梅
K·W·萨特
王浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101300796A publication Critical patent/CN101300796A/zh
Application granted granted Critical
Publication of CN101300796B publication Critical patent/CN101300796B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

提供了一种方法、装置、***和信号承载介质,在一个实施例中,其用于将广播消息发送到服务器集群并从集群的协调服务器接收点到点消息,其中协调服务器在集群中的所有其它服务器之前加入集群。点到点消息包含有关集群中的所有服务器的路由选择数据。在一个实施例中,广播消息包含含有新服务器的标识、有关新服务器的资源数据和新服务器加入集群的时间的记录,并且集群中的服务器将该记录添加到路由选择数据,并且通过记录将请求发送给新服务器。在另一个实施例中,广播消息包含第二个集群中的所有服务器的记录,并且新服务器将路由选择数据发送给第二集群中的服务器。如果服务器离开集群,则其记录被移除。这样,集群可响应动态地加入和离开集群的服务器,同时降低网络业务量。

Description

基于服务器加入集群的时间发送路由选择数据的方法 
技术领域
本发明的实施例通常涉及计算机。特别地,本发明的实施例通常涉及经由网络连接的计算机***的集群。 
背景技术
1948年EDVAC计算机***的开发通常被引用为计算机时代的开始。从那时起,计算机***已经发展成非常复杂的设备,并且计算机***可以有许多不同的设置。计算机***通常包含诸如半导体和电路板的硬件和亦称为计算机程序的软件的组合。随着半导体处理和计算机体系结构中的进步推动计算机硬件的性能更高,更成熟和更复杂的计算机软件已发展成利用硬件的更高性能,从而产生比仅仅几年前的计算机***要强大得多的当今计算机***。 
多年前,计算机是不互相通信的独立设备,但是现在,计算机在网络中被越来越多地连接在一起,并且被称作客户端的一个计算机可以请求被称作服务器的另一个计算机执行操作。随着因特网的出现,这种客户端/服务器模型越来越多地用于在线商务和服务,例如在线拍卖场、股票交易、银行业务、商务和信息存储和检索。 
处理来自客户端的请求的服务器通常被组织成经由网络连接的集群。集群中稳定的服务器状态是理想的,其中处于集群之中的服务器以及服务器上可用的数据和服务是公知的和固定的。稳定的服务器状态使得客户端请求在服务器变得可用之后立即使用该服务器,这样客户端请求不会遇到错误。 
与稳定的服务器状态相反,服务器的集群可能处于动荡的服务器状态。动荡的服务器状态可由以下因素引起:服务器针对集群的动态添加和移除、数据项和服务针对服务器的动态添加和移除、集群中的 服务器的启动以及服务器的故障。因为标识服务器及其数据和服务的路由选择信息变得陈旧,所以动荡的服务器状态在查找集群中正确的服务器来处理来自客户端的请求时产生问题。陈旧的路由选择信息可使客户端请求遇到错误。例如,陈旧的路由选择信息可以使客户端请求被路由到数据或服务不再可用(过迟)的服务器,并且可以使客户端请求被路由到新数据或新服务尚未准备好处理请求(过早)的服务器。因而,通常由动荡的服务器状态所引起的陈旧的路由选择信息会影响客户端的用户满意度。 
一种试图处理动荡的服务器状态以及所得到的陈旧的路由选择信息的当前方案被称作公告牌方案。在公告牌方案中,集群中的一个服务器被指定为协调员(coordinator),集群中的所有服务器都将其路由选择信息发送给该协调员,并且所有客户端都从该协调员中取回集群中的服务器的路由选择信息。如果将该协调员从集群中移除或该协调员遇到错误,则选择新的协调员,并且每个服务器将其路由选择信息重新投寄给该新协调员。因而,公告牌方案产生额外的网络业务量,其不利地影响性能和用户满意度。 
因而,需要一种更好的协调路由选择信息的技术。 
发明内容
本发明提供了如权利要求1所述的在接收服务器处执行的一种方法。 
本发明还提供了如权利要求9所述的在新服务器处执行的一种相应的方法。 
还提供了相应的***和计算机程序。 
这样,集群可响应动态加入和离开该集群的服务器,同时降低网络业务量。 
附图说明
结合附图,此后描述本发明的各种实施例: 
图1描述了用于实现本发明的一个实施例的示例性***的框图。 
图2A描述了根据本发明的一个实施例的示例***器集群的框图。 
图2B描述了根据本发明的一个实施例的加入服务器集群的示例性新服务器的框图。 
图3描述了根据本发明的一个实施例的示例***器集群的合并的框图。 
图4描述了根据本发明的一个实施例的示例性路由选择数据(routing data)的框图。 
图5描述了根据本发明的一个实施例的加入服务器集群的新服务器的示例性处理的流程图。 
图6描述了根据本发明的一个实施例的连接服务器集群的示例性处理的流程图。 
图7描述了根据本发明的一个实施例的广播消息的示例性处理的流程图。 
图8描述了根据本发明的一个实施例的响应于服务器离开网络进行的示例性处理的流程图。 
然而,应当注意,附图只图解了本发明的示例性实施例,因此不被认为是对本发明范围的限制,本发明允许采用其它等效的实施例。 
具体实施方式
参考附图,其中类似编号表示若干附图中的类似部分,图1描述了根据本发明的实施例的、连接到网络130的服务器计算机***100的高层框图表示。仅仅为了方便而使用术语″计算机***″和″服务器″,可以使用任何适当的电子设备,在各实施例中,计算机***100可充当客户端或服务器,并且在一种环境下充当客户端的计算机***或电子设备在另一种环境下可充当服务器。服务器计算机***100的主要部件包含一个或多个处理器101、主存储器102、终端接口111、存储设备接口112、I/O(输入/输出)设备接口113和通信/网络接口114,为了 组件间通信,所有这些部件都经由存储器总线103、I/O总线104和I/O总线接口单元105连接起来。 
服务器计算机***100包含一个或多个通用可编程中央处理单元(CPU)101A、101B、101C和101D,其在本文中通称作处理器101。在一个实施例中,计算机***100包含相对大型***的典型的多处理器;然而,在另一个实施例中,计算机***100可选地为单CPU***。每个处理器101执行存储在主存储器102中的指令,并且可包含一级或多级板上高速缓存器。 
主存储器102是一种用于存储数据和程序的随机访问半导体存储器。主存储器102在概念上是单个单片集成电路实体,但是在其它实施例中,主存储器102是一种更复杂的方案,例如高速缓存器和其它存储器设备的层次结构。例如,存储器可以以多级高速缓存器的形式存在,并且这些高速缓存器还可按功能进一步划分,从而一个高速缓存器保存指令,而另一个保存由一个或多个处理器使用的非指令数据。如已知的那样,按照各种所谓的非均匀存储器访问(NUMA)计算机体系结构中的任何一种形式,存储器还可以是分布式的并且与不同的CPU或CPU组相关联。 
主存储器102包含控制器158和服务159。虽然控制器158和服务159被图解成被包含在计算机***100中的存储器102内,但是在其它实施例中,其一些或全部可以在不同的计算机***上,并且可例如经由网络130被远程访问。计算机***100可使用虚拟寻址机制,其使得计算机***100的程序就像是其仅能访问大型的单存储设备实体,而不是访问多个、较小的存储设备实体那样动作。因而,虽然控制器158和服务159被图解成被包含在主存储器102内,但是这些单元不必同时全部完全地包含于相同的物理存储装置中。此外,虽然控制器158和服务159被图解成单独的实体,在其它实施例中,它们中的一些或它们中的一些的一部分可被封装在一起。 
在一个实施例中,控制器158包含存储在存储器102中的、能够在处理器101上执行的指令,或能够由在处理器101上执行的指令解释的 语句,以执行如下参照图5、6、7和8进一步描述的功能。在另一个实施例中,控制器158可以用微代码或固件实现。在另一个实施例中,控制器158可以用通过逻辑门和/或其它适当硬件技术的硬件来实现。 
控制器158包含路由选择数据160、基于时间的管理器162、健康***164、信息合并器166、信息广播器167和点到点发送器168。基于时间的管理器162计算自从服务器加入服务器集群所经过的时间。健康***164监视与服务器100或网络130相关的错误。信息合并器166将信息合并成路由选择数据160。信息广播器167将广播消息发送给网络130。点到点发送器168将点到点消息发送给附接于网络130的服务器。路由选择数据160描述了连接到网络130的服务器100。下面参照图4进一步描述路由选择数据160。 
服务159是服务器100处可用的服务、功能或方法,并且在各种实施例中,其可以是应用、用户应用、第三方应用、应用服务器、操作***、任何其它合适的服务或其部分或组合。 
存储器总线103提供了用于在处理器101、主存储器102和I/O总线接口单元105之间传送数据的数据通信路径。I/O总线接口单元105还被连接到用于到/从各种I/O单元传送数据的***I/O总线104。I/O总线接口单元105通过***I/O总线104,与亦被称为I/O处理器(IOP)或I/O适配器(IOA)的多个I/O接口单元111、112、113和114通信。***I/O总线104可以是例如工业标准PCI总线,或任何其它适当的总线技术。 
I/O接口单元支持与各种存储设备和I/O设备的通信。例如,终端接口单元111支持一个或多个用户终端121、122、123和124的附接。存储设备接口单元112支持一个或多个直接访问存储设备(DASD)125、126和127的附接(虽然直接访问存储设备(DASD)可选地是其它设备,包括被配置成对主机来说就像是单个大型存储设备的盘驱动器阵列,但是其通常为旋转磁盘驱动器存储设备)。主存储器102的内容可被存储到直接访问存储设备125、126和127,并且从直接访问存储设备125、126和127中取回。 
I/O设备接口113提供了到各种其它输入/输出设备或其它类型设 备中的任何一种的接口。两个这样的设备-打印机128和传真机129在图1的示例性实施例中被示出,但是在其它实施例中,可存在可能是不同类型的许多其它这样的设备。网络接口114提供了从计算机***100到其它数字设备和计算机***的一个或多个通信路径;这样的路径可包含,例如,一个或多个网络130。 
虽然图1中所示的存储器总线103为提供在处理器101、主存储器102和I/O总线接口105之间的直接通信路径的相对简单的单总线结构,但实际上存储器总线103可包括多个不同的总线或通信路径,其可被布置成各种形式中的任何一种,例如按层级、星形或网状配置的点到点链路、多个分层级总线、平行和冗余路径等等。此外,虽然I/O总线接口105和I/O总线104被显示为单个相应单元,但是计算机***100实际上可包含多个I/O总线接口单元105和/或多个I/O总线104。虽然示出了将***I/O总线104与通向各种I/O设备的各种通信路径分离的多个I/O接口单元,但是在其它实施例中,一些或所有I/O设备被直接连接到一个或多个***I/O总线上。 
图1中所描述的计算机***100具有多个附接的终端121、122、123和124,例如可以是典型的多用户″大型机″计算机***。通常,在这种情况下,附接设备的实际数量大于图1中所示的,尽管本发明不局限于任何特定规模的***。计算机***100可选地是单用户***,通常仅包含单个用户显示和键盘输入,或者可以是具有很少或没有直接用户接口,但是从其它计算机***(客户端)接收请求的服务器或类似设备。在其它实施例中,计算机***100可以被实现成个人计算机、便携式计算机、膝上型或笔记本计算机、PDA(个人数字助理)、平板电脑、掌上电脑、电话、传呼机、汽车、电话会议***、电器或任何其它适当类型的电子设备。 
网络130可以是任何适当网络或网络的组合,并且可以支持适用于数据和/或代码到/从计算机***100的通信的任何适当协议。在各种实施例中,网络130可代表被直接或间接地连接到计算机***100的存储设备或存储设备的组合。在一个实施例中,网络130可支持 Infiniband。在另一个实施例中,网络130可支持无线通信。在另一个实施例中,网络130可支持硬连线(hard-wired)通信,例如电话线或电缆。在另一个实施例中,网络130可支持以太网IEEE(电气与电子工程师协会)802.3x规范。在另一个实施例中,网络130可以是因特网,并且可支持IP(网际协议)。在另一个实施例中,网络130可以是局域网(LAN)或广域网(WAN)。在另一个实施例中,网络130可以是热区(hotspot)服务提供商网络。在另一个实施例中,网络130可以是内联网。在另一个实施例中,网络130可以是GPRS(通用分组无线业务)网络。在另一个实施例中,网络130可以是FRS(家庭无线电服务)网络。在另一个实施例中,网络130可以是任何适当的蜂窝数据网络或基于蜂窝的无线网络技术。在另一个实施例中,网络130可以是IEEE 802.11B无线网络。在再一个实施例中,网络130可以是任何适当网络或网络的组合。虽然示出了一个网络130,但是在其它实施例中,可以存在任何数量的(相同或不同类型的)网络。应当理解,图1意图描述计算机***100的代表性主要部件和高层的网络130,其各个部件可以具有比图1中所表示的部件更大的复杂度,可以存在不同于或除了图1中示出的那些部件之外的部件,并且这样的部件的数量、类型和结构可以有所不同。本文揭示了这样的额外复杂度或额外变型的若干特定例子;应当理解:这些仅仅是举例来说,而不必是唯一的此类变型。 
图1中所图解并且实现本发明的各种实施例的各种软件部件可以用若干种方式,包含利用此后被称作″计算机程序″或简称为″程序″的各种计算机软件应用、例程、部件、程序、对象、模块、数据结构等等,来实现。计算机程序通常包括一个或多个指令或语句,其在各种时间驻留在计算机***100中的各种存储器和存储设备中,并且当由计算机***100中的一个或多个处理器读取并且执行时,其使计算机***100执行运行包括本发明的实施例的不同方面的步骤或单元所需的步骤。 
此外,虽然已经并且此后仍将在完全功能的计算机***的情况下描述了本发明的实施例,然而本发明的各个实施例能够被分布为各种 形式的程序产品,并且无论用于实际执行分布的信号承载介质的特定类型如何,本发明均同等适用。定义该实施例的功能的程序可经由各种有形计算机可记录和可读信号承载介质被传送给计算机***100,所述信号承载介质包含但不局限于: 
(1)信息永久地存储在非可重写存储介质上,例如,附接于计算机***或在计算机***内的只读存储器设备,诸如CD-ROM、DVD-R、或DVD+R; 
(2)可改变信息存储在可重写存储介质上,例如,硬盘驱动器(例如,DASD 125、126或127)、CD-RW、DVD-RW、DVD+RW、DVD-RAM或磁盘;或者 
(3)信息由通信介质传送,例如通过计算机或电话网络,例如网络130。 
当承载指示本发明的功能的机器可读指令时,此类有形信号承载介质代表本发明的实施例。 
本发明的实施例还可以作为与客户公司、非营利性组织、政府实体、内部组织机构等等的服务约定的一部分来传送。这些实施例的各方面可包含配置计算机***来执行,以及采用实现本文所描述的一些方法或所有方法的软件***和网络服务。这些实施例的各方面还可以包含分析客户公司,根据分析建立建议,生成软件以实现建议的各部分,将软件集成到现有的处理和基础设施中,计量本文所描述的方法和***的使用,分配费用给用户,以及针对用户对这些方法和***的使用对用户记费。此外,根据在本发明的具体实施例中实现的应用,可以标识此后所描述的各种程序。但是,使用下述的任何特定程序术语仅仅是为了方便,因而本发明的实施例不应被局限于仅在由这样的术语所标识和/或暗示的任何具体应用中的使用。 
图1中所图解的示例性环境不意欲限制本发明。实际上,在不偏离本发明的范围的情况下可以使用其它可选硬件和/或软件环境。 
图2A描述了根据本发明的一个实施例的服务器100的示例性集群202的框图。集群202还可以被称作分区(partition)或组。任意数量 的服务器100可被组织成集群202,并且任意数量的集群可以存在。集群202中的服务器100可互相发送请求(经由图1的网络130),其每一个均使用服务159。服务器100中的任何一个可充当客户端。 
图2B描述了根据本发明的一个实施例的加入包含服务器100-1、100-2、100-3、100-4和100-5的集群202-1的示例性新服务器100-6的框图。服务器100(图1)通常是指服务器100-1、100-2、100-3、100-4、100-5和100-6。集群202(图2A)通常是指集群202-1。服务器100-1、100-2、100-3、100-4、100-5和100-6经由网络130被连接。 
服务器100-1是集群202-1中最老的服务器,这意味着服务器100-1已经在集群202-1中最久,是集群202-1的最初成员,因而在加入集群202-1的服务器100-2、100-3、100-4、100-5和100-6之前加入集群202-1。最老的服务器100-1的指定可以随着服务器100离开和加入集群202-1而变化。服务器100-1、100-2、100-3、100-4和100-5是集群202-1的预先存在的成员,这意味着其已经连接到网络130并且先前已经从最老的服务器100-1接收到识别集群202-1中的各种服务器和可用服务159的路由选择数据160。 
服务器100-6是集群202-1中的新服务器,这意味着其在其它服务器100-1、100-2、100-3、100-4和100-5之后加入集群202-1。响应于新服务器100-6连接到网络130,新服务器100-6经由网络103将广播消息205发送给集群202-1,该消息包含识别新服务器100-6的记录,并且包含有关新服务器100-6和新服务器100-6上可用的服务159的信息。在广播消息发送(broadcast messaging)中,新服务器100-6无需必须知道接收服务器100-1、100-2、100-3、100-4和100-5的网络地址,相同的消息205就被发送给集群202-1中的所有服务器。取而代之,新服务器100-6将广播消息205发送给集群202-1的地址,而网络130将广播消息205发送到集群202-1中的服务器100-1、100-2、100-3、100-4和100-5中的每一个。广播消息发送亦被称为多播(multi-casting)。 
广播消息205由连接到网络130的所有服务器100-1、100-2、100-3、100-4和100-5接收。响应于接收到广播消息205,最老的服务器100-1 将接收到的记录添加到其路由选择数据160的拷贝,并且将包含全局资源数据160的点到点消息210发送给新服务器100-6,所述全局资源数据160代表集群202-1中的所有服务器100-1、100-2、100-3、100-4和100-5。最老的服务器100-1将点到点消息210唯一地发送给新服务器100-6,这意味着最老的服务器100-1不将点到点消息210发送给其它服务器100-2、100-3、100-4和100-5。点到点消息还被称作单播消息。响应于接收广播消息205,服务器100-2、100-3、100-4和100-5将所接收的记录添加到其路由选择数据160的相应拷贝中,但是因为最老的服务器100-1已经用包含代表集群202-1中的所有服务器的路由选择数据160的单个点到点消息210进行了响应,所以不需要将其相应的路由选择数据发送给新服务器100-6。 
图3描述了根据本发明的一个实施例的示例性集群202-2和集群202-3的合并的框图。集群202-2包含服务器100-7、100-8和100-9。集群202-3包含服务器100-10、100-11和100-12。服务器100(图1)通常是指服务器100-7、100-8、100-9、100-10、100-11和100-12。集群202(图2A)通常是指集群202-2和202-3。在一个实施例中,集群202-2和202-3先前被连接成一个集群202,但是丢失了其彼此连接,被分开,而现在被重新连接。作为被断开的结果,如下面参照图8进一步描述的,在丢失的集群中的服务器的记录被从路由选择数据160中移除。在另一个实施例中,集群202-2和202-3先前未被连接,但是现在正在被连接。 
响应于集群202-2中的最老的服务器100-7检测到到集群202-3的连接(或重新连接),最老的服务器100-7将广播消息305发送给集群202-3的所有服务器100-10、100-11和100-12。虽然集群202-2中的服务器100-8和100-9可检测到到集群202-3的连接,但是因为其不是集群202-2中的最老的服务器,所以其不发送广播消息305。广播消息305包含集群202-2中的所有服务器100-7、100-8和100-9的路由选择数据160-2中的所有记录。 
响应于接收到广播消息305,接收服务器100-11和100-12将来自 广播消息305的路由选择数据160-2的记录添加到其路由选择数据160-3的相应拷贝中,但是因为其不是集群202-3中的最老的服务器,所以其不做应答。响应于接收到广播消息305,接收服务器100-10通过检查其路由选择数据160-3的拷贝而确定其为集群202-3中的最老的服务器,并且将点到点消息310发送给集群202-2中的最老的服务器100-7。点到点消息310包含集群202-3中的所有服务器100-10、100-11和100-12的路由选择数据160-3中的所有记录。 
响应于接收到点到点消息310,最老的服务器100-7随后将广播消息315发送给集群202-2中的服务器100-8和100-9,该消息包含来自所接收的路由选择数据160-3的记录。集群202-2中的接收服务器100-8和100-9将来自所接收的路由选择数据160-3的记录添加到其路由选择数据160-2的拷贝中。然后,集群202-2中的最老的服务器100-7将来自所接收的路由选择数据160-3的记录添加到其路由选择数据160-2的拷贝中。现在集群202-2和202-3被合并成单个集群,并且如合并后的路由选择数据160-2和160-3中表明的那样,新的单个集群中的最老的服务器是服务器100-7和100-11中较老的服务器。 
图4描述了根据本发明的一个实施例的路由选择数据160的示例性数据结构的框图。路由选择数据160包含记录405、410和415,但是在其它实施例中,可能存在具有任何适当数据的任意数量的记录。记录405、410和415中的每一个包含服务器标识字段420、资源数据字段425和时间戳字段430,但是在其它实施例中可能存在更多或更少的字段。 
服务器标识字段420标识与记录相关的服务器100。在各种实施例中,服务器标识字段420可包含网络地址、IP(网际协议)地址、MAC地址(媒体访问控制)地址、或者能够用于访问或发送消息、请求或数据给服务器100的任何其它类型的标识符。 
在各种实施例中,资源数据425可包含服务器100上的资源或服务159的资源标识符、服务器100上的资源或服务159的状态、服务159的内容、服务159上的待处理请求的数量或类型、服务器100上的处理器 101的CPU利用率、服务器100的存储器使用、和端点。但是,在其它实施例中,资源数据425可包含其它服务器可能希望接收的任何适当数据。 
时间戳字段430标识相关服务器420加入集群的时间。服务器420加入集群的时间可能是服务器420连接到网络的时间,或者服务器420发送广播消息205的时间。因而,在图4的例子中,因为记录405具有最早的时间戳430,所以记录405标识了集群中的最老的服务器。 
图5描述了根据本发明的一个实施例的新服务器加入集群的示例性处理的流程图。控制从模块500开始。然后,控制前进到模块505,其中新服务器100-6连接到网络130,并且确定集群202-1的地址。然后控制继续到模块510,其中新服务器100-6上的控制器158利用标识新服务器100-6的服务器标识420,利用有关新服务器100-6上可用的服务159的资源数据425,以及标识当前时间(可能包含日期)的时间戳430,建立记录。 
接着控制继续到模块515,其中新服务器100-6上的控制器158经由网络130中的集群202-1的已确定的地址,将包含所建立的记录的广播消息205发送给集群202-1中的所有服务器100。然后,控制继续到模块520,如下面参照图7进一步描述的,其中集群202-1中的服务器100接收并且处理广播消息205。 
然后,控制继续到模块525,其中新服务器100-6上的控制器158接收具有路由选择数据160的点到点消息210,路由选择数据160包含集群202-1中的所有服务器100的记录。点到点消息由集群202-1中的最老的服务器100-1发送,并且被唯一地发送给新服务器100-6,而非发送给集群202-1中的其它服务器100-2、100-3、100-4和100-5。 
然后,控制继续到模块530,其中新服务器100-6上的控制器158通过路由选择数据160,将请求发送给网络130的集群202-1中的其它服务器上的服务159。控制器158可使用路由选择数据160来寻找资源数据425中的适当服务,并且确定与期望的适当服务器相关的服务器标识符420,然后将请求发送给所确定的服务器标识符420。这样,控制 器158通过所接收的路由选择数据160,向集群202中的一个或多个服务器100请求一个或多个服务159。然后,控制继续到模块599,其中图5的逻辑返回。 
图6描述了根据本发明的一个实施例的连接服务器的集群的示例性处理的流程图。控制从模块600开始。然后,控制继续到模块605,其中集群202-2中的服务器100上的控制器158连接到集群202-3。然后,控制继续到模块610,其中服务器100上的控制器158确定服务器100是否是集群202-2中的最老的服务器100-7,即控制器158通过确定连接到集群202-3的服务器100的时间430是否在路由选择数据160-2中的所有其它服务器的时间430之前或比其早,来确定服务器100是否在集群202-2中的所有其它服务器之前加入集群202-2。 
如果模块610处的确定是真,则连接到集群202-3的服务器100的确在集群202-2中的所有其它服务器之前加入集群202-2,并且是集群202-2中的最老的服务器100-7,这样控制继续到模块615,其中最老的服务器100-7上的控制器158将广播消息305发送给集群202-3。广播消息305包含集群202-2中的所有服务器100-7、100-8和100-9的路由选择数据160-2中的所有记录。 
然后,控制继续到模块620,其中如下面参考图7进一步描述的,集群202-3中的服务器处理广播消息305。然后,控制继续到模块625,其中集群202-2中的最老的服务器100-7上的控制器158从集群202-3中的最老的服务器100-10接收点到点消息310,点到点消息310包含集群202-3中的所有服务器100-10、100-11和100-12的路由选择数据160-3中的所有记录。 
然后,控制继续到模块630,其中集群202-2中的最老的服务器100-7上的控制器158将广播消息315发送给集群202-2中的所有服务器100-8和100-9。广播消息315包含集群202-3中的所有服务器100-10、100-11和100-12的路由选择数据160-3中的所有记录。然后,控制继续到模块635,其中集群202-2中的服务器接收广播消息,合并其路由选择数据160-3和160-2的拷贝,并且如下面参照图7进一步描述的,通过 合并后的路由选择数据,将请求发送给集群202-2和202-3中的服务器。然后,控制继续到模块640,其中集群202-2中的最老的服务器100-7上的控制器158合并其路由选择数据160-3和160-2的拷贝,并且通过合并后的路由选择数据,将请求发送给集群202-2和202-3中的服务器。然后,控制继续到模块699,其中图6的逻辑返回。 
如果模块610处的确定是假,则连接到集群202-3的集群202-2中的服务器100未在集群202-2中的所有其它服务器之前加入集群202-2,所以连接到集群202-3的服务器100是服务器100-8或100-9,这样控制继续到模块699,其中图6的逻辑返回。 
图7描述了根据本发明的一个实施例的用于处理广播消息的接收的服务器上的示例性处理的流程图。控制从模块700开始。然后,控制继续到模块705,其中接收服务器上的控制器158从发起服务器(发送广播消息的服务器)接收广播消息(例如,广播消息205、305或315)。所接收的广播消息包含一个或多个记录405、410或415,其与发起服务器有关,或者其与集群202中的所有服务器有关。 
然后,控制继续到模块710,其中控制器158确定接收服务器是否是路由选择数据160的本地拷贝中的最老的服务器。控制器158通过比较与接收服务器相关的路由选择数据160的记录中的时间戳430与路由选择数据160中的其它记录的时间戳430,并且确定接收服务器加入集群202的时间430是否早于其它服务器加入集群202的时间430来做出确定。 
如果接收服务器的时间戳430是集群202的路由选择数据160中的最早时间(在所有其它时间之前),则接收服务器是集群202中的最老的服务器(例如,服务器100-1、100-7或100-10),这样控制继续到模块715,其中接收服务器上的控制器158从集群202中的所有服务器的路由选择数据160的其本地拷贝中取回记录,将取回的记录添加到点到点消息,并且将该点到点消息(例如,点到点消息210或310)发送到发起广播消息的服务器(例如服务器100-6或100-7)。 
然后,控制继续到模块720,其中接收服务器上的控制器158计算: 差值=(t1+t3)/2-t2,其中: 
t2=广播消息的到达时间; 
t1=与发起服务器相关的广播消息中的所接收的记录中的时间戳430,其为广播消息的发起服务器加入集群202的时间;以及 
t3=接收服务器将点到点消息发送给发起服务器的时间(上面参照模块715已经描述的)。 
然后,控制继续到模块725,其中接收服务器上的控制器158将计算的差值添加到与发起广播消息的服务器相关的所接收的记录中的时间戳430。这样,接收服务器上的控制器158通过所计算的差值调整发起服务器加入集群202的时间,来说明发起服务器决定加入集群的时间与集群202中的最老的服务器实现发起服务器加入集群202的时间之间的延迟。 
然后,控制继续到模块730,其中接收服务器上的控制器158累加来回行程的定时数据,并且利用多种活动调整该计算数据。 
然后,控制继续到模块735,其中接收服务器上的控制器158将广播消息中的所接收的记录添加到路由选择数据160,并且基于时间戳430,将路由选择数据160中的记录排序。 
然后,控制继续到模块740,其中接收服务器上的控制器158寻找资源数据425中所标识的适当服务159,并且通过相关的服务器标识符420,将请求发送给集群202中的服务器100上的服务159。 
如果模块710上的确定为假,则接收服务器不是路由选择数据160的本地拷贝中的最老的服务器(即,接收服务器在比集群202中的其它服务器100更早的时间没有加入集群202),这样如上面已经描述的,控制继续到模块735。 
图8描述了根据本发明的一个实施例的响应于服务器离开网络130的示例性处理的流程图。控制从模块800开始。然后,控制继续到模块805,其中控制器158确定服务器100是否已经离开集群202,例如,离开网络130的服务器100是否已经遇到错误,或者已经变得不可到达。如果模块805上的确定为真,则服务器100已经离开集群202,服 务器100已经离开网络130,服务器100已经遇到错误,或者服务器100不可到达,这样控制继续到模块810,其中控制器158从与模块805处确定的服务器100相关的路由选择数据160中,通过服务器标识符字段420寻找记录,并且从路由选择数据160中移除记录。然后,控制继续到模块899,其中图8的逻辑返回。 
如果模块805处的确定为假,则控制继续到模块899,其中图8的逻辑返回。 
在本发明的示例性实施例的前面详细描述中,对形成本文中的部分的附图(其中类似编号代表类似单元)进行参考,并且在所述附图中通过图解示出了可以实施本发明的特定示例性实施例。这些实施例被足够详细地描述,以使得本领域技术人员能够实践本发明,但是可以使用其它实施例,并且在不偏离本发明的范围的情况下,可以做出逻辑、机械、电气以及其它改变。如该说明书内使用的词语″实施例″的不同实例不必是指相同的实施例,但是其可以是指相同的实施例。本文所图解或描述的任何数据与数据结构仅仅为例子,并且在其它实施例中,可以使用不同数量的数据、数据的类型、字段、字段的数量和类型、字段名、记录的数量和类型、条目、或者数据的组织。此外,任何数据可以与逻辑相结合,使得单独的数据结构是不必的。因此,前面的详细描述不会被认为是限制的意思,并且本发明的范围仅仅由所附权利要求书所限定。 
在前面的描述中,提出了多个具体细节来提供对本发明的透彻了解。但是,没有这些细节也可以实施本发明。在其它实例中,为了不遮蔽本发明,未详细地示出众所周知的电路、结构和技术。 

Claims (7)

1.一种在多个服务器的集群中的接收服务器处执行的方法,包括:
从新服务器接收广播消息,其中所述新服务器将所述广播消息发送给所述多个服务器的集群;
确定所述接收服务器是否在所述集群中的多个服务器中的所有其它服务器之前加入所述集群;以及
如果所述确定为真,则将点到点消息发送给所述新服务器,其中所述点到点消息包括有关所述集群中的多个服务器中的全部服务器的路由选择数据,
其中,所述广播消息包括:包括所述新服务器的标识、有关所述新服务器的资源数据和所述新服务器加入所述集群的时间的记录;并且,所述路由选择数据包括:与所述多个服务器相关的多个记录,其中所述多个记录中的每一个包括相应服务器的标识、由相应服务器提供的资源和相应服务器加入所述集群的时间,其中所述接收服务器基于多个记录中的时间执行所述确定。
2.如权利要求1所述的方法,还包括:
将所述包括所述新服务器的标识、有关所述新服务器的资源数据和所述新服务器加入所述集群的时间的记录添加到所述路由选择数据中。
3.如权利要求1所述的方法,还包括:
如果所述多个服务器中的一个服务器离开所述集群,则将与离开所述集群的所述一个服务器相关的记录从所述路由选择数据中移除。
4.如权利要求1所述的方法,其中所述发送点到点消息还包括:
将所述点到点消息唯一地发送给所述新服务器。
5.如权利要求1所述的方法,还包括:
如果所述确定为假,则将所述包括所述新服务器的标识、有关所述新服务器的资源数据和所述新服务器加入所述集群的时间的记录添加到所述路由选择数据。
6.一种在想要加入服务器集群的新服务器处执行的方法,包括:
将广播消息发送给经由网络连接的所述服务器集群;以及
从第一多个服务器的第一集群的协调服务器接收点到点消息,其中所述协调服务器在所述第一多个服务器中的所有其它服务器之前加入所述第一集群,并且其中,所述点到点消息包括有关所述第一集群中的所述第一多个服务器中的全部服务器的路由选择数据,并且其中,所述新服务器唯一地接收所述点到点消息,
其中,所述广播消息包括:包括所述新服务器的标识、有关所述新服务器的资源数据和所述新服务器加入所述集群的时间的记录;并且,所述路由选择数据包括:与所述多个服务器相关的多个记录,其中所述多个记录中的每一个包括相应服务器的标识、由相应服务器提供的资源和相应服务器加入所述集群的时间,其中所述接收服务器基于多个记录中的时间执行所述确定。
7.如权利要求6所述的方法,还包括:
将所述新服务器的标识和资源数据存储在所述广播消息中,其中所述资源数据描述在所述新服务器处可用的至少一个服务。
CN200680041285.7A 2005-11-17 2006-10-26 基于服务器加入集群的时间发送路由选择数据的方法 Expired - Fee Related CN101300796B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/282,029 2005-11-17
US11/282,029 US20070112963A1 (en) 2005-11-17 2005-11-17 Sending routing data based on times that servers joined a cluster
PCT/EP2006/067819 WO2007057284A1 (en) 2005-11-17 2006-10-26 Sending routing data based on times that servers joined a cluster

Publications (2)

Publication Number Publication Date
CN101300796A CN101300796A (zh) 2008-11-05
CN101300796B true CN101300796B (zh) 2011-05-18

Family

ID=37714486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680041285.7A Expired - Fee Related CN101300796B (zh) 2005-11-17 2006-10-26 基于服务器加入集群的时间发送路由选择数据的方法

Country Status (9)

Country Link
US (1) US20070112963A1 (zh)
EP (1) EP1952589B1 (zh)
JP (1) JP4653225B2 (zh)
CN (1) CN101300796B (zh)
AT (1) ATE445276T1 (zh)
BR (1) BRPI0618776A2 (zh)
DE (1) DE602006009697D1 (zh)
IL (1) IL191329A (zh)
WO (1) WO2007057284A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
EP2582092A3 (en) * 2007-09-26 2013-06-12 Nicira, Inc. Network operating system for managing and securing networks
EP2273727A1 (fr) * 2009-06-25 2011-01-12 France Telecom Procede d'obtention d'une information representative d'une disponibilité d'un réseau de communication, dispositif et programme d'ordinateur correspondant
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
CN101841884B (zh) * 2010-04-30 2012-05-02 北京航空航天大学 一种基于能量的无线传感网络簇头继承分簇方法
CN102404191B (zh) * 2010-09-10 2014-12-24 腾讯科技(深圳)有限公司 路由方法和装置
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US9313641B2 (en) * 2012-09-17 2016-04-12 Qualcomm Incorporated System and method for advertising and communicating within a neighborhood aware network
US9083550B2 (en) * 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
US9344569B2 (en) 2012-12-04 2016-05-17 Genesys Telecommunications Laboratories, Inc. System and method for addition and removal of servers in server cluster
CN103441918A (zh) * 2013-08-29 2013-12-11 哈尔滨工程大学 一种自组织集群服务器***及其自组织方法
CN109286507B (zh) * 2017-07-21 2022-11-11 伊姆西Ip控股有限责任公司 发现方法、计算***以及计算机可读介质
CN113037700B (zh) * 2019-12-25 2024-02-09 拓尔思天行网安信息技术有限责任公司 一种边界视频服务的负载方法、装置、设备及存储介质
US11687376B2 (en) * 2020-06-12 2023-06-27 Baidu Usa Llc Method for data protection in a data processing cluster with dynamic partition
US11019023B1 (en) * 2020-08-13 2021-05-25 Salesforce.Com, Inc. Container orchestration system (COS) services discovery across multiple COS clusters based on COS cluster domain name system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1411214A (zh) * 2002-11-15 2003-04-16 烽火通信科技股份有限公司 基于以太网技术的网络设备管理方法
CN1441569A (zh) * 2002-02-27 2003-09-10 华为技术有限公司 一种网络设备的集群管理方法
WO2005062698A2 (en) * 2003-12-23 2005-07-14 Nokia Inc. System and method for managing protocol network failures in a cluster system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764926A (ja) * 1993-08-25 1995-03-10 Nippon Telegr & Teleph Corp <Ntt> 分散サーバ装置
US5572582A (en) * 1995-02-24 1996-11-05 Apple Computer, Inc. Method and apparatus for establishing communication between two teleconferencing endpoints
US5737328A (en) * 1995-10-04 1998-04-07 Aironet Wireless Communications, Inc. Network communication system with information rerouting capabilities
JPH09114722A (ja) * 1995-10-20 1997-05-02 Nippon Telegr & Teleph Corp <Ntt> 分散システムにおける共有情報管理方法
JP3097525B2 (ja) * 1995-11-10 2000-10-10 株式会社日立製作所 情報フィルタリング処理を行うデータ伝送方法
US5787250A (en) * 1996-04-30 1998-07-28 International Business Machines Corporation Program product for managing membership of a group of processors in a distributed computing environment
US5787249A (en) * 1996-04-30 1998-07-28 International Business Machines Coporation Method for managing membership of a group of processors in a distributed computing environment
US5699501A (en) * 1996-04-30 1997-12-16 International Business Machines Corporation System for group leader recovery in a distributed computing environment
JPH1097482A (ja) * 1996-09-19 1998-04-14 Fuji Electric Co Ltd 計算機システム
US6507863B2 (en) * 1999-01-27 2003-01-14 International Business Machines Corporation Dynamic multicast routing facility for a distributed computing environment
CA2403772C (en) 2000-03-31 2008-12-23 Robert Andrew Shipman Network routing and congestion control
WO2001082678A2 (en) * 2000-05-02 2001-11-08 Sun Microsystems, Inc. Cluster membership monitor
US7617292B2 (en) * 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem
WO2004077280A2 (en) 2003-02-27 2004-09-10 Bea Systems, Inc. System and method for communications between servers in a cluster
US7606187B2 (en) * 2004-10-28 2009-10-20 Meshnetworks, Inc. System and method to support multicast routing in large scale wireless mesh networks
US7729350B2 (en) * 2004-12-30 2010-06-01 Nokia, Inc. Virtual multicast routing for a cluster having state synchronization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441569A (zh) * 2002-02-27 2003-09-10 华为技术有限公司 一种网络设备的集群管理方法
CN1411214A (zh) * 2002-11-15 2003-04-16 烽火通信科技股份有限公司 基于以太网技术的网络设备管理方法
WO2005062698A2 (en) * 2003-12-23 2005-07-14 Nokia Inc. System and method for managing protocol network failures in a cluster system

Also Published As

Publication number Publication date
WO2007057284A1 (en) 2007-05-24
US20070112963A1 (en) 2007-05-17
EP1952589B1 (en) 2009-10-07
JP2009516279A (ja) 2009-04-16
BRPI0618776A2 (pt) 2011-03-15
CN101300796A (zh) 2008-11-05
DE602006009697D1 (de) 2009-11-19
ATE445276T1 (de) 2009-10-15
EP1952589A1 (en) 2008-08-06
JP4653225B2 (ja) 2011-03-16
IL191329A (en) 2013-10-31

Similar Documents

Publication Publication Date Title
CN101300796B (zh) 基于服务器加入集群的时间发送路由选择数据的方法
CN101178722B (zh) 用于选择和显示后代页面的方法和***
JP6122199B2 (ja) 検索結果へのアクセスを改良するシステム、方法及び記憶媒体
JP7017568B2 (ja) デジタルコンテンツ配信におけるレイテンシを削減するためのデジタルコンテンツ配信加速化
AU2008200613B2 (en) Tracking web server
US8903857B2 (en) Provision of targeted content
CN111913818B (zh) 一种确定服务间依赖关系的方法及相关装置
US8239337B2 (en) Network device proximity data import based on weighting factor
KR20040085056A (ko) 데이터베이스 변경 통지의 요청 및 수신 시스템 및 방법
US8826060B2 (en) Correlation of log information in a distributed computing environment using relative timestamps
US9787521B1 (en) Concurrent loading of session-based information
CN101026570A (zh) 基于负载均衡度量实例来选择服务器的方法和***
CN103207882A (zh) 店铺访问数据处理方法及***
US11995572B2 (en) Content recommendation based upon continuity and grouping information of attributes
US11620663B2 (en) Network profile generation
CN1953403A (zh) 用于呈现监控报告的方法和***
US20080046543A1 (en) System and method for automatically obtaining web feed content
CN111262744B (zh) 多媒体信息发送方法、备份服务器及介质
CN112948733B (zh) 接口维护方法、装置、计算设备以及介质
US7454425B2 (en) System and method for assembling timing data in a multi-layer server environment
CN1766918A (zh) 用于资源目录管理的***、方法和设备
JP2000222329A (ja) 情報通信システム、情報提供装置、ユーザ属性情報収集方法及び記録媒体
JP2001256135A (ja) サーバ装置及びwebシステム
CN113296968A (zh) 地址列表更新方法、装置、介质及电子设备
US10375185B2 (en) Website creation from location and communication data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110518

Termination date: 20111026