数据更新方法、系统及数据库服务器转让专利

申请号 : CN201110122337.6

文献号 : CN102779132B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 岑文初

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本申请公开了一种数据更新方法、系统及数据库服务器,用以解决缓存空间中的数据失效而引起的数据源服务器负荷剧增的问题。其中,方法包括:数据库服务器根据数据获取请求,在缓存空间中查找第一数据;在判断出第一数无效时,将第一数据设置为有效状态,并生成数据失效事件消息加入消息队列;对消息队列进行检测,并在检测到该数据失效事件消息时,根据该消息中承载的第一数据的标识,从数据库中查找与第一数据的标识相匹配的第二数据;并利用查找到的第二数据更新缓存空间中的第一数据。

权利要求 :

1.一种数据更新方法,应用于数据并发处理中,其特征在于,包括:数据库服务器获得用于从缓存空间中获取第一数据的数据获取请求,并根据所述数据获取请求,在缓存空间中查找第一数据;

所述数据库服务器判断查找到的第一数据是否处于有效状态,并在判断结果为否时,将所述缓存空间中的第一数据设置为处于有效状态,并生成数据失效事件消息加入消息队列,其中,所述数据失效事件消息中承载有第一数据的标识;

所述数据库服务器对所述消息队列进行检测,在检测到所述数据失效事件消息时,根据所述数据失效事件消息中承载的第一数据的标识,从数据库中查找与第一数据的标识相匹配的第二数据;并所述数据库服务器利用查找到的第二数据更新缓存空间中的第一数据。

2.如权利要求1所述的方法,其特征在于,数据库服务器将所述缓存空间中的第一数据设置为处于有效状态,具体包括:数据库服务器通过延长第一数据的有效期,将所述缓存空间中的第一数据设置为处于有效状态。

3.如权利要求2所述的方法,其特征在于,数据库服务器延长所述数据的有效期后,还包括:数据库服务器将被延长了有效期后的第一数据发送给所述数据获取请求的发送方。

4.如权利要求1所述的方法,其特征在于,数据库服务器对所述消息队列进行检测,具体包括:数据库服务器按照预设的检测周期,对所述消息队列进行循环检测。

5.一种数据库服务器,应用于数据并发处理中,其特征在于,包括:缓存空间单元,用于存储数据;

获得单元,用于获得用于从缓存空间单元中获取第一数据的数据获取请 求;

第一数据查找单元,用于根据获得单元获得的数据获取请求,在缓存空间单元存储的数据中查找第一数据;

判断单元,用于判断第一数据查找单元查找到的第一数据是否处于有效状态;

状态设置单元,用于在判断单元得到的判断结果为否时,将缓存空间单元中存储的第一数据设置为处于有效状态;

消息生成单元,用于在判断单元得到的判断结果为否时,生成数据失效事件消息加入消息队列,其中,所述数据失效事件消息中承载有第一数据的标识;

检测单元,用于对所述消息队列进行检测;

第二数据查找单元,用于在检测单元检测到消息生成单元生成的数据失效事件消息时,根据所述数据失效事件消息中承载的第一数据的标识,从所述数据库服务器磁盘存储的数据库中查找与第一数据的标识相匹配的第二数据;并数据更新单元,用于利用第二数据查找单元查找到的第二数据更新缓存空间单元存储的第一数据。

6.如权利要求5所述的数据库服务器,其特征在于,所述状态设置单元具体用于通过延长第一数据的有效期,将第一数据设置为处于有效状态。

7.如权利要求6所述的数据库服务器,其特征在于,还包括:数据发送单元,用于在所述状态设置单元延长第一数据的有效期后,将被延长了有效期后的第一数据发送给所述数据获取请求的发送方。

8.如权利要求5所述的数据库服务器,其特征在于,所述检测单元具体用于按照预设的检测周期,对所述消息队列进行循环检测。

9.一种数据更新系统,包括应用端、缓存服务器和数据源服务器,其特征在于,其中:应用端,用于向缓存服务器发送用于从缓存服务器中获取第一数据的数据获取请求;

缓存服务器,用于根据应用端发送的所述数据获取请求,在缓存服务器的存储空间中查找第一数据,并判断查找到的第一数据是否处于有效状态;在判断结果为否时,将所述存储空间中的第一数据设置为处于有效状态,并生成数据失效事件消息然后发送至数据源服务器的消息队列中,其中,所述数据失效事件消息中承载有第一数据的标识;以及用于接收数据源服务器发送的第二数据,并利用第二数据更新所述存储空间中的第一数据;

数据源服务器,用于对缓存服务器发送的数据失效事件消息组成的所述消息队列进行检测,并在检测到所述数据失效事件消息时,根据所述数据失效事件消息中承载的第一数据的标识,从数据库中查找与第一数据的标识相匹配的第二数据发送给缓存服务器。

10.如权利要求9所述的系统,其特征在于,所述缓存服务器将第一数据设置为处于有效状态具体为:所述缓存服务器通过延长第一数据的有效期,将第一数据设置为处于有效状态。

说明书 :

数据更新方法、系统及数据库服务器

技术领域

[0001] 本申请涉及互联网技术领域,尤其涉及一种数据更新方法、系统及数据库服务器。

背景技术

[0002] 数据缓存与并发技术是目前用于解决高性能网站数据库瓶颈的常用技术。其中,数据缓存技术可以实现将数据源服务器磁盘数据库(以下简称数据源服务器数据库)中的数据暂时存储到数据源服务器的缓存空间(或专用于暂时存储数据的缓存服务器)中,这样减少了应用直接从数据源服务器的磁盘中读取数据而带来的访问量,减轻了数据源服务器的负荷。
[0003] 而数据并发技术是指,在数据处理的业务操作中,当同时有多个用户进行数据的操作请求时,为了保证数据的正确和完整性而对数据操作进行的一种控制处理方式。有了数据并发处理这样的方式,可以使得数据在被不同用户同时修改的时候,能够根据并发处理的模式进行不同的处理。比如,两个用户同时更新某一个订单数据就会引起数据的并发处理,此时为了保持数据的正确性,数据映射会根据设置的数据锁来分别处理。如:可以采取为第一个用户锁住待修改的订单数据,等待该第一个用户对该订单数据更新完毕后,才允许第二个用户对订单数据进行处理。待第二个用户处理的时候,如果发现订单数据发生了变更,则返回错误信息,或者执行基于更新后的订单数据再次进行订单数据的更新操作。
[0004] 一般地,数据锁有多种模式。比如,LockMode.None模式表示锁的默认值,它的意思是用户直接通过数据源服务器的数据库查询并获取数据,但如果还存在缓存服务器(或数据源服务器的缓存空间),则直接从相应的缓存空间中获取数据。而LockMode.Read模式则表示无论缓存服务器(或数据源服务器的缓存空间)中是否有数据,用户都直接从数据源服务器的数据库中读取数据。
[0005] 基于上述数据的缓存与并发技术,当数据源服务器中的数据被修改而缓存空间中相应的该数据还未被修改时,缓存空间中的该数据就无效了,此时需要将缓存空间中的该数据清除,然后再重新从数据源服务器数据库中获取相应的修改后的数据存储到缓存空间中。当缓存空间中的数据无效时,数据锁的模式一般会变更为LockMode.Read模式,即变更为直接从数据库读取数据。由于针对同一失效数据的大量请求会导致直接对数据源服务器的访问,此外,针对其他数据的请求也会直接对数据源服务器进行访问,从而数据源服务器的负荷会剧增,导致数据源服务器的不稳定。

发明内容

[0006] 本申请实施例提供一种数据更新方法、系统及数据库服务器,用以解决缓存空间中的数据失效而引起的数据源服务器负荷剧增的问题。
[0007] 本申请实施例采用以下技术方案:
[0008] 一种数据更新方法,应用于数据并发处理中,包括:
[0009] 数据库服务器获得用于从缓存空间中获取第一数据的数据获取请求,并根据所述数据获取请求,在缓存空间中查找第一数据;判断查找到的第一数据是否处于有效状态,并在判断结果为否时,将所述缓存空间中的第一数据设置为处于有效状态,并生成数据失效事件消息加入消息队列,其中,所述数据失效事件消息中承载有第一数据的标识;对所述消息队列进行检测,在检测到所述数据失效事件消息时,根据所述数据失效事件消息中承载的第一数据的标识,从数据库中查找与第一数据的标识相匹配的第二数据;并利用查找到的第二数据更新缓存空间中的第一数据。
[0010] 可选的,数据库服务器将所述缓存空间中的第一数据设置为处于有效状态,具体包括:数据库服务器通过延长第一数据的有效期,将所述缓存空间中的第一数据设置为处于有效状态。
[0011] 可选的,数据库服务器延长所述数据的有效期后,还包括:数据库服务器将被延长了有效期后的第一数据发送给所述数据获取请求的发送方。
[0012] 可选的,数据库服务器对所述消息队列进行检测,具体包括:数据库服务器按照预设的检测周期,对所述消息队列进行循环检测。
[0013] 一种数据库服务器,应用于数据并发处理中,包括:缓存空间单元,用于存储数据;获得单元,用于获得用于从缓存空间单元中获取第一数据的数据获取请求;第一数据查找单元,用于根据获得单元获得的数据获取请求,在缓存空间单元存储的数据中中查找第一数据;判断单元,用于判断第一数据查找单元查找到的第一数据是否处于有效状态;状态设置单元,用于在判断单元得到的判断结果为否时,将缓存空间单元中存储的第一数据设置为处于有效状态;消息生成单元,用于在判断单元得到的判断结果为否时,生成数据失效事件消息加入消息队列,其中,所述数据失效事件消息中承载有第一数据的标识;检测单元,用于对所述消息队列进行检测;第二数据查找单元,用于在检测单元检测到消息生成单元生成的数据失效事件消息时,根据所述数据失效事件消息中承载的第一数据的标识,从所述数据库服务器磁盘存储的数据库中查找与第一数据的标识相匹配的第二数据;并数据更新单元,用于利用第二数据查找单元查找到的第二数据更新缓存空间单元存储的第一数据。
[0014] 一种数据更新系统,包括应用端、缓存服务器和数据源服务器,其中:
[0015] 应用端,用于向缓存服务器发送用于从缓存服务器中获取第一数据的数据获取请求;
[0016] 缓存服务器,用于根据应用端发送的所述数据获取请求,在缓存服务器的存储空间中查找第一数据,并判断查找到的第一数据是否处于有效状态;在判断结果为否时,将所述存储空间中的第一数据设置为处于有效状态,并生成数据失效事件消息然后发送至数据源服务器的消息队列中,其中,所述数据失效事件消息中承载有第一数据的标识;以及用于接收数据源服务器发送的第二数据,并利用第二数据更新所述存储空间中的第一数据;
[0017] 数据源服务器,用于对缓存服务器发送的数据失效事件消息组成的所述消息队列进行检测,并在检测到所述数据失效事件消息时,根据所述数据失效事件消息中承载的第一数据的标识,从数据库中查找与第一数据的标识相匹配的第二数据发送给缓存服务器。
[0018] 本申请实施例的有益效果如下:
[0019] 本申请实施例提供的上述数据更新方案一方面通过将失效数据设置为有效,从而保证了在应用端所访问的缓存中的数据在失效后,应用端本身不依赖于缓存的更新情况而是可以继续获取该数据;另一方面通过生成数据更新事件消息来获取更新后的数据,从而避免了大量数据获取请求直接访问数据源服务器而导致其负荷剧增的问题。

附图说明

[0020] 图1为现有技术中提供的常规的缓存数据失效迁移方案的实现示意图;
[0021] 图2为现有技术中提供的一种改进的缓存数据失效迁移方案的实现示意图;
[0022] 图3为本申请实施例提供的一种应用于数据并发处理中的数据更新方法的具体流程示意图;
[0023] 图4为本申请实施例提供的方案在实际中的一个实现流程示意图;
[0024] 图5为本申请实施例提供的方案在实际中的另一个实现流程示意图;
[0025] 图6为本申请实施例提供的一种数据更新系统的具体结构示意图;
[0026] 图7为本申请实施例提供的一种数据库服务器的具体结构示意图。

具体实施方式

[0027] 为了解决缓存空间中的数据失效而引起的数据库服务器负荷剧增的问题,发明人对现有技术中的缓存数据失效迁移方案进行了深入研究。以下结合附图,对现有技术提供的缓存数据失效迁移方案和对其进行的分析研究做具体介绍:
[0028] 图1为现有技术中常规的缓存数据失效迁移方案的实现示意图。其中,该方案的实现场景包含APP应用端、缓存服务器(例如高速缓冲存储器,Cache)以及数据源服务器。首先,APP应用端向缓存服务器发送数据获取请求;缓存服务器在接收到该请求后,判断与该请求匹配的数据的有效性,比如,由于缓存服务器在保存数据时会将该数据的失效时间(由于数据的失效时间往往是根据数据被操作的频度来估计并设置的,因此一般情况下,数据在失效时间到来之前,一般可视为未被操作,反之,则可视为被操作)也进行保存,因此判断该数据是否有效,就是比较当前时间与该数据的失效时间的关系,若当前时间为2011年1月1日13:00,而该数据的失效时间为2010年1月1日12:00,则判断数据失效,若该数据的失效时间为2011年1月1日14:00,则判断数据有效;当发现该数据有效时,将该数据发送给APP应用端,流程结束;当该数据无效时,缓存服务器向数据源服务器转发该数据获取请求,并获得数据源服务器反馈的更新后的数据;缓存服务器利用更新后的数据对缓存空间中的数据进行更新,并将该更新后的数据发送给APP应用端,流程结束。
[0029] 上述方案存在的缺陷为:针对同一失效数据的大量请求会导致直接对数据源服务器的访问。此外,针对其他数据的请求也会直接对数据源服务器进行访问,从而使得数据源服务器的负荷剧增,导致数据源服务器的不稳定。
[0030] 现有技术提供了一种改进的缓存数据失效迁移方案。该方案的具体实现流程示意图如图2所示。首先,APP应用端向缓存服务器发送数据获取请求;缓存服务器在接收到该请求后,判断与该请求匹配的数据的有效性;当发现该数据有效时,将该数据发送给APP应用端,流程结束;当该数据无效时,缓存服务器为针对该数据的数据获取请求分配更新锁。
[0031] 具体地,缓存服务器一般是为在检测到该数据无效后接收到的针对该数据的第一个数据获取请求分配更新锁。被分配了该更新锁的数据获取请求相当于是获得了访问数据源服务器的权限。缓存服务器通过对数据获取请求是否具备更新锁进行检测,并只允许具备更新锁的数据获取请求访问数据源服务器,从而保证针对相同数据对数据源服务器进行的访问在同一时间只会进行一次,这样就大大减轻了数据源服务器的负荷。
[0032] 图2所示的方案优点在于,可以缓解缓存空间中单个数据失效瞬间的大量数据获取请求对数据源服务器造成的负载压力。然而,由于失效数据可能较多,而针对失效数据但却没被分配更新锁的数据获取请求又会处于等待状态,这样就会导致积累大量的数据获取请求,从而导致缓存服务器的负载较重,并且,为大量数据获取请求分配更新锁也会耗费较多处理资源。
[0033] 从现有技术提供的上述方案可知,当缓存空间中的数据失效后,仍然没有一种数据访问方案能够在避免数据库服务器负荷剧增的同时不会增大系统的负担。为此,本申请实施例提供一种数据更新方案,该方案通过将缓存空间中失效数据设置为暂时有效以响应数据获取请求的需求,并且通过生成数据失效事件信息来从数据源服务器获取对应于失效数据的更新后的数据,从而实现了在不影响数据访问过程的前提下对缓存服务器中数据的更新。采用该方案无需为数据获取请求分配更新锁,也无需数据获取请求直接对数据源服务器进行访问,从而既避免了数据失效所导致的数据库服务器负荷剧增的问题,同时还不会增大对系统资源的需求量。
[0034] 以下结合附图,对本申请实施例提供的该方案进行详细说明。
[0035] 首先,本申请实施例提供一种如图3所示的应用于数据并发处理中的数据更新方法,该方法包括以下步骤:
[0036] 步骤31,数据库服务器获得用于从缓存空间中获取第一数据的数据获取请求,并根据该数据获取请求,在缓存空间中查找第一数据;
[0037] 步骤32,数据库服务器判断查找到的第一数据是否处于有效状态,在判断结果为是时,执行步骤33,否则,执行步骤34;
[0038] 步骤33,将查找到的第一数据发送给上述数据获取请求的发送方,流程结束;
[0039] 步骤34,数据库服务器将第一数据设置为处于有效状态,并生成承载有第一数据的标识的数据失效事件消息加入消息队列;
[0040] 在本申请实施例中,可以但不限于通过延长第一数据的有效期的方式,将第一数据设置为处于有效状态。此外,在本步骤中,当数据库服务器将第一数据设置为处于有效状态后,数据库服务器还可以将被延长了有效期后的第一数据发送给数据获取请求的发送方。由于此时第一数据被设置为有效状态,因此,在第一数据的有效状态结束(有效期到达、或者对第一数据进行了更新都可以视为第一数据的有效状态结束)之前,任何针对该第一数据的数据获取请求都能顺利获取到该第一数据。
[0041] 步骤35,数据库服务器对消息队列进行检测,并在检测到数据失效事件消息时,根据该数据失效事件消息中承载的第一数据的标识,从数据库中查找与第一数据的标识相匹配的第二数据;
[0042] 在本申请实施例中,数据库服务器可以按照预设的检测周期,对所述消息队列进行循环检测。
[0043] 步骤36,利用查找到的第二数据更新缓存空间中的第一数据。
[0044] 采用本申请实施例提供的方案,一方面,由于失效数据被设置为有效状态,针对获取失效数据的数据获取请求可以继续访问并获取这部分失效数据,从而避免了数据获取请求处于等待状态而增大系统负载的问题;另一方面,本申请实施例中通过生成数据失效事件消息来获取更新后的数据的方式,而无需面对海量数据获取请求直接访问磁盘中的数据库的情况,因此不会产生海量数据获取请求访问数据库而造成的负载剧增,保证了系统的稳定性。此外,本申请实施例提供的该方法还无需为数据获取请求分配更新锁,因此,也不需要分配额外的系统资源来进行更新锁的分配操作。
[0045] 本申请实施例提供的上述方案在实际中的一个具体应用流程示意图如图4所示,包括以下步骤:
[0046] 步骤41,APP应用端向缓存服务器发送数据获取请求,该数据获取请求中包含欲获取的数据DA的标识A;
[0047] 步骤42,缓存服务器在接收到该数据获取请求后,根据该数据获取请求中包含的标识A从自身的存储空间中查找到数据DA,并判断数据DA的有效性,当发现该数据DA有效时,执行步骤43,否则,执行步骤44;
[0048] 步骤43,将该数据DA发送给APP应用端,数据获取请求流程结束;
[0049] 步骤44,缓存服务器生成包含有标识A的数据失效事件消息,并将该数据失效事件消息放入发向数据源服务器的消息队列中等待进一步的处理;
[0050] 步骤45,缓存服务器执行延长数据DA有效期的操作,并将有效期被延长后的数据DA返回给APP应用端;
[0051] 在步骤45中,数据DA的有效期可以视具体情况进行不同程度的延长。比如,可以将数据DA的有效期进行无限延长直至缓存服务器获取到相应的更新数据为止;或者,也可以将数据DA的有效期延长为预设有效期的两倍(例如数据DA的预设有效期为3分钟,那么就可以将数据DA的有效期延长为6分钟),本申请实施例对此不做限定。
[0052] 此外需要说明的是,步骤45和步骤44可以是并行执行的,或者,在判断出数据DA无效时,也可以先执行步骤45,再步骤44,本申请实施例对此也不做限定。
[0053] 步骤46,数据源服务器循环检测缓存服务器发送的消息队列,当检测到包含有标识A的数据失效事件时,从数据库中查找与标识A相匹配的更新后的数据DA1;
[0054] 其中,数据DA和数据DA1均具备相同的标识A;
[0055] 步骤47,数据源服务器将查找到的数据DA1承载在失效数据更新消息中,发送给缓存服务器;
[0056] 步骤48,缓存服务器在接收到数据源服务器发送的承载有数据DA1的上述失效数据更新消息后,执行将数据DA更新为数据DA1的操作,数据DA更新流程结束。
[0057] 需要说明的是,缓存服务器和数据源服务器的功能也可以由一个服务器来实现,为了便于描述,可以把该服务器称为数据库服务器。根据缓存服务器和数据源服务器的功能,可以将数据库服务器的缓存看做是上述缓存服务器,而将数据库服务器磁盘中存储的数据库看做数据源服务器。具体地,本申请实施例提供的方案在包含数据库服务器的场景中的具体实现流程示意图如图5所示,包括以下步骤:
[0058] 步骤51,APP应用端向数据库服务器发送数据获取请求,该数据获取请求中包含欲获取的数据DB的标识B;
[0059] 步骤52,数据库服务器在接收到该数据获取请求后,根据该数据获取请求中包含的标识B从自身的缓存空间中查找到数据DB,并判断数据DB的有效性,当发现该数据DB有效时,执行步骤53,否则,执行步骤54;
[0060] 步骤53,将该数据DB发送给APP应用端,数据获取请求流程结束;
[0061] 步骤54,数据库服务器生成包含有标识B的数据失效事件,并将该数据失效事件消息放入自身的消息队列中等待进一步的处理,同时,数据库服务器执行延长数据DB有效期的操作,并将延长有效期后的数据DB返回给APP应用端;
[0062] 需要说明的是,针对同时访问同一数据DB的数据获取请求,数据库服务器可以只分配一个线程来生成一个数据失效事件消息,并执行将该数据失效事件放入自身的消息队列中等待进一步的处理的操作,这样就保证了数据库服务器的磁盘不会被大量数据获取请求所访问,从而保证了数据库服务器的稳定性。
[0063] 步骤55,数据库服务器循环检测消息队列;
[0064] 步骤56,当从消息队列检测到包含有标识B的数据失效事件消息时,从自身磁盘所存储的数据库中查找与标识B匹配的更新后的数据DB1,其中,数据DB1和数据DB均具备相同的标识B;
[0065] 步骤57,数据库服务器从数据库中获取查找到的数据DB1;
[0066] 步骤58,数据库服务器利用查找到的数据DB1更新缓存中的数据DB,数据DB更新流程结束。
[0067] 需要说明的是,数据库服务器可以一直保持对消息队列的循环检测,以尽快实现对失效数据的更新,避免出现大量无效数据占用缓存空间的问题。
[0068] 从本申请实施例提供的方案在实际中的上述应用可以看出,其技术效果主要体现在下述几点:
[0069] 首先,保证了当缓存中的某数据失效时,针对该数据的数据获取请求只会触发数据库服务器分配一个线程来生成数据失效事件消息,并执行对该数据的更新操作,而数据获取请求仍然是从缓存中获取相应的数据,从而保证了后端的数据库不会受到数据失效瞬间的海量数据获取请求的影响;
[0070] 其次,保证了在数据失效更新过程中,该数据还是处于可用状态,从而数据获取请求无需处于等待数据更新的状态,缓解了缓存服务器的负载压力。
[0071] 对应于本申请实施例提供的数据更新方法,本申请实施例还提供一种数据更新系统,该系统的具体结构示意图如图6所示,包括应用端61、缓存服务器62和数据源服务器63。各实体的功能介绍如下:
[0072] 应用端61,用于向缓存服务器62发送用于从缓存服务器62中获取第一数据的数据获取请求;
[0073] 缓存服务器62,用于根据应用端61发送的数据获取请求,在缓存服务器62的存储空间中查找第一数据,并判断查找到的第一数据是否处于有效状态;在判断结果为否时,将第一数据设置为处于有效状态,并生成数据失效事件消息然后发送至数据源服务器63的消息队列中,其中,数据失效事件消息中承载有第一数据的标识;以及用于接收数据源服务器63发送的第二数据,并利用第二数据更新存储空间中的第一数据;
[0074] 在一个较佳的实施例中,缓存服务器62可以通过延长第一数据的有效期的方式,将第一数据设置为处于有效状态。
[0075] 数据源服务器63,用于对缓存服务器62发送的数据失效事件消息组成的消息队列进行检测,并在检测到数据失效事件消息时,根据数据失效事件消息中承载的第一数据的标识,从数据库中查找与第一数据的标识相匹配的第二数据发送给缓存服务器62。
[0076] 相应地,本申请实施例还提供一种数据库服务器,该数据库服务器的具体结构示意图如图7所示,包括以下单元:
[0077] 缓存空间单元71,用于存储数据;
[0078] 获得单元72,用于获得用于从缓存空间单元71中获取第一数据的数据获取请求;
[0079] 第一数据查找单元73,用于根据获得单元72获得的数据获取请求,在缓存空间单元71存储的数据中中查找第一数据;
[0080] 判断单元74,用于判断第一数据查找单元73查找到的第一数据是否处于有效状态;
[0081] 状态设置单元75,用于在判断单元74得到的判断结果为否时,将缓存空间单元71中存储的第一数据设置为处于有效状态;
[0082] 消息生成单元76,用于在判断单元74得到的判断结果为否时,生成数据失效事件消息加入消息队列,其中,所述数据失
[0083] 效事件消息中承载有第一数据的标识;
[0084] 检测单元77,用于对所述消息队列进行检测;
[0085] 第二数据查找单元78,用于在检测单元77检测到消息生成单元76生成的数据失效事件消息时,根据所述数据失效事件消息中承载的第一数据的标识,从所述数据库服务器磁盘存储的数据库中查找与第一数据的标识相匹配的第二数据;并
[0086] 数据更新单元79,用于利用第二数据查找单元查78找到的第二数据更新缓存空间单元71存储的第一数据。
[0087] 较佳地,上述状态设置单元75具体用于通过延长第一数据的有效期,将第一数据设置为处于有效状态。
[0088] 较佳地,本申请实施例提供的上述数据库服务器还可以进一步包括数据发送单元,该数据发送单元用于在状态设置单元延长第一数据的有效期后,将被延长了有效期后的第一数据发送给所述数据获取请求的发送方。
[0089] 较佳地,上述检测单元77具体可以用于按照预设的检测周期,对消息队列进行循环检测。
[0090] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。