[发明专利]一种群集环境下的数据缓存方法及系统有效
申请号: | 200710105708.3 | 申请日: | 2007-05-25 |
公开(公告)号: | CN101090401A | 公开(公告)日: | 2007-12-19 |
发明(设计)人: | 雷中南 | 申请(专利权)人: | 金蝶软件(中国)有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京集佳知识产权代理有限公司 | 代理人: | 逯长明 |
地址: | 518057广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 群集 环境 数据 缓存 方法 系统 | ||
技术领域
本发明涉及数据库应用技术,特别是涉及一种群集环境下的数据缓存方法及系统。
背景技术
在数据库应用系统中,为了满足大型应用的性能需求,在应用系统的服务端通常有两种技术解决方案:群集技术和缓存技术。其中,所述群集技术是使单独服务器实现物理和程序上的连接,并在服务器之间进行协同通讯,以使它们能够执行共同的任务;即使某一台服务器停止运行,故障应急进程会自动将该服务器的工作负载转移至另一台服务器,以保证提供持续不断的服务。因此,群集技术可以通过多台服务器并行计算提升系统的计算能力。所述缓存技术是指通过利用已有的计算结果,避免重复计算全面降低系统的压力。
应用系统一般会采用其中的一种方法使性能得到一定的提升,因为所述两种技术都不完美,两种技术之间存在一些矛盾。
例如,在某个系统中,服务器端使用了多台中间件服务器的群集技术,在每台服务器上都单独使用缓存技术。用户U1通过S1服务器更新了数据库中的订单B1,用户U2通过S2服务器查询订单B1,由于S2服务器此时并不知道用户U1已经更新过订单B1,会直接将缓存的订单B1数据返回给用户U2,所以用户U2会得到未更新的错误数据。这种情况下,群集技术得到了充分发挥,但在处理缓存时出现缓存不同步的问题。
在实际应用中,为了解决上述问题,通常会使用两种解决方法:
一种是让不同的中间件服务器负责彼此不冲突的业务模块。例如,某系统包含呼叫中心业务模块和财务业务模块,两模块在数据上和业务上彼此独立,不存在内部交互。在群集环境中部署这两个模块时,为了避免性能压力,将呼叫中心模块部署在一台服务器上,财务系统模块部署在另一台服务器上,由于业务压力被不同的服务器分担,并且缓存数据不会发生冲突,所以系统性能有所提高。
另一种是让不同的服务器负责不同的数据实体。例如,某集团有两家工厂共同使用一套业务系统,两工厂之间彼此不存在业务和数据关系,每个工厂使用一套独立的数据实体。在群集环境中部署这两个工厂的业务时,每个工厂固定使用其中一台服务器,由于业务压力被两台服务器分担,并且缓存数据在不同的服务器上不发生冲突。
以上两种方法都可以避免在群集环境中出现缓存冲突,但所述应用方案存在以下缺陷:第一,要求具体客户端联结固定的服务器,网络配置复杂;第二,服务器之间不能分享计算能力,当局部出现性能压力时,不能由其他服务器分担压力。所以,上述两种方法虽然可以避免缓存不同步的问题,但却不能充分利用群集技术的性能均衡特征,在应用中不能发挥系统的最大性能。
综上所述,目前还没有解决方法,能够使群集技术和缓存技术同时得到充分的发挥。
发明内容
本发明所要解决的技术问题是提供一种群集环境下的数据缓存方法及系统,以解决在应用系统中同时使用群集技术与缓存技术相冲突的问题。
为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案:
一种群集环境下的数据缓存方法,包括:
客户端发送数据调用请求;所述调用请求包括至少一个对象关键字,所述对象关键字为一类基础数据的名字,所述对象关键字表示所述调用请求中所涉及的基础数据的类别信息;
服务器查询本地缓存中是否存在所述要调用的数据,若不存在,则查询数据库;
若存在,所述服务器获取本地缓存中存在的所述要调用的数据的创建时间,并根据所述对象关键字,到状态服务器查询所述对象关键字对应的最晚更新时间,与所述创建时间比较,若所述最晚更新时间不晚于所述创建时间,则直接将所述本地缓存中的数据结果返回给客户端;若所述最晚更新时间晚于所述创建时间,则查询数据库,所述状态服务器独立于集群环境之外,用于以所述对象关键字为索引,记录所述数据库中所存储的基础数据的对象关键字和对应的更新时间;
查询数据库,将查询结果返回给客户端,并写入本地缓存。
所述步骤还包括:所述客户端发送数据更新请求,所述服务器更新所述数据库数据,并刷新相应的最晚更新时间。
优选的,按照以下步骤查询本地缓存中是否存在客户端要调用的数据:对应客户端调用请求计算唯一识别码,完全相同的调用请求的识别码一致;服务器根据所述识别码查询本地缓存,若查找到,则本地缓存中存在所述客户端要调用的数据;若未查找到,则在本地缓存中保存数据库查询结果时,将对应的识别码也保存。
其中,所述客户端计算所述唯一识别码,并随调用请求一起发送给所述服务器;或者所述服务器接收到所述客户端调用请求后,计算所述唯一识别码。
其中,采用Hash算法对请求包含的全部信息进行计算,得到唯一识别码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710105708.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:钻孔装置
- 下一篇:分割可倒式座椅靠背的中央铰链结构
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置