CN100492307C - 用于故障解决的系统和方法 - Google Patents

用于故障解决的系统和方法 Download PDF

Info

Publication number
CN100492307C
CN100492307C CNB2004800408640A CN200480040864A CN100492307C CN 100492307 C CN100492307 C CN 100492307C CN B2004800408640 A CNB2004800408640 A CN B2004800408640A CN 200480040864 A CN200480040864 A CN 200480040864A CN 100492307 C CN100492307 C CN 100492307C
Authority
CN
China
Prior art keywords
server
master server
backup server
client
message
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
CNB2004800408640A
Other languages
English (en)
Other versions
CN1906593A (zh
Inventor
G·A·阿伦
T·莫罗桑
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.)
TSX Inc
Original Assignee
TSX Inc
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 TSX Inc filed Critical TSX Inc
Publication of CN1906593A publication Critical patent/CN1906593A/zh
Application granted granted Critical
Publication of CN100492307C publication Critical patent/CN100492307C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2041Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2097Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2046Error 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 where the redundant components share persistent storage

Abstract

本发明提供了一种用于故障解决的新系统和方法。在一个实施例中,主服务器和备份服务器可用于多个客户。包含请求的消息被主服务器处理,同时通过这些请求的处理而产生的事务记录的镜像被维持在主服务器和备份服务器的易失性存储器中。在这种操作模式中,易失性存储器被周期性地清洗到非易失性存储器。

Description

用于故障解决的系统和方法
发明领域
[0001]本发明涉及计算机和网络结构,并且更特别涉及用于故障解决(failover)的方法和系统。
发明背景
[0002]社会越来越依赖于计算机和网络来交互以及进行商业活动。为了实现关键系统中要求的高级别可用性,应当最小化由软件和硬件缺陷引起的计划外的停机时间。
[0003]金融服务行业仅仅是要求较高可用性的系统的行业的一个例子。实际上,当今金融行业中的很多数据处理活动由计算机系统支持。尤其有趣的是所谓的“实时”和“准实时”在线事务处理(OLTP)应用,其典型地在延长的周期内以高速度和低等待时间处理很多商业事务。除了它们的高速执行之外,这些应用通常还具有以下特性:(1)复杂数据处理,(2)可靠的非易失性数据存储,以及(3)高级别可用性,即,在基本上无中断的基础上支持服务的能力。然而,当实现时,现有的应用倾向于在这些性能要求之间折衷,因为,由于它们对系统行为的矛盾作用,没有设计能够同时完全满足全部的三种特性,如下面更详细概括的。
[0004]首先,复杂数据处理是指以及时的方式执行大量计算、数据库检索/更新等等的能力。这可以通过并行处理来实现,其中多个工作单元在同一物理机器或者在分布式网络上同时执行。在一些系统中,每个事务的结果取决于先前完成的事务的结果。这样的系统的并行方面本质上是非确定性的:因为竞争条件、操作系统调度任务、或者各种网络延迟,线程执行的序列不能预知。非确定性的系统具有不相同的输出,因此它们不会以在故障时让一个机器替代另一个为目的而在两个不同的计算机器上并行运行。
[0005]第二,可靠的非易失性数据存储器指即使很多系统的软件或硬件部件经历意外的故障,也持久地存储处理的数据的能力。这通常可以通过在访问或修改共享的数据时使用原子的、一致的、孤立的和耐久的(“ACID”)事务来实现。工作的一个单元一旦完成,ACID事务就可以确保数据的完整性和永久性。每个交付(commit)的ACID事务被写入非易失性计算机存储器(硬盘)中,其帮助确保数据的耐久性,但是就性能方面而言,它代价非常大,并且通常使整个系统慢下来。
[0006]第三,高度可用性的系统试图确保给定计算机系统的可用百分比尽可能接近100%的时间。这种有用性可以通过冗余的软件和/或硬件来实现,其在检测到元件故障的情况下接管功能。为了成功,故障解决不仅复制数据,还复制进程状态。本领域的技术人员将会理解,在非确定性系统(即,其中取决于同一组事件的处理顺序,那些事件的计算处理可以具有一个以上的结果的系统,)中状态复制可能是特别有挑战性的。
[0007]高度可用性的软件应用通常在冗余环境上配置,以减少和/或消除通常与基础硬件相关联的单点故障。已知两种常用的解决方案,热式(heat)故障解决和暖式(warm)故障解决。热式故障解决指在多个系统中同时处理相同的输入,如果在这些系统中的一个系统中发生故障,基本上提供完全的冗余。暖式故障解决指在备份系统中复制应用的状态(即,数据),在备份系统中不处理数据,但是具有能够处理装载的数据并且如果主系统发生故障时准备行动的应用。冷式故障解决,其并不被很多人看作是高度可用性的一种形式,指的是仅仅给备份系统上电并且使备份系统准备好以从主系统承担处理职责。
[0008]在热式故障解决配置中,应用的两个实例同时运行在两个不同的硬件设备上,处理相同输入的拷贝。如果它们中的一个经历了致命性故障,则辅助的同步系统可以确保另一个将继续支持工作负荷。在暖式故障解决配置中,被指配为主的一个系统运行应用;如果发生故障,则被指配为备份的、正在备用状态等待的第二系统将“苏醒”,接管并恢复功能。
[0009]热式故障解决解决方案具有两个缺点。第一,因为两个系统是相同的,软件缺陷将使得它们同时都发生故障,并且第二辅助软件必须运行以保持两个系统同步。如果是非确定性系统,则该同步努力可以导致不可接受的(或者另外不希望有的)性能降低以及导致其中必须保证事件的到达顺序相同的复杂度。
[0010]而且,在这种应用中使用的协作系统通常允许同时执行多个线程,因此它们本质上是非确定性的。同时非确定性是该系统具有服务器和在地理上分布的客户,其中可变的网络延迟将消息以不可预知的序列递送到服务器。
[0011]暖式故障解决可被用来克服热式故障解决的某些问题。暖式故障解决可以是通过复制系统数据到冗余的、备份系统,且然后将应用功能恢复到第二系统来实现非确定性系统的故障解决的另一种方式。该方法在恢复数据到一致状态,然后将应用带到功能状态,并且最后将应用返回到它停止处理的点所需要的时间方面有它的缺点。该处理通常花费数小时,需要人工干预,并且通常不能恢复飞行中(in-flight)的事务。
[0012]多个专利试图解决上述问题中的至少某些。美国专利5,305,200提出对于在买方/卖方和经销商(市场做成者,market maker)之间的协商贸易情景中的通信,什么基本上是非否认机制。如果故障发生,则提供冗余来确保非否认机制起作用。它没有解决非确定性环境中在线事务应用的故障解决。简单地说,美国专利5,305,200把注意力放在经历网络故障后,为问题“订单发送与否?”提供明确的答案。
[0013]美国专利5,381,545提出一种(在数据库中)备份存储的数据同时仍然更新数据的技术。美国专利5,987,432针对用于为区域性分销汇编全球范围金融市场数据的容错市场数据股票行情自动收录器系统(market data ticker plant system)。这是确定性环境,并且该解决方案聚焦于给顾客提供无中断的单向数据流。美国专利6,154,847提供通过组合常规非易失性存储器上的事务日志与易失性存储器中的事务列表来使事务回退恢复原状的改进方法。美国专利6,199,055提出了一种通过不安全的通信链路来进行系统和便携式处理器之间的分布式事务的方法。美国专利6,199,055研究认证,以确保与远程设备的完整事务,并且如果发生故障,则应对远程设备的重置。总之,前述专利没有解决在非确定性环境中在线事务应用的故障解决。
[0014]美国专利6,202,149提出了一种用于自动地重新分布任务以降低计算机停机的影响的方法和装置。该装置包括至少一个由一个或多个计算系统组成的冗余组,其中计算系统本身进而是由一个或多个计算分区组成的。所述分区包括在每个计算系统分区处复制的数据库模式(database schema)的拷贝。冗余组监控计算系统和计算系统分区的状态,并且基于计算系统的监控状态指配任务给计算系统。美国专利6,202,149的一个问题在于它没有讲授当备份系统承担处理事务的职责时,如何恢复工作流程,而是相反使它自己的注意力关注在效率低的和/或慢的整个数据库的复制。此外,这样的复制可以引起重要的事务信息在运行中丢失,尤其是在主系统或者将主和备份系统互连的网络发生故障期间,由此导致主和备份之间的不一致状态。总之,美国专利6,202,149缺乏在处理在线事务等等中期望的某些特性,并且尤其缺乏故障解决非确定性系统所需要的特性。
[0015]美国专利6,308,287提出了一种方法,用于检测部件事务的故障、将它取消、可靠地存储故障指示器以便于在系统故障后它是可恢复的,然后使该故障指示器可用于其它事务。它没有解决非确定性环境下的事务应用的故障解决。美国专利6,574,750提出了一种分布的、复制对象的系统,其中所述对象是非确定性的。它提出了一种保证一致性并且在发生复制对象故障时限制回退恢复原状的方法。描述了一种方法,其中对象接收一个进入的客户请求并且将请求ID与先前由该对象的复制品处理的所有请求的日志相比较。如果找到了一次匹配,则相关联的响应被返回给客户。然而,该方法孤立地是不足以解决现有技术中的各种问题的。
[0016]另一个问题是美国专利6,575,750的方法采用了同步调用链,其对于高性能的在线事务处理(“OLTP”)应用是不合适的。对于同步调用,客户会在继续之前等待答复或者超时。调用的对象进而可以变成传播同步调用(call)链的另一对象的客户。结果可以是大量的同步操作,阻塞客户处理并且需要在始发客户中配置长的超时。
[0017]尽管前述专利刻画了容错和可恢复性的某些方面的特征,但是它们没有解决对用于在线事务处理的非确定性系统,将应用进行故障解决而到一个单独的系统的概念。
发明概述
[0018]本发明的目的是提供一种用于消除或减轻至少一个上面确定的现有技术缺点的故障解决的新系统和方法。根据本发明的一个方面,提供了一种用于故障解决的系统,包括至少一个客户,其选择性地经由网络连接可连接到主服务器和至少一个备份服务器中的至少一个。主服务器和备份服务器在正常状态下可以彼此连接,在正常状态期间,主服务器处理来自客户的消息并且在随机存取存储器中维持每个消息各自的事务日志,并且在正常状态期间,备份服务器可操作来维持事务日志的镜像。事务日志被周期性地清洗(flush)到每个服务器各自的非易失性存储器设备。当备份服务器不可用时,客户在仅有主服务器状态下只被连接到主服务器。同时,主服务器处理来自客户的消息并且在随机存取存储器中维持每个消息各自的事务日志。在每个消息被处理之后,主服务器事务日志被清洗到主服务器非易失性存储器设备。
[0019]当主服务器不可用时,客户在仅有备份服务器状态下只被连接到备份服务器。同时,备份服务器最初恢复主服务器的最后已知状态,处理来自客户的消息并且在随机存取存储器中维持每个消息各自的备份服务器事务日志。在每个消息被处理之后,在每个所述消息被处理之后,立刻将事务日志清洗到备份服务器非易失性存储器设备。
[0020]在本发明的另一方面中,用于故障解决的系统包括经由至少一个网络连接互连的至少一个客户、主服务器和至少一个备份服务器。主服务器和备份服务器每个执行用于处理从客户接收的消息的应用、在随机存取存储器中维持事务日志、执行复制代理并且执行检验点代理以将事务日志清洗到每个所述服务器各自的非易失性存储器设备。在本发明的这个方面中,系统具有三个不同的状态:正常状态、仅有主服务器状态以及仅有备份服务器状态。在正常状态期间,只有主服务器应用处理消息并将其结果写到主服务器事务日志,并且复制代理可操作来将主服务器事务日志镜像到备份服务器事务日志并且根据预定的准则清洗每个事务日志。在仅有主服务器状态期间,主服务器应用处理消息并且将结果写到主服务器事务日志并且同时事务日志被清洗到主服务器非易失性存储器设备。在仅有备份服务器状态期间,仅仅备份服务器应用处理消息并将其结果写到备份服务器事务日志并且同时备份服务器事务日志被清洗到备份服务器非易失性存储器设备。
[0021]在本发明的另一方面中,客户在正常状态下被连接到耦合至备份服务器的主服务器,在此期间,主服务器处理来自客户的消息并且在随机存取存储器中维持每个消息各自的事务日志。同时,备份服务器可操作来维持事务日志的镜像并且事务日志被周期性地清洗到每个服务器各自的非易失性存储器设备。然而,当备份服务器不可用时,客户只可连接到主服务器。在这时,主服务器处理来自客户的消息,并且在随机存取存储器中维持每个消息各自的事务日志。同时,在每个消息被处理之后,主服务器事务日志被清洗到主服务器非易失性存储器设备。另一方面,当主服务器不可用时,客户只被连接到备份服务器,在此期间,所述备份服务器最初是恢复所述主服务器的最后已知状态,然后处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的所述备份服务器事务日志。同时,在每个消息被处理之后,事务日志立刻被清洗到备份服务器非易失性存储器设备。
[0022]在本发明的又一方面中,当两种服务器都可用时,客户被连接到耦合至备份服务器的主服务器。在此期间,主服务器处理来自客户的消息并且在随机存取存储器中维持每个消息各自的事务日志。同时,备份服务器可操作来维持事务日志的镜像并且事务日志被周期性地清洗到每个服务器各自的非易失性存储器设备。当一种服务器(即,主服务器或者备份服务器)不可用时,客户可被连接到可用的服务器,在此期间,可用的服务器处理来自客户的消息并且在随机存取存储器中维持每个消息各自的事务日志。同时,在每个所述消息被处理之后,可用的服务器事务日志被清洗到其各自的非易失性存储器设备。
[0023]在本发明的又一方面中,至少一个客户可被连接到多个可互连的服务器。每个服务器可操作来处理来自客户的消息并且维持关于存储在易失性存储器中的事务日志中的消息的事务记录。每个服务器还可操作来在每个消息被处理之后将事务日志清洗到服务器各自的非易失性存储器设备,其中当一个以上的服务器可用时,则仅仅其中一个服务器处理消息并且其余服务器维持事务日志的镜像。事务日志在周期基础上被清洗,并且其中当仅仅一个服务器可用时,则事务日志比所述周期基础更频繁地被清洗。
[0024]在提供的本发明的另一方面中,用于操作故障解决系统的方法包括步骤:
在主服务器处接收来自客户的请求;
在所述主服务器处,将所述请求作为至少一个事务来处理;
在所述主服务器的易失性存储器中保存所述至少一个事务各自的事务记录;
在所述主服务器处产生请求以交付所述事务;
将所述事务记录镜像到所述备份服务器的易失性存储器中;
以及
如果所述镜像被成功确认,在所述主服务器中应答所述交付请求。
附图简述
[0025]现在仅以实例的方式,并且参考附图描述本发明,其中:
图1是根据本发明的一个实施例用于故障解决的系统的示意表示;
图2示出了在正常状态下的图1的系统并且包括在图1的服务器上执行的各种软件部件的示范细节;
图3示出了描绘根据本发明的另一个实施例用于处理请求的方法的流程图;
图4示出了在图3方法中的某些步骤操作期间图2的系统;
图5示出了与通过使用图1的系统处理消息相关联的工作流程;
图6示出了在图3方法中的某些步骤操作期间图2的系统;
图7示出了在图3方法中的某些步骤操作期间图2的系统;
图8示出了在图3方法中的某些步骤操作期间图2的系统;
图9示出了在仅有主服务器状态下图1的系统并且包括在图1的服务器上执行的各种软件元件的示范细节;
图10示出了描绘根据本发明的另一个实施例用于处理请求的方法的流程图;
图11示出了在仅有备份服务器状态下的图1的系统并且包括在图1的服务器上执行的各种软件部件的示范细节;
图12示出了描绘根据本发明的另一个实施例用于处理请求的方法的流程图;
图13示出了描绘可用于执行图11中示出步骤之一的一组子步骤的流程图;
图14示出了描绘根据本发明的另一个实施例将客户从主服务器切换到备份服务器的方法的流程图;
图15示出了描绘可用于执行在图3、10、或12的方法中示出的接收步骤的一组子步骤的流程图;以及
图16示出了描绘可用于执行在图3的方法中示出的镜像记录步骤的一组子步骤的流程图。
发明详述
[0026]现在参考图1,总地以50指示用于故障解决的系统。系统50包括多个远程客户541,542,...,54n(这里一般称为“客户54”并且共同称为“客户54”),其所有都被连接到网络58。网络58可以是任何类型的计算网络,诸如互联网、局域网、广域网或者它们的组合。反过来,网络58被连接到主服务器62以及至少一个备份服务器70。因此,客户54每个可以经由网络58与服务器62和服务器70通信,这将在下面更详细地讨论。
[0027]客户54每个属于个体或实体,其使用它们各自的客户54来提交请求给主服务器62。每个客户54典型地是一个计算设备,诸如是个人计算机,其具有键盘和鼠标(或其它输入设备)、显示器(或其它输出设备)和桌上型模块,该模块连接键盘、鼠标和显示器并且容纳一个或多个中央处理单元、易失性存储器(即,随机存取存储器)、非易失性存储器(即,硬盘设备)和允许客户54通过网络58通信的网络接口的。然而,应当理解客户54可以是任何类型的计算设备,诸如个人数字助理、蜂窝电话、膝上型计算机、电子邮件寻呼设备等等。
[0028]主服务器62可以是任何类型的计算设备,其可操作来接收并处理来自客户54的消息,诸如来自Palo Alto California的SunMicrosystems Inc.、运行UNIX操作系统的Sun Fire V480,其具有每个操作在大约900兆赫兹的四个中央处理单元并且具有大约4G字节的随机存取存储器。然而,应当强调这种特别的服务器仅仅是示范性的,大批用于主服务器62的其它类型的计算环境也在本发明的范围内。主服务器62接收和处理的消息类型没有特殊限定,但是在本实施例中,服务器62操作在线交易系统,并且因此能够处理包括对可以在线交易的购买、出售、取消证券等的请求的消息。更具体地,服务器62可操作来维持中央机器引擎,在那里相对彼此并且相对订单的中央储存库来执行请求,以由此处理证券的交易。主服务器62还被连接到主非易失性存储器66,其为主服务器62维持与其请求和处理相关联的所有非易失性数据。
[0029]备份服务器70典型地具有与主服务器62相同的(或者基本上相同的)计算环境。更具体地,备份服务器70的计算环境,包括它的硬件、操作系统、应用等等,将使得备份服务器70可操作来在主服务器62故障时完全替代主服务器62的功能。因此,备份服务器70还被连接到备份非易失性存储器74,其为备份服务器70维持与其请求和处理相关联的所有非易失性数据。
[0030]系统50还包括使主服务器62和备份服务器70互连的复制链路78。在本实施例中,复制链路78本身包括主链路82和故障保险链路86以在主服务器62和备份服务器70之间的通信中提供更大的鲁棒性。
[0031]关于主服务器62、备份服务器70和复制链路78、以及可用于实现服务器62和70的各种类型硬件的扩展的进一步细节将在下面的讨论中变得明显。
[0032]现在参考图2,更详细地示出了系统50的服务器62和70。同样重要的,与图1中表示系统50的各种部件之间的物理连接的实线连接形成对比,图2中的各种连接以虚线示出,以表示系统50中各种部件之间的虚连接。这样,图2中示出的这种连接意欲表示系统50在正常状态下操作,藉此主服务器62和备份服务器70都是能使用的,主服务器62为来自客户54的请求服务。关于这种状态以及其中系统50能够操作的其它状态的进一步细节将在下面提供。
[0033]仍参考图2,主服务器62和备份服务器70,每个包括在它们各自的硬件环境上执行的多个软件部件以提供故障解决功能。更具体地,主服务器62包括至少一个接收并处理来自各种客户54的请求的应用进程APP。因此应用进程APP可以是可期望其提供故障解决保护的任何类型的应用。利用同样的标记(token),备份服务器70也包括应用进程APB,其在图2中示出的正常状态下正在备份服务器70上“暖式”执行,因为应用进程APB是准备好并且可用于接收并处理来自客户54的请求的,但是在图2中描绘的正常状态下,应用进程APB并没有执行这样的请求的接收和处理。
[0034]主服务器62还包括事务日志TLP,其在本实施例中位于主服务器62的易失性存储器(即,随机存取存储器)中。由应用进程APP处理的请求作为离散ACID事务的序列被执行。因此,在通过应用进程APP执行事务期间,事务的细节被准备成事务记录,其被写入到事务日志TLP。事务的细节通常包括对数据库表和队列进行的改变,该数据库表和队列被用于跟踪请求以及另外有助于系统50执行的处理。
[0035]事务日志TLP还连接到检验点代理CAP,其反过来连接到主非易失性存储器66。事务日志TLP和检验点代理CAP协作以周期性地将事务日志TLP的内容清洗到主非易失性存储器66。确定何时将事务日志TLP的内容清洗(即,保存)到主非易失性存储器66的准则取决于系统50正在操作的状态。在图2中示出的正常状态中,以变化的间隔来执行事务日志TLP到主非易失性存储器66的清洗。这样的间隔可以基于任何期望的准则,诸如在固定的时间间隔上,或者当接收了预先确定个数的事务记录时,或者当随机存取存储器需要被释放用于其它目的时。在系统50的其它状态中,诸如当主系统62能使用、但是备份系统70故障时,则在由应用进程APP处理的每个事务之后执行事务日志TLP到主非易失性存储器66的清洗。
[0036]主服务器62还包括也被连接到事务日志TLP的复制代理RAP。备份服务器70还包括与同样位于备份服务器70中的备份事务日志TLB通信的复制代理RAB。反过来,备份事务日志TLB连接到它自己的检验点代理CAB。类似于事务日志TLP和检验点代理CAP,事务日志TLB和检验点代理CAB协作以周期性地将事务日志TLB的内容清洗到备份非易失性存储器74。因此,在图2中的系统50的正常状态中,事务日志TLP、复制代理RAP、复制代理RAB和事务日志TLB协作以维持由应用进程APP交付的事务的复制或镜像拷贝,并且还协作来周期性地将那些事务的内容清洗到非易失性存储器66和非易失性存储器74。
[0037]主服务器62和备份服务器70每个还分别地包括一个主故障解决代理FAP和一个备份故障解决代理FAB。故障解决代理FAP和故障解决代理FAB可操作来周期性地测试链路78以及彼此的完整性。在本实施例中,故障解决代理FAP周期性地将保活(keep-alive)信号(例如,“你还在吗?”)递送给故障解决代理FAB,预期故障解决代理FAB周期性地响应该信号(例如“是的,我还在”)。倘若这样的请求由故障解决代理FAB响应,并且倘若主服务器62继续正常操作,则系统50保持在图2中所示的状态中。因此,故障解决代理FAP还可操作来与应用进程APP通信以指示正常状态有效。
[0038]现在应当清楚,故障解决代理FAP、故障解决代理FAB、复制代理RAP和复制代理RAB可操作来利用主链路82和故障保险链路86,这两种链路一起适当地或者另外如所希望地包括链路78。以这种方式,只要主链路82和故障保险链路86中的至少一个是能使用的,系统50就可以保持在正常状态。
[0039]现在参考图3,总地以200示出了根据本发明的另一个实施例用于在正常状态期间处理请求的方法。为了帮助解释该方法,假设方法200利用系统50操作。此外,方法200的以下讨论将导致系统50以及它的各种部件的其它理解。然而,应当理解,系统50和/或方法200可以变化,并且不需要完全如这里结合彼此讨论的那样去工作,并且这样的变化在本发明的范围内。因此,为了描述方法200的目的,假设系统50当前处在图2中所示的正常状态下。
[0040]首先开始于步骤210,接收消息。图4示出了步骤210如何执行的示例,客户542产生消息M并且通过网络58发送该消息,以便由应用进程APP接收。消息M可以具有任何期望的格式,但是为了解释方法200的目的,表1示出了消息M的一个示例格式。
表1
消息M的示例格式
 
字段号 字段 数据
1 客户ID 客户54<sub>2</sub>
2 消息ID 0001
3 消息体 X
[0041]因此,表1的字段1,“客户ID”包含利用系统50的客户542的地址或其它标识符。在表1的示例中,客户ID仅仅填充了数据“客户542”,但是更典型地,客户ID将包括用户id,和/或客户542的互联网协议(“IP”)地址。表1的字段2,“消息ID”包含标识符,用于允许系统50中的部件将来自客户542的该特定消息与可能现在或者将来由客户542产生的、来自客户542的其它消息区分开来。典型地,消息ID是为由客户542产生的每个消息而递增的序列号。在表1的示例中,消息ID仅仅填充了数据“0001”。表1的字段3,“消息体”包含服务请求、或者另一种类型的请求或者可以由客户54产生、用于由特定的应用进程APP处理的任何其它类型的信息。在表1的示例中,消息体仅仅填充了数据“X”以一般地表示这样的消息。例如,当应用进程APP用于处理金融事务时,则“X”可以是购买或者出售特定项的请求。
[0042]因此,消息M一旦被应用进程APP接收,方法200就前进到步骤220,在该点消息体X以相应于应用进程APP的设计的方式被处理。在本实施例中,消息体X包括一个请求,并且应用进程APP被配置成将该请求作为依次执行的多个离散事务来处理。(然而,在其它实施例中,根据事务的处理是确定性的还是非确定性的,这样的处理可以仅仅是以单个事务或者并行执行的多个事务的形式)。因此,个别事务共同地包括完成消息请求的工作流程。工作流程的简化示例通常在图5中在90处表示。工作流程90示出了已经作为多个离散事务T处理的消息M。反过来,每个事务T与位于易失性存储器中的一个或多个数据库表94相关联。对表94的每次改变促成了特定事务T的事务记录。每个事务T还与一个或多个持久队列98以及一个或多个进程102相关联。持久队列98被用于保留事务T的结果,以便由进程102最终处理。进程102共同形成应用进程APP。以这种方式,来自不同客户54的多个消息M通过利用该配置,可以让它们的请求同时被处理,因为对于每个请求的个别事务T由应用进程APP执行。然而,应当理解,工作流程90被简化并且仅仅是示范性的,并且工作流程90构造的方式没有特别地限定。
[0043]在步骤230,执行来自步骤220的每个事务以便于与消息体X有关的处理整体被执行。(应当指出,剩余的步骤230-270实际上是对与步骤220相关讨论的每个个别事务执行,但是剩余的讨论集中在一个这样的事务上,以便于不混淆实施例的描述。)因此,当“X”代表购买定单时,则应用进程APP将处理这样的定单。这样执行了事务之后,产生交付该事务的请求。图6示出了步骤230的这部分如何被执行的示例,应用进程APP产生交付请求C并且发送该消息到事务日志TLP
[0044]在步骤240,与用于处理消息体X中的请求的每个事务、以及用于那些事务的交付请求C相关联的变化作为记录被写到事务日志TLP。接下来,在步骤250,在步骤240写入的记录被复制或镜像。图7示出了步骤240可以如何被执行的示例,交付请求C经由复制代理RAP和RAB被传递到事务日志TLB
[0045]在步骤260,确认复制。对于本实施例更具体地,根据交付请求C确认事务日志TLP和事务日志TLB是否成功地被改变。如果在步骤260产生的回答是“是”,则方法200前进到步骤270,在该点交付被应答。图8示出了步骤270可以如何被执行以得到“是”的示例,其中复制代理RAB产生应答A并且将该消息发送到复制代理RAP。在该点上,方法200从步骤270返回到步骤210并且方法200重新开始。
[0046]然而,如果在步骤260复制不被确认,则方法200前进到步骤280。这样的故障可能以多种方式发生。例如,备份服务器70可以掉电或者经历一次崩溃,从而阻止在步骤250的实际复制或者至少在步骤260的关于它的确认。在这种情况下,在步骤280,系统50切换到仅有主服务器状态,其在下面关于方法300中进行讨论。替代地,链路78可被断掉,从而也阻止在步骤250的复制和/或在步骤260的关于它的确认,这也导致系统50切换到与方法300相关联的仅有主服务器状态。尽管多少不太可能,仍有另一种可能性是服务器62操作事务日志TLP的那部分故障,从而阻止事务日志TLP被更新,尽管服务器62的所有其它方面和系统50都正常运行。在这种情况下,在步骤280,系统50切换到仅有备份服务器状态,其在下面关于方法400中进行讨论。(重要的,尽管这里没有明确讨论,现在应当能理解在步骤280可以调用其它类型的状态。)
[0047]与方法200的执行同时发生,检验点代理CAP以各种间隔将事务日志TLP的内容清洗到非易失性存储器66,而检验点代理CAB周期性地将事务日志TLB的内容清洗到非易失性存储器74。应当指出,检验点代理CA可以彼此独立地执行它们的功能,并且不需要同时清洗。检验点代理CAB还基于事务日志TLB中的记录周期性地更新备份服务器70中的所有表94和队列98。这种清洗发生时的间隔不需要依赖于方法200的执行,并且因此能够基本独立于方法200来执行。间隔可以基于预设置的时间周期,或者保留在易失性存储器中的预定义个数的事务记录,或者甚至可以基于由每个事务日志TL占用的随机存取存储器的量以便于到非易失性存储器的清洗是作为释放这样的随机存取存储器的手段来执行的。现在本领域的技术人员将想到用于清洗每个事务日志TL内容的其它间隔和/或准则。
[0048]现在参考图9,更详细地示出了系统50的服务器62和70,但是在图9中,系统50被示出操作在仅有主服务器状态。因此,图9中的各种连接以虚线示出,以表示系统50中各种部件之间的虚连接。因此,在图9中示出的这种连接意欲表示系统50操作在仅有主服务器状态,由此主服务器62是能使用的,但是其中由于备份服务器70的故障和/或由于链路78的故障,备份服务器70不可用。因此在图9中,只有主服务器62为来自客户54的请求服务,并且不访问备份服务器70的备份服务。
[0049]现在参考图10,总地以300示出了一种根据本发明的另一个实施例用于在仅有主服务器状态下处理请求的方法。假设方法300利用系统50操作,并且方法300的以下讨论将导致对系统50的进一步理解,但是应当理解系统50和/或方法300可以变化。为了描述方法300的目的,假设系统50当前在图9中示出的仅有主服务器状态中。
[0050]通常,步骤310-330以与步骤210-230基本上相同的方式执行。然而,在步骤340,方法300开始不同于方法200,因为事务记录只写到主事务日志TLP。在步骤350,在步骤340写的事务日志TLP的变化立即由检验点代理CAP清洗到非易失性存储器66。在步骤360,在步骤330请求的交付被应答,由此事务日志TLP将返回应答到应用进程APP,以几乎相同的方式在方法200的步骤270返回应答,但是其中这样的应答不包括来自备份服务器70的任何应答。
[0051]接下来,在步骤370,确定关于备份服务器70是否已经变成可用。步骤370典型地由故障解决代理FAP执行,该故障解决代理FAP将试图与故障解决代理FAB通信以了解现在链路78是不是活动的和/或备份服务器70是否回到在线状态。因此,如果在步骤370确定备份服务器70现在可用,则方法300前进到步骤380,在该点上状态被改变。更具体地,图9中系统50的仅有主服务器状态将改变到图2中的系统50的正常状态。在该点,方法200可以开始操作以处理来自客户54的消息。
[0052]应当理解,对方法300的很多修改是可能的。具体地,应当指出,步骤370和380可以一起去除,有利于让系统管理员(或操作系统50的其它IT专业人员)使系统50掉电并且然后使系统50起来(bringup),从而手工修改事务日志TL以及非易失性存储器设备66和74以同步它们的状态。替代地,如果使用步骤370,则应当理解在步骤380,优选地,尽管不必要,在重新开始方法200之前,事务日志TL和非易失性存储器设备66及77以自动方式被同步。
[0053]现在参考图11,更详细地示出了系统50的服务器62和服务器70,但是在图11中,系统50被示出操作在仅有备份服务器状态。因此,图11中的各种连接以虚线示出,以表示系统50中的各种部件之间的虚连接。因此,在图11中示出的这种连接意欲表示系统50操作在仅有备份服务器状态下,由此备份服务器70是能利用的,但是其中典型地由于主服务器62和/或主服务器62与网络58之间连接的故障,主服务器62不可用。因此,在图11中,仅仅备份服务器70为来自客户54的请求服务。
[0054]现在参考图12,总地以400示出一种根据本发明的另一个实施例用于在仅有备份服务器状态期间处理请求的方法。假设方法400利用系统50的备份服务器70操作,并且方法400的以下讨论将导致系统50的进一步理解,但是应当理解,系统50和/或方法400可以变化。
[0055]开始于步骤410,假设系统50操作在图2中示出的正常状态下并且使用方法200。然而,在步骤415,由备份服务器70确定关于主服务器62是否可用。在系统50中,步骤415由备份服务器70的故障解决代理FAB执行,其依赖于先前描述的在主服务器62和备份服务器70之间沿着链路78的“保活”信号的存在以确定“是”,主服务器62仍然可用。因此,如果在步骤415确定“是”,主服务器62可用,则方法400循环回到步骤410。
[0056]然而,如果在步骤415,备份服务器70的故障解决代理FAB未能检测到保活信号,则在步骤415确定“否”,主服务器62不可用,并且方法400前进到步骤420。这样的确定可以因为多个原因作出。例如,如果主服务器62故障,则确定主服务器62不可用。应当指出,主服务器62的故障可以以多种方式发生。主服务器62可以完全关机并且因此未能维持“保活”信号,或者主服务器62的部分可能故障并且由此指示故障解决代理FAP向故障解决代理FAB标识这样的故障,并且清楚地请求备份服务器70承担为客户54处理消息的职责。
[0057]在步骤420,检验复制链路的完整性。在该事件中,备份服务器70能够试图经由网络58与主服务器62通信以了解主服务器62是否仍然能使用,以及,如果在这种通信期间确定服务器62仍然能使用,但是链路78已经故障,则在步骤420返回的回答将是“链路故障”并且备份服务器70能够仅仅将事务日志TLB的内容清洗到非易失性存储器74并且进入等待状态。然后备份服务器70能够等待链路78的再激活,而系统50进入图9中的仅有主服务器状态,并且由此使用图10的方法300处理来自客户54的消息。然而,如果在步骤420确定复制链路78是“好的”,(即,主服务器62已经故障),则方法400将前进到步骤425。
[0058]因此,在步骤425,备份服务器70将自己切换到仅有备份服务器状态。在本实施例中,备份服务器70立即将事务日志TLB清洗到非易失性存储器74。另外,备份服务器70将通过使用存储在非易失性存储器74上的清洗事务记录的事务日志,重新建立如在故障时主服务器62上存在的数据环境。此外,故障解决代理FAB将应用进程APB带出它的“暖式”状态,进入热式状态,并且另外准备备份服务器70从客户54接收消息。图13示出了步骤425能够如何被执行的一个特定示例,并且包括一种用于执行步骤425的子步骤的方法,总地以425a指示。在步骤426,复制服务被禁用。更具体地,备份服务器70将禁用复制代理RAB,并且停止执行方法200的那些步骤,其中备份服务器70与主服务器62协作以将事务日志TLP镜像到事务日志TLB中。接下来,在步骤427,检验点代理CAB将事务日志TLB的内容清洗到非易失性存储器74。在步骤428,任何未完成的事务被应用到适当的表94和队列98。典型地,步骤428由应用进程APB作为将应用进程APB从“暖式”转移到“热式”状态的部分执行。最后,在步骤429,恢复信号被发送到客户54,该信号实际上是来自备份服务器70的信号,现在它能够承担从客户54接收消息的职责。
[0059]在步骤430,备份服务器开始从客户54接收消息。应当指出,在本实施例中,客户54一旦不能与主服务器62通信并且随后被通知备份服务器70可用,这样的消息请求就自动开始被递送到备份服务器70。更具体地,每个客户54将在方法200开始之前,被提供以服务器62和服务器70的网络地址。此外,作为方法200的步骤210或方法300的步骤310的部分执行,应用进程APP发送应答给主叫客户54。因此,当客户54不能使消息递送得到应答(或检测到客户54与服务器62之间的保活信号的丢失),则客户54利用备份服务器70的地址。备份服务器70一旦向客户54指示它已经完成它的恢复并且“准备好”,则客户54就开始递送该消息(以及没有接收到被主服务器62更新(即,处理完成的指示)的所有消息)给备份服务器70的应用进程APB。还应当指出,在客户54和备份服务器70之间的初始通信期间,每个客户54和备份服务器70执行来自客户54的消息ID(或序列号)与先前在正常状态期间由主服务器62执行并存储在备份服务器70上的处理结果的一些初始比较,以确保不存在重复并且藉此进一步确保没有请求被执行两次。关于客户54能够如何相关于步骤430运转的更详细的讨论将在下面关于方法500更详细地提供。
[0060]然后方法400在步骤435-455中循环,其操作在备份服务器70上,但是基本上以与方法300中的步骤320-360相同的方式执行。在步骤460,备份服务器70将再次检查(经由故障解决代理FAB)主服务器62是否已经变成可用的,并且如果这样的话,方法400前进到步骤465,在那里采取步骤以重新激活主服务器62并且然后使系统50返回到正常状态以及在步骤410下的规则操作。这样的步骤包括根据备份服务器70的活动来同步事务日志TL和非易失性存储器设备66和74。然而,如果在步骤460,备份服务器70确定主服务器62仍然不可用,则方法400返回到步骤430来接收来自客户54的其它消息。
[0061]应当理解,对方法400的许多修改是可能的。特别地,可以期望将步骤415和420折叠成单个决定,其中如果与主服务器62的通信丢失,则备份服务器70将仅仅进行到步骤425,而不管通信故障是由于主服务器62的故障还是链路78的故障。当通信丢失是由于链路78的故障时,并且服务器62还继续正常操作,则系统50进入仅有主服务器模式并且操作方法300,而备份服务器70将简单地等待在步骤430接收消息,但是实际上将接收不到任何这样的消息,因为那些消息正继续由主服务器62根据方法300处理。当执行该修改时,现在应当理解步骤460也可以被去除。在某些应用中,可能优选采用该修改,并且手工执行这些步骤以减少重新激活系统50需要的时间。
[0062]现在参考图14,总地以500指示用于根据本发明的另一个实施例将客户从主服务器切换到备份服务器的方法。方法500可能特别适合于由其中一个客户54操作,作为在方法200和方法400之间的系统50转移。方法500可以是对方法400的步骤425和步骤430,以及对方法425a的附送(complimentary)。开始于步骤510,客户54经历与主服务器62的通信故障。这可能以各种方式发生,诸如主服务器62响应于客户54递送的消息的故障或者在该客户54与服务器62之间发送的“保活”信号的故障。
[0063]然而经历了故障,之后方法500前进到步骤520,在该点客户54试图启动与备份服务器70的通信。这典型地通过向客户54提供主服务器62和备份服务器70的网络地址来实现,以便于客户54为主服务器62的故障做好准备,并且能够启动方法500以进行到备份服务器70的故障解决。
[0064]在步骤530,客户54保持在等待状态,直到备份服务器70提供恢复信号,或者指示备份服务器70准备好开始处理来自客户54的消息的其它信号。来自备份服务器70的这种恢复信号可以由备份服务器70根据例如方法425a的步骤429产生。
[0065]一旦从备份服务器70接收到恢复信号,方法500就前进到步骤540,在该点客户54将再次发送任何未完成的请求到备份服务器70的应用进程APB。接下来,方法500前进到步骤550,在该点客户54再继续请求的正常传输,仅当现在所有的请求才被定向(再次嵌入到来自客户54的消息中)到备份服务器70的应用进程APB
[0066]尽管这里只讨论了本发明的各种特性和组件的特定组合,但是对于本领域的技术人员应当清楚,如期望的那样,可以利用公开的特性和组件的期望子集和/或这些特性和组件的替代组合。例如,方法200的步骤210,“接收消息”,可能以多个子步骤执行以增强方法200的功能。同样地,步骤310和步骤430也可以被修改。现在参考图15,总地以210a指示一种用于执行步骤210的子步骤的方法。在步骤211,接收消息。步骤211几乎和先前关于方法200的步骤210描述的那样一样地发生。在步骤212,消息M的消息ID与相应于该客户的、先前接收的消息ID的主服务器62上的数据库相比较。在步骤213,如果确定在步骤211接收的消息M是重复的,则方法前进到步骤214,在该点最初响应于该消息M产生的答复被再次发送到主叫客户54。然而,如果确定消息不是重复的,则方法前进到步骤215并且消息M如先前描述地那样被处理,方法200前进到步骤220。
[0067]现在应当清楚,方法210a可以被修改为按照上下文需要而实现步骤310或者步骤430的方法。特别重要的,作为客户54在从主服务器62进行故障解决而到备份服务器70中执行方法500的部分,预期客户54可以是相当可能将重复的消息发送到备份服务器70。因此,由于客户54执行方法500的步骤540并重新发送未完成的消息到备份服务器70,这种未完成的消息实际上可能是重复的-即,由服务器62成功处理、并且由服务器70镜像、但是服务器62不能为其应答到客户54的消息。因此,方法210a可被用于实现方法400的步骤430以管理这样的重复的请求。
[0068]作为另一种变化,方法200的步骤250也可以实现为多个子步骤。现在参考图16,总地以250a指示一种用于执行步骤250的子步骤的方法。在步骤251,在方法200的步骤240写入的事务记录被发送到备份服务器70。在步骤252,备份服务器70接收该记录,并且在步骤253,将该记录写到它的事务日志TLB,然后执行交付。在步骤254,备份服务器70通过将应答发送回主服务器62来应答该交付。在步骤255,主服务器62确定交付是否被应答,并且如果是的话,则方法250a前进到步骤256,在那里复制现在被认为得到确认。在该点,方法250a返回到步骤260,返回复制的确认到方法200。然而,如果在步骤255确定没有交付被应答,则方法250a前进到步骤257,并且复制不被认为得到确认。在该点,方法250a返回到方法200的步骤260,将复制的失败返回到方法200。
[0069]应当理解,主服务器62和备份服务器70不需要在两个单独的计算环境上实现,而是实际上可以在单个计算环境上实现,该单个计算环境包括多个处理器并且被分割到一个虚拟主服务器和虚拟备份服务器。
[0070]作为另一个实现,两个单独的服务器可以被划分到两个分区。每个机器的第一分区可以被指配主服务器,而第二分区可以被指配备份服务器。然后为了提供双份的故障解决机制,第一机器的主服务器被耦合到第二机器的备份服务器,并且反之亦然。
[0071]作为另一个实现,多个备份服务器可以被连接到主服务器并且被采用来为系统甚至更高的可用性提供潜能。
[0072]还应当理解,故障的主服务器刚一恢复,就可倒转由备份服务器和主服务器执行的任务。例如,如先前描述的,如果主服务器故障并且系统进行故障解决而到备份服务器,那么在这样的时刻当主服务器恢复操作时,则备份服务器可以承担主服务器的角色而主服务器可以采用备份服务器的任务。
[0073]上面描述的本发明的实施例意欲成为本发明的示例并且本领域的技术人员可以实现对其的变更和修改,而不脱离由关于其的附属权利要求独自定义的本发明的范围。

Claims (56)

1.一种用于故障时从主服务器切换到至少一个备份服务器的系统,包括:
至少一个客户,选择性地经由网络连接而可连接到所述主服务器和所述至少一个备份服务器中的至少一个;
所述主服务器和所述至少一个备份服务器在正常状态下彼此相连接,在该正常状态期间,所述主服务器处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的事务日志,并且在该状态期间,所述备份服务器可操作来维持所述事务日志的镜像,所述事务日志周期性地被清洗到每个所述服务器各自的非易失性存储器设备;
当所述备份服务器不可用时,在仅有主状态期间,所述客户只被连接到所述主服务器,在该仅有主状态期间,所述主服务器处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的事务日志,并且在该仅有主状态期间,所述主服务器事务日志在每个所述消息被处理之后,被清洗到所述主服务器非易失性存储器设备;以及,
当所述主服务器不可用时,在仅有备份状态期间,所述客户只被连接到所述备份服务器,在该仅有备份状态期间,所述备份服务器最初恢复所述主服务器的最后已知状态,然后处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的所述备份服务器事务日志,并且其中所述事务日志在每个所述消息被处理之后立刻被清洗到所述备份服务器非易失性存储器设备。
2.一种用于故障时从主服务器切换到至少一个备份服务器的系统,包括:
经由至少一个网络连接而互连的至少一个客户、主服务器以及至少一个备份服务器;
所述主服务器和所述至少一个备份服务器中的每个服务器都被配置成执行下列操作:
执行用于处理从所述至少一个客户接收的消息的应用;
在随机存取存储器中维持事务日志;
执行复制代理;
执行用于将所述事务日志清洗到每个所述服务器各自的非易失性存储器设备的检验点代理;
所述系统具有:
正常状态,在该正常状态期间只有所述主服务器应用处理所述消息并将其结果写到所述主服务器事务日志,并且在该正常状态期间所述复制代理可操作来将所述主服务器事务日志镜像到所述备份服务器事务日志中,根据预定义的准则清洗每个所述事务日志;
仅有主状态,在该仅有主状态期间,只有所述主服务器应用处理所述消息并将其结果写到所述主服务器事务日志,并且在该仅有主状态期间,事务日志同时被清洗到所述主服务器非易失性存储器设备;
仅有备份状态,在该仅有备份状态期间,只有所述备份服务器应用处理所述消息并且将其结果写到所述备份服务器事务日志,并且在该仅有备份状态期间,备份服务器事务日志同时被清洗到所述备份服务器非易失性存储器设备。
3.一种用于故障时从主服务器切换到至少一个备份服务器的系统,包括:
至少一个客户,在正常状态下其可连接到耦合到备份服务器的主服务器,在该正常状态期间,所述主服务器处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的事务日志,并且在该状态期间,所述备份服务器可操作来维持所述事务日志的镜像,所述事务日志周期性地被清洗到每个所述服务器各自的非易失性存储器设备;
当所述备份服务器不可用时,所述至少一个客户只可被连接到所述主服务器,在所述备份服务器不可用期间,所述主服务器处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的事务日志,并且在所述备份服务器不可用期间,在每个所述消息被处理之后,所述备份服务器事务日志被清洗到所述主服务器非易失性存储器设备;以及
当所述主服务器不可用时,所述至少一个客户只可被连接到所述备份服务器,在所述主服务器不可用期间,所述备份服务器最初恢复所述主服务器的最后已知状态,然后处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的所述备份服务器事务日志,并且其中所述事务日志在每个所述消息被处理之后立刻被清洗到所述备份服务器非易失性存储器设备。
4.一种用于故障时从主服务器切换到至少一个备份服务器的系统,包括:
至少一个客户,当主服务器和备份服务器二者都可用时,其可连接到耦合到备份服务器的主服务器,并且在主服务器和备份服务器二者都可用期间,所述主服务器处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的事务日志,并且在主服务器和备份服务器二者都可用期间,所述备份服务器可操作来维持所述事务日志的镜像,所述事务日志被周期性地清洗到每个所述服务器各自的非易失性存储器设备;
当所述主服务器和所述备份服务器中的一个不可用时,所述至少一个客户可连接到所述主服务器和所述备份服务器中可用的一个,在所述主服务器和所述备份服务器中的一个不可用期间,所述可用的服务器处理来自所述客户的消息并且在随机存取存储器中维持每个所述消息各自的事务日志,并且在所述主服务器和所述备份服务器中的一个不可用期间,所述可用的服务器事务日志在每个所述消息被处理之后被清洗到其各自的所述非易失性存储器设备。
5.一种用于故障时从主服务器切换到至少一个备份服务器的系统,包括可连接到多个可互连服务器的至少一个客户,每个所述服务器可操作来处理来自所述客户的消息并且在存储在易失性存储器中的事务日志中维持至少每个所述消息各自的事务记录,并且还可操作来在每个所述消息被处理之后将所述事务日志清洗到所述服务器各自的非易失性存储器设备,其中当一个以上的服务器可用时,则只有所述服务器中的一个处理所述消息并且所述服务器中的剩余服务器维持所述事务日志的镜像,所述事务日志在周期基础上被清洗,并且其中当只有所述服务器中的一个可用时,则所述事务日志比所述周期基础更频繁地被清洗。
6.根据权利要求5所述的系统,其中所述周期基础是基于从以下组中选择的一个准则的间隔,该组由固定时间间隔、已经被存储在所述易失性存储器中的预定个数的所述事务记录、以及当所述服务器中一个各自的所述易失性存储器需要被释放用于其它目的时的时间组成。
7.根据权利要求5所述的系统,其中所述服务器可经由第一网络连接到所述客户并且其中所述服务器可经由第二网络彼此互连。
8.根据权利要求7所述的系统,其中所述第二网络包括主链路和故障保险链路。
9.根据权利要求7所述的系统,其中所述第一网络从由互联网、局域网以及广域网组成的组中选择。
10.根据权利要求5所述的系统,其中所述客户从由个人数字助理、蜂窝电话、膝上型电脑和电子邮件寻呼设备组成的组中选择。
11.根据权利要求5所述的系统,其中所述服务器包括主服务器和备份服务器。
12.根据权利要求1所述的系统,其中所述主服务器和所述备份服务器被实现在相互兼容的计算环境上。
13.根据权利要求13所述的系统,包括至少一个额外的备份服务器。
14.根据权利要求11所述的系统,其中所述主服务器和所述备份服务器在单个计算环境上被实现,该计算环境在逻辑上被划分成所述主服务器和所述备份服务器。
15.根据权利要求11所述的系统,其中所述服务器包括多个软件组件,该软件组件包括至少一个应用进程,所述至少一个应用进程在热式状态下被配置成处理所述消息,并且替换地在暖式状态下被配置成等待着去处理所述消息。
16.根据权利要求15所述的系统,其中当所述主服务器可用时,则所述主服务器应用进程在所述热式状态下操作,并且当所述主服务器不可用时,则所述备份服务器将它的应用进程从所述暖式状态带到所述热式状态,并且其后可操作来处理来自所述客户的所述消息。
17.根据权利要求15所述的系统,其中所述软件组件包括在每个所述服务器上执行并且彼此通信以相互验证所述服务器是否可用的故障切换代理。
18.根据权利要求17所述的系统,其中当所述主服务器故障切换代理未能与所述备份服务器故障切换代理通信时,则所述主服务器开始在仅有主模式下操作,在仅有主模式期间,所述主服务器事务日志在每个消息之后被清洗。
19.根据权利要求17所述的系统,其中当所述备份服务器故障切换代理未能与所述主服务器故障切换代理通信时,则所述备份服务器开始在仅有备份模式下操作,在仅有备份模式期间,所述备份服务器事务日志在每个消息之后被清洗。
20.根据权利要求15所述的系统,其中所述软件组件包括在每个所述服务器上执行并且彼此通信以在两种所述服务器都可用时维持所述镜像的复制代理。
21.根据权利要求15所述的系统,其中所述软件组件包括在每个所述服务器上执行并且与它各自的事务日志通信的检验点代理,所述检验点代理用于将它各自的事务日志清洗到非易失性存储器。
22.根据权利要求5所述的系统,其中所述服务器可操作来确定接收到的一个所述消息是否为重复的并且代替处理所述消息而返回表示所述消息的前一处理的存储的记录结果。
23.根据权利要求5所述的系统,其中所述消息包括所述客户的标识符、消息标识符以及消息体。
24.根据权利要求23所述的系统,其中所述消息体包括购买或者出售金融工具的请求。
25.根据权利要求5所述的系统,其中所述消息包括作为至少一个离散事务被处理的请求,每个所述事务产生至少一个事务日志记录。
26.根据权利要求11所述的系统,其中当所述备份服务器处理请求时,当所述主服务器变得可用时,所述备份服务器可操作来承担所述主服务器的角色,并且在该点所述主服务器承担所述备份服务器的角色。
27.一种操作用于故障时从主服务器切换到至少一个备份服务器的系统的方法,包括步骤:
在主服务器处接收来自客户的请求;
在所述主服务器处将所述请求作为至少一个事务来处理;
在所述主服务器的易失性存储器中保存所述至少一个事务各自的事务记录;
在所述主服务器处产生提交所述事务的请求;
将所述事务记录镜像到所述备份服务器的易失性存储器中;以及
如果所述镜像被成功确认,在所述主服务器中应答所述提交请求。
28.根据权利要求27所述的方法,还包括步骤:
周期性地将所述主服务器易失性存储器清洗到所述主服务器各自的非易失性存储器。
29.根据权利要求27所述的方法,还包括步骤:
周期性地将所述备份服务器易失性存储器清洗到所述备份服务器各自的非易失性存储器。
30.根据权利要求27所述的方法,还包括对于另外接收的消息,重复前述步骤。
31.根据权利要求30所述的方法,还包括步骤:
如果所述镜像没有被成功确认,则立刻将所述主服务器易失性存储器清洗到非易失性存储器;并且
此后停止所述镜像步骤的进一步执行;以及
此后在所述保存步骤之后,将每个所述事务记录清洗到非易失性存储器。
32.根据权利要求27所述的方法,在所述接收步骤之后还包括步骤:确定所述请求是否是重复的请求,并且如果所述请求是重复的请求,则将处理所述请求的先前存储的结果返回给所述客户,然后在重复所述方法之前忽略所述方法的剩余步骤。
33.一种操作用于故障时从主服务器切换到至少一个备份服务器的系统中的备份服务器的方法,包括步骤:
确定连接到所述备份服务器的主服务器是可用的:
将由所述主服务器产生的事务记录镜像到所述备份服务器的易失性存储器中;以及
周期性地将所述易失性存储器清洗到连接到所述备份服务器的非易失性存储器中;
并且,可替换地,确定所述主服务器不可用:
从客户接收请求;
将所述请求作为至少一个事务来处理;
在易失性存储器中保存所述至少一个事务各自的事务记录;以及
将所述至少一个事务记录清洗到非易失性存储器。
34.根据权利要求33所述的方法,还包括步骤:当所述备份服务器最初确定所述主服务器不再可用时:
将所述备份服务器易失性存储器清洗到非易失性存储器;
将任何未完成的事务施加到至少与存储在所述非易失性存储器上的所述事务记录相关联的表和队列;并且
发送信号给所述客户,指示所述备份服务器准备好处理请求。
35.一种在用于故障时从主服务器切换到至少一个备份服务器的系统中的备份服务器,包括:
用于当所述备份服务器确定连接到其的主服务器可用时执行以下步骤的装置:
将由所述主服务器产生的事务记录镜像到所述备份服务器的易失性存储器中;以及,
周期性地将所述易失性存储器清洗到连接到所述备份服务器的非易失性存储器;
用于当所述备份服务器确定所述主服务器不可用时执行以下步骤的装置:
从客户接收请求;
将所述请求作为至少一个事务来处理;
在易失性存储器中保存所述至少一个事务各自的事务记录;以及
将所述至少一个事务记录清洗到非易失性存储器。
36.根据权利要求35所述的服务器,还包括用于当所述备份服务器最初确定所述主服务器不再可用时执行以下步骤的装置:
将所述备份服务器易失性存储器清洗到非易失性存储器;
将任何未完成的事务施加到至少与存储在所述非易失性存储器上的所述事务记录相关联的表以及队列;以及
发送信号给所述客户,指示所述备份服务器准备好处理请求。
37.一种在用于故障时从主服务器切换到至少一个备份服务器的系统中的主服务器,包括:
用于从客户接收请求的装置;
用于将所述请求作为至少一个事务来处理的装置;
用于在易失性存储器中保存所述至少一个事务各自的事务记录的装置;
用于产生提交所述事务的请求的装置;
用于发送请求以将所述事务记录镜像到备份服务器的易失性存储器中的装置;以及
如果所述镜像请求被成功确认,应答所述提交请求。
38.根据权利要求37所述的服务器,还包括:
用于周期性地将所述主服务器易失性存储器清洗到所述主服务器各自的非易失性存储器的装置。
39.一种操作用于故障时从主服务器切换到至少一个备份服务器的系统的方法,包括步骤:在主服务器接收来自客户的请求;在所述主服务器将所述请求作为至少一个事务来处理;在所述主服务器的易失性存储器中存储所述至少一个事务各自的事务记录;在所述主服务器产生提交所述事务的请求;将所述事务记录镜像到所述备份服务器的易失性存储器中;以及如果所述镜像被成功确认,则在所述主服务器中应答所述提交请求;对于另外的被接收的消息,重复上述各步骤;并且如果所述镜像未被成功确认,则立即将所述主服务器易失性存储器清洗到非易失性存储器;并且之后停止所述镜像步骤的进一步执行;并且之后在所述保存步骤之后将每个所述事务记录清洗到非易失性存储器中。
40.一种操作用于故障时从主服务器切换到至少一个备份服务器的系统的方法,包括步骤:在主服务器接收来自客户的请求;确定所述请求是否是重复的请求,并且如果所述请求是重复的请求,则将先前存储的处理所述请求的结果返回到所述客户,并且如果所述请求不是重复的请求,则在所述主服务器将所述请求作为至少一个事务来处理;在所述主服务器的易失性存储器中保存所述至少一个事务各自的事务记录;在所述主服务器产生提交所述事务的请求;将所述事务记录镜像到所述备份服务器的易失性存储器中;以及如果所述镜像被成功确认,则在所述主服务器中应答所述提交请求。
41.一种用于将客户从主服务器切换到备份服务器的方法,包括:
建立从客户到主服务器的第一连接;
经由所述第一连接将消息从所述客户发送到所述主服务器以供由所述主服务器进行处理;
在所述客户接收到对所述消息的预期响应之前,
在所述客户经历所述主服务器的故障,由此所述第一连接发生故障;
请求从所述客户到备份服务器的第二连接的启动;
在所述备份服务器确认所述主服务器已经故障;
从所述备份服务器向所述客户发送恢复信号,该恢复信号表示对于启动所述第二连接的所述请求的应答;
在所述客户接收所述恢复信号;
经由所述第二连接将所述消息发送到所述备份服务器以供由所述备份服务器进行处理;以及
如果所述备份服务器含有如先前由所述主服务器在所述主服务器发生故障之前处理的那样处理所述消息的结果,则将所述结果从所述备份服务器发送到所述客户;或者
如果所述备份服务器不含有由所述主服务器处理所述消息的结果,则在所述备份服务器处理所述消息并且将其结果从所述备份服务器发送到所述客户。
42.根据权利要求41所述的方法,其中所述主服务器被配置来将处理所述消息的结果镜像到所述备份服务器。
43.根据权利要求41所述的方法,其中所述备份服务器将所述结果写入维持在易失性存储器中的事务日志中并且在处理每个所述消息之后将所述事务日志清洗到非易失性存储器中。
44.根据权利要求41所述的方法,还包括:
解决所述主服务器的所述故障,以使得所述主服务器成为可用的;
在所述备份服务器确定所述主服务器是可用的,在该点每个所述服务器将所述结果写入事务日志中,并且
在不如处理每个所述消息那样频繁的周期的基础上将所述事务日志清洗到非易失性存储器中。
45.根据权利要求44所述的方法,还包括颠倒所述备份服务器和所述主服务器的被指定的角色,以使得所述备份服务器被指定为主服务器并且所述主服务器被指定为备份服务器。
46.根据权利要求44所述的方法,还包括:
在所述主服务器和所述备份服务器确认所述主服务器和所述备份服务器是可用的;
在所述备份服务器向所述客户宣布所述备份服务器不再可用;
从所述客户向主服务器请求所述第一连接的重新启动;
从所述主服务器向所述客户发送第二恢复信号,该第二恢复信号表示对于重新启动所述第一连接的所述请求的应答;
在所述客户接收所述第二恢复信号;以及
经由所述第一连接将另一个消息发送到所述主服务器以供由所述主服务器进行处理。
47.根据权利要求41所述的方法,其中所述主服务器和所述备份服务器在其间维持主链路和故障保险链路,并且如果保持有效信号既不存在于所述主链路上也不存在于所述故障保险链路上,则所述备份服务器确认所述主服务器已经故障。
48.根据权利要求47所述的方法,其中即使所述备份服务器经由所述主链路和所述故障保险链路确认所述主服务器已经故障,所述客户也不经历所述故障,除非所述主服务器不能够经由所述第一连接进行通信。
49.一种用于将客户从主服务器切换到备份服务器的方法,包括:
在所述客户维护标识所述主服务器的第一地址;
在所述客户维持标识所述备份服务器的第二地址;
建立从所述客户到主服务器的第一连接;
经由所述第一连接将消息从所述客户发送到所述主服务器以供由所述主服务器进行处理;
在所述客户接收到对所述消息的预期响应之前,在所述客户经历所述主服务器的故障,由此所述第一连接发生故障;
使用所述第二地址请求从所述客户向所述备份服务器的第二连接的启动;
在所述客户从所述备份服务器接收恢复信号;以及
从所述备份服务器接收处理所述消息的结果;
其中如果所述结果在所述主服务器发生故障之前由所述主服务器先前处理过,则所述结果被从所述备份服务器的存储器中按先前被所述备份服务器存储的那样接收;以及
否则如果所述结果在所述主服务器发生故障之后由所述备份服务器处理过,则所述结果从所述备份服务器的存储器中按先前被所述备份服务器存储的那样接收,以使得所述客户并不知道是所述服务器中的哪个服务器处理了所述消息。
50.一种客户机,被配置成从经由第一连接与主服务器通信切换到经由第二连接与备份服务器通信,所述客户机包括连接到存储设备的至少一个处理器和用于经由所述第一连接和所述第二连接通信的网络接口的配置;所述处理器被配置来在所述客户维持标识所述主服务器的第一地址并且在所述客户维持标识所述备份服务器的第二地址;所述处理器还被配置来建立从所述客户到主服务器的第一连接并且经由所述第一连接从所述客户发送消息到所述主服务器以供由所述主服务器进行处理;所述处理器还被配置来在所述客户接收到对所述消息的预期响应之前,在所述客户经历所述主服务器的故障;所述处理器还配置来使用所述第二地址请求从所述客户到所述备份服务器的第二连接的启动;所述处理器还配置来从所述备份服务器接收恢复信号并且还配置来从所述备份服务器接收处理所述消息的结果;其中如果所述结果在所述主服务器发生故障之前由所述主服务器先前处理过,则所述结果被从所述备份服务器的存储器中按先前被所述备份服务器存储的那样接收;以及否则如果所述结果在所述主服务器发生故障之后由所述备份服务器处理过,则所述结果在所述处理器从所述备份服务器的存储器中按先前被所述备份服务器存储的那样接收,以使得所述处理器并不知道是所述服务器中的哪个服务器处理了所述消息。
51.根据权利要求50所述的客户机,其中所述主服务器被配置来将处理所述消息的结果镜像到所述备份服务器。
52.根据权利要求50所述的客户机,其中所述备份服务器将所述结果写入维持在易失性存储器中的事务日志中,并且在处理每个所述消息之后,将所述事务日志清洗到非易失性存储器中。
53.根据权利要求50所述的客户机,其中所述主服务器和所述备份服务器在其间维持主链路和故障保险链路,并且如果保持有效信号既不存在于所述主链路上也不存在于所述故障保险链路上,则所述备份服务器确认所述主服务器已经故障。
54.根据权利要求53所述的客户机,其中即使所述备份服务器经由所述主链路和所述故障保险链路确认所述主服务器已经故障,所述处理器也不经历所述故障,除非所述主服务器不能够经由所述第一连接进行通信。
55.一种经由主链路连接到主服务器并且如果在所述主服务器和客户机之间的第一连接发生故障则能够经由第二连接连接到客户机的备份服务器,该备份服务器包括连接到存储设备的至少一个处理器和用于经由所述主连接和所述第二连接进行通信的网络接口的配置;所述处理器被配置来接收和存储从所述客户发送到所述主服务器的由主服务器处理的消息的镜像结果;所述处理器被配置来确定所述主服务器是否发生故障以及如果所述客户机确定所述主服务器没有能够对处理所述消息的请求进行响应则对来自所述客户机的处理所述消息的请求进行响应;所述处理器被配置来如果在所述主服务器发生故障之前所述消息被所述主服务器处理并且镜像到所述备份服务器则返回存储在所述备份服务器中的结果;所述处理器还被配置来如果在所述主服务器发生故障之前所述消息没有被所述主服务器处理并镜像到所述备份服务器则产生先前没有被存储的所述消息的结果。
CNB2004800408640A 2003-11-24 2004-01-12 用于故障解决的系统和方法 Expired - Fee Related CN100492307C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/718,616 US7188273B2 (en) 2003-11-24 2003-11-24 System and method for failover
US10/718,616 2003-11-24

Publications (2)

Publication Number Publication Date
CN1906593A CN1906593A (zh) 2007-01-31
CN100492307C true CN100492307C (zh) 2009-05-27

Family

ID=34435789

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800408640A Expired - Fee Related CN100492307C (zh) 2003-11-24 2004-01-12 用于故障解决的系统和方法

Country Status (9)

Country Link
US (2) US7188273B2 (zh)
EP (2) EP2104041B1 (zh)
CN (1) CN100492307C (zh)
AT (1) ATE469395T1 (zh)
CA (4) CA2543493C (zh)
DE (1) DE602004027339D1 (zh)
HK (2) HK1100499A1 (zh)
MX (1) MXPA06005797A (zh)
WO (1) WO2005050449A1 (zh)

Families Citing this family (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996517B2 (en) * 2002-01-23 2011-08-09 Novell, Inc. Transparent network connection takeover
US20050099163A1 (en) * 2003-11-08 2005-05-12 Andigilog, Inc. Temperature manager
US7857510B2 (en) * 2003-11-08 2010-12-28 Carl F Liepold Temperature sensing circuit
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US9213609B2 (en) * 2003-12-16 2015-12-15 Hewlett-Packard Development Company, L.P. Persistent memory device for backup process checkpoint states
JP2005196683A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 情報処理システム、情報処理装置、及び情報処理システムの制御方法
KR100435985B1 (ko) * 2004-02-25 2004-06-12 엔에이치엔(주) 투표를 활용한 무정지 서비스 시스템 및 그 시스템에서의정보 갱신 및 제공 방법
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
JP3909062B2 (ja) * 2004-03-25 2007-04-25 株式会社日立製作所 Nasの制御装置及びバックアップ方法並びにプログラム
US7757074B2 (en) * 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
EP2264956B1 (en) * 2004-07-23 2017-06-14 Citrix Systems, Inc. Method for securing remote access to private networks
JP2008507928A (ja) 2004-07-23 2008-03-13 サイトリックス システムズ, インコーポレイテッド ネットワークノード間の通信を最適化するためのシステムおよび方法
CA2576569A1 (en) * 2004-08-13 2006-02-23 Citrix Systems, Inc. A method for maintaining transaction integrity across multiple remote access servers
HK1066447A1 (en) * 2004-09-14 2005-02-04 Multivision Intelligent Survei Backup system for digital surveillance system.
US20060056285A1 (en) * 2004-09-16 2006-03-16 Krajewski John J Iii Configuring redundancy in a supervisory process control system
US7451347B2 (en) * 2004-10-08 2008-11-11 Microsoft Corporation Failover scopes for nodes of a computer cluster
US7529783B2 (en) * 2004-12-22 2009-05-05 International Business Machines Corporation Log shipping data replication with parallel log writing and log shipping at the primary site
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7412291B2 (en) * 2005-01-12 2008-08-12 Honeywell International Inc. Ground-based software tool for controlling redundancy management switching operations
US8255456B2 (en) * 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
AU2005325674A1 (en) 2005-01-24 2006-08-03 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US20060198386A1 (en) * 2005-03-01 2006-09-07 Tong Liu System and method for distributed information handling system cluster active-active master node
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
US20060271929A1 (en) * 2005-05-27 2006-11-30 Computer Associates Think, Inc. Method and system for providing job forecasting in a computer system
KR100781511B1 (ko) * 2005-06-29 2007-12-03 삼성전자주식회사 홈 네트워크를 기반으로 하는 스트리밍 서비스 방법 및시스템
US20070041327A1 (en) * 2005-08-16 2007-02-22 Cisco Technology, Inc. Multicast heartbeat signaling
US9141481B1 (en) * 2010-08-06 2015-09-22 Open Invention Network, Llc System and method for reliable non-blocking messaging for multi-process application replication
US8589953B1 (en) * 2010-08-06 2013-11-19 Open Invention Network, Llc System and method for transparent consistent application-replication of multi-process multi-threaded applications
US8584145B1 (en) 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
US9043640B1 (en) * 2005-08-26 2015-05-26 Open Invention Network, LLP System and method for event-driven live migration of multi-process applications
US7519859B2 (en) * 2005-08-30 2009-04-14 International Business Machines Corporation Fault recovery for transaction server
EP1770960B1 (en) 2005-10-03 2010-03-10 Sap Ag A data processing system and method of mirroring the provision of identifiers
CA2632235A1 (en) * 2005-12-02 2007-06-07 Citrix Systems, Inc. Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US20070174695A1 (en) * 2006-01-18 2007-07-26 Srinidhi Varadarajan Log-based rollback-recovery
JP4414399B2 (ja) * 2006-01-30 2010-02-10 富士通株式会社 ディスク制御装置
US20070203978A1 (en) * 2006-02-09 2007-08-30 Mats Ljungqvist Reduction of I/O-operations in a server at a trading system
ES2307242T3 (es) * 2006-02-15 2008-11-16 Software Ag Sistema de seguridad contra fallos para la gestion de la comunicacion cliente-servidor.
US7761739B2 (en) * 2006-02-23 2010-07-20 Librato, Inc. Method for checkpointing a system already engaged in a concurrent checkpoint
US7831686B1 (en) * 2006-03-31 2010-11-09 Symantec Operating Corporation System and method for rapidly ending communication protocol connections in response to node failure
US7797565B1 (en) 2006-04-04 2010-09-14 Symantec Operating Corporation System and method for maintaining communication protocol connections during failover
US7743129B2 (en) * 2006-05-01 2010-06-22 International Business Machines Corporation Methods and arrangements to detect a failure in a communication network
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US8234253B1 (en) * 2006-12-06 2012-07-31 Quest Software, Inc. Systems and methods for performing recovery of directory data
CN100452725C (zh) * 2007-02-02 2009-01-14 杭州华三通信技术有限公司 日志备份方法及实现该方法的系统单元及装置
US8190572B2 (en) * 2007-02-15 2012-05-29 Yahoo! Inc. High-availability and data protection of OLTP databases
US20080247308A1 (en) * 2007-04-04 2008-10-09 Cisco Technology, Inc. Providing session redundancy using priority during a syncing process
CN101043310B (zh) * 2007-04-27 2010-09-08 北京佳讯飞鸿电气股份有限公司 核心控制系统的双核心控制的镜像备份方法
FR2916319B1 (fr) * 2007-05-14 2009-08-14 Streamezzo Sa Procede de creation d'un contenu, procede de suivi des actions d'utilisation d'un contenu, terminal et signaux correspondants
CA2630014C (en) * 2007-05-18 2014-05-27 Nec Infrontia Corporation Main device redundancy configuration and main device replacing method
US8244949B2 (en) * 2007-05-18 2012-08-14 Nec Infrontia Corporation Slot interface access unit, method thereof, and program thereof, as well as redundancy configuration of main unit, and replacing method of the same
US7631214B2 (en) * 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
US7788530B2 (en) * 2007-06-27 2010-08-31 International Business Machines Corporation Storage server configuration despite an out-of-service storage adapter
US8359646B2 (en) * 2007-07-12 2013-01-22 International Business Machines Corporation Ensuring security of connection between thin client and client blade
US7774646B2 (en) 2007-07-23 2010-08-10 Netapp, Inc. Surviving storage system takeover by replaying operations in an operations log mirror
US20090037539A1 (en) * 2007-08-02 2009-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods and Systems for Message Interworking
US7805632B1 (en) * 2007-09-24 2010-09-28 Net App, Inc. Storage system and method for rapidly recovering from a system failure
ES2434168T3 (es) * 2007-12-17 2013-12-13 Telefonaktiebolaget L M Ericsson (Publ) Redundancia de nodo de red troncal móvil
CN101251814B (zh) * 2008-02-04 2010-04-07 浙江大学 一种在操作系统中实现可信恢复系统的方法
US8001079B2 (en) * 2008-02-29 2011-08-16 Double-Take Software Inc. System and method for system state replication
US8489773B1 (en) * 2008-06-06 2013-07-16 Amdocs Software Systems Limited System, method, and computer program for sending a response to a client based on a replication message received from a master server
US20100017321A1 (en) * 2008-07-18 2010-01-21 Chicago Mercantile Exchange, Inc. Adaptive Implied Spread Matching
KR101005853B1 (ko) * 2008-08-07 2011-01-05 한국전자통신연구원 홈 콘텐츠 제공 방법 및 장치
US20100049717A1 (en) * 2008-08-20 2010-02-25 Ryan Michael F Method and systems for sychronization of process control servers
US8020037B1 (en) * 2008-09-23 2011-09-13 Netapp, Inc. Creation of a test bed for testing failover and failback operations
US7996713B2 (en) * 2008-12-15 2011-08-09 Juniper Networks, Inc. Server-to-server integrity checking
US20100157964A1 (en) * 2008-12-18 2010-06-24 Pantech & Curitel Communications, Inc. Server to guide reconnection in mobile internet, method for guiding server reconnection, and server reconnection method
US8332443B2 (en) * 2008-12-19 2012-12-11 Microsoft Corporation Masterless distributed batch scheduling engine
WO2010090325A1 (ja) * 2009-02-09 2010-08-12 日本電気株式会社 通信システム、通信装置、制御装置、制御方法及びプログラム
EP2241977B1 (en) * 2009-04-17 2015-05-27 Accenture Global Services Limited Exchangeable application components
US20120072604A1 (en) * 2009-05-29 2012-03-22 France Telecom technique for delivering content to a user
US8682954B2 (en) * 2009-07-15 2014-03-25 International Business Machines Corporation Replication in a network environment
US8078902B2 (en) * 2009-10-30 2011-12-13 Verizon Patent And Licensing, Inc. Fault surveillance and automatic fail-over processing in broker-based messaging systems and methods
US8458403B2 (en) * 2009-11-24 2013-06-04 Honeywell International Inc. Architecture and method for cache-based checkpointing and rollback
US8108721B2 (en) * 2009-11-24 2012-01-31 Honeywell International Inc. Architecture and method for hardware-assisted processor checkpointing and rollback
CN102255716B (zh) * 2010-05-20 2015-12-16 中兴通讯股份有限公司 一种对协议状态的设备间备份的方法及系统
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
US8504526B2 (en) 2010-06-04 2013-08-06 Commvault Systems, Inc. Failover systems and methods for performing backup operations
US10572937B2 (en) 2010-06-17 2020-02-25 Chicago Mercantile Exchange Inc. Generating implied orders based on electronic requests for quotes
CN102300028A (zh) * 2010-06-28 2011-12-28 株式会社东芝 数据处理装置、图像处理系统以及数据处理方法
US9864772B2 (en) 2010-09-30 2018-01-09 International Business Machines Corporation Log-shipping data replication with early log record fetching
US9600315B2 (en) * 2010-10-22 2017-03-21 Netapp, Inc. Seamless takeover of a stateful protocol session in a virtual machine environment
US8589732B2 (en) * 2010-10-25 2013-11-19 Microsoft Corporation Consistent messaging with replication
AP3976A (en) 2010-12-01 2017-01-04 Infosys Ltd Method and system for facilitating non-interruptive transactions
US8468383B2 (en) * 2010-12-08 2013-06-18 International Business Machines Corporation Reduced power failover system
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US8850261B2 (en) * 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US20120311375A1 (en) * 2011-06-01 2012-12-06 Microsoft Corporation Redirecting requests to secondary location during temporary outage
US10585766B2 (en) * 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8938638B2 (en) * 2011-06-06 2015-01-20 Microsoft Corporation Recovery service location for a service
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US8788579B2 (en) * 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US8751870B2 (en) * 2011-09-13 2014-06-10 Whizchip Design Technologies Pvt. Ltd. Method and system for providing a random sequence coverage
US9357038B2 (en) * 2011-12-06 2016-05-31 Brocade Communications Systems, Inc. Lossless connection failover for mirrored devices
CN102710752B (zh) * 2012-05-13 2015-12-02 徐州易存信息技术有限公司 灾备存储系统
US10142124B2 (en) * 2012-05-24 2018-11-27 Infineon Technologies Ag System and method to transmit data over a bus system
US9607001B2 (en) * 2012-07-13 2017-03-28 Facebook, Inc. Automated failover of a metadata node in a distributed file system
US9904689B2 (en) * 2012-07-13 2018-02-27 Facebook, Inc. Processing a file system operation in a distributed file system
CN102761449B (zh) * 2012-08-07 2014-08-13 北京鼎震科技有限责任公司 一种web服务性能分析方法和装置
CN102761450B (zh) * 2012-08-07 2015-02-11 北京鼎震科技有限责任公司 一种网站分析系统及方法和装置
US9501371B2 (en) 2012-08-13 2016-11-22 Unify Gmbh & Co. Kg Method and apparatus for indirectly assessing a status of an active entity
KR20140047230A (ko) * 2012-10-10 2014-04-22 (주)티베로 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
US9361192B2 (en) * 2012-10-19 2016-06-07 Oracle International Corporation Method and apparatus for restoring an instance of a storage server
US9953305B2 (en) * 2012-10-22 2018-04-24 Oonetic Online payment system and method according to the mirror authorization server principle
CN104035833A (zh) * 2013-03-07 2014-09-10 联发科技股份有限公司 校验机器可读代码完整性的方法及系统
US9251008B2 (en) * 2013-03-14 2016-02-02 International Business Machines Corporation Client object replication between a first backup server and a second backup server
US9678673B2 (en) 2013-03-28 2017-06-13 Hewlett Packard Enterprise Development Lp Coordinating replication of data stored in a non-volatile memory-based system
CN103248690A (zh) * 2013-04-27 2013-08-14 苏州洁祥电子有限公司 车联网系统及其数据备份方法
CN103248689A (zh) * 2013-04-27 2013-08-14 苏州洁祥电子有限公司 车联网系统及其数据备份方法
CN103249070A (zh) * 2013-04-27 2013-08-14 苏州洁祥电子有限公司 车联网系统及其数据备份方法
CN103249071A (zh) * 2013-04-28 2013-08-14 苏州洁祥电子有限公司 车联网系统及其数据备份方法
CN103248692A (zh) * 2013-04-28 2013-08-14 苏州洁祥电子有限公司 车联网系统及其数据备份方法
CN103248691A (zh) * 2013-04-28 2013-08-14 苏州洁祥电子有限公司 车联网系统及其数据备份方法
US9483362B2 (en) 2013-05-08 2016-11-01 Commvault Systems, Inc. Use of auxiliary data protection software in failover operations
CN103336736B (zh) * 2013-05-27 2017-04-12 华为技术有限公司 系统日志获取方法和装置
EP3008879A4 (en) 2013-06-13 2017-01-04 TSX Inc. Failover system and method
JP6205898B2 (ja) * 2013-06-27 2017-10-04 富士通株式会社 制御方法、制御プログラムおよび情報処理システム
US9392079B2 (en) 2013-07-19 2016-07-12 International Business Machines Corporation Directory service discovery and/or learning
US9280426B2 (en) * 2013-07-24 2016-03-08 Solar Turbines Incorporated System and method for server redundancy
CN103546579B (zh) * 2013-11-07 2017-01-04 陈靓 一种用数据日志提高分布式存储系统可用性的方法
US9563518B2 (en) 2014-04-02 2017-02-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
EP2953295B1 (en) * 2014-06-06 2019-05-15 Nokia Solutions and Networks Oy Automatic delta event synchronization in multiple manager-agent environments
US10423498B2 (en) * 2014-06-26 2019-09-24 Sybase, Inc. Zero data loss transfer protocol
US10108496B2 (en) 2014-06-30 2018-10-23 International Business Machines Corporation Use of replicated copies to improve database backup performance
US9632890B2 (en) 2014-07-08 2017-04-25 Netapp, Inc. Facilitating N-way high availability storage services
US20160011929A1 (en) * 2014-07-08 2016-01-14 Netapp, Inc. Methods for facilitating high availability storage services in virtualized cloud environments and devices thereof
US20160019117A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Creating customized bootable image for client computing device from backup copy
US9665432B2 (en) * 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
US10896464B2 (en) * 2014-09-19 2021-01-19 Trading Technologies International, Inc. System, method, and tool for synthetic order recovery
CN105760252A (zh) * 2014-12-19 2016-07-13 中兴通讯股份有限公司 实现事务日志镜像备份的方法及装置
US9817726B2 (en) * 2015-01-09 2017-11-14 Ariba, Inc. Delta replication of index fragments to enhance disaster recovery
CN104898435B (zh) * 2015-04-13 2019-01-15 惠州Tcl移动通信有限公司 家庭服务系统及其故障处理方法、家电设备、服务器
US9436938B1 (en) 2015-05-13 2016-09-06 Square, Inc. Transaction payment processing by multiple data centers
CN105207809B (zh) * 2015-08-25 2019-01-15 广州华多网络科技有限公司 一种数据处理方法、服务器、客户端和系统
US9934113B2 (en) 2015-10-05 2018-04-03 International Business Machines Corporation Enhanced console assisted recovery for a coordinated timing network
WO2017187273A1 (en) * 2016-04-29 2017-11-02 Societal Innovations Ipco Limited System and method for providing real time redundancy for a configurable software platform
CN106095606B (zh) * 2016-06-12 2019-07-23 北京三快在线科技有限公司 一种服务器的软件故障处理方法和装置
CN106899648B (zh) 2016-06-20 2020-02-14 阿里巴巴集团控股有限公司 一种数据处理方法和设备
US10944823B2 (en) * 2016-06-28 2021-03-09 At&T Intellectual Property I, L.P. Highly redundant and scalable storage area network architecture
US10459811B2 (en) * 2016-08-19 2019-10-29 Bank Of America Corporation System for increasing intra-application processing efficiency by transmitting failed processing work over a processing recovery network for resolution
US10180881B2 (en) 2016-08-19 2019-01-15 Bank Of America Corporation System for increasing inter-application processing efficiency by transmitting failed processing work over a processing recovery network for resolution
US10270654B2 (en) 2016-08-19 2019-04-23 Bank Of America Corporation System for increasing computing efficiency of communication between applications running on networked machines
US10417102B2 (en) 2016-09-30 2019-09-17 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic
US10484015B2 (en) 2016-12-28 2019-11-19 Amazon Technologies, Inc. Data storage system with enforced fencing
US10514847B2 (en) 2016-12-28 2019-12-24 Amazon Technologies, Inc. Data storage system with multiple durability levels
US11301144B2 (en) 2016-12-28 2022-04-12 Amazon Technologies, Inc. Data storage system
CN110362406B (zh) * 2017-01-20 2020-12-25 腾讯科技(深圳)有限公司 事件处理方法和装置
US11837342B2 (en) * 2017-01-26 2023-12-05 Joshua J. Dronzek Method and system for backing up and maintaining electronic medical records for periods of temporary loss of connectivity to an electronic storage facility
US10521135B2 (en) * 2017-02-15 2019-12-31 Amazon Technologies, Inc. Data system with data flush mechanism
US10402807B1 (en) 2017-02-28 2019-09-03 Square, Inc. Estimating interchange fees for card payments
CN107480002B (zh) * 2017-07-26 2020-06-30 阿里巴巴集团控股有限公司 消息处理方法及装置、电子设备
US11481362B2 (en) * 2017-11-13 2022-10-25 Cisco Technology, Inc. Using persistent memory to enable restartability of bulk load transactions in cloud databases
EP3543870B1 (en) * 2018-03-22 2022-04-13 Tata Consultancy Services Limited Exactly-once transaction semantics for fault tolerant fpga based transaction systems
US11620623B2 (en) * 2018-05-31 2023-04-04 Nxp B.V. Merchant transaction mirroring for personal point of sale (pPOS) for card present e-commerce and in vehicle transaction
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US11169723B2 (en) 2019-06-28 2021-11-09 Amazon Technologies, Inc. Data storage system with metadata check-pointing
US11641395B2 (en) * 2019-07-31 2023-05-02 Stratus Technologies Ireland Ltd. Fault tolerant systems and methods incorporating a minimum checkpoint interval
US11288211B2 (en) 2019-11-01 2022-03-29 EMC IP Holding Company LLC Methods and systems for optimizing storage resources
US11150845B2 (en) 2019-11-01 2021-10-19 EMC IP Holding Company LLC Methods and systems for servicing data requests in a multi-node system
US11392464B2 (en) * 2019-11-01 2022-07-19 EMC IP Holding Company LLC Methods and systems for mirroring and failover of nodes
US11294725B2 (en) 2019-11-01 2022-04-05 EMC IP Holding Company LLC Method and system for identifying a preferred thread pool associated with a file system
US11237924B2 (en) 2019-12-11 2022-02-01 Commvault Systems, Inc. Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
CN111464389B (zh) * 2020-03-31 2021-09-14 云知声智能科技股份有限公司 一种高可用节点故障检测方法及装置
US11182096B1 (en) 2020-05-18 2021-11-23 Amazon Technologies, Inc. Data storage system with configurable durability
US11681443B1 (en) 2020-08-28 2023-06-20 Amazon Technologies, Inc. Durable data storage with snapshot storage space optimization
US11645175B2 (en) 2021-02-12 2023-05-09 Commvault Systems, Inc. Automatic failover of a storage manager
US20220318208A1 (en) * 2021-03-31 2022-10-06 Nutanix, Inc. Virtualized file servers and methods to persistently store file system event data
US11875060B2 (en) * 2022-04-18 2024-01-16 Dell Products L.P. Replication techniques using a replication log

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307481A (en) * 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5305200A (en) * 1990-11-02 1994-04-19 Foreign Exchange Transaction Services, Inc. Financial exchange system having automated recovery/rollback of unacknowledged orders
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
DE69119222T2 (de) * 1991-06-04 1996-11-21 Ibm Datensicherung und Beseitigung in einem Datenverarbeitungssystem
US5437022A (en) * 1992-12-17 1995-07-25 International Business Machines Corporation Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto
GB2281644A (en) * 1993-09-02 1995-03-08 Ibm Fault tolerant transaction-oriented data processing.
US5987432A (en) * 1994-06-29 1999-11-16 Reuters, Ltd. Fault-tolerant central ticker plant system for distributing financial market data
US6202055B1 (en) * 1996-08-21 2001-03-13 Image Data, Llc Positive identification display device and scanner for low cost collection and display of graphic and text data in a secure manner
US6101497A (en) * 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US6000020A (en) * 1997-04-01 1999-12-07 Gadzoox Networks, Inc. Hierarchical storage management from a mirrored file system on a storage network segmented by a bridge
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6199055B1 (en) * 1997-11-05 2001-03-06 E-Stamp Corporation System and method for providing fault tolerant transcriptions over an unsecured communication channel
US6202149B1 (en) 1998-09-30 2001-03-13 Ncr Corporation Automated application fail-over for coordinating applications with DBMS availability
GB2343020A (en) * 1998-10-19 2000-04-26 Ibm Handling transaction failures in a transaction processing system
US6338126B1 (en) * 1999-12-06 2002-01-08 Legato Systems, Inc. Crash recovery without complete remirror
US6574750B1 (en) * 2000-01-06 2003-06-03 Oracle Corporation Preserving consistency of passively-replicated non-deterministic objects
US6480970B1 (en) * 2000-05-17 2002-11-12 Lsi Logic Corporation Method of verifying data consistency between local and remote mirrored data storage systems
US7058853B1 (en) * 2000-06-09 2006-06-06 Hewlett-Packard Development Company, L.P. Highly available transaction processing
US6823336B1 (en) * 2000-09-26 2004-11-23 Emc Corporation Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor
JP2002189570A (ja) * 2000-12-20 2002-07-05 Hitachi Ltd 記憶システムの二重化方法および記憶システム
US6681339B2 (en) * 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US6523087B2 (en) * 2001-03-06 2003-02-18 Chaparral Network Storage, Inc. Utilizing parity caching and parity logging while closing the RAID5 write hole
WO2003009139A1 (en) 2001-07-16 2003-01-30 Transact In Memory, Inc. Parallelized redo-only logging and recovery for highly available main memory database systems
US6910150B2 (en) * 2001-10-15 2005-06-21 Dell Products L.P. System and method for state preservation in a stretch cluster
AU2003259297A1 (en) * 2002-07-29 2004-02-16 Eternal Systems, Inc. Consistent message ordering for semi-active and passive replication
US7058850B2 (en) * 2002-07-31 2006-06-06 Hewlett-Packard Development Company, L.P. Method and system for preventing data loss within disk-array pairs supporting mirrored logical units
JP2004259079A (ja) * 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
US6996502B2 (en) * 2004-01-20 2006-02-07 International Business Machines Corporation Remote enterprise management of high availability systems
US8233384B2 (en) * 2005-12-21 2012-07-31 Rockstar Bidco, LP Geographic redundancy in communication networks

Also Published As

Publication number Publication date
US20070180302A1 (en) 2007-08-02
HK1100499A1 (en) 2007-09-21
ATE469395T1 (de) 2010-06-15
US7188273B2 (en) 2007-03-06
CA2543493C (en) 2014-02-18
CA2830530C (en) 2016-07-05
CA2921108C (en) 2016-07-12
EP2104041A3 (en) 2011-10-19
WO2005050449A1 (en) 2005-06-02
CA2543493A1 (en) 2005-06-02
EP2104041A2 (en) 2009-09-23
CA2932981A1 (en) 2005-06-02
EP1533701A1 (en) 2005-05-25
EP1533701B1 (en) 2010-05-26
CA2830530A1 (en) 2005-06-02
MXPA06005797A (es) 2007-01-26
CN1906593A (zh) 2007-01-31
CA2921108A1 (en) 2005-06-02
US7293192B2 (en) 2007-11-06
US20050138461A1 (en) 2005-06-23
EP2104041B1 (en) 2013-05-22
HK1136363A1 (en) 2010-06-25
DE602004027339D1 (de) 2010-07-08

Similar Documents

Publication Publication Date Title
CN100492307C (zh) 用于故障解决的系统和方法
US8909977B2 (en) Failover system and method
AU2012202229B2 (en) Failover system and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1100499

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1100499

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090527

Termination date: 20180112