CN101535978B - 分布式服务器系统中的消息转发备份管理器 - Google Patents
分布式服务器系统中的消息转发备份管理器 Download PDFInfo
- Publication number
- CN101535978B CN101535978B CN2007800418148A CN200780041814A CN101535978B CN 101535978 B CN101535978 B CN 101535978B CN 2007800418148 A CN2007800418148 A CN 2007800418148A CN 200780041814 A CN200780041814 A CN 200780041814A CN 101535978 B CN101535978 B CN 101535978B
- Authority
- CN
- China
- Prior art keywords
- manager
- backup
- distributed server
- main manager
- state
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
分布式服务器系统可以提供主管理器、通信地耦合到该主管理器的一个或多个备份管理器、以及通信地耦合到该一个或多个备份管理器的一个或多个工作者。该一个或多个备份管理器可以接收备份该分布式服务器系统的状态的命令。这些备份管理器可以向该一个或多个通信地耦合的工作者转发工作任务。这些备份管理器还可以聚集从该一个或多个通信地耦合的工作者接收到的响应,并向该主管理器发送所聚集的响应。
Description
背景
分布式服务器系统可以包括向任何数量的通信地耦合的计算机系统分发工作任务的中央服务器。该中央服务器可以是执行典型的服务器类软件应用程序或软件服务的服务器计算机。通信地耦合的计算机系统可以是分立的服务器类计算机系统、个人计算机系统,等等。通信地耦合的计算机系统可以位于同一物理位置或可以分布在由网络连接的不同的物理位置处。
中央服务器所分发的工作任务可以是可以由计算机系统在计算机软件中执行的任何类型的任务、命令、或函数调用。例如,工作任务可以是计算、存储数据的命令等。中央服务器可以使用任何典型的计算机通信方法来向通信地耦合的计算机系统发送工作任务。例如,中央服务器可以使用超文本传输协议(HTTP)、通过HTTP的远程过程调用(RPC)、分布式组件对象模型(DCOM)系统等来发送工作任务。
中央服务器还可以执行管理和/或维护分布式服务器系统的当前“状态”的软件应用程序或软件服务。更具体地,中央服务器可以向该分布式服务器系统外部的实体表示总体分布式服务器系统。因此,寻求关于该分布式服务器系统的状况的信息的外部实体可以与该中央服务器进行通信,且该中央服务器可以用该总体分布式服务器系统的当前状态来响应。通信地耦合的计算机系统也可以维护分布式服务器系统的当前状态;然而,通信地耦合的计算机系统不必这么做,因为当前状态是由中央服务器管理的。另外,中央服务器可以确保通信地耦合的计算机系统各自都相对每一另一通信地耦合的计算机系统处于同一“状态”。
这样的分布式服务器系统所执行的工作任务的量可以与通信地耦合到中央服务器的计算机系统的数量相关。例如,每一通信地耦合的计算机系统都可以具有执行工作任务的固定速率。如果向分布式服务器系统分配的总工作任务超过各通信地耦合的计算机系统能够执行的总量,则该分布式服务器系统可能经受工作任务的总体完成的放缓。可以向该分布式服务器系统添加更多通信地耦合的计算机系统来增加该分布式服务器系统的工作任务容量,并可以减少这种总体工作任务完成放缓。
然而,向该分布式服务器系统添加更多通信地耦合的计算机系统的结果可以是一个或多个通信问题。例如,中央服务器可能能够高效地发送工作任务并接收来自少量通信地耦合的计算机系统的通信。该分布式服务器系统的工作容量可以随增加的每一通信地耦合的计算机系统而增加。因此,中央服务器所执行的通信的量也可能增加。结果,中央服务器可能不能够高效地管理增加的数量的通信,且可以由这样的分布式服务器系统执行的工作任务的总体数量可能有所下降。
这样的分布式服务器系统可以采用被配置成冗余地存储信息的一个或多个备份计算机系统。这种备份计算机系统还可以被称为备份管理器或备份服务器。备份管理器或备份服务器可被配置成使中央服务器还原到可能被冗余地存储的特定“状态”。然而,在向一个或多个备份管理器或服务器传递状态改变时,中央服务器也可以增加所执行的通信总量,再次导致该分布式服务器系统中的通信性能下降。
其中通信地耦合的计算机系统的数量可以增加而不对中央服务器的通信能力产生不利影响的系统可能是有用的。
概述
下面提供本发明的简化概要以便为读者提供基本的理解。本概要不是本发明的详尽概观,并且既不标识本发明的关键/重要元素也不描绘本发明的范围。本概要的唯一目的是以简化形式提供在此公开的一些概念作为稍后提供的更详细描述的序言。
本示例提供用于分布式服务器系统中的消息转发备份管理器的机制和技术。服务器可以是代表其它计算机系统实现并执行软件服务的计算机系统。这种其它计算机系统可被称为客户机、其它服务器等等。服务器可以使用典型的计算机通信网络通信地耦合到其它计算机系统,以便其它计算机系统可以向该服务器传递请求。服务器可以准备并传递对该请求的适当的响应。
分布式服务器可以包括执行一个或多个服务器软件服务的单个计算机系统、通信地耦合到中央服务器的多个计算机系统等等。分布式服务器系统中的主管理器服务器可以通信地耦合到一个或多个其它计算机系统或服务器。主管理器可以接收客户机请求并将全部操作或操作的各部分委托给通信地耦合的计算机系统。通信地耦合的计算机系统可以执行该操作,并作为响应发送指示成功或失败的消息。这种操作和操作的各部分可被称为“工作”。
主管理器还可以维护分布式服务器系统的“状态”。这种状态可以指的是主管理器所管理的信息或软件应用程序的当前状况。例如,中央管理器可以维护分布式服务器系统所存储的数据库的当前状态。
可以指定任何数量的通信地耦合的计算机系统担当备份管理器或备份服务器。主管理器可以向一个或多个这种备份管理器发送冗余地存储与分布式服务器系统的状态相关的信息的指令或信息。主管理器还可以向一个或多个备份管理器发送任何其它信息或数据。在主管理器上的任何状态信息、指令、或数据丢失或破坏的情况下,该状态信息、指令、或数据可以从备份管理器的任一个中恢复。这种备份管理器还可以包括向主管理器通知备份操作成功的可执行指令。
主管理器可以通信地耦合到一个或多个这种备份管理器。这种备份服务器的每一个都可以通信地耦合到一个或多个还被称为“工作者”的工作者计算机系统。主管理器可以向一个或多个备份管理器传递开始关闭与分布式服务器系统的当前“状态”相关联的标识符的操作的命令。该命令还可以包括持久存储或存储分布式服务器系统的当前状态的指令。
一旦每一备份服务器都完成了与该命令相关联的操作,则每一备份服务器都可以向主管理器发回指示成功或失败的消息。主管理器可以等待直到所有备份服务器都已作出响应为止,或在一个或多个备份服务器没有响应的情况下,主管理器可以选择将分配给该无响应的备份服务器的任何工作者重新分配给作出响应的备份服务器。在一替换实施例中,主管理器可以只注意一备份服务器尚未作出响应,并可以等待直到稍后对分配给该无响应的备份服务器的任何工作者进行重新分配。
主管理器随后可以向一个或多个备份管理器的每一个传递广播“工作”的命令。这种“工作”可以是与当前状态标识符所表示的当前任务或操作相关联的任务或操作。备份管理器的每一个随后可以将执行该工作的命令转发到一个或多个通信地耦合的工作者的每一个。在每一工作者完成该任务时,每一工作者可以独立地确定新工作或可以与其它工作者通信来确定需要执行的任何新工作。每一工作者随后可以与其所分配给的备份管理器通信,确认完成了与当前状态标识符相关联的工作,并可以请求新工作。
一个或多个备份管理器的每一个随后可以聚集从一个或多个工作者的每一个接收到的信息。在一个工作者未作出响应的情况下,备份管理器可以向所聚集的信息添加关于该无响应状况的信息。一个或多个备份服务器的每一个随后可以与主管理器通信,来指示当前状态标识符已关闭。一个或多个备份管理器的每一个还可以转发从任何工作者接收到的任何新工作请求。
许多附带特征将随着参考下面的详细描述并结合附图进行理解而得到更好的认识。
附图说明
考虑附图阅读以下详细描述,将更好地理解本说明书,在附图中:
图1是示出常规分布式服务器系统的框图。
图2是示出分布式服务器系统中的示例消息转发备份服务器的框图。
图3示出与关闭一标识符相关联的示例通信,该标识符与图2的分布式服务器系统的状态相关联。
图4示出主管理器处理缓慢的或无响应的备份管理器的示例方法。
图5示出备份管理器处理缓慢的或无响应的工作者的示例方法。
图6示出用于实现所述系统和方法的示例计算机设备。
附图中使用相同的附图标记来指代相同的部分。
详细描述
下面结合附图提供的详细描述旨在作为对本示例的描述,而非表示用于解释或利用本示例的唯一形式。本说明书阐述本示例的功能以及用于构造和操作本示例的步骤序列。然而,相同或等价的功能与序列可由不同的示例来实现。
虽然此处将各示例描述并示出为在分布式服务器系统中的消息转发备份管理器中实现,但是所描述的系统只是作为示例而非限制来提供的。本领域的技术人员将会认识到,本发明的示例适于在各种不同类型的动态片段映射系统中应用。
图1是示出常规分布式服务器系统100的框图。常规分布式服务器系统100可以包括常规中央服务器120、常规备份服务器140、常规备份服务器150、常规服务器160、常规服务器170、和常规服务器180。
在示例常规分布式服务器系统100中,常规备份服务器140和常规备份服务器150的每一个都可以通信地耦合到常规中央服务器120。常规服务器160、常规服务器170、和常规服务器180的每一个也可以通信地耦合到常规中央服务器120。这种常规分布式服务器系统100本质上可以是逻辑的;即,这种通信耦合可以不是物理存在的,而相反,这种通信耦合可以是常规分布式服务器系统100中的参与者之间的通信序列的指示。
常规分布式服务器系统100可以是任何类型的常规分布式服务器体系结构。例如,常规分布式服务器系统100可以是常规分布式数据库服务器系统、常规分布式媒体服务器系统,等等。常规中央服务器120可以是任何类型的被构造为向其它计算机系统提供软件服务的常规服务器计算机系统。常规中央服务器120可以从外部实体接收请求。例如,这样的另一服务器可以是在与常规中央服务器120相同的网络域中执行的万维网服务器、经由因特网通信地耦合的外部客户机,等等。
常规中央服务器120可以向常规服务器160、常规服务器170、和/或常规服务器180的任一个发送执行任务的请求。常规服务器160、常规服务器170、和/或常规服务器180的每一个都可以执行该任务,并向常规中央服务器120作出指示该任务的完成的响应。此外,常规中央服务器120可以向常规备份服务器140和/或常规备份服务器150的任一个发送备份或冗余地存储信息的命令。
可以向常规分布式服务器系统100添加任何数量的常规服务器以增加常规分布式服务器系统100的总体任务执行能力。随着更多的常规服务器通信地耦合到常规中央服务器120,常规中央服务器120发送和接收的通信量可能增加到常规中央服务器120经受通信减缓的点处。
其中可以向分布式服务器系统添加更多的常规服务器而没有相应的通信瓶颈的系统可能是有用的。
图2是示出分布式服务器系统200中的示例消息转发备份服务器的框图。分布式服务器系统200可以包括主管理器210、备份管理器220、备份管理器230、工作者240、工作者250、和工作者260。
在分布式服务器系统200中,主管理器210可以通信地耦合到备份管理器220和备份管理器230的每一个。备份管理器220可以通信地耦合到工作者240和工作者250的每一个。备份管理器230可以通信地耦合到工作者260。这种分布式服务器系统200仅是示例。任何数量的备份管理器都可以通信地耦合到主管理器210。同样,任何数量的工作者都可以通信地耦合到任何数量的备份管理器。例如,备份管理器的数量可以是代理服务器的数量的平方根。这种分布式服务器系统200本质上也可以是逻辑的;即,这种通信耦合可以不是物理存在的,而相反,这种通信耦合可以是分布式服务器系统200中的参与者之间的通信序列的指示。
各通信耦合的每一个都可以使用诸如广域网(WAN)、局域网(LAN)等计算机网络来形成。在一替换示例中,主管理器、备份管理器、和工作者的每一个都可以是在单个计算机系统上执行的软件服务,且各通信耦合的每一个都可以使用包括在诸如微软WindowsTM等操作系统中的软件通信服务来形成。
主管理器210可以是执行服务器类操作系统和相关联的软件服务的服务器计算机系统。主管理器210还可以执行软件服务来生成和管理与分布式服务器系统200的“状态”相关联的一个或多个标识符。这种状态可以指的是主管理器210代表分布式服务器系统200所管理和维护的信息的离散快照或时间表示。即,状态可以表示在给定的时间点处系统中的任何数量的数据、指令等的安排。如此,主管理器210可以分配对应于该状态的标识符,该标识符可以唯一地标识分布式服务器系统200在特定时间点的状态。
主管理器210还可以被配置成管理和分发工作“任务”。工作“任务”可以是可以由计算机系统执行的任何类型的功能。例如,“工作”可以是数字计算、存储数据或其它信息的命令、或任何其它类型的计算机软件功能。主管理器210还可以将工作与状态标识符进行关联。具体地,主管理器210可以将当前状态和当前状态的标识符与已执行的累计工作量视为等同。更具体地,分布式服务器系统200的当前状态可以对应于自从初始化分布式服务器系统200的状态以来所执行的每一分立的“工作”单元的累积和。
主管理器210可以向备份管理器220和备份管理器230的每一个发送持久存储与状态标识符相关联的状态的请求。备份管理器220和备份管理器230的每一个都可以被配置成冗余地存储从主管理器210所接收到的每一状态标识符和与状态标识符相关联的状态。以此方式,一旦主管理器210经受故障使得主管理器210停止操作,则备份管理器220和备份管理器230的任一个都可以替换并承担主管理器210的功能。另外,一旦备份管理器220和备份管理器230的每一个都向主管理器210传达了状态已被持久存储,则主管理器210可以向备份管理器220和备份管理器230的每一个都传递向工作者240、工作者250、和/或工作者260的每一个广播与当前状态标识符相关联的工作的命令。
工作者240、工作者250、和工作者260的每一个都可以是能够执行与从备份管理器220和/或备份管理器230的任一个接收到的工作任务相关联的功能的计算机系统。此外,工作者240、工作者250、和工作者260的每一个也可以是通信地耦合的,且可能能够彼此共享信息、数据等。一旦工作者240、工作者250、和工作者260的每一个完成了其所分配的工作任务,则其各自都可以将该信息传递回备份管理器220或备份管理器230的任一个。
备份管理器220和备份管理器230的每一个都可以聚集从工作者240、工作者250、或工作者260的任一个接收到的响应。备份管理器220和备份管理器230的每一个随后可以将所聚集的响应发回主管理器210。在工作者240、工作者250、工作者260的任一个响应缓慢或未能响应的情况下,备份管理器220或备份管理器230的每一个都可以将指示响应缓慢的或故障的工作者的身份的信息包括在所聚集的响应中。
如前所述,备份管理器220和备份管理器230的每一个都可以备份或冗余地存储分布式服务器系统200的状态,并且在任何时刻都可以承担主管理器210的角色。因此,分布式服务器系统200的配置可以是动态的,且通信耦合可以改变以反映分布式服务器系统200中包括的缓慢的或故障的管理器或工作者。即,主管理器210与备份管理器220和备份管理器230之间的通信耦合可被重新配置,以使得备份管理器220和备份管理器230的任一个都可以承担主管理器210的功能职责。
如前所述,主管理器210可以检查响应的集合体并确定工作者是缓慢的或无响应的。主管理器210随后可以通知对应的备份管理器从分布式服务器系统200中移除响应缓慢的或故障的工作者。主管理器200随后可以向其余工作者的每一个发出执行分配给缓慢的或故障的工作者的工作的新广播消息,以使得可以完成与一状态相关联的所有工作。
所述功能可以在任何数量的服务器计算机系统上实现。例如,一个计算机系统可以执行与中央管理器、备份管理器、工作者、或其任何组合相关的软件服务。图3的功能示出与关闭一标识符相关联的示例通信,该标识符与图2的主管理器210的状态相关联。
图2的主管理器可以向图2的备份管理器220或图2的备份管理器230的任一个发送命令310。这种命令可以包括开始关闭与参考图2所述的状态标识符相关联的状态的指令。这种命令还可以包括持久存储与当前状态标识符相关联的状态的命令。
备份管理器220和备份管理器230的每一个随后可以应主管理器210的请求来持久存储该状态。一旦备份管理器220和备份管理器230的每一个都持久存储了与当前状态标识符相关联的状态,则备份管理器220和备份管理器230的每一个都可以发送指示与当前状态标识符相关联的状态已被持久存储的响应320。主管理器210在继续进行之前可以等待从备份管理器的每一个接收到所有响应。
主管理器210随后可以向备份管理器220和备份管理器230的每一个发送命令330,该命令指示备份管理器220和备份管理器230的每一个现在可以向每一工作者广播对应于与状态标识符相关联的状态的工作。备份管理器220和备份管理器230的每一个随后可以向图2的工作者240、图2的工作者250、和图2的工作者260的每一个发送命令340,该命令是要关闭与当前状态标识符相关联的状态并执行分配给该工作者的与当前状态标识符相关联的工作。发送给每一工作者的命令340可以是相同的且每一工作者都可以忽略作为命令340的一部分所发送的工作的任何非分配的部分。在一替换实现中,命令340可以是对每一工作者单独地生成的,且可以只包括分配给命令340所发往的工作者的工作。
一旦工作者240、工作者250、和工作者260的每一个都完成了工作,则其每一个都可以本地地关闭与当前状态标识符相关联的状态。工作者240、工作者250、和工作者260的每一个随后可以确定要执行的任何附加工作。这一确定可以在工作者240、工作者250、和工作者260的每一个彼此通信时做出。在一替换实现中,工作者240、工作者250、和工作者260的每一个都可以独立地检查与当前状态标识符相关联的状态,并确定要执行的任何附加工作。工作者240、工作者250、和工作者260的每一个都可以向其所分配的备份管理器(或者是备份管理器220或者是备份管理器230)发送消息350,指示工作者240、工作者250、和工作者260的每一个都已关闭了与当前状态标识符相关联的状态。这种消息还可以包括对要执行任何附加新工作的请求。
备份管理器220和备份管理器230的每一个随后可以向主管理器210发送消息360,指示与当前状态标识符相关联的状态已被关闭。同样,消息360可以包括从工作者接收到的要执行的任何新工作。
图4示出主管理器处理缓慢或无响应备份管理器的示例方法400。这种主管理器可以是图2的主管理器210。
框410可以指的是其中向一个或多个备份管理器发送关闭与当前状态标识符相关联的状态的命令的操作。这种备份管理器可以是图2的备份管理器220和图2的备份管理器230。这种关闭当前状态标识符命令可以是图3的命令310或图3的命令330。
框420可以指的是确定在预定时间间隔内是否接收到响应的操作。这种时间间隔可以是任何长度。另选地,这种时间间隔可以与分布式服务器系统的预期总体性能级别相关联。响应于肯定判定,流程继续至框430。响应于否定判定,流程继续至框440。
框430可以指的是其中主管理器的正常操作继续的操作。正常操作可以指的是根据主管理器的运作执行的任何操作。
框440可以指的是确定是否已经接收到最少数量的响应的操作。该最少数量可以基于任何信息来确定,该信息包括分布式服务器系统中包括的备份管理器的总体数量、连接到备份管理器的工作者的数量等等。响应于肯定判定,流程继续至框450。响应于否定判定,流程继续至框460。
框450可以指的是其中绕过缓慢的或无响应的备份管理器的操作。这种绕过可以通过将分配给缓慢的或无响应的备份管理器的任何工作者临时地重新分配给作出响应的备份管理器来执行。
框460可以指的是其中确定备份管理器的数量过低而不能确保分布式数据库系统内的预定性能级别或其数量过低而使分布式数据库系统不能正确运作的操作。该操作还可以包括其中等待预定一段时间的操作。如果在等待时间内没有附加备份管理器作出响应,则分布式数据库系统可以停止运作直到添加了附加的作出响应的备份管理器时为止。流程可以继续回到420。
图5示出备份管理器处理缓慢或无响应的工作者的示例方法500。这种备份管理器可以是图2的备份管理器220或图2的备份管理器230。这种工作者可以是备份管理器230。框510可以指的是其中向一个或多个工作者发送执行与一状态相对应的工作的命令的操作。在一替换实施例中,发送指示工作者应当关闭与当前状态标识符相关联的状态的命令。然而,该操作可以包括可要求来自工作者的响应的任何命令。
框520指的是确定在框510向其发送命令的每一工作者是否在预定时间间隔内作出响应的操作。这种时间间隔可以是任何时间间隔,且可以与分布式服务器系统所关联的总体性能级别相关联。响应于肯定判定,流程继续至框530。响应于否定判定,流程继续至框540。
框530可以指的是其中备份管理器将所有工作者的响应聚集在单个消息中并将所聚集的消息发送给中央管理器的操作。
框540可以指的是其中备份管理器将所有工作者的响应聚集在单个消息中并将该聚集的消息发送给中央服务器的操作。所聚集的消息可以包括指示在框520所标识的任何缓慢的或不运作的工作者的身份的信息。
图6示出用于实现诸如前述服务器计算机系统或客户机计算机系统的任一个等所述系统、方法、和软件服务的示例计算机设备600。在其最基本的配置中,计算设备600一般包括至少一个中央处理单元(CPU)605和存储器610。
取决于计算设备的确切配置和类型,存储器610可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。另外,计算设备600还可具有附加的特征/功能。例如,计算设备600可包括多个CPU。所述方法可由计算设备600中的任何处理单元以任何方式来执行。例如,所述过程可由多个CPU并行执行。
计算设备600还可包括另外的存储(可移动和/或不可移动),其包括但不限于磁盘、光盘或磁带。这样的附加存储在图6中由存储615示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器610和存储615都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并且可由计算设备600访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备600的一部分。
计算设备600还可包含允许该设备与其它设备通信的通信设备640。通信设备640是通信介质的一个示例。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。如此处所用的术语计算机可读介质或设备可读介质既包括计算机存储介质又包括通信介质。所述方法可用诸如数据、计算机可执行指令等任何形式编码在任何计算机可读介质中。
计算设备600也可以具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入设备635。也可以包括诸如显示器、扬声器、打印机等的输出设备630。所有这些设备在本领域是公知的,因此不必在此详细讨论。
本领域的技术人员将认识到用于存储程序指令的存储设备可分布在网络上。例如,远程计算机可存储描述为软件的该过程的示例。本地或终端计算机可访问远程计算机并下载该软件的一部分或全部以运行该程序。可替换地,本地计算机可按需下载软件的片断,或者通过在本地终端上执行一些软件指令而在远程计算机(或计算机网络)上执行一些软件指令来分布式地处理。本领域的技术人员将认识到,通过使用本领域技术人员已知的常规技术,软件指令的全部或部分可由专用电路,如DSP、可编程逻辑阵列等来执行。
Claims (20)
1.一种分布式服务器计算机系统,包括:
主管理器,用于提供分布式服务器管理软件服务,其中所述主管理器执行软件服务来生成并管理与所述分布式服务器计算机系统的状态关联的一个或多个标识符,其中所述分布式服务器计算机系统的当前状态对应于自从初始化所述分布式式服务器计算机系统的状态以来所执行的每一分立的工作单元的累积和;
通信地耦合到所述主管理器的一个或多个备份管理器,用于应所述主管理器的请求而备份信息并响应于从所述主管理器接收到的请求来转发至少一个请求,其中基于来自所述主管理器的持久存储与状态标识符关联的状态的请求,所述备份管理器能够冗余地存储从所述主管理器接收的每一状态标识符以及与状态标识符关联的状态,并且所述备份管理器能在所述主管理器经受故障而使得所述主管理器停止操作的情况下替换并承担所述主管理器的功能;以及
通信地耦合到所述一个或多个备份管理器的一个或多个工作者,用于接收所述一个或多个备份管理器从所述主管理器转发的至少一个请求。
2.如权利要求1所述的分布式服务器计算机系统,其特征在于,所述一个或多个备份管理器还用于从所述一个或多个工作者接收响应。
3.如权利要求1所述的分布式服务器计算机系统,其特征在于,所述一个或多个备份管理器还用于聚集从所述一个或多个工作者接收到的每一响应。
4.如权利要求1所述的分布式服务器计算机系统,其特征在于,所述一个或多个备份管理器还用于聚集从所述一个或多个工作者接收到的每一响应,并且还用于在所述一个或多个工作者中的一个工作者未作出响应的情况下,用关于所述一个或多个工作者中的该工作者的连接状况的信息取代响应。
5.如权利要求1所述的分布式服务器计算机系统,其特征在于,所述主管理器和所述一个或多个备份管理器在一个物理计算机系统上执行。
6.如权利要求1所述的分布式服务器计算机系统,其特征在于,所述主管理器和所述一个或多个工作者在一个物理计算机系统上执行。
7.如权利要求1所述的分布式服务器计算机系统,其特征在于,所述主管理器还用于在所述一个或多个工作者中的任一工作者被分配给所述一个或多个备份管理器中的无响应的备份管理器的情况下,将所述一个或多个工作者中的该任一工作者重新分配给所述一个或多个备份管理器中的作出响应的备份管理器。
8.如权利要求1所述的分布式服务器计算机系统,其特征在于,所述主管理器还用于将分配给所述一个或多个工作者中的无响应的工作者的工作重新分配给所述一个或多个工作者中的作出响应的工作者。
9.一种供分布式服务器系统中的备份管理器执行的方法,包括:
从主管理器接收开始关闭与所述分布式服务器系统的状态相关联的标识符的请求;
向所述主管理器发送指示对应于所述标识符的状态已被关闭的响应;
从所述主管理器接收广播与所述标识符相关联的任务的请求;以及
向一个或多个工作者广播与所述标识符相关联的任务;
其中基于来自所述主管理器的持久存储与状态标识符关联的状态的请求,所述备份管理器能够冗余地存储从所述主管理器接收的与所述分布式服务器系统的状态相关联的标识符以及状态,并且所述备份管理器能在所述主管理器经受故障而使得所述主管理器停止操作的情况下替换并承担所述主管理器的功能,其中所述主管理器执行软件服务以生成并管理与所述分布式服务器系统的状态相关联的标识符。
10.如权利要求9所述的方法,其特征在于,还包括持久存储所述分布式服务器系统的状态。
11.如权利要求9所述的方法,其特征在于,还包括从所述一个或多个工作者接收指示工作已被执行的响应。
12.如权利要求9所述的方法,其特征在于,还包括聚集来自所述一个或多个工作者的响应。
13.如权利要求9所述的方法,其特征在于,向所述一个或多个工作者广播与所述标识符相关联的任务还包括关闭与所述分布式服务器系统的状态相关联的标识符的请求。
14.如权利要求9所述的方法,其特征在于,还包括从所述一个或多个工作者接收包括要执行的新工作的响应。
15.如权利要求9所述的方法,其特征在于,还包括向所述主管理器发送指示与所述分布式服务器系统相关联的标识符已被关闭的响应。
16.如权利要求9所述的方法,其特征在于,还包括向所述主管理器发送包括从所述一个或多个工作者接收到的一个或多个新工作请求的响应。
17.一种供分布式服务器系统中的主管理器执行的方法,包括:
向一个或多个备份管理器发送关闭与分布式服务器系统的状态相关联的标识符的命令;
等待第一预定时间间隔以从所述一个或多个备份管理器的每一个接收响应;
确定作出响应的备份管理器的数量大于预定数量;以及
将分配给未作出响应的一个或多个备份管理器的一个或多个工作者重新分配给作出响应的一个或多个备份管理器;
其中基于来自所述主管理器的持久存储与状态标识符关联的状态的请求,所述备份管理器能够冗余地存储从所述主管理器接收的与所述分布式服务器系统的状态相关联的标识符以及状态,并且所述备份管理器能在所述主管理器经受故障而使得所述主管理器停止操作的情况下替换并承担所述主管理器的功能,其中所述主管理器执行软件服务以生成并管理与所述分布式服务器系统的状态相关联的标识符。
18.如权利要求17所述的方法,其特征在于,还包括等待第二预定时间间隔供未作出响应的所述一个或多个备份管理器来作出响应。
19.如权利要求17所述的方法,其特征在于,还包括从所述一个或多个备份管理器接收关于所述一个或多个工作者的响应性的信息。
20.如权利要求17所述的方法,其特征在于,所述备份管理器向所述一个或多个工作者转发关闭与所述分布式服务器系统的状态相关联的标识符的命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/558,887 | 2006-11-10 | ||
US11/558,887 US7685227B2 (en) | 2006-11-10 | 2006-11-10 | Message forwarding backup manager in a distributed server system |
PCT/US2007/077114 WO2008057649A1 (en) | 2006-11-10 | 2007-08-29 | Message forwarding backup manager in a distributed server system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101535978A CN101535978A (zh) | 2009-09-16 |
CN101535978B true CN101535978B (zh) | 2011-04-06 |
Family
ID=39364835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800418148A Active CN101535978B (zh) | 2006-11-10 | 2007-08-29 | 分布式服务器系统中的消息转发备份管理器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7685227B2 (zh) |
EP (1) | EP2092432B1 (zh) |
JP (2) | JP2010509677A (zh) |
KR (1) | KR20090085058A (zh) |
CN (1) | CN101535978B (zh) |
TW (1) | TWI375155B (zh) |
WO (1) | WO2008057649A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008104437A1 (en) * | 2007-02-28 | 2008-09-04 | International Business Machines Corporation | A method for resolving a unit of work |
US8769223B2 (en) * | 2008-03-31 | 2014-07-01 | Symantec Corporation | System and method for setting an activation state for a device used in a backup operation |
US8050191B2 (en) | 2009-05-26 | 2011-11-01 | Motorola Mobility, Inc. | Distributed information storage and retrieval of communication network performance data |
US8533299B2 (en) | 2010-04-19 | 2013-09-10 | Microsoft Corporation | Locator table and client library for datacenters |
US9170892B2 (en) | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US9813529B2 (en) | 2011-04-28 | 2017-11-07 | Microsoft Technology Licensing, Llc | Effective circuits in packet-switched networks |
US9454441B2 (en) | 2010-04-19 | 2016-09-27 | Microsoft Technology Licensing, Llc | Data layout for recovery and durability |
US8996611B2 (en) * | 2011-01-31 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel serialization of request processing |
KR101491484B1 (ko) * | 2010-06-18 | 2015-02-10 | 엘에스아이 코포레이션 | 스케일러블 스토리지 디바이스들 |
US8843502B2 (en) | 2011-06-24 | 2014-09-23 | Microsoft Corporation | Sorting a dataset of incrementally received data |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
CN102662793A (zh) * | 2012-03-07 | 2012-09-12 | 江苏引跑网络科技有限公司 | 一种可保证数据一致性的分布式数据库热备份与恢复方法 |
US9778856B2 (en) | 2012-08-30 | 2017-10-03 | Microsoft Technology Licensing, Llc | Block-level access to parallel storage |
JP2014063414A (ja) * | 2012-09-24 | 2014-04-10 | Toshiba Corp | 制御システム |
US9621412B2 (en) | 2012-12-27 | 2017-04-11 | Telecom Italia S.P.A. | Method for guaranteeing service continuity in a telecommunication network and system thereof |
US11422907B2 (en) | 2013-08-19 | 2022-08-23 | Microsoft Technology Licensing, Llc | Disconnected operation for systems utilizing cloud storage |
US9256489B2 (en) * | 2013-10-30 | 2016-02-09 | International Business Machines Corporation | Synchronized debug information generation |
US10594784B2 (en) | 2013-11-11 | 2020-03-17 | Microsoft Technology Licensing, Llc | Geo-distributed disaster recovery for interactive cloud applications |
US9798631B2 (en) | 2014-02-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Block storage by decoupling ordering from durability |
TWI626547B (zh) * | 2014-03-03 | 2018-06-11 | 國立清華大學 | 於分散式資料庫中將系統狀態一致地還原至欲還原時間點之方法及系統 |
US9442803B2 (en) * | 2014-06-24 | 2016-09-13 | International Business Machines Corporation | Method and system of distributed backup for computer devices in a network |
US9459933B1 (en) | 2015-01-30 | 2016-10-04 | Amazon Technologies, Inc. | Contention and selection of controlling work coordinator in a distributed computing environment |
EP3099027B1 (en) | 2015-05-26 | 2017-09-13 | Urban Software Institute GmbH | Computer system and method for message routing with content and reference passing |
CN105005518B (zh) * | 2015-08-24 | 2018-12-04 | 上海天旦网络科技发展有限公司 | 自动聚合冗余系统交易数据的系统及其处理器和方法 |
US10866757B2 (en) * | 2018-09-26 | 2020-12-15 | EMC IP Holding Company LLC | System and method for providing backup services to high availability applications |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748447B1 (en) * | 2000-04-07 | 2004-06-08 | Network Appliance, Inc. | Method and apparatus for scalable distribution of information in a distributed network |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4868818A (en) * | 1987-10-29 | 1989-09-19 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Fault tolerant hypercube computer system architecture |
JPH0721135A (ja) * | 1993-07-02 | 1995-01-24 | Fujitsu Ltd | 二重化監視機能を持つデータ処理システム |
JPH07306794A (ja) * | 1994-05-12 | 1995-11-21 | Mitsubishi Electric Corp | 分散システム及び分散システムの高信頼化方法 |
JPH10207847A (ja) * | 1997-01-27 | 1998-08-07 | Hitachi Ltd | 分散システムにおける自動負荷分散方式 |
US5987453A (en) * | 1997-04-07 | 1999-11-16 | Informix Software, Inc. | Method and apparatus for performing a join query in a database system |
US6026414A (en) * | 1998-03-05 | 2000-02-15 | International Business Machines Corporation | System including a proxy client to backup files in a distributed computing environment |
US6360330B1 (en) * | 1998-03-31 | 2002-03-19 | Emc Corporation | System and method for backing up data stored in multiple mirrors on a mass storage subsystem under control of a backup server |
JPH11353202A (ja) | 1998-06-10 | 1999-12-24 | Ntt Mobil Commun Network Inc | 分散データ処理システム |
US6053699A (en) * | 1998-07-27 | 2000-04-25 | General Electric Company | Steam turbine having a brush seal assembly |
US6704278B1 (en) * | 1999-07-02 | 2004-03-09 | Cisco Technology, Inc. | Stateful failover of service managers |
US6496949B1 (en) * | 1999-08-06 | 2002-12-17 | International Business Machines Corp. | Emergency backup system, method and program product therefor |
US20020019844A1 (en) * | 2000-07-06 | 2002-02-14 | Kurowski Scott J. | Method and system for network-distributed computing |
JP2002026950A (ja) * | 2000-07-07 | 2002-01-25 | Nippon Telegr & Teleph Corp <Ntt> | サーバツリー構造の構築方法及びシステム、サーバ並びに記録媒体 |
US7562110B2 (en) | 2001-01-11 | 2009-07-14 | F5 Networks, Inc. | File switch and switched file system |
US7414989B2 (en) * | 2003-05-07 | 2008-08-19 | Motorola, Inc. | ACK/NACK determination reliability for a communication device |
CN1292346C (zh) * | 2003-09-12 | 2006-12-27 | 国际商业机器公司 | 用于在分布式计算体系结构中执行作业的系统和方法 |
GB0410150D0 (en) * | 2004-05-07 | 2004-06-09 | Ibm | Methods,apparatus and computer programs for recovery from failures in a computing environment |
US20060143517A1 (en) * | 2004-12-22 | 2006-06-29 | Microsoft Corporation | Replicated virtual machine |
JP2008003907A (ja) * | 2006-06-23 | 2008-01-10 | Hitachi Ltd | 情報処理振分制御方法およびそのコンピュータ |
-
2006
- 2006-11-10 US US11/558,887 patent/US7685227B2/en active Active
-
2007
- 2007-08-29 JP JP2009536366A patent/JP2010509677A/ja active Pending
- 2007-08-29 CN CN2007800418148A patent/CN101535978B/zh active Active
- 2007-08-29 EP EP07841548.6A patent/EP2092432B1/en not_active Not-in-force
- 2007-08-29 KR KR1020097009826A patent/KR20090085058A/ko not_active Application Discontinuation
- 2007-08-29 WO PCT/US2007/077114 patent/WO2008057649A1/en active Application Filing
- 2007-09-17 TW TW096134729A patent/TWI375155B/zh not_active IP Right Cessation
-
2013
- 2013-07-29 JP JP2013156995A patent/JP5624655B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748447B1 (en) * | 2000-04-07 | 2004-06-08 | Network Appliance, Inc. | Method and apparatus for scalable distribution of information in a distributed network |
Also Published As
Publication number | Publication date |
---|---|
KR20090085058A (ko) | 2009-08-06 |
TW200823682A (en) | 2008-06-01 |
TWI375155B (en) | 2012-10-21 |
CN101535978A (zh) | 2009-09-16 |
EP2092432A4 (en) | 2015-06-03 |
JP5624655B2 (ja) | 2014-11-12 |
JP2013257893A (ja) | 2013-12-26 |
EP2092432B1 (en) | 2018-06-27 |
WO2008057649A1 (en) | 2008-05-15 |
US20080114827A1 (en) | 2008-05-15 |
JP2010509677A (ja) | 2010-03-25 |
EP2092432A1 (en) | 2009-08-26 |
US7685227B2 (en) | 2010-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101535978B (zh) | 分布式服务器系统中的消息转发备份管理器 | |
KR101916847B1 (ko) | 크로스-클라우드식 관리 및 고장수리 기법 | |
JP6353924B2 (ja) | ブロックベースストレージに対するデータボリュームの耐久性状態の低減 | |
CN101689161B (zh) | 自动管理计算机网络中的系统停机时间 | |
JP4374378B2 (ja) | 運用実績評価装置、運用実績評価方法、およびプログラム | |
CN101981591B (zh) | 将命令表面与多个活动组件进行关联的方法和系统 | |
CN101090356B (zh) | 使能对远程存储装置的访问的方法和系统 | |
US11507417B2 (en) | Job scheduling based on job execution history | |
US8019812B2 (en) | Extensible and programmable multi-tenant service architecture | |
CN105027108B (zh) | 实例主机配置 | |
JP5547478B2 (ja) | クライアント・デバイスのリモート・データ・ストレージを行うシステム、方法およびプログラム | |
US8683587B2 (en) | Non-intrusive monitoring of services in a services-oriented architecture | |
CN101689167A (zh) | 在分布式系统中逐步实现声明性模型 | |
CN1987804A (zh) | 并行计算系统中的冗余保护的方法和系统 | |
CN101689169A (zh) | 分布式操作系统中外部硬件装置的管理 | |
CN104246743A (zh) | 涉及在网络上虚拟机主机隔离的系统和方法 | |
US11178197B2 (en) | Idempotent processing of data streams | |
CN101467132B (zh) | 用于在通信网络中分配数据处理单元的方法和系统 | |
CN104935616A (zh) | 一种数据处理方法、设备和esb系统 | |
CN102036188B (zh) | 多节点系统下的邮件代理方法、设备和系统 | |
CN102197390A (zh) | 通过实现和绑定合约向客户机服务提供功能 | |
CN102150397B (zh) | 在共享托管环境中对对应于主机名的请求作出响应的方法以及托管多个主机名的方法 | |
KR100989490B1 (ko) | 각 서버간 부하 분산 시스템 및 그 방법 | |
JP2008250427A (ja) | 情報処理システムに用いられるバージョンアップ装置及び該装置を備えた情報処理システム並びに情報処理システムをバージョンアップするためのプログラム | |
JP4224037B2 (ja) | サービス提供方法、及びデータ処理装置 |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150512 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150512 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |