CN101278540B - 用于保持旨在与大型数据库对接的多层软件系统中的缓存内容的一致性的系统和方法 - Google Patents

用于保持旨在与大型数据库对接的多层软件系统中的缓存内容的一致性的系统和方法 Download PDF

Info

Publication number
CN101278540B
CN101278540B CN2006800366257A CN200680036625A CN101278540B CN 101278540 B CN101278540 B CN 101278540B CN 2006800366257 A CN2006800366257 A CN 2006800366257A CN 200680036625 A CN200680036625 A CN 200680036625A CN 101278540 B CN101278540 B CN 101278540B
Authority
CN
China
Prior art keywords
server
central
cache
reconstruction
central server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2006800366257A
Other languages
English (en)
Other versions
CN101278540A (zh
Inventor
B·雅南
R·戈莱
L·伊斯纳尔迪
R·达尼埃罗
W·鲁本施泰因
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
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 Amadeus SAS filed Critical Amadeus SAS
Publication of CN101278540A publication Critical patent/CN101278540A/zh
Application granted granted Critical
Publication of CN101278540B publication Critical patent/CN101278540B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2885Hierarchically arranged intermediate devices, e.g. for hierarchical caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Abstract

本发明涉及用于保持旨在与大型数据库对接的多层软件系统中的缓存内容的一致性的系统和方法。描述了一种用于保持服务器的多层架构中的缓存内容的一致性的方法和系统。该架构包括:卫星服务器组成的前端层,每个卫星服务器都操作一个本地缓存;和中心服务器组成的中间层,每个中心服务器都操作一个中心缓存执。中心服务器通过数据库服务器与数据库对接以检索用于构造对象的数据元素并且将其存储在中心缓存中。一旦构造了对象,对象就被赋予生存时间(TTL)并且被存储在中心缓存中,然后被转发到卫星服务器,在卫星服务器中,在被递送到请求这些对象的软件应用之前,这些对象被存储在本地缓存中。当对象过期时,使这些对象无效并从中心服务器重建这些对象,从中心服务器将这些对象转发到所有中心缓存以及需要这些对象的本地缓存。

Description

用于保持旨在与大型数据库对接的多层软件系统中的缓存内容的一致性的系统和方法
技术领域
本发明一般涉及多层客户机/服务器软件架构,更具体地说,涉及一种保持前端层机器和中间层机器中实现的缓存内容之间的一致性以提高总体性能的方法和系统。
背景技术
20世纪80年代后期出现的客户机/服务器模型是一种通用的模块化软件架构,与作为当时标准的集中式分时计算的大型机相比,该架构想要改进可用性、灵活性、互操作性以及可扩展性。客户机是服务的请求方,而服务器则是这种服务的提供方。根据软件配置,同一台机器可以同时是客户机和服务器。
客户机/服务器架构已经逐步取代了先前的大型机软件架构,在先前的大型机软件架构中,所有智能全都位于中心主机计算机内,并且用户通过只能捕获键击和向主机发送信息的无智能终端来与主机进行交互。大型机软件架构的众所周知的限制是:它们不易于支持图形用户界面(GUI)或者从地理上分散的地点访问多个数据库。但是,在分布式客户机/服务器架构中,大型机仍被用作功能强大的服务器。
客户机/服务器架构引入了充当文件服务器的数据库服务器。在该架构中,使用关系型数据库管理系统或RDBMS来直接应答用户查询。通过提供查询响应而不是始终传送完整文件,从而减少了网络通信量。此外,该架构还改进了通过GUI前端对共享数据库进行的多用户更新。在客户机/服务器架构中,通常使用结构化查询语言(SQL)语句在客户机与服务器之间交换数据。
对于图1所示的双层客户机/服务器架构(100)来说,用户系统接口位于用户的台式机(102)环境中,而数据库管理服务则位于能为许多客户机提供服务的服务器(104)中。在用户系统接口环境与数据库管理服务器环境之间,处理管理被划分。对于往往位于局域网或LAN(108)上的包括与单个/多个服务器(未显示)对接的单个/多个客户机的拓扑结构来说,这些拓扑的所有组合都是明显可行的。
在传统的双层架构中,第一层即客户机(102)具有用户接口、主要业务以及数据处理逻辑。它接受并且检查用户输入的句法,处理应用逻辑,产生数据库请求,将这些请求发送到服务器,以及将响应传回给用户任务。第二层即数据库服务器(104)接受并处理来自客户机的数据库请求,检查授权,确保未违反完整性约束,执行查询/更新处理,以及向客户机发送响应。此外,第二层还维护系统目录,提供并发数据库访问,并且执行恢复控制。
已经证实,当工作组中同时在LAN上交互的人不超过100个时,双层客户机/服务器架构是一种良好的分布式计算解决方案。但是,由于服务器即使在无工作要做时也会借助“保活(keep-alive)”消息而与每个客户机保持连接,因此,当用户数量增加时,性能开始降低。双层架构的第二个限制是:使用卖方独有的数据库过程来实现处理管理服务限制了针对应用的RDBMS选择和灵活性。此外,在将程序功能从一台服务器移动(重新分配)到另一台服务器时,双层架构的实现表现出有限的灵活性。
随后,在90年代出现了三层架构(120)和多层变体,用以克服上述限制。在三层架构中,在用户系统接口客户机环境(122)与数据库管理服务器环境(124)之间添加了一个中间层(126)。虽然存在用于实现这种架构以及中间层的多种方式,但是后者往往负责排队、应用执行以及数据库分级(database staging)。通常,由于中间层应该访问数据并且向客户机返回应答,因此,客户机将其请求递送到中间层然后脱离。此外,中间层还会为进行中的工作添加调度和优先区分。
在三层架构的上述变体中,客户机即第一层可以仅实现用户接口,也就是验证输入;在这种情况下,中间层具有所有业务逻辑并且执行数据处理,而服务器即第三层则执行数据验证并且控制数据库访问。
三层客户机/服务器架构已经显示出改进了具有大量用户(通常多达一千个,即双层架构的10倍)的组的性能,并且尤其与双层方法相比,由于不必在层间共享应用代码,因此这种架构还提高了灵活性。三层客户机/服务器架构导致了如下的环境,与具有直接的客户机到服务器连接的双层架构相比,该环境的可扩展性明显更大。它提供了在单个事务中更新多个不同的RDBMS的能力,并且可以与包括平面文件、非关系型数据库管理系统的各种数据源相连,此外,它还可以与现在常用作功能强大的数据库服务器的大型机相连。由此,三层和多层架构最适合大型分布式客户机/服务器环境。举个例子,机票预订公司必须部署以为其顾客提供服务的环境,即全世界的旅行社,其中需要诸如异构数据库(也就是航空运输费用和可用性数据库)的共享资源以及处理规则。
如果多层数据中心成为提供此类服务的主要需求,那么要想进一步提高性能及可扩展性的话,降低计算和通信开销是至关重要的。在多层数据中心的不同层中缓存动态内容是一种用于减少计算和通信开销的公知方法,由此,由于在命中时不必从上位层中再次提取数据,因此可以为甚至更多的顾客同时提供服务。但是,对在中间层和前端层中进行缓存来说,其自身是存在问题的。因此,缓存相容性和缓存一致性成为必须处理的问题。尤其对于无法接受过时航线可用性值的机票预订来说,强的相容性和一致性是必不可少的。
发明内容
因此,本发明的宽泛目的是提供一种用于保持多层软件架构中的动态缓存内容的一致性的方法和系统。
本发明的一个更具体的目的是本发明必须适合多层架构,例如为机票预订系统而部署的架构,并且该架构的特征在于:来自客户机侧的非常高等级的事务,以及由航空公司和其它此类服务供应方提供的费用和可用性数据库的频繁更新。
对本领域技术人员来说,通过参考附图来详读后面的描述,可以清楚了解本发明的其它目的、特征和优点。任何附加的优点都应被包括在本文中。
描述了一种用于保持多层软件架构中的缓存内容的一致性的方法和系统。该架构包括:卫星服务器组成的前端层,每个卫星服务器都操作一个本地缓存;和中心服务器组成的中间层,每个中心服务器都操作一个中心缓存。中心服务器通过数据库服务器与数据库对接以检索用于构造对象的数据元素。一旦构造了对象,对象就被赋予生存时间(TTL)并且被存储在中心缓存中,然后被转发到卫星服务器,在卫星服务器中,在被递送到已经请求这些对象的软件应用之前,这些对象被存储在本地缓存中。在所有可用的中心服务器上对来自卫星服务器的请求进行负载平衡。对于每个请求,选择一个中心服务器进行处理。新构造的对象从所选择的中心服务器被复制到所有其它中心服务器中。每当对象在本地缓存中不找到或过期时,则从所选择的中心缓存请求该对象。每当被请求对象在所选择的中心缓存中不找到时,在所选择的中心服务器中触发被请求对象的构造处理。如果被请求对象已经存在于中心缓存中并且没有过期,则跳过构造处理。一个中心服务器被指定为主中心服务器,并且所有其它中心服务器是备份中心服务器。每当发现被请求对象过期时,由无效处理机在主中心服务器中触发构造处理。在将所发现的过期对象的TTL转发给发起请求的卫星服务器之前,该过期对象的TTL被设置成一个低值。在数据库中用于构造所述对象的至少一个所述数据元素一经修改,就使存储在中心缓存和本地缓存中的对象无效,然后确定哪些对象受到影响,向所有中心服务器的无效处理机广播无效命令。这些无效处理机使中心缓存中的相应对象无效,然后将无效命令传播到所有本地缓存,本地缓存继而无效并删除本地缓存中的相应对象。中心缓存中的被无效对象被删除或被重建。在后一种情况下,重建的对象被复制到所有备份中心缓存中。
附图说明
图1论述了现有技术,即二层与多层软件架构的对比。
图2显示了最适合应用本发明的总体的多层软件架构。
图3描述了由应用程序处理终端用户请求而导致的对象提取的各种情况以及中心服务器中的对象构造处理。
图4论述了本地和中心缓存中的对象的时效。
图5描述了在数据库中修改了数据元素时缓存中的对象的无效处理。
图6论述了被无效对象的重建处理。
图7描述了在辅助存储器中存储必须从中心缓存中移除的未过期对象的处理。
具体实施方式
本发明的以下详细描述是参考附图进行的。虽然描述包含了示例性实施例,但是其它实施例也是可行的,并且在没有脱离本发明的精神和范围的情况下,可对这些实施例是进行改变。
图2描述了最适合应用本发明的总体的多层软件架构。
上层(200)是最终数据源,其中通常至少一个数据库服务器(202)与多个数据库(204)对接,例如由来自世界各地的旅行承运商或此类服务的其它提供商提供的可用性和费用数据库。这些数据库被其用户(也就是负责更新和维护其内容的用户)(206)频繁更新,这些更新往往是通过包括因特网的专用网络和公用网络(208)的组合进行的。总的来说,每天都会记录数以百万计的事务,这涉及大量的数据。
在这里,中间层(210)被示出为包含两个服务器,在下文中将这些服务器称为中心数据服务器或CDS。通常,出于冗余的考虑,存在一个主服务器(212)和一个备份服务器(214)。但是,在一个(无冗余)与多个服务器之间的任何配置都是可行的。此外,例如为了便于系统维护,或者由于指定的主CDS发生故障,中心服务器有时候必须被配置成独立服务器。另外,在必要时,指定的备份服务器必须暂时作为主服务器运转。在本发明的后面的描述中会对此进行进一步论述。
对该架构来说,在中间层中具有多个服务器是常用实践。可能有与主服务器起相同作用的一个以上的冗余服务器,或者运行不同应用程序的专用服务器。当需要更大的处理能力时,一种实现可扩展性的方式包括添加中间服务器,从而可以通过在更多的中间层服务器上对前端层(220)的请求进行负载平衡来处理更多的客户机事务。因此,每个CDS都具有其自己的缓存(216,218),这些缓存被称为中心缓存,它们必须始终保持相干的内容。
在本发明所考虑的应用类型中,在下文中将存在于缓存中的数据实体宽泛地称为软件对象或者简称为对象。一般来说,通过查询而从数据库获取的许多数据元素需要被放置在一起,以创建这些数据元素。因此,举例来说,根据本发明的对象是曾由CDS从数据元素中构造的特定旅费,所述数据元素是通过数据库服务器(202)而从数据库(204)获取的。如果如背景技术部分所述,数据库是关系型数据库,那么该处理可以通过以下方式实现:向数据库发出至少一个(通常是许多个)SQL请求,从而能够在CDS中收集到构造对象(例如,在该具体示例中为旅费)所需的所有数据元素。由此,根据本发明的对象被假定为需要处理能力并且使用与数据服务器的通信带宽而被置于可用形式的详细对象。只要在数据库中尚未修改用于构造对象的源信息,这些对象就可以保持在缓存中。对于重建来说,由于重建耗费了处理能力并且使用了与数据库服务器及其数据库的部分可用通信带宽,因此重建是昂贵的。就一致性而言,例如存在于主CDS(216)的中心缓存中的特定对象必须与其在备份CDS中心缓存(218)中的克隆体完全相同,并且其内容必须与构造了这些内容的数据库(204)的数据元素相容。在本发明的后面的描述中将会对此进行进一步的论述。
前端层(220)是由多个卫星服务器构成,卫星服务器运行用于其终端用户的软件应用。在用于说明本发明的该示例中,这些软件应用通常是定价或费用搜索引擎。这些软件应用可以直接在卫星客户机服务器(222)上运行,或者在包含服务器群(225)的独立的前端层卫星服务器(224)上运行,而前端层卫星服务器(224)继而由远程用户(226)使用标准浏览器以及因特网上最广泛的应用(万维网或web)通过例如因特网的专用或公用网络(228)来进行访问。在这两种情况下,所述应用实质上都利用本地缓存(230)来减少前端层与连接到所有卫星服务器的中间层的CDS之间的通信开销。由此,在必要时,上述对象也会被引入不同的本地缓存。因此,如果被请求对象实际处于其本地缓存中,那么本地应用就不必访问CDS或数据服务器。这样做的主要优点是保护数据库服务器(202),即,防止这些服务器接收到来自终端用户(226)的、不这样做的话就会到达这些服务器的无数请求。
由于软件应用是以实现良好的缓存命中率(hit ratio)为目标而进行设计的,因此可以发现它们的性能得到了显著提高。此外,这显著减少了层间的通信开销,并且最终允许在同一基础架构上接纳更多的终端用户。如上面已论述的,所有这些都假设保持缓存一致性,这一点会在后面的附图中进行进一步论述。
图3描述了由应用程序处理终端用户请求而导致的对象提取的各种情况。
当例如定价程序(300)的位于前端层服务器中的应用程序需要对象(305)来计算旅行价格时,首先询问本地缓存(310)。如果命中,则简单地从本地缓存中取回对象(315)。由于整个处理只涉及运行该应用的服务器,因此,这是取回对象的最有效的方式。
但是,当在本地缓存中不存在被请求对象时,即未找到(320)。这时必须引入对象,这里首先假设对象存在于主CDS(340)的中心缓存中,通过在下文中进一步描述的负载平衡功能向主CDS(340)发出请求(390)。如果确实是这种情况(345),那么数据处理机功能(350)的目标是从中心缓存中取回该对象,并且将其转发(330)到请求服务器的本地缓存,在那里所述对象被存储。在这样做之后,被请求对象最终可被递送到应用程序。因此,本地缓存又多包含了一个可能用于进一步的请求的对象(325)。
当被请求对象既不存在于本地缓存(350)也不存在于主CDS的中心缓存(355)时,必须在CDS中构造该对象并且将其存储在中心缓存中。这是通过已提及的数据处理机(350)实现的,该处理机必须从数据库(365)收集构造被请求对象(355)所需的所有数据元素(360)。构造该对象可能是一个复杂的处理,该处理可能需要向数据库发出很多请求(例如SQL查询)。一旦将其置于一起,则执行彻底的检查以确保它确实可供发起请求的应用使用。这包括对象描述语言的句法和语法检查以及利用应用采样代码的测试。如果新对象如正常时那样通过了该验证阶段,则将其存储在中心缓存中。在存储之前,将生存时间(TTL)或者届满日期附于对象,从而,当对象如图4中进一步论述的那样过期时可以移除该对象。一旦执行了该处理,那么新对象就被转发到已经请求该对象的服务器的本地缓存,该对象首先被存储在所述本地缓存中,然后被递送(375)到需要该对象的软件应用。但是,如果新构造的对象的验证失败,那么该对象将被拒绝,由此不会将其存储在中心缓存或转发给本地缓存(357)。
当在主CDS中创建了新对象时,还在备份服务器(342)中复制(380)该对象,从而也可以从其它中心服务器缓存取回这个新对象。如上所述,为了提供冗余和可扩展性,多个中间层服务器可以同时活动,以使来自前端层服务器的请求在这组可用中心数据服务器上是负载平衡的。对在图3中描绘的负载平衡来说,提及了存在负载平衡功能(385),该功能根据与众所周知的循环复用(round-robin)功能同样简单的特定逻辑或算法来分派前端层请求(390),除此之外,不会进一步讨论负载平衡功能,这超出了本发明的范围。在这种情况下,输入的前端层请求被按顺序接连发送到每个活动的中心服务器,直至到达最后一个为止。然后,下一个请求被再次发送到编号为第一个的中心服务器,以此类推。这种简单的算法通常是非常有效的。但是,存在某些更为复杂的算法,比如如下的算法:测量每个服务器的实际负载并且设法向最不忙的服务器发送输入请求。
因此,提及向主CDS缓存请求未找到对象的先前描述必须加以修正。根据负载平衡功能(385)作出的决定,由于在活动服务器中复制(380)了新构造的对象,因此也可以向备份中心缓存请求未找到对象。在这种情况下,如果在所选择的备份中心缓存中不存在该对象,则必须像选择了主CDS那样如上所述地构造该对象。当出现这种情况时,备份CDS暂时作为主CDS运转,这意味着一旦构造了对象,那么该对象将被从该备份CDS复制到所有活动CDS,以使得在所有的中间层中心缓存中都可得到新对象。在图6中也论述了本发明的此方面,其中备份CDS可以暂时充当主CDS。
图4论述了缓存中的对象的时效。如上所述,所有构造的对象都具有附于其的规定生存时间(TTL)或届满日期,从而可以从缓存中移除过期的元素,并且这些元素不会永远保持在存储器中。
当软件应用(400)在本地缓存中提取到过期对象(405)时,该对象将被移除,并且因此不会将其返回给发起请求的应用。这会触发对中间层CDS(由负载平衡功能选择的中间层CDS,未示出,如图3所述)的询问。如果该对象存在于中心缓存中(445)并且没有过期,那么如先前所述,数据处理机(450)将其转发到调用应用的本地缓存,在本地缓存中该对象被存储(425),并且将从所述本地缓存将该对象递送(435)到发起请求的应用。这样就结束了替换本地缓存中的过期对象的处理。如果在中心缓存中很容易就可以得到被请求对象的新拷贝,那么这很可能是由以下事实导致的:使用另一个本地缓存的另一个应用已经需要相同的对象,由此先前在CDS中已经重建了该对象。
但是,如果情况并非如此,也就是说,如果被请求对象在中心缓存中也过期了(455),那么必须重建该对象。如图3所述,该处理是由数据处理机从数据库(465)执行的,该数据处理机还通过无效处理机(460)功能来请求使过期对象无效(470)。由此,在中心缓存中,过期对象最终被新构造的对象替换(475),并且如图3所示,该新构造的对象在所有中间层CDS中被复制。在这里注意到以下一点很重要:如果向其已经请求过期对象(455)的CDS不是主CDS,而是备份CDS,那么作为图3中提到的负载平衡功能进行的选择的结果,重建实际上并不是由备份数据处理机执行的。更确切的说,对象无效请求被转发(480)到主CDS无效处理机,从而是主CDS执行了重建处理并且在所有备份CDS中复制了重建的对象,由此最终更新了包括接收到原始请求的中间层CDS的所有中间层CDS。
由于重建可能是一个冗长的过程,因此,原来请求的对象随已经过期(455)但仍被递送到发起请求的本地缓存(485),从而使发起请求的应用(400)不被阻塞。但是在递送之前,对象的TTL将被设置成非常低的值。由此,如上所述,在重建正在进行时,对象仍旧可以用于当前请求。因此,在短的TTL届满之后接收到的其它请求将使用新的重建的对象。该操作方式与本发明考虑的应用的类型相兼容,其中,机票费用是定期更新的,但是更新时间是灵活的,这是因为在大型网络上部署一组新的机票费用无论如何都要花费很多时间。
图5描述了在数据库(500)中修改了数据元素时缓存中对象的无效处理。每当数据库被其用户(505)(也就是负责更新和管理其内容的用户)更新时就发生该处理。数据库服务器能够检测哪些用于构造对象的数据元素发生了变化。然后,确定受影响的对象的集合,以便使这些对象无效,并且可能在中心缓存中重建这些对象。为此,数据库向所有CDS(也就是主CDS和备份CDS)广播(510)对象无效命令,在这些CDS中,所有受影响的对象被无效(515,525)。
在主CDS(520)上,无效处理机(530)首先必须判定应该删除还是重建无效对象。实际上,仍旧存在于中心缓存中的对象未必需要重建。举例来说,如果长时间没有使用或者很少使用该对象,或者所述对象被频繁无效,那么无效处理机可以简单地判定删除该对象,从而不会无用地占用缓存存储器,并且节省了重建所需的处理能力和通信带宽。该判定是根据预定义的设置而作出的。无效处理机的行为是由CDS管理员定义和设置的。
然后,如果作出了删除对象的判定,则释放相应的缓存存储器空间。但是,如果无效处理机判定必须重建该对象,那么以与如图3所述的方式相似的方式从数据库完成该处理。一旦得以重建(535),那么该对象在所有CDS中被复制(540),从而可以使其同步,并且可以从所有中心缓存(545)中得到新拷贝。
无论执行的是对象删除还是对象重建,主CDS无效处理机都将对象无效传播到所有卫星(550),以防止前端层服务器的软件应用(555)使用过时对象(560)。当软件应用再次需要被无效对象并且因此在本地缓存中无法得到该对象时,将会如图3所述地从CDS中提取对象并且可能重建该对象。
此外,当完成了对象删除或重建时,从主CDS向备份CDS通知(570)所述无效。如下一幅图所述,该处理是通过管理无效处理机使用的进展表而完成的。
图6进一步论述了被无效对象的重建。
当如图5所示必须执行被无效对象的重建时,在CDS中将会存在进展表(600),该表在接收到对象无效请求时被更新。对进行中的操作、也就是被无效对象的重建(605)来说,该操作被记录在主CDS的表(610)中并且也被转发到备份进展表(625)。此外,被无效的当前对象的TTL或届满日期被变为一个低值,从而如先前所述,该对象在新对象正在被重建时仍然可用。
如果该操作正常完成,那么对象会被正常重建并通过所有验证和检查(640)。在这种情况下,如先前所述,该对象被转发(615)到备份CDS,从而在所有中心缓存中都可得到该对象。同时,进行中的操作的记录被从主进展表中擦除,并且也从接收到重建对象(615)的备份CDS(620)的进展表中擦除。
但是,这些操作未必会在没有长期影响CDS的良好操作的情况下正常结束。
要考虑的第一种情况是如下的情况:例如因为没有从数据库正确传送所有必要的数据元素而没有完整重建主CDS中的对象(630)。必须重新尝试重建操作,该操作的开端将被记录在进展表(500)中。由此,未决操作将会被监视和定性检查进展表的清道夫进程(635)检测到。对于进展表中记录的未决操作,无效处理机尝试进行的重试次数明显是有限制的。在正常情况下,其中的一次重试成功,并且操作如上所述正常地继续进行。
要考虑的第二种情况是没有将刚重建对象(610)正常地传送到任意数量的备份CDS。这是以与在主CDS中的方式相似的方式检测到的,因为备份CDS也都具有进展表(620)。因此,备份清道夫进程检测由于从数据库广播的对象无效而被记录的未决操作。期望主CDS重建被无效对象的备份CDS通常不会承担任何对象重建。但是,当清道夫进程报告了问题时,这可以由备份无效处理机(650)例外地触发。在遇到这种情况时,备份无效处理机最终为其自身的缓存重建(655)被无效对象,暂时作为主CDS运转。这需要从数据库重新传送必要的数据元素(传送到备份CDS)。此后,进展表的未决项可被移除,并且受影响的备份CDS的操作可以正常地继续进行。
图7简要描述了本发明的可选特征。
由于缓存是由其所处于的中心服务器的可用活动存储器构造的,因此该缓存的大小必然是有限的。因此,缓存可能变满:没有剩余足够的存储器用以构造新的被请求对象。于是,针对缓存的标准实践是移除最近最少使用(LRU)的对象,以为新对象腾出空间。其它替换算法也可以应用。无论使用哪种算法,近来未使用的选择要移除的对象可能仍然是有效对象,也就是说,该对象并未过期。如已经指出的,根据本发明的对象是需要用服务器中央处理器(CPU)的极大处理能力来构造并且还需要多次访问后台数据库(700)的复杂对象。因此,对象重建是昂贵的,如果对象在从缓存中移除时没有过期,那么应该避免丢弃该对象。
在主CDS(720)或任一备份CDS(730)中的中心缓存已满(760),并且例如要移除的LRU对象已被选择(770)的时候,如果该对象没有过期(792),那么可以将该对象存储(775)到易于从服务器访问的辅助存储器(740,750)中,而不是将其丢弃(780)。但是,如果对象过期(794),则必须丢弃该对象。辅助存储器通常是来自附于服务器的硬盘的专用存储空间。因此,可以避免未过期对象的重建。为了这样做,CDS追踪存储在辅助存储器中的对象。当应用再次需要其中的一个对象时,从相应的辅助存储器中取回该对象,而不是重建该对象。如果搜索不成功,或者如果该对象由于被存储在辅助存储器中而过期,那么相同的机制也适用,也就是说,LRU对象被从缓存中移除以便为被请求对象腾出空间,在重建该被请求对象之前首先在辅助存储器中进行搜索。

Claims (30)

1.一种用于保持缓存内容的一致性的方法,包括:
使用包括前端层(220)的多层软件架构,该前端层包含至少一个客户机服务器,所述至少一个客户机服务器中的每一个都操作本地缓存(230),所述架构包括中间层(210),该中间层包含多个中心服务器(212),其中一个所述中心服务器被指定为主中心服务器(340),并且所有其它中心服务器是备份中心服务器,每个所述中心服务器都操作中心缓存(216),每个所述主中心服务器都通过至少一个数据库服务器(202)而与至少一个数据库(204)对接,所述至少一个数据库包含数据元素(360);
在所述备份中心服务器中的一个备份中心服务器处从所述至少一个客户机服务器接收对于对象的请求;
在所述备份中心服务器中的所述一个备份中心服务器处检测对象过期;
从所述备份中心服务器中的所述一个备份中心服务器的无效处理机发送对象无效请求给所述主中心服务器;
在所述主中心服务器中触发构造步骤;
在所述主中心服务器中构造(350)对象,所述构造步骤包括以下步骤:验证所述对象;向所述对象赋予生存时间TTL;以及将所述对象存储在所述中心缓存(340)中;
将所述构造的对象复制(540)到所有所述备份中心服务器中;
将所述对象从所述中心缓存转发(330,370)到请求所述对象的任意所述客户机服务器,所述转发步骤还包括以下步骤:将所述对象存储在所述本地缓存中;
将所述对象递送(335,375)到在所述客户机服务器上运行并且请求所述对象的那些软件应用。
2.根据权利要求1所述的方法,其中,来自所述客户机服务器的请求被在所有可用的所述中心服务器上进行负载平衡(385),并且其中,对于每个请求,选择所述中心服务器之一。
3.根据权利要求1所述的方法,其中,所述构造步骤还包括以下步骤:在所有其它所述中心服务器中复制(380)来自所述选择的中心服务器的新构造对象(355)。
4.根据权利要求1所述的方法,其中,每当对象在所述本地缓存中未找到(320,350)或者过期(405)时,从所述选择的中心缓存(340)请求该对象。
5.根据权利要求1所述的方法,其中,每当被请求对象在所述选择的中心缓存中未找到(355)时,在所述选择的中心服务器中触发所述构造步骤(350)。
6.根据权利要求1所述的方法,其中,在所述数据库中用于构造所述对象(500)的至少一个所述数据元素一经修改,就使存储在所述中心缓存和所述本地缓存中的对象无效,包括以下步骤:
确定哪些对象受到影响;
向所述中心服务器的所有无效处理机广播无效命令(510);
使所述中心缓存中的相应对象(515)无效;
将所述无效命令(550)传播到所有所述本地缓存;
使所述本地缓存中的相应对象(560)无效,所述无效步骤还包括以下步骤:删除所述对象。
7.根据权利要求1所述的方法,其中,在将所述过期对象(455)的生存时间TTL转发(485)给发起请求的客户机服务器之前,所述过期对象(455)的TTL被设置成一个低值。
8.根据权利要求1所述的方法,其中,使所述中心缓存中的对象无效的步骤还包括以下步骤:删除所述对象。
9.根据权利要求9所述的方法,其中,使对象无效的步骤包括在所述主中心服务器(520)中重建所述对象(535)。
10.根据权利要求1至5中任一项所述的方法,其中,每个所述中心服务器都包括对象重建进展表(600)和用于从所述进展表中监视所述对象重建的清道夫进程(635),所述方法包括以下步骤:
在所述进展表(610)中记录对象重建的开端和末端;
检查所述进展表(635)以检测所述对象重建的完成,所述方法还包括以下步骤:擦除已成功完成的对象重建的表条目;
检测失败的进行中的对象重建;
重新尝试失败的对象重建。
11.根据权利要求10所述的方法,其中,所述对象重建是在所述主中心服务器中执行的,并且其中,所述记录步骤还包括以下步骤:将对象重建开端(625)转发给备份中心服务器的所有所述进展表。
12.根据权利要求11所述的方法,其中,当接收到(615)从主中心服务器转发的对象时,对象重建末端被记录在备份中心服务器的所述进展表中。
13.根据权利要求10所述的方法,其中,所述检测步骤和所述重新尝试步骤是在所述备份中心服务器之一中执行的。
14.根据权利要求1所述的方法,其中,所述构造步骤包括以下预备步骤:
检查所述中心缓存是否已满;如果未满,则立即前进到所述构造步骤;如果已满(760),则在所述中心缓存中选择最近最少使用对象(770);以及
检查所述最近最少使用对象是否已过期;如果没有过期(792),则将所述最近最少使用对象存储在辅助存储器中(775);如果已过期(794),则丢弃(780)所述最近最少使用对象;并且在这两种情况下都前进到所述构造步骤。
15.根据权利要求9所述的方法,其中,在前进到所述重建步骤之前,在所述辅助存储器(720)中进一步搜索所述未找到对象。
16.一种用于保持缓存内容的一致性的系统,所述系统包括:
用于使用包括前端层(220)的多层软件架构的装置,该前端层包含至少一个客户机服务器,所述至少一个客户机服务器中的每一个都操作本地缓存(230),所述架构包括中间层(210),该中间层包含多个中心服务器(212),其中一个所述中心服务器被指定为主中心服务器(340),并且所有其它中心服务器是备份中心服务器,每个所述中心服务器都操作中心缓存(216),每个所述主中心服务器都通过至少一个数据库服务器(202)而与至少一个数据库(204)对接,所述至少一个数据库包含数据元素(360);
用于在所述备份中心服务器中的一个备份中心服务器处从所述至少一个客户机服务器接收对于对象的请求的装置;
用于在所述备份中心服务器中的所述一个备份中心服务器处检测对象过期的装置;
用于从所述备份中心服务器中的所述一个备份中心服务器的无效处理机发送对象无效请求给所述主中心服务器的装置;
用于在所述主中心服务器中触发构造步骤的装置;
用于在所述主中心服务器中构造(350)对象的装置,所述构造装置还包括用于验证所述对象的装置;用于向所述对象赋予生存时间TTL的装置;以及用于将所述对象存储在所述中心缓存(340)中的装置;
用于将所述构造的对象复制(540)到所有所述备份中心服务器中的装置;
用于将所述对象从所述中心缓存转发(330,370)到请求所述对象的任意所述客户机服务器的装置,所述转发装置还包括用于将所述对象存储在所述本地缓存中的装置;
用于将所述对象递送(335,375)到在所述客户机服务器上运行并且请求所述对象的那些软件应用的装置。
17.根据权利要求16所述的系统,其中,来自所述客户机服务器的请求被在所有可用的所述中心服务器上进行负载平衡(385),并且其中,对于每个请求,选择所述中心服务器之一。
18.根据权利要求16所述的系统,其中,所述构造装置还包括用于在所有其它所述中心服务器中复制(380)来自所述选择的中心服务器的新构造对象(355)的装置。
19.根据权利要求16所述的系统,其中,每当对象在所述本地缓存中未找到(320,350)或者过期(405)时,从所述选择的中心缓存(340)请求该对象。
20.根据权利要求16所述的系统,其中,每当被请求对象在所述选择的中心缓存中未找到(355)时,在所述选择的中心服务器中触发所述构造装置(350)。
21.根据权利要求16所述的系统,其中,在所述数据库中用于构造所述对象(500)的至少一个所述数据元素一经修改,就使存储在所述中心缓存和所述本地缓存中的对象无效,包括:
用于确定哪些对象受到影响的装置;
用于向所述中心服务器的所有无效处理机广播无效命令(510)的装置;
用于使所述中心缓存中的相应对象(515)无效的装置;
用于将所述无效命令(550)传播到所有所述本地缓存的装置;
用于使所述本地缓存中的相应对象(560)无效的装置,所述无效装置还包括用于删除所述对象的装置
22.根据权利要求16所述的方法,其中,在将所述过期对象(455)的生存时间TTL转发(485)给发起请求的客户机服务器之前,所述过期对象(455)的TTL被设置成一个低值。
23.根据权利要求16所述的系统,其中,用于使所述中心缓存中的对象无效的装置还包括用于删除所述对象的装置。
24.根据权利要求23所述的系统,其中,用于使对象无效的装置包括用于在所述主中心服务器(520)中重建所述对象(535)的装置。
25.根据权利要求16至20中任一项所述的系统,其中,每个所述中心服务器都包括对象重建进展表(600)和用于从所述进展表中监视所述对象重建的清道夫进程(635),所述系统包括:
用于在所述进展表(610)中记录对象重建的开端和末端的装置;
用于检查所述进展表(635)以检测所述对象重建的完成的装置,所述系统还包括:
用于擦除已成功完成的对象重建的表条目的装置;
用于检测失败的进行中的对象重建的装置;
用于重新尝试失败的对象重建的装置。
26.根据权利要求25所述的系统,其中,所述对象重建是在所述主中心服务器中执行的,并且其中,所述记录装置还包括用于将对象重建开端(625)转发给备份中心服务器的所有所述进展表的装置。
27.根据权利要求26所述的系统,其中,当接收到(615)从主中心服务器转发的对象时,对象重建末端被记录在备份中心服务器的所述进展表中。
28.根据权利要求25所述的系统,其中,所述检测装置和所述重新尝试装置在所述备份中心服务器之一中。
29.根据权利要求16所述的系统,其中,所述构造装置包括以下预备装置:
用于检查所述中心缓存是否已满的装置;用于如果未满,则立即前进到所述构造装置的装置;用于如果已满(760),则在所述中心缓存中选择最近最少使用对象(770)的装置;以及
用于检查所述最近最少使用对象是否已过期的装置;用于如果没有过期(792),则将所述最近最少使用对象存储在辅助存储器中(775)的装置;用于如果已过期(794),则丢弃(780)所述最近最少使用对象的装置;并且用于在这两种情况下都前进到所述构造装置的装置。
30.根据权利要求24所述的系统,其中,在前进到所述重建装置之前,在所述辅助存储器(720)中进一步搜索所述未找到对象。
CN2006800366257A 2005-10-03 2006-09-27 用于保持旨在与大型数据库对接的多层软件系统中的缓存内容的一致性的系统和方法 Active CN101278540B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP05109147.8 2005-10-03
EP05109147A EP1770954A1 (en) 2005-10-03 2005-10-03 System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases
US72344505P 2005-10-05 2005-10-05
US60/723,445 2005-10-05
PCT/EP2006/066819 WO2007039535A1 (en) 2005-10-03 2006-09-27 System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases

Publications (2)

Publication Number Publication Date
CN101278540A CN101278540A (zh) 2008-10-01
CN101278540B true CN101278540B (zh) 2013-08-21

Family

ID=35923571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800366257A Active CN101278540B (zh) 2005-10-03 2006-09-27 用于保持旨在与大型数据库对接的多层软件系统中的缓存内容的一致性的系统和方法

Country Status (14)

Country Link
US (1) US8364650B2 (zh)
EP (3) EP1770954A1 (zh)
JP (1) JP5080478B2 (zh)
KR (1) KR101315330B1 (zh)
CN (1) CN101278540B (zh)
AT (1) ATE503337T1 (zh)
AU (1) AU2006298750A1 (zh)
BR (1) BRPI0616685A2 (zh)
CA (1) CA2621756C (zh)
DE (1) DE602006020892D1 (zh)
ES (2) ES2391157T3 (zh)
PL (1) PL2169909T3 (zh)
WO (1) WO2007039535A1 (zh)
ZA (1) ZA200802801B (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101090401B (zh) * 2007-05-25 2011-05-18 金蝶软件(中国)有限公司 一种群集环境下的数据缓存方法及系统
US8266392B2 (en) * 2007-08-31 2012-09-11 Red Hat, Inc. Cache access mechanism
US8401994B2 (en) * 2009-09-18 2013-03-19 Oracle International Corporation Distributed consistent grid of in-memory database caches
US8306951B2 (en) 2009-09-18 2012-11-06 Oracle International Corporation Automated integrated high availability of the in-memory database cache and the backend enterprise database
US8271610B2 (en) * 2008-08-28 2012-09-18 Sycamore Networks, Inc. Distributed content caching solution for a mobile wireless network
US9208104B2 (en) 2008-08-28 2015-12-08 Citrix Systems, Inc. Content replacement and refresh policy implementation for a content distribution network
CN101458706B (zh) * 2008-11-11 2012-06-27 全旅通(北京)信息服务有限公司 一种准确查询gds航班缓存数据的方法和系统
US20110010205A1 (en) * 2009-07-08 2011-01-13 American Express Travel Related Services Company, Inc. Travel fare determination and display in social networks
EP2312464A1 (en) 2009-10-14 2011-04-20 Amadeus S.A.S. Method of and apparatus for operating on data in a distributed client-server architecture comprising heterogeneous platforms
KR101231135B1 (ko) * 2009-12-18 2013-02-15 한국전자통신연구원 시간 기반 메타데이터 캐시 일관성 제어 시스템 및 그 방법
US9535805B2 (en) * 2010-03-04 2017-01-03 Microsoft Technology Licensing, Llc Resilient routing for session initiation protocol based communication systems
US8543554B1 (en) 2010-08-10 2013-09-24 ScalArc Inc. Method and system for transparent database query caching
CN102387169B (zh) * 2010-08-26 2014-07-23 阿里巴巴集团控股有限公司 分布式缓存的对象删除方法、系统及删除服务器
US9594793B2 (en) 2010-09-23 2017-03-14 International Business Machines Corporation Supporting linked multi-user decision making in environments with constrained shared resources
US9436710B2 (en) 2010-09-28 2016-09-06 Redis Labs Ltd. Systems, methods, and media for managing an in-memory NoSQL database
US8954478B2 (en) 2010-09-28 2015-02-10 Yiftach Shoolman Systems, methods, and media for managing RAM resources for in-memory NoSQL databases
US8972488B2 (en) 2010-09-28 2015-03-03 Redis Labs Ltd. System, methods, and media for providing in-memory non-relational databases
CN102014066B (zh) * 2010-12-13 2012-07-04 武汉大学 一种覆盖网络中的数据缓存管理方法
CN102156735B (zh) * 2011-04-11 2012-12-26 中国有色矿业集团有限公司 一种基于数据库事务处理的业务方法执行方法及装置
US10684989B2 (en) * 2011-06-15 2020-06-16 Microsoft Technology Licensing, Llc Two-phase eviction process for file handle caches
US10460004B1 (en) * 2011-06-24 2019-10-29 Amazon Technologies, Inc. Load regulation using dynamically determined time to live values
US20130086323A1 (en) * 2011-09-30 2013-04-04 Oracle International Corporation Efficient cache management in a cluster
EP2788949A4 (en) * 2011-12-08 2015-07-08 United Parcel Service Inc SYSTEMS AND METHOD FOR SUPPORTING REGULATORY REQUIREMENTS FOR THE DISTRIBUTION OF TAXED AND NON-CONTROLLED ELEMENTS
ES2896059T3 (es) * 2011-12-22 2022-02-23 Amadeus Método y sistema para el seguimiento y la verificación de mensajes
US9384711B2 (en) * 2012-02-15 2016-07-05 Microsoft Technology Licensing, Llc Speculative render ahead and caching in multiple passes
US9235925B2 (en) 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
US9286122B2 (en) 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9569356B1 (en) * 2012-06-15 2017-02-14 Emc Corporation Methods for updating reference count and shared objects in a concurrent system
US8990375B2 (en) 2012-08-31 2015-03-24 Facebook, Inc. Subscription groups in publish-subscribe system
US9189510B2 (en) * 2013-02-26 2015-11-17 Facebook, Inc. System and method for implementing cache consistent regional clusters
US8996391B2 (en) * 2013-03-14 2015-03-31 Credibility Corp. Custom score generation system and methods
US20140278598A1 (en) * 2013-03-15 2014-09-18 Accenture Global Services Limited Caching reservation options
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
CN104346345B (zh) * 2013-07-24 2019-03-26 上海中兴软件有限责任公司 数据的存储方法及装置
US10462249B2 (en) * 2014-08-25 2019-10-29 Super Micro Computer, Inc. Globally distributed virtual cache for worldwide real-time data access
CN104935654B (zh) * 2015-06-10 2018-08-21 华为技术有限公司 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
US10142436B2 (en) 2015-11-19 2018-11-27 Microsoft Technology Licensing, Llc Enhanced mode control of cached data
CN105897832A (zh) * 2015-12-01 2016-08-24 乐视网信息技术(北京)股份有限公司 用于提供服务数据的服务器、方法及系统
CN105630982A (zh) * 2015-12-25 2016-06-01 中国民航信息网络股份有限公司 航班数据缓存方法及系统
CN105740352A (zh) * 2016-01-26 2016-07-06 华中电网有限公司 用于智能电网调度控制系统的历史数据服务系统
CN106776698A (zh) * 2016-11-14 2017-05-31 北京北纬通信科技股份有限公司 基于优化缓存的票务信息刷新方法及系统
CN106790563B (zh) * 2016-12-27 2019-11-15 浙江省公众信息产业有限公司 分布式存储系统和方法
EP4081912A1 (en) * 2019-12-23 2022-11-02 Amadeus S.A.S. System and method for optimizing transmission of requests for updated content from external data sources
US11461308B2 (en) 2019-12-23 2022-10-04 Amadeus S.A.S. System and method for optimizing transmission of requests for updated content from external data sources
FR3105523B1 (fr) * 2019-12-23 2023-04-07 Amadeus Système et procédé pour optimiser la transmission des demandes de contenu mis à jour provenant de sources de données externes
CN112052264B (zh) * 2020-08-05 2021-08-10 北京五八信息技术有限公司 业务数据查询方法、装置、电子设备及可读存储介质
CN113986961B (zh) * 2021-10-29 2022-05-20 北京泰策科技有限公司 一种分布式高并发的消息匹配方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001055855A1 (en) * 2000-01-28 2001-08-02 Williams Communications, Llc A system and method for mirroring and caching compressed data in a content distribution system
CN1493993A (zh) * 2002-10-31 2004-05-05 Lg������ʽ���� 移动计算环境中保持事务处理高速缓存一致性的系统和方法
US6772203B1 (en) * 1999-05-14 2004-08-03 Pivia, Inc. Updating data objects for dynamic application caching
CN1549978A (zh) * 2001-07-16 2004-11-24 BEAϵͳ��˾ 用于会话复制和故障切换的方法和装置
US6934717B1 (en) * 1995-12-01 2005-08-23 British Telecommunications Public Limited Company Database access

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192370B1 (en) * 1998-06-19 2001-02-20 Sap Aktiengesellschaft Method and system for rapid memory-resident processing of transactional data
US6477543B1 (en) * 1998-10-23 2002-11-05 International Business Machines Corporation Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
EP1311957A2 (en) 2000-07-17 2003-05-21 Eplication Networks Ltd BANDWIDTH SAVINGS AND QoS IMPROVEMENT FOR WWW SITES BY CATCHING STATIC AND DYNAMIC CONTENT ON A DISTRIBUTED NETWORK OF CACHES
US6954790B2 (en) * 2000-12-05 2005-10-11 Interactive People Unplugged Ab Network-based mobile workgroup system
JP2002176451A (ja) 2000-12-07 2002-06-21 Nippon Telegr & Teleph Corp <Ntt> 通信方法、通信装置、クライアント装置、キャッシュサーバ装置及び記録媒体
US7702791B2 (en) * 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session replication
US20030188106A1 (en) * 2002-03-26 2003-10-02 At&T Corp. Cache validation using rejuvenation in a data network
US7209929B2 (en) * 2003-04-17 2007-04-24 Salesforce.Com, Inc. Java object cache server for databases
US7251700B2 (en) * 2003-05-27 2007-07-31 Oracle International Corporation Time-to-live timeout on a logical connection from a connection cache
US20050071391A1 (en) * 2003-09-29 2005-03-31 International Business Machines Corporation High availability data replication set up using external backup and restore

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934717B1 (en) * 1995-12-01 2005-08-23 British Telecommunications Public Limited Company Database access
US6772203B1 (en) * 1999-05-14 2004-08-03 Pivia, Inc. Updating data objects for dynamic application caching
WO2001055855A1 (en) * 2000-01-28 2001-08-02 Williams Communications, Llc A system and method for mirroring and caching compressed data in a content distribution system
CN1549978A (zh) * 2001-07-16 2004-11-24 BEAϵͳ��˾ 用于会话复制和故障切换的方法和装置
CN1493993A (zh) * 2002-10-31 2004-05-05 Lg������ʽ���� 移动计算环境中保持事务处理高速缓存一致性的系统和方法

Also Published As

Publication number Publication date
US8364650B2 (en) 2013-01-29
PL2169909T3 (pl) 2013-01-31
ES2391157T3 (es) 2012-11-22
US20080235292A1 (en) 2008-09-25
KR20080068687A (ko) 2008-07-23
BRPI0616685A2 (pt) 2012-12-25
AU2006298750A1 (en) 2007-04-12
DE602006020892D1 (de) 2011-05-05
EP2169909A1 (en) 2010-03-31
CA2621756A1 (en) 2007-04-12
ES2363796T3 (es) 2011-08-16
ZA200802801B (en) 2008-12-31
EP2169909B1 (en) 2012-07-25
WO2007039535A1 (en) 2007-04-12
KR101315330B1 (ko) 2013-10-08
ATE503337T1 (de) 2011-04-15
EP1932322A1 (en) 2008-06-18
JP5080478B2 (ja) 2012-11-21
JP2009510578A (ja) 2009-03-12
EP1932322B1 (en) 2011-03-23
CA2621756C (en) 2015-06-02
EP1770954A1 (en) 2007-04-04
CN101278540A (zh) 2008-10-01

Similar Documents

Publication Publication Date Title
CN101278540B (zh) 用于保持旨在与大型数据库对接的多层软件系统中的缓存内容的一致性的系统和方法
US11520770B2 (en) System and method for providing high availability data
JP6165729B2 (ja) クライアント/サーバシステムの分散した複製コンテンツの強一貫性を維持するための方法およびシステム
US11288002B2 (en) System and method for providing high availability data
CN104823170B (zh) 分布式缓存群集管理
US9165025B2 (en) Transaction recovery in a transaction processing computer system employing multiple transaction managers
CN104662539B (zh) 存储并检索数据的方法和系统
JP4664931B2 (ja) データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化
Zhu et al. Precise data access on distributed log-structured merge-tree
TW491973B (en) Distributed session services
Kirby et al. Ibm websphere extreme scale v7: Solutions architecture
GB2460730A (en) Distributed workflow management system

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