一种数据访问的方法和装置与流程

文档序号:11950069阅读:204来源:国知局
一种数据访问的方法和装置与流程

本发明涉及缓存技术领域,特别是涉及一种数据访问的方法和装置。



背景技术:

缓存是提高CPU数据访问的有效途径,大到在线视频观看、网页浏览,小到应用程序内部数据访问、本地视频播放等等都会运用到缓存技术。然而,对于涉及网络的缓存手段,由于更新数据时存在的时间延迟,往往容易在本地缓存数据过期的时候,本地同时接收到多个对于本地缓存数据的访问,从而引发多次缓存数据更新请求的并发情况,造成网络的拥塞。

另一方面,现有技术中也并没有提出一种提高缓存数据更新效率,有效降低对本地缓存数据访问中断的解决方案,即如何降低由于更新本地缓存数据带来的本地缓存数据访问空白期对其它访问端造成的影响。



技术实现要素:

本发明要解决的技术问题是如何降低由于更新本地缓存数据带来的本地缓存数据访问空白期对其它访问端造成的影响。

本发明采用如下技术方案:

第一方面,本发明实施例提供了一种数据访问的方法,设置第二缓存区,设置所述第二缓存区中内容过期的第二阈值时间,所述第二阈值时间的参数值与第一缓存区中内容过期的第一阈值时间的参数值相差指定长度,所述方法包括:

获取访问缓存区的第一指令,所述访问缓存区的第一指令中携带缓存地址;

确认第二缓存区中第二内容存在时间超过第二阈值时间,将与所述第二缓存区关联的第二阈值时间中的参数值替换为第一阈值时间中的参数值,并继续进行计时;

将第一缓存区作为更新内容的存储地址,向内容持有端发送第一内容更新请求,并向访问发起端返回所述第二内容。

优选的,所述方法还包括:

第一缓存区获取并存储更新内容,并将所述更新内容复制到所述第二缓存区中;

重置第二阈值时间中存储的参数值,并重置计时器,开始新一轮的内容有效期计时。

优选的,所述方法还包括:

获取访问缓存区的第二指令,所述访问缓存区的第二指令中携带缓存地址;

确认第二缓存区中内容存在时间超过第二阈值时间,则锁定更新请求的发送等待已发送的第一内容更新请求的响应;其中,第二阈值时间的参数值与第一阈值时间的参数值相同。

优选的,所述访问缓存区的第一指令中携带第一缓存区地址,则所述获取访问缓存区的第一指令,还包括:

将第一指令中访问缓冲区的目的地址由所述第一缓存区替换为第二缓存区;

则所述并向访问发起端返回所述第二内容,还包括:

将携带所述第二内容的消息的源地址赋值为所述第一缓存区。

优选的,所述方法还包括:

周期性的向内容持有端发送心跳指令,并通过心跳指令的反馈消息监控当前网络状态;

根据当前网络状态动态的调整所述第二阈值时间中的参数值。

第二发明,本发明实施例还提供了一种数据访问的装置,包括:

第一指令接收模块,用于获取访问缓存区的第一指令,所述访问缓存区的第一指令中携带缓存地址;

第一超时执行模块,用于确认第二缓存区中第二内容存在时间超过第二阈值时间,将与所述第二缓存区关联的第二阈值时间中的参数值替换为第一阈值时间中的参数值,并继续进行计时;

更新发起模块,用于将第一缓存区作为更新内容的存储地址,向内容持有端发送第一内容更新请求,并向访问发起端返回所述第二内容。

优选的,所述装置还包括;

更新执行模块,获取并存储更新内容到第一缓存区,并将所述更新内容复制到所述第二缓存区中;重置第二阈值时间中存储的参数值,并重置计时器,开始新一轮的内容有效期计时。

优选的,所述装置还包括;

第二指令接收模块,用于获取访问缓存区的第二指令,所述访问缓存区的第二指令中携带缓存地址;

第二超时执行模块,用于确认第二缓存区中内容存在时间超过第二阈值时间,则锁定更新请求的发送等待已发送的第一内容更新请求的响应;其中,第二阈值时间的参数值与第一阈值时间的参数值相同。

优选的,所述装置还包括:

访问地址修改模块,用于将第一指令中访问缓冲区的目的地址由所述第一缓存区替换为第二缓存区;还用于将携带所述第二内容的消息的源地址赋值为所述第一缓存区。

优选的,所述装置还包括;

阈值更新模块,用于周期性的向内容持有端发送心跳指令,并通过心跳指令的反馈消息监控当前网络状态;根据当前网络状态动态的调整所述第二阈值时间中的参数值。

第三方面,本发明实施例还提供了一种数据访问的装置,包括:

存储器,用于存储一个或一个以上的程序;

处理器,用于执行所述一个或一个以上的程序;执行权利要求第一方面任意一项所述的数据访问方法步骤。

第四方面,本发明实施例还提供了一种数据访问的装置,所述装置包括存储器、计时器、收发器和处理器,其中,存储器、计时器、收发器分别与所述处理器相连,所述存储器中还设置有第一缓存区、第二缓存区,具体的:

所述第一缓存区和第二缓存区用于存储缓存内容;

所述存储器用于存储标定所述第一缓存区中内容过期的第一阈值时间,以及标定所述第二缓存区中内容过期的第二阈值时间;

所述计时器,用于在第二缓存区中缓存内容更新后重置并开始新的计时;

所述处理器,用于确认第二缓存区中第二内容存在时间超过第二阈值时间,将与所述第二缓存区关联的第二阈值时间中的参数值替换为第一阈值时间中的参数值,并继续进行计时;

所述收发器,用于向内容持有端发送第一内容更新请求,以及向访问发起端返回所述第二内容。

优选的,所述收发器还用于获取更新的缓存内容;

所述处理器,用于将所述缓存内容存储到第一缓存区中,并将所述更新的缓存内容复制到所述第二缓存区中;

所述处理器,还用于重置第二阈值时间中存储的参数值,重置计时器,并开始新一轮的内容有效期计时。

优选的,所述收发器还用于接收访问缓存区的第二指令,所述访问缓存区的第二指令中携带缓存地址;

所述处理器还用于确认第二缓存区中内容存在时间超过第二阈值时间,则锁定更新请求的发送等待已发送的第一内容更新请求的响应;其中,第二阈值时间的参数值与第一阈值时间的参数值相同。

优选的,所述访问缓存区的第一指令中携带第一缓存区地址,则所述处理器还用于将第一指令中访问缓冲区的目的地址由所述第一缓存区替换为第二缓存区;将携带所述第二内容的消息的源地址赋值为所述第一缓存区。

优选的,所述收发器还用于周期性的向内容持有端发送心跳指令,并接受心跳指令的反馈;

所述处理器用于根据心跳指令的反馈消息监控当前网络状态;并根据当前网络状态动态的调整所述第二阈值时间中的参数值。

与现有技术相比,本发明的有益效果在于:本发明设计了一个和存储缓数据(即第二内容)的第一缓存区类似的第二缓存区,并设定一个更新缓存数据的容错时间差(即所述指定长度),从而能够保证在达到容错时间阈值时(即第二阈值时间),便发起缓存数据的更新请求,从而保证供访问端获取的缓存数据不会出现过期无效的情况,因为在达到所述容错时间阈值时,第二内容的有效期仍然还有指定长度。

【附图说明】

图1是本发明实施例提供的一种数据访问的方法流程示意图;

图2是本发明实施例提供的一种数据访问的方法流程示意图;

图3是本发明实施例提供的一种缓存区间缓存内容计时关系示意图;

图4是本发明实施例提供的一种数据访问的方法流程示意图;

图5是本发明实施例提供的一种数据访问的方法流程示意图;

图6是本发明实施例提供的一种数据访问的装置结构示意图;

图7是本发明实施例提供的一种数据访问的装置结构示意图;

图8是本发明实施例提供的一种数据访问的装置结构示意图;

图9是本发明实施例提供的一种数据访问的装置结构示意图;

图10是本发明实施例提供的一种数据访问的装置结构示意图;

图11是本发明实施例提供的一种数据访问的装置结构示意图;

图12是本发明实施例提供的一种数据访问的装置结构示意图。

【具体实施方式】

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明在分析了现有技术中也并没有提出一种提高缓存数据更新效率,有效降低对本地缓存数据(本发明各实施例中也称为缓存内容、第一内容或者第二内容)访问中断的解决方案的问题后。设计一种黑箱操作方法,即对外部来说其原本的访问方式可以不做任何变化,但是,实际上的访问本地缓存数据的稳定性则大大得到提高。其原理就是提供另一个和原本存储缓数据的缓存区类似的存储区域,并设定一个更新缓存数据的容错时间差,从而能够保证在达到容错时间阈值时,便发起缓存数据的更新请求,从而保证供访问端获取的缓存数据不会出现过期无效的情况。其中,访问端通常是本地应用,而用于提供缓存数据更新的内容持有者通常是网络另一端的服务器。

在本发明实施例中,对于兼容性的考虑,若非要和现有技术对应起来,通常定义第一缓存区为现有技术中存储缓存数据的区域,而第二缓存区则为在此基础上由本发明新增的对象。

实施例1:

本发明实施例1提供了一种数据访问的方法,在本实施例中需要设置第二缓存区,设置所述第二缓存区中内容过期的第二阈值时间,所述第二阈值时间的参数值与第一缓存区中内容过期的第一阈值时间的参数值相差指定长度,所述指定长度通常是根据更新第一缓存区中内容所需时间而定的,如图1所示,所述方法包括以下执行步骤:

在步骤201中,获取访问缓存区的第一指令,所述访问缓存区的第一指令中携带缓存地址。

在步骤202中,确认第二缓存区中第二内容存在时间超过第二阈值时间,将与所述第二缓存区关联的第二阈值时间中的参数值替换为第一阈值时间中的参数值,并继续进行计时。

在步骤203中,将第一缓存区作为更新内容的存储地址,向内容持有端发送第一内容更新请求,并向访问发起端返回所述第二内容。

本发明实施例设计了一个和存储缓数据(即第二内容)的第一缓存区类似的第二缓存区,并设定一个更新缓存数据的容错时间差(即所述指定长度),从而能够保证在达到容错时间阈值时(即第二阈值时间),便发起缓存数据的更新请求,从而保证供访问端获取的缓存数据不会出现过期无效的情况,因为在达到所述容错时间阈值时,第二内容的有效期仍然还有指定长度。

在执行完步骤203还,还存在多种可能出现的情况,结合本发明实施例,阐述其中一种可能出现的情况,如图2所示,所述方法还包括:

在步骤204中,第一缓存区获取并存储更新内容,并将所述更新内容复制到所述第二缓存区中。

在步骤205中,重置第二阈值时间中存储的参数值,并重置计时器,开始新一轮的内容有效期计时。

如图3所示,本发明为实施例1所提供的第一缓存区和第二缓存区在时间点上的对应关系图。

在执行完步骤203还,还存在多种可能出现的情况,结合本发明实施例,阐述其中另一种可能出现的情况,如图4所示,所述方法还包括:

在步骤204’中,获取访问缓存区的第二指令,所述访问缓存区的第二指令中携带缓存地址。

在步骤205’中,确认第二缓存区中内容存在时间超过第二阈值时间,则锁定更新请求的发送等待已发送的第一内容更新请求的响应;其中,第二阈值时间的参数值与第一阈值时间的参数值相同。

优选的,确认第二缓存区中内容存在时间超过第二阈值时间后,在完成第二缓存区缓存内容更新之前,拒绝其它就本地缓存内容的访问请求,并返回正在更新的响应。

在本发明实施例实现过程中,考虑到兼容性问题,即如何对外展示本地的接口并没有变化,而又能够实现本发明所阐述的方式。结合本发明实施例,提出了一种优选的实现方案,即能够对外保持原有的接口定义,又能够执行实施例1所述的方法,具体的:所述访问缓存区的第一指令中携带第一缓存区地址,则所述获取访问缓存区的第一指令,还包括:

将第一指令中访问缓冲区的目的地址由所述第一缓存区替换为第二缓存区;

则所述并向访问发起端返回所述第二内容,还包括:

将携带所述第二内容的消息的源地址赋值为所述第一缓存区。

在经过多次测试实验后,认为给与所述第二阈值时间设定定值是不太合理的,尤其是在网络环境不稳定的情况下。因此,结合本发明实施例,提出了一种优选的实现方案,具体的:

周期性的向内容持有端发送心跳指令,并通过心跳指令的反馈消息监控当前网络状态;

根据当前网络状态动态的调整所述第二阈值时间中的参数值。

该优选的实现方案,能够通过周期性的心跳指令监控网络状态,并根据监控结果调整第二阈值时间中的参数值,从而能够保证设定的与第一与之时间的参数值之间的时差能够保证完成第二缓存区中缓存内容的更新。

实施例2:

相比较实施例1中提供的一种数据访问的方法,前者同时覆盖了兼容模式和颠覆模式,其中兼容模式在实施例1中的可扩展方案中已经阐述过,而本实施例将侧重从颠覆模式进行阐述如何实现。设置第二缓存区,设置所述第二缓存区中内容过期的第二阈值时间,所述第二阈值时间的参数值与第一缓存区中内容过期的第一阈值时间的参数值相差指定长度,如图5所示,所述方法包括以下执行步骤:

在步骤301中,获取访问缓存区的第一指令,所述访问缓存区的第一指令中携带第一缓存地址。

在步骤302中,确认第一缓存区中第一内容存在时间超过第一阈值时间,将与所述第一缓存区关联的第一阈值时间中的参数值替换为第二阈值时间中的参数值,并继续进行计时。

在步骤303中,将第二缓存区作为更新内容的存储地址,向内容持有端发送第一内容更新请求,并向访问发起端返回所述第一内容。

本发明实施例,从本地实现到对外接口都做了相应的调整,从而可以避免兼容模式中对于目的地址或源地址的更换,能够达到更高的处理效率。

本发明实施例同样适用于实施例1中所阐述的一种或者多种扩展方案,在此不再一一赘述。

实施例3:

本发明实施例提供了一种数据访问的装置,用于配套实施例1所述数据访问方法完成相应方法步骤的执行,如图6所示,具体的所述装置包括:

第一指令接收模块,用于获取访问缓存区的第一指令,所述访问缓存区的第一指令中携带缓存地址;

第一超时执行模块,用于确认第二缓存区中第二内容存在时间超过第二阈值时间,将与所述第二缓存区关联的第二阈值时间中的参数值替换为第一阈值时间中的参数值,并继续进行计时;

更新发起模块,用于将第一缓存区作为更新内容的存储地址,向内容持有端发送第一内容更新请求,并向访问发起端返回所述第二内容。

结合本发明实施例,存在一种优选的实现方式,具体的如图7所示,所述装置还包括;

更新执行模块,获取并存储更新内容到第一缓存区,并将所述更新内容复制到所述第二缓存区中;重置第二阈值时间中存储的参数值,并重置计时器,开始新一轮的内容有效期计时。

结合本发明实施例,存在一种优选的实现方式,具体的如图8所示,所述装置还包括;

第二指令接收模块,用于获取访问缓存区的第二指令,所述访问缓存区的第二指令中携带缓存地址;

第二超时执行模块,用于确认第二缓存区中内容存在时间超过第二阈值时间,则锁定更新请求的发送等待已发送的第一内容更新请求的响应;其中,第二阈值时间的参数值与第一阈值时间的参数值相同。

结合本发明实施例,存在一种优选的实现方式,具体的如图9所示,所述装置还包括:

访问地址修改模块,用于将第一指令中访问缓冲区的目的地址由所述第一缓存区替换为第二缓存区;还用于将携带所述第二内容的消息的源地址赋值为所述第一缓存区。

结合本发明实施例,存在一种优选的实现方式,具体的,所述装置还包括;

阈值更新模块,用于周期性的向内容持有端发送心跳指令,并通过心跳指令的反馈消息监控当前网络状态;根据当前网络状态动态的调整所述第二阈值时间中的参数值。

实施例4:

本发明实施例还提供了另一种数据访问的装置,用于实现实施例1所述的方法,如图10所示,具体包括:

存储器,用于存储一个或一个以上的程序;

处理器,用于执行所述一个或一个以上的程序;执行实施例1中任意一项所述的数据访问方法步骤。

实施例5:

本发明实施例还提供了一种数据访问的装置,本实施例配套实施例1所述方法而设计,所述装置包括存储器、计时器、收发器和处理器,如图11所示,存储器、计时器、收发器分别与所述处理器相连,所述存储器中还设置有第一缓存区、第二缓存区,具体的:

所述第一缓存区和第二缓存区用于存储缓存内容;

所述存储器用于存储标定所述第一缓存区中内容过期的第一阈值时间,以及标定所述第二缓存区中内容过期的第二阈值时间;

所述计时器,用于在第二缓存区中缓存内容更新后重置并开始新的计时;

所述处理器,用于确认第二缓存区中第二内容存在时间超过第二阈值时间,将与所述第二缓存区关联的第二阈值时间中的参数值替换为第一阈值时间中的参数值,并继续进行计时;

所述收发器,用于向内容持有端发送第一内容更新请求,以及向访问发起端返回所述第二内容。

结合本发明实施例,存在一种优选的实现方案,其中,所述收发器还用于获取更新的缓存内容;

所述处理器,用于将所述缓存内容存储到第一缓存区中,并将所述更新的缓存内容复制到所述第二缓存区中;

所述处理器,还用于重置第二阈值时间中存储的参数值,重置计时器,并开始新一轮的内容有效期计时。

结合本发明实施例,存在一种优选的实现方案,其中,所述收发器还用于接收访问缓存区的第二指令,所述访问缓存区的第二指令中携带缓存地址;

所述处理器还用于确认第二缓存区中内容存在时间超过第二阈值时间,则锁定更新请求的发送等待已发送的第一内容更新请求的响应;其中,第二阈值时间的参数值与第一阈值时间的参数值相同。

结合本发明实施例,存在一种优选的实现方案,其中,所述访问缓存区的第一指令中携带第一缓存区地址,则所述处理器还用于将第一指令中访问缓冲区的目的地址由所述第一缓存区替换为第二缓存区;将携带所述第二内容的消息的源地址赋值为所述第一缓存区。

实施例6:

结合本发明实施例还提供了一种数据访问的装置,本实施例为配套实施例2所述方法而设计,所述装置包括存储器、计时器、收发器和处理器,如图12所示,存储器、计时器、收发器分别与所述处理器相连,所述存储器中还设置有第一缓存区、第二缓存区,具体的:

所述第一缓存区和第二缓存区用于存储缓存内容;

所述存储器用于存储标定所述第一缓存区中内容过期的第一阈值时间,以及标定所述第二缓存区中内容过期的第二阈值时间;

所述计时器,用于在第一缓存区中缓存内容更新后重置并开始新的计时;

所述处理器,用于确认第一缓存区中第一内容存在时间超过第一阈值时间,将与所述第一缓存区关联的第一阈值时间中的参数值替换为第二阈值时间中的参数值,并继续进行计时;

所述收发器,用于向内容持有端发送第一内容更新请求,以及向访问发起端返回所述第一内容。

值得说明的是,上述装置内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1