故障切换系统及方法

文档序号:9635407阅读:748来源:国知局
故障切换系统及方法
【技术领域】
[0001] 本发明设及计算机及网络体系结构,特别设及一种故障切换系统及方法。
【背景技术】
[0002] 社会越来越多地依赖于计算机和网络来进行互动及贸易。为实现在关键系统中的 高水平的可用性要求,应尽量减小由软件及硬件缺陷引起的意外故障时间。
[0003] 金融服务业是一种系统可用性要求高的行业,但其仅为一种产业的一个例子。的 确,在现今的金融业,大量的数据处理活动由计算机系统支持。特别有趣的是,所谓的"实 时"及"近实时"的联机事务处理应用程序,其为典型地长时间高速地和低延时地处理大量 应用的交易事务。运些应用程序一般显示出W下特征:(1)复杂且高速的数据处理,(2)可 靠的非易失性数据存储,W及(3)高水平的可用性,例如,支持在大体上不间断的基础上服 务的能力。当实施时,由于它们在系统行为上存在相互矛盾的影响,现有的应用程序倾向于 在运些性能要求之间进行折衷,且没有设计可W同时地完全满足全部=个特征,如下面更 详细的概述。
[0004] 首先,复杂的数据处理是指及时执行大量的计算、数据库恢复/更新等的能力。运 可W通过并行处理实施,运里多个工作单元可W在相同的物理机器或在分布式网络上同时 执行。在一些系统中,每个事务的结果取决于在先已完成的事务的结果。运些系统的运种 并行方面在本质上是不确定的:归因于竞态条件、操作系统调度任务或者可变的网络延迟, 不能预测的消息及线程执行顺序,也不能简单地通过将输入消息的副本传递给一复制的系 统中来对其进行并行处理。不确定的系统具有不同的输出。因此,抱有一旦另一计算机故 障具有一替换的目的,在两个不同的计算机上并行运行两个进程,不确定的系统呈现出严 峻的挑战。
[0005] 其次,可靠的非易失性数据存储是指持续地存储所处理的数据的能力,即使大量 的系统软件或硬件组件遇到意外的故障。当访问或修改共享数据时,其通常可W通过使用 原子性的(Atomic)、一致性的(Consistent)、隔离性的(Isolated)和持久性的值urable) ("ACID")事务来实现。一旦工作单元完成,ACID事务可W确保数据的完整性和持续性。 每个提交的ACID事务被写入非易失性计算机内存(硬盘),运帮助确保数据的持久性,但其 在性能方面有很大的损失,且通常拖慢整个系统。
[0006] 第S,高度可用的系统试图确保一给定的计算机系统的可用性的百分比尽可能接 近该时间的100%。运种可用性可W通过冗余的软件和/或硬件实施,其接管了组件故障检 测的功能。为了成功,故障切换不仅复制数据,也复制进程状态。如本领域技术人员将领会 的,在不确定的系统中(例如系统内相同事件集合的计算处理可能具有一个W上的结果, 其取决于其中运些事件的处理顺序),状态复制将尤为具有挑战性。
[0007] 高度可用的软件应用程序通常部署在冗余环境中,W减少和/或消除通常与底层 硬件关联的单点故障。两种常见的方法通常被认为是一种高度可用性的形式,被称为热故 障切换和溫和故障切换。热故障切换设及是指在多个系统中同时处理相同的输入,本质上 在运些系统中的其中一个发生故障的情况下提供完全冗余。溫和故障切换设及是指复制应 用程序(例如数据)的状态于备用系统中,而不处理在备用系统中的数据,但具有能够加载 数据处理的引用程序的能力及在主系统故障时支持的能力。冷故障切换并不认为是许多高 度可用性的形式,其为另一种故障切换类型,是指简单地提升备用系统及准备该备用系统 W承担自主系统的处理责任。
[0008] 在热故障切换配置中,两个应用程序的实例同时运行在两个不同的硬件设备上, 处理相同的输入副本。如果其中一个设备遇到一个关键的故障,一补充同步系统可W确保 另一个继续支持工作负载。在溫和故障切换配置中,一个系统设计为主系统,其运行应用程 序;一旦故障,第二个系统,处于备用状态等待的指定的备份系统,将"被唤醒"、接管、及重 新恢复该功能。
[0009] 现有技术的热故障切换办法具有至少两个缺点。第一,补充软件必须运行,W保持 两个系统同步。在运种不确定系统的情况下,运种同步运行在性能及复杂性方面可能会导 致无法接受的(或其他不良的)下降,运里事件的到达顺序必须保证是完全相同的。另外, 现有技术的用于运些应用的并行系统通常允许多线程同步执行,因此它们有固有的不确定 性。不确定性还为系统的服务器及客户在地理上分散,运里可变网络延迟了提供消息至一 不可预知序列中的服务器。
[0010] 溫和故障切换可W用于克服与热故障切换相关联的若干问题。通过复制系统数据 至冗余的备用系统并且随后恢复应用功能至辅助系统,溫和故障切换可W为另一种方式W 实施不确定系统的故障切换。运种途径具有其缺点,在时间上需要恢复数据至一致状态,然 后将该应用恢复至功能状态,最后,返回该应用至进程中中断的点。运个过程正常花费数个 小时,需要人工干预,且一般不能恢复正在进行的事务。
[0011] 一些专利尝试解决至少一些前述的问题。专利号为5305200的美国专利提出了一 种用于在谈判达成的交易场景中买方/卖方和经销商(报价商)之间通信的不可抵赖机 审IJ。提供冗余来确保不可抵赖机制在故障事件中起作用。其并未解决不确定性环境中的在 线事务处理程序的故障切换。简单地说,专利号为5305200的美国专利旨在提供一种明确 的答案给该问题:在遇到一次网络故障后,"指令发送了吗,或者没有发送?"。
[0012] 专利号为5381545的美国专利提出了一种用于备份存储的数据(在数据库中)的 技术,而仍对数据进行更新。专利号为5987432的美国专利提出了为了汇编地理分布在全 球范围的金融市场数据的容错市场数据股票设备系统。运是一个确定的环境,且该解决方 案集中于给消费者提供非中断的单向数据流。专利号为6154847的美国专利提供了一种改 进的方法,该方法通过传统的非易失存储器中的事务日志结合在易失性存储器中的事务列 表来重新运行事务。专利号为6199055的美国专利提出了一种在一系统及一便携式处理器 之间穿过无担保的通信链路进行分布式事务的方法。专利号为6199055的美国专利处理了 认证,确保用远端设备完成事务,且在遇到故障时复位远端设备。一般地,前述事项并未解 决在不确定性环境中的在线事务处理应用的故障切换。
[0013] 专利号为6202149的美国专利提出了一种用于自动重新分配任务来减少计算机 运行中断的影响的方法及设备。该设备至少包括一个冗余组,由一个或多个计算机系统组 成,其反过来为自身包含一个或多个计算分区。该分区包括数据库机制的副本,其在每个计 算系统分区复制。该冗余组监控计算系统的状态及计算系统分区,并分配任务至基于计算 系统的监测状态的计算系统。专利号为6202149的美国专利的一个问题为,其并未教导在 备用系统承担处理事务责任时如何恢复工作流,而是指示其用于整个数据库的复制,运可 能使系统低效和/或减慢。进一步地,运种复制可能导致在运行中重要的事务信息丢失,特 别是在主系统的故障期间或网络连接主系统及备用系统期间,因此导致了在主系统和备用 系统间的不一致状态。一般地,专利号为6202149的美国专利在期望处理在线事务及类似 问题中缺乏必要特征,特别缺乏不确定系统的故障转换时需要的特征。
[0014] 专利号为6308287的美国专利提出了一种可靠地检测一组事务的故障、退出故 障、存储一故障显示器的方法,W便在系统故障后故障是可恢复的,然后使该故障显示器可 用于进一步的事务。其并未解决在不确定环境中的事务处理应用的故障切换。
[0015] 专利号为6574750的美国专利提出了一种分布式的、复制的对象的系统,其中对 象是不确定的。其提出了一种在复制对象的故障事件中保持一致性及限制恢复的方法。一 种方法描述为一个对象接收进来的客户端请求,并将该请求的ID与预先由该对象的副本 处理过的全部请求的记录进行比较。如果找到一个匹配,则将相关联的应答返回至客户 端。然而,运个方法在封闭状态下并不足W解决现有技术中的各种问题。另一问题是专利 号为6575750的美国专利的方法采取了同步调用链,其不适合于高效能的在线事务处理 ("化TP")应用程序。随着同步调度,客户端在继续前等待应答或暂停。被调用的对象反 过来成为另一对象的客户端,传播同步调用链。该结果可能为大量的同步操作,阻塞客户端 处理,且需要长时间暂停W在初始客户端进行配置。

【发明内容】

[0016] 依据本说明书的一个方面,运里提供了一种用于故障切换的系统。该系统包括配 置为与客户端设备通信的主服务器。此外,该系统包括一与所述主服务器通信的备用服务 器。所述备用服务器配置为在故障切换期间与所述客户端设备通信。所述主服务器包括配 置为接收来自所述客户端设备的输入消息的主会话管理器。所述主服务器进一步包括配置 为执行外部调用W获取一序列号的主调度器。所述主调度器进一步配置为调度所述输入消 息、外部调用的结果及所述序列号至关联的主交易引擎组件(对于其他指令处理应用程序 一般地也被称为主引擎组件)。所述主调度器进一步配置为调度所述输入消息、外部调用的 结果及所述序列号至所述备用服务器。所述主服务器也包括一具有复数个主交易引擎组件 的主交易引擎(对于其他应用也被称为一指令处理引擎)。所述主交易引擎配置为处理所 述输入消息W生成一主输出消息。每个主交易引擎组件配置为处理一个输入消息类型。进 一步地,所述主服务器包括一配置为接收所述主输出消息的主验证引擎。所述主验证引擎 进一步配置为发送一验证消息至所述备用服务器并发送所述主输出消息至为了发送至所 述客户端设备的所述会话管理器。所述备用服务器包括配置为在故障切换事件中承担主要 作用的备份会话管理器。所述备用服务器进一步包括接收来自所述主调度器的所述输入消 息、所述外部调用的结果及所述序列号的备份调度器。所述备份调度器进一步配置为调度 所述输入消息、所述外部调用的结果及所述序列号至关联的备用交易引擎组件(对于其他 指令处理应用程序一般地也被称为备份引擎组件)。所述备份调度器也包括一具有复数个 备份交易引擎组件的备份交易引擎。每个备份交易引擎组件配置为处理一备份消息类型W 生成一备份输出消息。进一步地,所述备用服务器包括一接收来自所述备份交易引擎的所 述备份输出消息W及来自所述主验证引擎的验证消息的备份验证引擎。为了验证所述主输 出消息,所述备份验证引擎进一步配置为将所述验证消息与所述备份输出消息进行比较。
[0017] 所述备份调度器可W进一步配置为生成在接收到来自所述主调度器的所述输入 消息、所述外部调用的结果及所述序列号后生成确认消息。
[0018] 所述备份调度器可W进一步配置为发送所述确认消息至所述主验证引擎。
[0019] 所述主验证引擎可W进一步配置为在为了发送至所述客户端设备而将所述主输 出消息发送至所述会话管理器之前,等待所述确认消息。
[0020] 所述验证消息可W包括所述主输出消息的一副本。
[0021] 该系统可W进一步包括用于将所述主服务器连接至所述备用服务器的低延时链 路。
[0022] 所述低延时链路可W包括一PCIe链路。
[0023] 所述输入消息可W与一股票交易中的买方指令或卖方指令中的一个相关联。
[0024] 所述输入消息类型可W与一组股票相关联。
[00巧]所述外部调用可W包括一用于时间戳的请求。
[00%] 所述外部调用可W包括一用于对于价格的请求。
[0027] 依据本说明书的另一个方面,提供了此处描述的所述系统的服务器。
[0028] 依据本说明书的另一个方面,提供了此处描述的由所述系统执行的故障切换的方 法。
[0029] 依据本说明书的另一个方面,提供了一种存储有程序设计指令集合的非暂态计算 机可读介质,该程序设计指令集合配置为指挥一处理器实现此处描述的方法。
[0030] 依据本说明书的另一个方面,提供了一种用于故障切换的系统。该系统包括配置 为与客户端设备通信的主服务器。另外,该系统包括一与所述主服务器通信的备用服务器。 所述备用服务器配置为在故障切换期间与所述客户端设备通信。所述主服务器包括一配置 为接收来自所述客户端设备的输入消息的主会话管理器。所述主服务器进一步包括配置为 获取序列号及时间戳的主调度器。所述主调度器进一步配置为调度所述输入消息、所述序 列号及所述时间戳至关联的主引擎组件。所述主调度器进一步配置为复制所述输入消息、 所述序列号及所述时间戳至所述备用服务器。所述主服务器也包括具有复数个主引擎组件 的主指令处理引擎。所述主指令处理引擎配置为处理所述输入消息W生成一主输出消息。 每个主引擎组件配置为处理一个输入消息类型。进一步地,所述主服务器包括配置为接收 所述主输出消息的主验证引擎。所述主验证引擎进一步配置为发送一验证消息至所述备用 服务器并发送所述主输出消息至为了发送至所述客户端设备的所述会话管理器。所述备用 服务器包括配置为在故障切换事件中承担主要作用的备份会话管理器。所述备用服务器进 一步包括配置为接收来自所述主调度器的所述输入消息、所述外部调用的结果及所述序列 号的备份调度器。所述备份调度器进一步配置为调度所述输入消息、所述外部调用的结果 及所述序列号至关联的备用引擎组件。所述备用服务器也包括具有复数个备份引擎组件的 备份指令处理引擎。每个备份引擎组件配置为处理一种备份消息类型W生成一备份输出消 息。进一步地,所述备份调度器包括配置为接收来自所述备份指令处理引擎的所述备份输 出消息W及来自所述主验证引擎的所述验证消息的备份验证引擎。为了验证所述主输出消 息,所述备份验证引擎进一步配置为将所述验证消息与所述备份输出消息进行比较。
[0031] 依据本说明书的另一个方面,提供了一种用于与一客户端设备通信的主服务器。 所述主服务器包括配置为接收一来自所述客户端设备的输入消息的主会话管理器。所述主 服务器也包括配置为获取一序列号及一时间戳的主调度器,所述主调度器进一步配置为调 度所述输入消息及所述序列号至一关联的主引擎组件,所述主调度器进一步配置为复制所 述输入消息、所述序列号及所述时间戳至一备用服务器。另外,所述主服务器包括具有复数 个主引擎组件的主指令处理引擎,该复数个主引擎组件包括相关联的主引擎组件,所述主 指令处理引擎配置为处理所述输入消息W生成一主输出消息,每个主引擎组件配置为处理 一种输入消息类型。进一步地,所述主服务器包括配置为接收所述主输出消息的主验证引 擎,所述主验证引擎进一步配置为发送一验证消息至所述备用服务器并发送所述主输出消 息至为了发送至所述客户端设备的所述会话管理器。
[0032] 依据本说明书的另一个方面,提供了一种在主服务器处理指令的方法。所述方法 包含了接收一来自客户端设备的主会话管理器的输入消息。所述方法也包含获取来自一主 调度器的一序列号及一时间戳。进一步地,所述方法包含从所述主调度器调度所述输入消 息、所述序列号及所述时间戳至一关联的主引擎组件。另外,所述方法包含从所述主调度器 复制所述输入消息、所述序列号及所述时间戳至一备用服务器。所述方法进一步包含在一 主引擎组件上处理所述输入消息W生成一主输出消息,其中所述主引擎组件配置为处理一 种输入消息类型。而且,所述方法包含在一主验证引擎上接收所述主输出消息。所述方法 又包含发送一来自主验证引擎的验证消息至所述备用服务器。所述方法包含发送所述主输 出消息至用于发送至客户端设备的所述会话管理器。
[0033] 依据本说明书的另一个方面,提供了一种用代码编码的非暂态计算机可读介质。 所述代码指挥一处理器W接收来自客户端设备的输入消息。所述代码进一步指挥所述处理 器W获取序列号及时间戳。另外,所述代码指挥所述处理器W调度所述输入消息、所述序列 号及所述时间戳至关联的主引擎组件。进一步地,所述代码指挥所述处理器W从所述主调 度器复制所述输入消息、所述序列号及所述时间戳至一备用服务器。所述代码也指挥所述 处理器W在一主引擎组件上处理所述输入消息W生成一主输出消息,其中所述主引擎组件 配置为处理一种输入消息类型。所述代码进一步指挥所述处理器W在一主验证引擎上接收 所述主输出消息W及发送来自所述主验证引
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1