CN101090401B - 一种群集环境下的数据缓存方法及系统 - Google Patents

一种群集环境下的数据缓存方法及系统 Download PDF

Info

Publication number
CN101090401B
CN101090401B CN2007101057083A CN200710105708A CN101090401B CN 101090401 B CN101090401 B CN 101090401B CN 2007101057083 A CN2007101057083 A CN 2007101057083A CN 200710105708 A CN200710105708 A CN 200710105708A CN 101090401 B CN101090401 B CN 101090401B
Authority
CN
China
Prior art keywords
data
server
client
local cache
database
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
CN2007101057083A
Other languages
English (en)
Other versions
CN101090401A (zh
Inventor
雷中南
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.)
Kingdee Software China Co Ltd
Original Assignee
Kingdee Software China Co Ltd
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 Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CN2007101057083A priority Critical patent/CN101090401B/zh
Publication of CN101090401A publication Critical patent/CN101090401A/zh
Application granted granted Critical
Publication of CN101090401B publication Critical patent/CN101090401B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种群集环境下的数据缓存方法及系统,以解决在应用系统中同时使用群集技术与缓存技术相冲突的问题。所述方法包括:客户端发送数据调用请求;服务器查询本地缓存中是否存在所述要调用的数据,若不存在,则查询数据库;若存在,则判断所述缓存数据是否失效,如果未失效,则直接将所述缓存中的数据结果返回给客户端;如果失效,则查询数据库;查询数据库,将查询结果返回给客户端,并写入缓存。由此,保证了服务器返回给客户端的数据结果是最新的数据;而且,所述方法不会破坏群集技术的特性,可以充分发挥群集技术的性能均衡特征,从而解决了群集技术与缓存技术相冲突的问题。因此,将两种技术同时应用能够提升系统的性能。

Description

一种群集环境下的数据缓存方法及系统
技术领域
本发明涉及数据库应用技术,特别是涉及一种群集环境下的数据缓存方法及系统。
背景技术
在数据库应用系统中,为了满足大型应用的性能需求,在应用系统的服务端通常有两种技术解决方案:群集技术和缓存技术。其中,所述群集技术是使单独服务器实现物理和程序上的连接,并在服务器之间进行协同通讯,以使它们能够执行共同的任务;即使某一台服务器停止运行,故障应急进程会自动将该服务器的工作负载转移至另一台服务器,以保证提供持续不断的服务。因此,群集技术可以通过多台服务器并行计算提升系统的计算能力。所述缓存技术是指通过利用已有的计算结果,避免重复计算全面降低系统的压力。
应用系统一般会采用其中的一种方法使性能得到一定的提升,因为所述两种技术都不完美,两种技术之间存在一些矛盾。
例如,在某个系统中,服务器端使用了多台中间件服务器的群集技术,在每台服务器上都单独使用缓存技术。用户U1通过S1服务器更新了数据库中的订单B1,用户U2通过S2服务器查询订单B1,由于S2服务器此时并不知道用户U1已经更新过订单B1,会直接将缓存的订单B1数据返回给用户U2,所以用户U2会得到未更新的错误数据。这种情况下,群集技术得到了充分发挥,但在处理缓存时出现缓存不同步的问题。
在实际应用中,为了解决上述问题,通常会使用两种解决方法:
一种是让不同的中间件服务器负责彼此不冲突的业务模块。例如,某系统包含呼叫中心业务模块和财务业务模块,两模块在数据上和业务上彼此独立,不存在内部交互。在群集环境中部署这两个模块时,为了避免性能压力,将呼叫中心模块部署在一台服务器上,财务系统模块部署在另一台服务器上,由于业务压力被不同的服务器分担,并且缓存数据不会发生冲突,所以系统性能有所提高。
另一种是让不同的服务器负责不同的数据实体。例如,某集团有两家工厂共同使用一套业务系统,两工厂之间彼此不存在业务和数据关系,每个工厂使用一套独立的数据实体。在群集环境中部署这两个工厂的业务时,每个工厂固定使用其中一台服务器,由于业务压力被两台服务器分担,并且缓存数据在不同的服务器上不发生冲突。
以上两种方法都可以避免在群集环境中出现缓存冲突,但所述应用方案存在以下缺陷:第一,要求具体客户端联结固定的服务器,网络配置复杂;第二,服务器之间不能分享计算能力,当局部出现性能压力时,不能由其他服务器分担压力。所以,上述两种方法虽然可以避免缓存不同步的问题,但却不能充分利用群集技术的性能均衡特征,在应用中不能发挥系统的最大性能。
综上所述,目前还没有解决方法,能够使群集技术和缓存技术同时得到充分的发挥。
发明内容
本发明所要解决的技术问题是提供一种群集环境下的数据缓存方法及系统,以解决在应用系统中同时使用群集技术与缓存技术相冲突的问题。
为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案:
一种群集环境下的数据缓存方法,包括:
客户端发送数据调用请求;所述调用请求包括至少一个对象关键字,所述对象关键字为一类基础数据的名字,所述对象关键字表示所述调用请求中所涉及的基础数据的类别信息;
服务器查询本地缓存中是否存在所述要调用的数据,若不存在,则查询数据库;
若存在,所述服务器获取本地缓存中存在的所述要调用的数据的创建时间,并根据所述对象关键字,到状态服务器查询所述对象关键字对应的最晚更新时间,与所述创建时间比较,若所述最晚更新时间不晚于所述创建时间,则直接将所述本地缓存中的数据结果返回给客户端;若所述最晚更新时间晚于所述创建时间,则查询数据库,所述状态服务器独立于集群环境之外,用于以所述对象关键字为索引,记录所述数据库中所存储的基础数据的对象关键字和对应的更新时间;
查询数据库,将查询结果返回给客户端,并写入本地缓存。
所述步骤还包括:所述客户端发送数据更新请求,所述服务器更新所述数据库数据,并刷新相应的最晚更新时间。
优选的,按照以下步骤查询本地缓存中是否存在客户端要调用的数据:对应客户端调用请求计算唯一识别码,完全相同的调用请求的识别码一致;服务器根据所述识别码查询本地缓存,若查找到,则本地缓存中存在所述客户端要调用的数据;若未查找到,则在本地缓存中保存数据库查询结果时,将对应的识别码也保存。
其中,所述客户端计算所述唯一识别码,并随调用请求一起发送给所述服务器;或者所述服务器接收到所述客户端调用请求后,计算所述唯一识别码。
其中,采用Hash算法对请求包含的全部信息进行计算,得到唯一识别码。
一种群集环境下的数据缓存系统,包括:
数据库服务器,用于存储基础数据;
客户端,用于向中间服务器发送数据调用请求;所述调用请求包括至少一个对象关键字,所述对象关键字为一类基础数据的名字,所述对象关键字表示所述调用请求中所涉及的基础数据的类别信息;
状态服务器,独立于集群环境之外,用于以所述对象关键字为索引,记录所述数据库中存储的基础数据的对象关键字和对应的更新时间;
中间服务器,用于响应客户端的所述调用请求,每个中间服务器上都部署缓存,根据所述客户端的所述调用请求查询本地缓存中是否存在客户端要调用的数据,若不存在,则查询所述数据库服务器;若存在,则获取本地缓存中存在的所述要调用的数据的创建时间,并根据所述对象关键字,到状态服务器查询所述对象关键字对应的最晚更新时间,与所述创建时间比较,若所述最晚更新时间不晚于所述创建时间,则直接将所述本地缓存中的数据结果返回给客户端;若所述最晚更新时间晚于所述创建时间,则查询数据库服务器;查询数据库服务器,将查询结果返回给客户端,并写入本地缓存。
其中,所述中间服务器根据客户端数据更新请求更新数据库服务器的数据后,触发状态服务器刷新相应的最晚更新时间。
优选的,所述中间服务器的本地缓存以识别码为索引,所述识别码根据客户端的调用请求计算得到,与客户端的调用请求唯一对应;中间服务器根据所述识别码查询本地缓存,若查找到,则本地缓存中存在所述客户端要调用的数据;若未查找到,则在本地缓存中保存所述数据库服务器的查询结果时,将对应的识别码也保存。
其中,所述识别码由所述客户端计算得到,并随调用请求一起发送给所述中间服务器;或者,由所述中间服务器在接收到所述客户端的调用请求后计算得到。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
首先,在群集环境下使用缓存技术,服务器通过判断本地缓存中是否存在客户端要调用的数据,并进一步判断缓存中的数据是否失效,来解决缓存与数据库不同步问题,保证返回给客户端的数据结果是最新的数据;而且,所述方法不会破坏群集技术的特性,可以充分发挥群集技术的性能均衡特征,从而解决了群集技术与缓存技术相冲突的问题。因此,将两种技术同时应用能够提升系统的性能。
其次,由于每个中间服务器都部署了缓存,在缓存未失效的情况下,服务器直接从本地读取缓存数据,响应更加迅速。而且,避免了使用共享缓存由于频繁访问带来的性能瓶颈问题。
再次,与传统的对每一个缓存数据记录一个关键字的方式相比,使用对象关键字查询状态服务器的方法,对象关键字的数量是少量而有限的,因此大幅度削减了状态服务器(或数据库服务器)的数据量,在判断缓存是否有效时更加迅速。
再次,在判定缓存数据是否存在时,传统方法中使用复杂条件参数判定导致了大量的编码,而本发明实施例使用计算唯一识别码的方法,避免使用所述复杂条件,简化了判定过程。而且,在客户端对请求信息进行计算获得识别码,有效地降低了服务器的性能压力。
最后,传统方式下,在中间服务器中建立缓存并管理缓存,需要具体针对每一类数据进行缓存的编码。而本发明中,使用基于请求的服务器访问方法,可对需要缓存的每一次服务器调用进行缓存,实质上被缓存的不是业务对象,而是整个服务器请求的结果,服务器请求可以访问任意业务对象,只要确定好业务对象关键字即可。是否使用缓存的区别仅在于发起服务器请求的方法名称不同,仅需要在客户端修改调用方式。因此,实现了缓存与业务逻辑相剥离,降低了系统实现缓存计算的复杂性。
附图说明
图1是本发明实施例所述一种群集环境下的数据缓存系统结构图;
图2是本发明实施例所述群集环境下通过缓存获取数据的步骤流程图;
图3是图1所示系统中各组成部件的数据处理示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
造成群集技术与缓存技术冲突的原因,是由于服务器之间的缓存数据存在不同步的问题,有效的解决方法是让不同服务器上的缓存数据能够同步。本发明提供了一种群集环境下缓存数据同步的方法及应用系统,在每台群集服务器上都使用缓存技术,服务器通过判断本地缓存中是否存在客户端要调用的数据,并进一步判断缓存中的数据是否失效,来解决缓存与数据库不同步问题,保证返回给客户端的数据结果是最新的数据。
在数据库应用系统中,有一些数据基本不变化或者变化很少,但被频繁读取,因此重复的数据读取给数据库造成了巨大压力,通过缓存手段可以避免数据库被频繁读取,将这类数据称为“基础数据”;而另外一些数据,在业务系统使用过程中会不断变化,或者是不断增加,这类数据缓存价值不大,称之为“业务数据”。本发明实施例中提出的缓存方案主要是解决所述基础数据的缓存问题。
本发明实施例实现了一种适用于群集环境下的高效缓存机制,为便于说明,下面先介绍所述缓存机制的应用环境。
参照图1,是所述一种群集环境下的数据缓存系统结构图。所述系统包括客户端1、群集2、中间服务器3、数据库服务器4和状态服务器5。其中,多个客户端1和多台中间服务器3分别与群集2相连,通过群集2为每个客户端1分配一个中间服务器3。中间服务器3通过内部网络与数据库服务器4和状态服务器5相连接,每一台中间服务器3都可以直接访问数据库服务器4和状态服务器5。
在群集环境下,多台中间服务器3以对称的方式组成一个服务器集合,每台服务器都具有等价的地位。而且,本发明实施例中的中间服务器3还利用中间件技术实现业务中间件的功能。而群集2是网络负载均衡群集,用于实现多台中间服务器3的负载均衡功能,能够平均分配客户端1请求到所述服务器集合,提供快速获取重要数据的功能,解决大量并发访问问题,从而提高系统性能。在采用群集技术的同时,每台中间服务器3上都配置缓存空间,并进行缓存管理,实现数据缓存功能。
在数据库服务器4中会存储多种基础数据,为每一类基础数据取一个名字,称作对象关键字。为了避免冲突,所述对象关键字在整个系统中是唯一的。所述状态服务器5是独立在群集环境之外的一个服务程序,用于记录数据库服务器4中存储数据的对象关键字和对应的更新时间,并以所述对象关键字为索引。
上述系统在正常运行的情况下,客户端如果需要查询某一基础数据,客户端将提交一个查询请求来获取需要的基础数据,如果所述基础数据存在于中间服务器的缓存中,则使用缓存数据。通过缓存获取基础数据是缓存使用的核心,参照图2所示,是所述群集环境下通过缓存获取数据的步骤流程图。
步骤201,客户端以请求的方式发起中间服务器调用,所述请求中主要包含被调用的服务器组件信息、调用的方法和参数。此外,还需要附加一个参数,是一组(一个或多个)对象关键字,所述对象关键字说明这次调用中所涉及的基础数据的类别信息。
步骤202,在提交请求前,客户端先对请求的全部信息进行某种Hash(哈希算法)计算,获取唯一识别码,完全相同的请求的唯一识别码一致。
采用Hash算法计算的目的是将请求的全部信息——一些不定长的字符或字符串编码压缩,得到一个唯一与所述请求对应的识别码。在缓存中,对应每种客户端请求的数据结果,也保存了相应的识别码。所以,所述识别码用于查询缓存数据,客户端在每次发送请求前都计算一次识别码。
当然,为实现压缩请求信息的功能,也可以采用其他数据压缩方法,例如自定义压缩算法等。而且,Hash算法也包括多种算法,例如MD2(Message-Digest Algorithm 2,一种信息-摘要算法)、MD4、MD5、SHA、SHA-1(安全散列算法)等。
需要说明的是,上述通过计算获取识别码的步骤也可以在中间服务器上实现,即客户端直接将请求发送给中间服务器,由中间服务器进行计算。但是,这种方式会增加中间服务器的负担,所以上述在客户端获取唯一识别码的方式,能够有效地降低服务器的性能压力。
步骤203,客户端在获取了唯一识别码后,将请求的全部信息附加上所述唯一识别码提交给中间服务器。
步骤204,中间服务器收到客户端发来的请求,首先,根据唯一识别码到本地缓存数据中查询,查找缓存中是否已经保存了所述客户端需要的数据结果。如果存在识别码相同的缓存数据,则获取该缓存数据的创建时间,继续步骤205,进行缓存数据是否失效的判断;否则,跳转到步骤206。
步骤205,中间服务器根据请求信息中的对象关键字,到状态服务器查询所述对象关键字对应的最晚的更新时间。如果发现最晚更新时间晚于缓存数据的创建时间,证明缓存数据在创建后,数据库服务器中相关类别的数据已更新过,缓存数据与数据库数据不一致,缓存已失效,执行步骤206进行数据库查询;否则,缓存数据有效,中间服务器可以直接读取本地缓存的数据结果,并将所述结果返回给客户端。
步骤206,如果缓存数据不存在,或者缓存数据失效,则需要到数据库服务器中进行查询。中间服务器根据请求中的相关参数,通过对应的服务器组件完成对数据库服务器的查询,取得计算结果,并将计算结果以及上面计算出的唯一识别码写入本地缓存中,同时将所述结果返回给客户端。如果是缓存数据失效的情况,则写入缓存的操作完成了缓存数据的更新;如果是缓存数据不存在的情况,则写入缓存的操作完成了缓存数据的创建。
上述通过缓存获取数据的过程中,步骤202-204用于实现缓存数据是否存在的判定,判定方法是根据唯一识别码查询缓存。这种判定方法与传统方式相比具有明显优势:在传统方法中,一般针对同一类业务对象创建一组缓存数据,需要根据业务对象的具体特征数据来识别缓存数据,当业务对象类型不同时,特征数据也不同,需要通过不同的编码来实现,导致了大量的编码;而本发明实施例使用计算唯一识别码的方法,避免使用所述复杂条件,简化了判定过程。
并且,步骤205用于判定缓存数据是否失效,与传统的对每一个缓存数据记录一个关键字的方式相比,使用对象关键字查询状态服务器的方法,对象关键字的数量是少量而有限的,因此大幅度削减了状态服务器(或数据库服务器)的数据量,在判断缓存是否有效时更加迅速。而且,通过将缓存数据的创建时间与更新时间比较来判定是一种简单易行的方法,本发明不限定其他本领域技术人员所熟知和可行的判定方法,例如通过设置标志位来区别缓存数据是否与数据库数据一致等。
本发明优选的,使用基于请求的服务器访问方法,而在传统方式下,在中间服务器中建立缓存并管理缓存,需要具体针对每一类数据进行缓存的编码。上述使用基于请求的服务器访问方法,可对需要缓存的每一次服务器调用进行缓存,实质上被缓存的不是业务对象,而是整个服务器请求的结果,服务器请求可以访问任意业务对象,只要确定好业务对象关键字即可。是否使用缓存的区别仅在于发起服务器请求的方法名称不同,仅需要在客户端修改调用方式。因此,实现了缓存与业务逻辑相剥离,降低了系统实现缓存计算的复杂性。
上面的过程是基础数据的查询过程,不涉及状态服务器中对象关键字的时间更新,当基础数据发生更新时会涉及对象关键字的时间更新。
在系统正常运行时,如果需要增加、修改、删除数据库服务器中某一基础数据,则会触发基础数据的更新过程,进一步会触发状态服务器的更新。更新步骤如下:
第一步,客户端以请求的方式发起服务器调用,请求中包含更新基础数据所需的服务器组件信息、方法和参数,同时附加一个参数,该参数为对象关键字,对象关键字说明这次调用中所涉及的基础数据的类别信息。客户端将所述请求信息提交给中间服务器。
第二步,中间服务器收到客户端发来的请求,完成基础数据更新;然后根据请求中的对象关键字,到状态服务器将对应的对象关键字的更新时间刷新,完成对象关键字时间的更新,并将调用结果返回客户端。这样,状态服务器记录的更新时间将与数据库服务器中的数据更新同步变化。
需要说明的是,基础数据更新时并不进行相应缓存数据的更新,缓存数据是在上述步骤206中,当客户端需要调用缓存数据,判定缓存数据失效后,通过重新写入缓存来更新缓存数据。
当系统由于某种原因,如手工修改了基础数据或者数据库损坏等情况,导致缓存与数据库不一致的时候,可通过初始化状态服务器的方法达成让所有缓存失效的目的。所述初始化状态服务器是指将状态服务器的所有对象关键字的默认更新时间设置为当前时间,这样整个系统所涉及的缓存数据将全部失效。
上述同时使用群集技术和缓存技术的方式,既解决了缓存不同步问题,还能够充分发挥群集技术的性能均衡特征,从而解决了群集技术与缓存技术相冲突的问题。而且,由于每个中间服务器都部署了缓存,在缓存未失效的情况下,服务器可以直接从本地读取缓存数据,响应更加迅速。
虽然解决群集技术与缓存技术冲突的最简单的方法是将缓存数据存储在群集服务器共享的数据库服务器中,由于缓存数据只有一份,所以可以做到缓存完全同步。但是,所述方案带来的问题是由于频繁的访问缓存数据库,缓存数据库会成为新的性能瓶颈。但本发明实施例在每台服务器都配置缓存,可以有效地避免使用共享缓存带来的性能瓶颈问题。
图1所示系统是图2所示方法的一种具体实现,但并不限定其他的系统架构方案。基于图2所示流程,下面将完整说明图1系统中各个组成部件间的连接及数据处理情况。
如图3所示,客户机1计算对应请求的唯一识别码,中间服务器3实现缓存控制和业务组件功能,为缓存开辟存储空间6并保存缓存数据,业务对象关键字的时间基线(即更新时间)保存在状态服务器5中,基础数据保存在数据库服务器4中。
客户机1将包含业务对象关键字、被调用的服务器组件信息、调用的方法和参数的请求信息,以及唯一识别码一起发送给中间服务器3。中间服务器3通过缓存控制,根据所述识别码判断缓存数据是否存在,若不存在,则通过业务组件调用数据库服务器4获取请求结果,返回给客户机1。若存在,则继续判断所述缓存数据是否失效,在状态服务器5中查询业务对象关键字的时间基线,若缓存数据的创建时间早于所述时间基线,则缓存过期失效,需要通过业务组件调用数据库服务器4;若缓存有效,则直接将缓存的请求结果返回给客户机1。中间服务器3在调用数据库服务器4获取请求结果后,将结果返回给客户机1的同时,还需要将所述请求结果及相应的识别码写入缓存中。
图1和图3所示系统中未详述的部分可以参见图2所示方法的相关部分,为了篇幅考虑,在此不再详述。
以上对本发明所提供的一种群集环境下的数据缓存方法及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种群集环境下的数据缓存方法,其特征在于,包括:
客户端发送数据调用请求;所述调用请求包括至少一个对象关键字,所述对象关键字为一类基础数据的名字,所述对象关键字表示所述调用请求中所涉及的基础数据的类别信息;
服务器查询本地缓存中是否存在所述要调用的数据,若不存在,则查询数据库;
若存在,所述服务器获取本地缓存中存在的所述要调用的数据的创建时间,并根据所述对象关键字,到状态服务器查询所述对象关键字对应的最晚更新时间,与所述创建时间比较,若所述最晚更新时间不晚于所述创建时间,则直接将所述本地缓存中的数据结果返回给客户端;若所述最晚更新时间晚于所述创建时间,则查询数据库;所述状态服务器独立于集群环境之外,用于以所述对象关键字为索引,记录所述数据库中所存储的基础数据的对象关键字和对应的更新时间;
查询数据库,将查询结果返回给客户端,并写入本地缓存。
2.根据权利要求1所述的方法,其特征在于,还包括:所述客户端发送数据更新请求,所述服务器更新所述数据库数据,并刷新相应的最晚更新时间。
3.根据权利要求1所述的方法,其特征在于,按照以下步骤查询本地缓存中是否存在客户端要调用的数据:
对应客户端调用请求计算唯一识别码,完全相同的调用请求的识别码一致;
服务器根据所述识别码查询本地缓存,若查找到,则本地缓存中存在所述客户端要调用的数据;
若未查找到,则在本地缓存中保存数据库查询结果时,将对应的识别码也保存。
4.根据权利要求3所述的方法,其特征在于:所述客户端计算所述唯一识别码,并随调用请求一起发送给所述服务器;或者所述服务器接收到所述客户端调用请求后,计算所述唯一识别码。
5.根据权利要求3所述的方法,其特征在于:采用Hash算法对请求包含的全部信息进行计算,得到唯一识别码。
6.一种群集环境下的数据缓存系统,其特征在于,包括:
数据库服务器,用于存储基础数据;
客户端,用于向中间服务器发送数据调用请求;所述调用请求包括至少一个对象关键字,所述对象关键字为一类基础数据的名字,所述对象关键字表示所述调用请求中所涉及的基础数据的类别信息;
状态服务器,独立于集群环境之外,用于以所述对象关键字为索引,记录所述数据库中存储的基础数据的对象关键字和对应的更新时间;
中间服务器,用于响应客户端的所述调用请求,每个中间服务器上都部署缓存,根据所述客户端的所述调用请求查询本地缓存中是否存在客户端要调用的数据,若不存在,则查询所述数据库服务器;若存在,则获取本地缓存中存在的所述要调用的数据的创建时间,并根据所述对象关键字,到状态服务器查询所述对象关键字对应的最晚更新时间,与所述创建时间比较,若所述最晚更新时间不晚于所述创建时间,则直接将所述本地缓存中的数据结果返回给客户端;若所述最晚更新时间晚于所述创建时间,则查询数据库服务器;查询数据库服务器,将查询结果返回给客户端,并写入本地缓存。
7.根据权利要求6所述的系统,其特征在于:所述中间服务器根据客户端数据更新请求更新数据库服务器的数据后,触发状态服务器刷新相应的最晚更新时间。
8.根据权利要求6所述的系统,其特征在于:所述中间服务器的本地缓存以识别码为索引,所述识别码根据客户端的调用请求计算得到,与客户端的调用请求唯一对应;中间服务器根据所述识别码查询本地缓存,若查找到,则本地缓存中存在所述客户端要调用的数据;若未查找到,则在本地缓存中保存所述数据库服务器的查询结果时,将对应的识别码也保存。
9.根据权利要求8所述的系统,其特征在于:所述识别码由所述客户端计算得到,并随调用请求一起发送给所述中间服务器;或者,由所述中间服务器在接收到所述客户端的调用请求后计算得到。
CN2007101057083A 2007-05-25 2007-05-25 一种群集环境下的数据缓存方法及系统 Active CN101090401B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101057083A CN101090401B (zh) 2007-05-25 2007-05-25 一种群集环境下的数据缓存方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101057083A CN101090401B (zh) 2007-05-25 2007-05-25 一种群集环境下的数据缓存方法及系统

Publications (2)

Publication Number Publication Date
CN101090401A CN101090401A (zh) 2007-12-19
CN101090401B true CN101090401B (zh) 2011-05-18

Family

ID=38943564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101057083A Active CN101090401B (zh) 2007-05-25 2007-05-25 一种群集环境下的数据缓存方法及系统

Country Status (1)

Country Link
CN (1) CN101090401B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107995176A (zh) * 2017-11-27 2018-05-04 南京国电南自轨道交通工程有限公司 一种scada系统画面缓存系统
CN109474674A (zh) * 2018-10-26 2019-03-15 腾讯科技(成都)有限公司 内容的传输方法和装置、存储介质、电子装置

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458706B (zh) * 2008-11-11 2012-06-27 全旅通(北京)信息服务有限公司 一种准确查询gds航班缓存数据的方法和系统
CN101764839B (zh) * 2009-12-23 2013-01-23 成都市华为赛门铁克科技有限公司 一种数据访问方法以及统一资源定位符服务器
CN102214192A (zh) * 2010-04-12 2011-10-12 腾讯科技(深圳)有限公司 一种实现Web页面数据曲线图显示的方法及服务器
CN102306247A (zh) * 2011-08-17 2012-01-04 广州启生信息技术有限公司 一种基于医生在线交互的网络客服及通行证管理系统
CN102508854A (zh) * 2011-09-29 2012-06-20 畅捷通信息技术股份有限公司 数据访问装置和方法
CN103138965B (zh) * 2011-11-28 2016-07-06 中国电信股份有限公司 一种查询物联网设备状态的方法、装置和系统
CN103177027B (zh) * 2011-12-23 2016-02-17 北京新媒传信科技有限公司 获取动态Feed索引的方法和系统
CN102546178A (zh) * 2011-12-29 2012-07-04 北京握奇数据系统有限公司 一种生成密文的方法及装置
CN102624926B (zh) * 2012-04-11 2016-02-10 中兴通讯股份有限公司 能力聚合开放的方法和系统
CN102693388B (zh) * 2012-06-07 2014-03-19 腾讯科技(深圳)有限公司 数据安全防护处理系统及方法及存储介质
CN103729353B (zh) * 2012-10-10 2017-05-31 阿里巴巴集团控股有限公司 票务信息的搜索方法及服务器
CN103729247B (zh) * 2012-10-12 2017-04-12 阿里巴巴集团控股有限公司 数据获取请求的处理方法、系统及服务器
CN102945156B (zh) * 2012-10-23 2016-01-06 融创天下(上海)科技发展有限公司 一种基于Java对象的数据缓存方法和装置
CN103324679B (zh) * 2013-05-28 2017-03-08 杭州朗和科技有限公司 一种缓存服务器中数据更新的控制方法和设备
CN103366553A (zh) * 2013-06-28 2013-10-23 银江股份有限公司 一种基于无线终端的实时交通服务信息获取方法及系统
CN104573428B (zh) * 2013-10-12 2018-02-13 方正宽带网络服务股份有限公司 一种提高服务器集群资源有效性的方法及系统
TWI526966B (zh) * 2013-11-25 2016-03-21 財團法人資訊工業策進會 資料處理裝置及資料處理方法
CN104717262A (zh) * 2013-12-13 2015-06-17 中国移动通信集团辽宁有限公司 一种企业通讯录下载方法及系统
CN105095282B (zh) * 2014-05-14 2019-12-24 腾讯科技(深圳)有限公司 一种缓存数据更新方法、装置及系统
CN105335170A (zh) * 2014-06-05 2016-02-17 阿里巴巴集团控股有限公司 分布式系统及数据增量更新方法
CN105376289A (zh) * 2014-09-01 2016-03-02 重庆好吃狗云计算科技有限公司 一种无损快速恢复数据和系统运行的方法
CN105472661B (zh) * 2014-09-04 2019-05-07 阿尔卡特朗讯 一种用于物联网的缓存方法、设备与系统
CN105389311B (zh) * 2014-09-04 2019-04-09 阿里巴巴集团控股有限公司 一种用于确定查询结果的方法与设备
CN105721388A (zh) * 2014-11-30 2016-06-29 中国科学院沈阳自动化研究所 不稳定网络环境下的mes客户端数据缓存方法及系统
CN104809179B (zh) * 2015-04-16 2018-10-02 华为技术有限公司 访问哈希表的装置和方法
CN106354732B (zh) * 2015-07-17 2019-07-05 中国石油化工股份有限公司 一种支持并发协同的离线数据版本冲突解决方法
CN106559452B (zh) * 2015-09-28 2019-11-05 阿里巴巴集团控股有限公司 集群环境下的数据处理方法及装置
CN105205182B (zh) * 2015-10-28 2019-02-01 北京奇虎科技有限公司 多机房部署系统及跨机房的业务数据处理方法
CN106656904B (zh) * 2015-10-28 2020-03-03 北京京东振世信息技术有限公司 基于Quorum机制实现权限数据缓存同步的方法及装置
CN105897832A (zh) * 2015-12-01 2016-08-24 乐视网信息技术(北京)股份有限公司 用于提供服务数据的服务器、方法及系统
CN105550300B (zh) * 2015-12-11 2020-02-04 北京奇虎科技有限公司 下发消息的方法及装置
CN106411986A (zh) * 2015-12-29 2017-02-15 深圳市瑞铭无限科技有限公司 位置查询的方法和装置
CN106973074B (zh) * 2016-01-13 2019-11-19 腾讯科技(深圳)有限公司 一种数据处理方法、装置及系统
CN107147683A (zh) * 2016-03-01 2017-09-08 中国电力科学研究院 一种基于数据字典的分布式数据统一访问方法
CN105847853A (zh) * 2016-04-01 2016-08-10 深圳市创云方网络科技有限公司 一种视频内容分发方法及装置
CN106066877B (zh) * 2016-05-30 2019-08-30 北京皮尔布莱尼软件有限公司 一种异步更新数据的方法及系统
CN107645516A (zh) * 2016-07-20 2018-01-30 平安科技(深圳)有限公司 应用软件数据缓存方法和装置
CN106210117A (zh) * 2016-08-01 2016-12-07 浪潮软件股份有限公司 一种通过云端缓存实现的高性能服务架构
CN106230723B (zh) * 2016-08-08 2019-08-13 北京邮电大学 一种报文转发缓存方法及装置
CN106921648A (zh) * 2016-11-15 2017-07-04 阿里巴巴集团控股有限公司 数据存储方法、应用服务器及远程存储服务器
CN108153796B (zh) * 2016-12-02 2023-05-16 阿里巴巴集团控股有限公司 一种电子红包的数据处理方法、装置和系统
CN106649637B (zh) * 2016-12-08 2020-04-10 武汉斗鱼网络科技有限公司 一种处理红包的方法及系统
CN106777064A (zh) * 2016-12-12 2017-05-31 湖北金拓维信息技术有限公司 一种按时序实时动态缓存的方法
CN106506704A (zh) * 2016-12-29 2017-03-15 北京奇艺世纪科技有限公司 一种缓存更新方法及装置
CN108614847B (zh) * 2016-12-30 2022-02-01 北京京东尚科信息技术有限公司 一种数据的缓存方法及系统
CN108334505B (zh) * 2017-01-19 2022-01-07 阿里巴巴集团控股有限公司 一种数据处理方法、装置、服务器及库存系统
CN106843769B (zh) * 2017-01-23 2019-08-02 北京齐尔布莱特科技有限公司 一种接口数据缓存方法、装置和计算设备
CN107436910B (zh) * 2017-04-14 2020-08-18 阿里巴巴集团控股有限公司 一种数据查询方法和装置
CN107278366A (zh) * 2017-05-27 2017-10-20 福建联迪商用设备有限公司 一种提高下载效率的下载方法及其下载系统
CN107302567A (zh) * 2017-06-05 2017-10-27 珠海市君天电子科技有限公司 迷你页信息流提供方法、装置及系统
CN107426301A (zh) * 2017-06-21 2017-12-01 郑州云海信息技术有限公司 分布式集群节点信息管理方法、系统及分布式集群系统
CN107220186A (zh) * 2017-07-03 2017-09-29 福建新和兴信息技术有限公司 Android系统中业务对象的缓存管理方法及终端
CN107644071A (zh) * 2017-09-18 2018-01-30 广州爱九游信息技术有限公司 缓存更新方法、装置及数据存储系统
CN109446172A (zh) * 2017-10-12 2019-03-08 贵阳朗玛信息技术股份有限公司 日志存储方法、读取方法及装置
CN107967183A (zh) * 2017-11-29 2018-04-27 努比亚技术有限公司 一种应用接口合并运行方法、移动终端以及计算机可读存储介质
CN107908775B (zh) * 2017-11-30 2019-04-09 掌阅科技股份有限公司 商品信息的动态展现方法、电子设备、存储介质
CN108009245B (zh) * 2017-11-30 2021-02-26 平安养老保险股份有限公司 产品价值获取方法、装置、计算机设备及存储介质
CN108021674A (zh) * 2017-12-06 2018-05-11 浙江远算云计算有限公司 一种同步云端仿真数据的多级缓存传输加速系统
CN108170771B (zh) * 2017-12-26 2022-04-12 福建星瑞格软件有限公司 一种数据库高耗时查询的自动取消方法
CN110109954B (zh) * 2018-01-22 2023-05-26 腾讯科技(深圳)有限公司 数据处理方法、系统、电子设备及存储介质
CN108595487B (zh) * 2018-03-14 2022-04-29 武汉村助手科技有限公司 一种大数据高并发下访问数据的方法及系统
CN108595505B (zh) * 2018-03-20 2022-06-24 创新先进技术有限公司 数据查询的方法和装置
CN108959405B (zh) * 2018-06-06 2021-08-17 深圳市远行科技股份有限公司 数据的强一致性读取方法及终端设备
CN109062717B (zh) * 2018-06-25 2022-07-12 创新先进技术有限公司 数据缓存及缓存容灾方法和系统、缓存系统
CN109101580A (zh) * 2018-07-20 2018-12-28 北京北信源信息安全技术有限公司 一种基于Redis的热点数据缓存方法和装置
CN109325054A (zh) * 2018-07-23 2019-02-12 中国建设银行股份有限公司 基于缓存的数据处理方法、系统和存储介质
CN110851474A (zh) * 2018-07-26 2020-02-28 深圳市优必选科技有限公司 数据查询方法、数据库中间件、数据查询设备及存储介质
CN109144557A (zh) * 2018-08-23 2019-01-04 携程旅游信息技术(上海)有限公司 App的动态增量升级方法及系统
CN109358805B (zh) * 2018-09-03 2021-11-30 中新网络信息安全股份有限公司 一种数据缓存方法
CN110493027A (zh) * 2018-09-27 2019-11-22 北京白山耘科技有限公司 一种分布式数据管理系统及管理方法
CN110493300B (zh) * 2018-09-27 2021-11-23 北京白山耘科技有限公司 一种分布式数据系统及分布式数据同步方法
CN109284309A (zh) * 2018-10-16 2019-01-29 翟红鹰 数据库缓存方法、终端及计算机可读存储介质
CN109151067B (zh) * 2018-10-17 2020-11-03 广东广信通信服务有限公司 一种结合缓存和cdn访问数据的方法及装置
CN109684283B (zh) * 2018-12-24 2022-03-29 国电南瑞科技股份有限公司 一种移动应用cim/g文件本地缓存方法、系统及设备
CN109783499B (zh) * 2019-01-18 2023-09-22 成都宝瓜科技有限公司 一种数据缓存方法、装置和服务器
CN110046167B (zh) * 2019-02-18 2024-03-26 创新先进技术有限公司 数据更新方法和系统
CN110022296B (zh) * 2019-03-01 2021-05-18 口口相传(北京)网络技术有限公司 实时数据处理方法、装置、存储介质及计算机设备
CN109995855B (zh) * 2019-03-20 2021-12-10 北京奇艺世纪科技有限公司 一种数据获取方法、装置及终端
CN110147480A (zh) * 2019-04-15 2019-08-20 腾讯科技(深圳)有限公司 一种数据拉取方法、设备及存储介质
CN110175206A (zh) * 2019-05-24 2019-08-27 江西尚通科技发展股份有限公司 用于多数据库分离的智能分析业务方法、系统及介质
CN110413679B (zh) * 2019-07-31 2023-01-24 深圳前海微众银行股份有限公司 数据库信息处理方法、装置、设备及可读存储介质
CN110673831B (zh) * 2019-08-22 2023-02-03 深圳联友科技有限公司 一种请求参数的缓存计算方法
CN110795457B (zh) * 2019-09-24 2023-05-05 苏宁云计算有限公司 数据缓存处理方法、装置、计算机设备和存储介质
CN110727892A (zh) * 2019-09-24 2020-01-24 北京奇艺世纪科技有限公司 缓存数据更新方法、装置及电子设备
CN111090675B (zh) * 2019-11-22 2022-12-02 福建亿榕信息技术有限公司 多入口数据缓存方法及存储介质
CN111083219A (zh) * 2019-12-11 2020-04-28 深信服科技股份有限公司 请求处理方法、装置、设备与计算机可读存储介质
CN111209467B (zh) * 2020-01-08 2023-05-26 中通服咨询设计研究院有限公司 一种多并发多通道环境下的数据实时查询系统
CN113515541A (zh) * 2020-04-09 2021-10-19 奇安信安全技术(珠海)有限公司 数据库的数据查询方法、装置和系统
CN111625427B (zh) * 2020-07-03 2023-09-01 上海浦东发展银行股份有限公司 用于配置中心客户端连接健康状况的实时监控系统和方法
CN112395316B (zh) * 2020-11-10 2023-08-29 杭州萤石软件有限公司 一种数据查询方法及装置
CN112612789A (zh) * 2020-12-15 2021-04-06 平安消费金融有限公司 数据存取方法、装置、电子设备及存储介质
CN113645309A (zh) * 2021-08-18 2021-11-12 浙江苍南仪表集团股份有限公司 多客户端数据差异化二次缓存及同步的处理方法及系统
CN116248762A (zh) * 2022-12-02 2023-06-09 中山市可讯科技有限公司 一种基于不稳定请求的缓存系统及方法
CN116383250A (zh) * 2023-03-07 2023-07-04 深圳市丰宜科技有限公司 一种生成缓存的方法、存储介质

Citations (3)

* 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
CN1703041A (zh) * 2005-06-08 2005-11-30 武汉虹信通信技术有限责任公司 通信服务器并发处理大数据量的方法
EP1770954A1 (en) * 2005-10-03 2007-04-04 Amadeus S.A.S. System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases

Patent Citations (3)

* 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
CN1703041A (zh) * 2005-06-08 2005-11-30 武汉虹信通信技术有限责任公司 通信服务器并发处理大数据量的方法
EP1770954A1 (en) * 2005-10-03 2007-04-04 Amadeus S.A.S. System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
杜晓等.集群缓存服务器和光盘库的通信实现.计算机工程32 7.2006,32(7),第269-271页、图1,2.
杜晓等.集群缓存服务器和光盘库的通信实现.计算机工程32 7.2006,32(7),第269-271页、图1,2. *
程耀东等.海量存储系统中磁带文件缓存管理.核电子学与探测技术26 4.2006,26(4),第439-441页、图1,3.
程耀东等.海量存储系统中磁带文件缓存管理.核电子学与探测技术26 4.2006,26(4),第439-441页、图1,3. *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107995176A (zh) * 2017-11-27 2018-05-04 南京国电南自轨道交通工程有限公司 一种scada系统画面缓存系统
CN107995176B (zh) * 2017-11-27 2020-09-11 南京国电南自轨道交通工程有限公司 一种scada系统画面缓存系统
CN109474674A (zh) * 2018-10-26 2019-03-15 腾讯科技(成都)有限公司 内容的传输方法和装置、存储介质、电子装置
CN109474674B (zh) * 2018-10-26 2021-06-25 腾讯科技(成都)有限公司 内容的传输方法和装置、存储介质、电子装置

Also Published As

Publication number Publication date
CN101090401A (zh) 2007-12-19

Similar Documents

Publication Publication Date Title
CN101090401B (zh) 一种群集环境下的数据缓存方法及系统
US8818942B2 (en) Database system with multiple layer distribution
CN103067433B (zh) 一种分布式存储系统的数据迁移方法、设备和系统
CN110324177B (zh) 一种微服务架构下的服务请求处理方法、系统及介质
CN106775446B (zh) 基于固态硬盘加速的分布式文件系统小文件访问方法
US10462250B2 (en) Distributed caching cluster client configuration
CN111885098B (zh) 对象存储集群的代理访问方法、系统及计算机设备
CN105183394A (zh) 一种数据存储处理方法和装置
US20010056461A1 (en) Cluster configuration repository
CN101388824B (zh) 一种机群系统中分片存储模式下文件读取的方法及系统
CN113377868B (zh) 一种基于分布式kv数据库的离线存储系统
CN103209223A (zh) 分布式应用会话信息共享方法、系统和应用服务器
JP2015535633A (ja) 分散キャッシュクラスタ管理
US10901643B2 (en) Using log objects in object storage for durability of file objects in volatile memory
US10579597B1 (en) Data-tiering service with multiple cold tier quality of service levels
JP2009504030A (ja) 収益管理システムおよび方法
CN105426321A (zh) 采用远程位置信息的rdma友好缓存方法
JP2001522074A (ja) 通信システム及び方法
CN105335170A (zh) 分布式系统及数据增量更新方法
CN103607424A (zh) 一种服务器连接方法及服务器系统
CN101673217B (zh) 一种实现远端程序调用的方法和系统
CN111694865A (zh) 基于分布式系统的四层结构数据获取方法和装置
CN108777718B (zh) 一种业务系统通过客户端访问读多写少系统的方法和装置
CN111309266A (zh) 一种基于ceph的分布式存储元数据系统日志优化系统与方法
CN107180082A (zh) 一种基于多级缓存机制的数据更新系统及方法

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