当前位置: 首页 > 专利查询>BEA系统公司专利>正文

具有并行检查的群集高速缓存制造技术

技术编号:2866149 阅读:178 留言:0更新日期:2012-04-11 18:40
当在存储数据项本地拷贝的网络服务器上处理更新请求时,可以在群集高速缓存中保持并发性,可以使用数据项的本地拷贝来处理所述请求。可以向存储数据项的网络数据库发送判定的更新请求,其中,如果本地拷贝对于所述数据项是当前的,则数据库可以提交所述更新。如果本地拷贝不是当前的,则网络服务器可以请求一新拷贝,使用该当前拷贝来处理所述请求,并且尝试另一个被判定的请求,所述处理可以继续直到更新被提交到数据库或被放弃。一旦被提交,则在群集中的任何其它服务器均被通知已经更新了所述数据项。那些其它服务器可以丢弃数据项的任何本地拷贝,并且请求该数据项的更新的拷贝。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般地涉及一种用于存储数据的系统。本专利技术更具体地涉及用于高速缓存数据和检查并行性的系统和方法。
技术介绍
当数据项被存储在通过网络可以访问的单个数据库或数据仓库中时,经常会出现这种情况多个服务器或客户机需要访问该数据项。传统上,这要求每次访问数据项时从数据库读取数据。从数据库的每次读取是相对资源密集的,并且可能是较为低效的。与要求服务器或客户机在每次访问数据项时从数据库读取相关联的、克服一些效率和可伸缩性问题的一种方式是将数据项存储在高速缓冲存储器中。以这种方式,一旦服务器或客户机已经从数据库读取了一个数据项,则它可以简单地在本地高速缓冲存储器中存储该项目的一个拷贝。如果未来需要访问,则可以使用该数据项的那个本地拷贝。这个过程可能对于从不改变的数据项是适当和有效的,但是当在数据库中更新数据项时则产生问题。如果存储在数据库中的数据项被更新,则在网络上的本地高速缓冲存储器中存储的那个该数据项的拷贝就可能与在数据库中的项不同,因为它不自动接收更新。当在网络上的不同的服务器和/或客户机上存在多个本地拷贝时,则问题变得严重。因为每个这些本地拷贝是在不同时间建立的,因此在网络上可以存在该数据项的多种版本。如果用户试图更新或查看该数据项,则该用户访问的拷贝可能不是当前的和/或正确的。关于并行性的这些问题会产生严重的后果,诸如当用户访问显示银行帐户结余的数据项的时候。如果银行帐户结余的本地拷贝还没有被更新以示出例如取款,则向用户显示的银行帐户结余可能事实上是不正确的大结余。这会导致用户不知晓地透支帐户。而且,访问该帐户结余的第三方或诸如ATM的设备将不能知道所示出的结余是错误的。
技术实现思路
因此,期望开发一种用于高速缓存数据项和数据对象的系统和方法,以保证被高速缓存的拷贝的正确性。进一步期望开发一种系统和方法,用于保证不允许对数据项的拷贝的任何改变,除非那个拷贝反映出该数据项在数据库中的当前状态。按照本专利技术的系统和方法提供了一种保持数据项缓存并发性的方式。网络服务器接收更新项的请求,所述网络服务器可以例如在本地高速缓冲存储器中存储数据项的本地拷贝。网络服务器可以使用数据项的本地拷贝来处理该请求。网络服务器可以向网络数据库发送“有条件”的或“判定”的更新请求,其中,如果该数据项的版本与本地拷贝的相同,则数据库可以更新该数据项。如果该数据项的版本与本地拷贝的不同,则数据库就不能更新该数据项。如果各拷贝的版本不同,则网络服务器可以请求该数据项的当前拷贝,并可使用该数据项的新拷贝来处理更新请求。网络服务器可以向数据库发送另一判定的更新。这个处理继续,直到在数据库中的所述数据项被更新。一旦所述数据项被更新,就可通知诸如在公共群集中的服务器的其它服务器已经更新了所述数据项。在此,那些网络服务器可以丢弃该数据项的任何本地拷贝,并请求新的拷贝来存储在本地高速缓冲存储器中。可以通过若干适当的方法来通知网络服务器,诸如通过向在网络上的任何其它服务器多点传送更新消息或版本号。网络服务器还可以诸如通过点到点协议彼此直接连接,或者向其它服务器通过心跳传送信息。通过说明书、附图和权利要求可以获得本专利技术的其它特征、方面和目的。附图说明图1是按照本专利技术的一个实施例的一种方式的第一部分的示意图。图2是按照本专利技术的一个实施例的一种方式的第一和第二部分的示意图。图3是按照本专利技术的一个实施例的更新处理的流程图。图4是按照本专利技术的一个实施例的、当原始拷贝与本地拷贝不同步时用于更新数据项的一个处理的流程图。图5是按照本专利技术的一个实施例的、用于更新在网络上的网络服务器的处理的流程图。图6是按照本专利技术的一个实施例的一阶段处理的流程图。图7是按照本专利技术的一个实施例两阶段处理的流程图。具体实施例方式按照本专利技术的系统允许在保持在诸如局域网(LAN)、以太网或因特网这样的网络的并发性的同时高速缓存数据。这样的系统可以利用一种两阶段方式的一个或两者来在保持并发性的同时更新数据项。这样的系统可以通过在计算机领域中公知或使用的、或者以下开发的任何软件或硬件手段来实现并发高速缓存。这些系统还可以利用任何适当的软件应用程序、对象、语言或可执行文件,诸如可以被设计来利用的例如Java、HTML和XML。在按照本专利技术的一种这样的方式的第一部分,网络上的客户机或服务器从数据库读取数据项,并将该数据项的拷贝存储在本地高速缓冲存储器中。如果服务器或客户机希望更新数据库中的数据项,则根据存储在本地高速缓冲存储器中的数据项是否对应于存储在数据库中的数据项的当前版本更新可以是“有条件的”或“判定的”。这种方法保持期望更新数据项的客户机/服务器和数据库之间的并发性。以这种方式的数据的高速缓存还可以改善性能和可伸缩性。方式100的第一部分的一个示例在图1中被示出。在此,客户机102向网络服务器106发出更新请求104。网络服务器106在本例中在本地高速缓冲存储器108中存储要更新的数据项110的拷贝。当网络服务器106接收更新请求104时,服务器106检查数据项110的本地拷贝以查看是否可以处理该更新。如果服务器106确定可以使用数据项110本地拷贝中的信息来处理该更新,则服务器106向存储数据项116原始拷贝的数据库114发送判定的更新112。如果数据项116原始拷贝中的信息与本地拷贝110中的信息相同,则可以向数据库提交更新。如果信息不同,则不提交更新。服务器106从数据库114接收表示是否提交了更新的更新状态消息118。如果提交了更新,则服务器还可以向本地高速缓冲存储器108中数据项110的拷贝提交更新。如果未提交更新,则因为数据项110、116不同步,服务器可以从本地高速缓冲存储器108中丢弃数据项110的拷贝,并从数据库114请求新的拷贝。一旦服务器106具有了新的数据项,它可以再向数据库114发送判定的(predicated)更新112。或者,服务器还可以向客户机102发送消息,询问是否尝试更新新的数据项。服务器106可以放弃更新,或者继续尝试判定的更新并获取需要的数据项的新拷贝的处理,直到该更新被提交(committed)。一旦更新被提交或放弃,服务器106向客户机发送表示更新尝试的最终结果的更新响应120。该方式的第二部分发生在客户机/服务器更新了数据库中的数据项之后。因为网络上的其它客户机和/或服务器也可以具有存储在本地高速缓冲存储器中数据项的拷贝,因此进行更新的客户机/服务器可以联系网络上的其它服务器,以让它们知道该数据项已被更新。网络上的其它客户机/服务器随后可以更新存储在本地高速缓冲存储器中该数据项的拷贝,请求该数据项的当前拷贝,或仅仅丢弃该数据项的本地拷贝并在需要时从数据库请求一个拷贝。如果以后请求拷贝,则可以在那个时间在本地高速缓冲存储器中存储该拷贝。图2示出了参照图1所述的方式100的第二阶段。在图2中,一旦服务器106更新数据库114中的数据项116和本地高速缓冲存储器108中数据项110的拷贝,服务器106就向在群集126中的其它服务器122、124发送更新消息128、130。这些消息可以采取点到点消息或多点传送心跳的形式,如上所述。例如,在银行系统中,在银行系统网络上的每个服务器可能在本地高速缓冲存储器中存储用户银行帐户结余的拷贝。每个本地高本文档来自技高网
...

【技术保护点】
一种在网络数据库中更新数据项的方法,包括:    接收更新网络数据库中数据项的请求,该请求由存储该数据项的本地拷贝的网络服务器接收;    使用该本地拷贝来处理所述请求;    验证该本地拷贝是否是该数据项的当前拷贝;    如果所述本地拷贝是当前拷贝,则响应于该请求更新数据库中的该数据项。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:迪安B雅各布斯罗布伍伦亚当梅辛杰塞思怀特
申请(专利权)人:BEA系统公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1