缓存调度方法与系统及其介质的制作方法

文档序号:6513353阅读:159来源:国知局
缓存调度方法与系统及其介质的制作方法
【专利摘要】本发明提供一种缓存调度方法与系统,根据获取到的缓存数据,确定缓存对象,之后查找缓存对象的下一次预计访问时间,若缓存对象表中有当前缓存对象的下一次预计访问时间,则直接读取并根据缓存数据更新缓存对象访问信息,若缓存对象表中无当前缓存对象的下一次预计访问时间则计算下一次预计访问时间。在需要进行缓存对象调整时,只需根据缓存对象下一次预计访问时间的大小对缓存对象进行排序,简单、高效对缓存对象进行缓存调度。另外,缓存对象的下一次预计访问时间是严格按照当前缓存数据和/或历史缓存数据进行计算的,确保了最后计算的结果的精准和真实,也保证了缓存调度的准确。
【专利说明】缓存调度方法与系统及其介质
【技术领域】
[0001]本发明涉及数据调度【技术领域】,特别是涉及缓存调度方法与系统及其介质。
【背景技术】
[0002]大规模信息系统中,由于数据量大,用户数多,为了快速响应用户请求,需要将用户经常访问的数据放入快速存储区域进行缓存。
[0003]目前的缓存策略主要有:
[0004]I)基于访问时间的算法,此类算法按各缓存项的被访问时间来组织缓存队列,决
定替换对象。
[0005]2)基于访问频率:此类算法用缓存项的被访问频率来组织缓存。
[0006]3)访问时间与频率兼顾:通过兼顾访问时间与频率,使得在数据访问模式变化时缓存策略仍有较好性能。多数此类算法具有一个可调或自适应参数,通过该参数的调节使缓存策略在基于访问时间与频率间取得一定平衡。
[0007]4)基于访问模式:某些应用有较明确的的数据访问特点,进而产生与其相适应的缓存策略。
[0008]现有模式的方式主要的缺陷在于,其策略无法简单根据系统的动态运行特点进行缓存对象的调整。在信息系统的运行过程中,其数据量、用户量、数据访问方式都在动态调整,为了最优化缓存效率,常常需要根据其运行特点将缓存对象进行动态调整,而采用一般缓存调度的模式无法简单实现缓存对象的调整,导致缓存调度效率下。

【发明内容】

[0009]基于此,有必要针对一般缓存调度的模式缓存对象调整复杂的问题,提供一种缓存对象调整简单、且缓存调度效率高的缓存调度方法与系统及其介质。
[0010]一种缓存调度方法,包括步骤:
[0011]获取缓存数据,确定当前缓存对象;
[0012]检测缓存对象表中是否包含所述当前缓存对象,其中,所述缓存对象表包含有缓存对象以及与缓存对象相应的缓存对象的下一次预计访问时间的数据;
[0013]若所述缓存对象表中包含所述当前缓存对象,则从所述缓存对象表中获取当前缓存对象的下一次预计访问时间,并根据所述缓存数据更新所述缓存对象表中的缓存对象访问信息;
[0014]若所述缓存对象表中包未含所述当前缓存对象,则根据所述缓存数据建立当前缓存对象访问信息,根据当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,将计算结果写入所述当前缓存对象访问信息中,并将携带有所述当前缓存对象的下一次预计访问时间的所述当前缓存对象访问信息写入缓存对象表中;
[0015]根据缓存对象表中各个缓存对象的下一次预计访问时间,确定当前缓存调度的对象。[0016]一种缓存调度系统,包括:
[0017]获取模块,用于获取缓存数据,确定当前缓存对象;
[0018]检测模块,用于检测缓存对象表中是否包含所述当前缓存对象,其中,所述缓存对象表包含有缓存对象以及与缓存对象相应的缓存对象的下一次预计访问时间的数据;
[0019]第一处理模块,用于当所述缓存对象表中包含所述当前缓存对象时,从所述缓存对象表中获取当前缓存对象的下一次预计访问时间,并根据所述缓存数据更新所述缓存对象表中的缓存对象访问信息;
[0020]第二处理模块,用于当所述缓存对象表中包未含所述当前缓存对象,根据所述缓存数据建立当前缓存对象访问信息,根据当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,将计算结果写入所述当前缓存对象访问信息中,并将携带有所述当前缓存对象的下一次预计访问时间的所述当前缓存对象访问信息写入缓存对象表中;
[0021]确定模块,用于根据缓存对象表中各个缓存对象的下一次预计访问时间,确定当前缓存调度的对象。
[0022]一种机器可读介质,所述机器可读介质加载有如上述的缓存调度方法。
[0023]本发明提供一种缓存调度方法与系统,根据获取到的缓存数据,确定缓存对象,之后查找缓存对象的下一次预计访问时间,若缓存对象表中有当前缓存对象的下一次预计访问时间,则直接读取并根据缓存数据更新缓存对象访问信息,若缓存对象表中无当前缓存对象的下一次预计访问时间则计算下一次预计访问时间。在需要进行缓存对象调整时,只需根据缓存对象下一次预计访问时间的大小对缓存对象进行排序,简单、高效对缓存对象进行缓存调度。另外,缓存对象的下一次预计访问时间是严格按照当前缓存数据和/或历史缓存数据进行计算的,确保了最后计算的结果的精准和真实,也保证了缓存调度的准确。
【专利附图】

【附图说明】
[0024]图1为本发明缓存调度方法第一个实施例的流程示意图;
[0025]图2为本发明缓存调度方法第二个实施例的流程示意图;
[0026]图3为本发明缓存调度系统第一个实施例的结构示意图;
[0027]图4为本发明缓存调度系统第二个实施例的结构示意图。
【具体实施方式】
[0028]为了使本发明的目的、技术方案及优点更加清楚明白,以下根据附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施仅仅用以解释本发明,并不限定本发明。
[0029]如图1所示,一种缓存调度方法,其特征在于,包括步骤:
[0030]SlOO:获取缓存数据,确定当前缓存对象。
[0031]获取当前需要进行缓存调度的缓存数据,解析接收到缓存数据即可确定当前缓存对象。
[0032]S200:检测缓存对象表中是否包含所述当前缓存对象,其中,所述缓存对象表包含有缓存对象以及与缓存对象相应的缓存对象的下一次预计访问时间的数据。
[0033]检测已有的缓存对象表中是否包含有当前缓存对象,在这里,缓存对象表中包含有缓存对象以及与缓存对象相匹配的缓存对象的下一次预计访问时间。例如缓存对象表中有缓存对象A、B、C,以及与A、B、C下一次预计访问时间。简单来说,就是缓存对象表中包含了缓存对象以及与其对应下一次预计访问时间。
[0034]S300:若所述缓存对象表中包含所述当前缓存对象,则从所述缓存对象表中获取当前缓存对象的下一次预计访问时间,并根据所述缓存数据更新所述缓存对象表中的缓存对象访问信息。
[0035]当缓存对象表中包含有当前缓存对象时,可以直接从缓存对象表中直接读取该缓存对象的下一次预计访问时间。由于相同的缓存对象可能携带有不同的缓存信息或该缓存对象被缓存调度的周期、对缓存调度的状态等数据需要保存在缓存对象表中的,就需要将这些由该缓存数据缓存调度带来的信息更新到缓存对象表中的缓存对象访问信息中,以便在之后的步骤中查找使用。
[0036]S400:若所述缓存对象表中包未含所述当前缓存对象,则根据所述缓存数据建立当前缓存对象访问信息,根据当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,将计算结果写入所述当前缓存对象访问信息中,并将携带有所述当前缓存对象的下一次预计访问时间的所述当前缓存对象访问信息写入缓存对象表中。
[0037]当缓存对象表中没有包含当前缓存对象,那么就无法直接从缓存对象表中直接读取当前缓存对象的下一次预计访问时间,需要根据当前缓存对象访问信息计算当前缓存对象的下一次预计访问时间,这个计算有多种方式,当计算出结果后,将结果写入当前缓存对象访问信息中,最后再将当前缓存对象访问信息写入缓存对象表中,以便在今后的操作中直接读取。简单来说,本步骤是一个类似于新的缓存对象在缓存对象表中建立一个存档数据的过程,这个存档数据包括缓存对象名称、下一次预计访问时间以及缓存对象访问信息等数据。
[0038]S500:根据缓存对象表中各个缓存对象的下一次预计访问时间,确定当前缓存调度的对象。
[0039]在这里,缓存对象表中保存有各个缓存对象以及与其相应的下一次预计访问时间,当需要进行缓存调度的对象确定时,只需要将缓存对象表中的缓存对象的下次一次预计访问时间按照一个大小顺序进行依次排序,根据这个排序对将缓存对象进行动态调整。
[0040]本发明提供一种缓存调度方法,根据获取到的缓存数据,确定缓存对象,之后查找缓存对象的下一次预计访问时间,若缓存对象表中有当前缓存对象的下一次预计访问时间,则直接读取并根据缓存数据更新缓存对象访问信息,若缓存对象表中无当前缓存对象的下一次预计访问时间则计算下一次预计访问时间。在需要进行缓存对象调整时,只需根据缓存对象下一次预计访问时间的大小对缓存对象进行排序,简单、高效对缓存对象进行缓存调度。另外,缓存对象的下一次预计访问时间是严格按照当前缓存数据和/或历史缓存数据进行计算的,确保了最后计算的结果的精准和真实,也保证了缓存调度的准确。
[0041]如图2所示,所述S400具体包括步骤:
[0042]S420:当缓存对象表中包未含有所述当前缓存对象时,根据所述缓存数据建立当前缓存对象访问?目息;
[0043]S440:根据当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,并将计算结果写入所述缓存对象访问信息中;[0044]S460:检测所述缓存对象表剩余空间大小;
[0045]S480:当所述缓存对象表剩余空间大小不大于所述当前缓存对象访问信息的大小时,按照所述缓存对象表中已有缓存对象的下一次预计访问时间长度从长到短的顺序,依次剔除已有缓存对象访问信息,直至所述缓存对象表剩余空间大小大于所述当前缓存对象访问信息的大小;
[0046]S490:将携带有所述缓存对象的下一次预计访问时间的所述当前缓存对象访问信息更新到缓存对象表中。
[0047]由于缓存对象表的存储空间是有限的,而缓存对象的数量是未知的,当大量不同的缓存对象需要保存缓存对象访问信息到缓存对象表中时就有可能出现缓存对象表无剩余的空间存储更多个缓存对象访问信息,这时就需要安排一个机制来清除缓存对象表的已保存的缓存对象信息。在本实施例中,当所述缓存对象表剩余空间大小不大于所述当前缓存对象访问信息的大小时,按照所述缓存对象表中已有缓存对象的下一次预计访问时间长度从长到短的顺序,依次剔除已有缓存对象访问信息,直至所述缓存对象表剩余空间大小大于所述当前缓存对象访问信息的大小。在确保缓存对象访问信息正常写入缓存对象表中的同时也保证了正常的缓存调度的效率和准确。
[0048]在其中一个实施例中,缓存对象访问信息还包括缓存对象最近访问时间、缓存对象最近访问时间间隔、缓存对象载入时间、缓存对象在缓存中访问次数和缓存对象的缓存空间大小。
[0049]在其中一个实施例中,所述计算缓存对象的下一次预计访问时间,并将计算结果写入所述当前缓存对象访问信息中具体包括步骤:
[0050]获取缓存对象表中已存缓存对象的实际访问时间和下一次预计访问时间的历史数据;
[0051]根据缓存对象表中已存缓存对象的实际访问时间和下一次预计访问时间的历史数据计算策略参数;
[0052]根据当前缓存对象最近访问时间、缓存对象最近访问时间间隔、缓存对象载入时间、缓存对象在缓存中访问次数、缓存对象的缓存空间大小和所述策略参数计算当前缓存对象的下一次预计访问时间;
[0053]将计算得到结果写入所述当前缓存对象访问信息中。
[0054]本实施例为详细计算缓存对象的下一次预计访问时间的一种方法,首选利用历史数据计算得出策略参数,之后再根据当前缓存对象最近访问时间、缓存对象最近访问时间间隔、缓存对象载入时间、缓存对象在缓存中访问次数、缓存对象的缓存空间大小和所述策略参数计算当前缓存对象的下一次预计访问时间。其具体计算过程以及公式如下:
[0055]缓存对象最近访问时间tr、缓存对象最近访问时间间隔tp、缓存对象载入时间tl、缓存对象在缓存中访问次数nc ;计算缓存对象下一次预访时间te的方法采用以下公式为:[0056]
【权利要求】
1.一种缓存调度方法,其特征在于,包括步骤: 获取缓存数据,确定当前缓存对象; 检测缓存对象表中是否包含所述当前缓存对象,其中,所述缓存对象表包含有缓存对象以及与缓存对象相应的缓存对象的下一次预计访问时间的数据; 若所述缓存对象表中包含所述当前缓存对象,则从所述缓存对象表中获取当前缓存对象的下一次预计访问时间,并根据所述缓存数据更新所述缓存对象表中的缓存对象访问信息; 若所述缓存对象表中包未含所述当前缓存对象,则根据所述缓存数据建立当前缓存对象访问信息,根据所述当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,将计算结果写入所述当前缓存对象访问信息中,并将携带有所述当前缓存对象的下一次预计访问时间的所述当前缓存对象访问信息写入缓存对象表中; 根据缓存对象表中各个缓存对象的下一次预计访问时间,确定当前缓存调度的对象。
2.根据权利要求1所述的缓存调度方法,其特征在于,所述若所述缓存对象表中包未含所述当前缓存对象,则根据所述缓存数据建立当前缓存对象访问信息,根据当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,将计算结果写入所述当前缓存对象访问信息中,并将携带有所述当前缓存对象的下一次预计访问时间的所述当前缓存对象访问信息写入缓存对象表中具体包括步骤: 当缓存对象表中包未含有所述当前缓存对象时,根据所述缓存数据建立当前缓存对象访问信息; 根据当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,并将计算结果写入所述缓存对象访问信息中; 检测所述缓存对象表剩余空间大小; 当所述缓存对象表剩余空间大小不大于所述当前缓存对象访问信息的大小时,按照所述缓存对象表中已有缓存对象的下一次预计访问时间长度从长到短的顺序,依次剔除已有缓存对象访问信息,直至所述缓存对象表剩余空间大小大于所述当前缓存对象访问信息的大小; 将携带有所述缓存对象的下一次预计访问时间的所述当前缓存对象访问信息更新到缓存对象表中。
3.根据权利要求1或2所述的缓存调度方法,其特征在于,缓存对象访问信息还包括缓存对象最近访问时间、缓存对象最近访问时间间隔、缓存对象载入时间、缓存对象在缓存中访问次数和缓存对象的缓存空间大小。
4.根据权利要求3所述的缓存调度方法,其特征在于,所述计算缓存对象的下一次预计访问时间,并将计算结果写入所述当前缓存对象访问信息中具体包括步骤: 获取缓存对象表中已存缓存对象的实际访问时间和下一次预计访问时间的历史数据; 根据缓存对象表中已存缓存对象的实际访问时间和下一次预计访问时间的历史数据计算策略参数; 根据当前缓存对象最近访问时间、缓存对象最近访问时间间隔、缓存对象载入时间、缓存对象在缓存中访问次数、缓存对象的缓存空间大小和所述策略参数计算当前缓存对象的下一次预计访问时间; 将计算得到结果写入所述当前缓存对象访问信息中。
5.根据权利要求4所述的缓存调度方法,其特征在于,所述根据缓存对象表中已存缓存对象的实际访问时间和下一次预计访问时间的历史数据计算策略参数具体为: 利用最小二乘法,根据缓存对象表中已存缓存对象的实际访问时间和下一次预计访问时间的历史数据计算策略参数。
6.一种缓存调度系统,其特征在于,包括: 获取模块,用于获取缓存数据,确定当前缓存对象; 检测模块,用于检测缓存对象表中是否包含所述当前缓存对象,其中,所述缓存对象表包含有缓存对象以及与缓存对象相应的缓存对象的下一次预计访问时间的数据; 第一处理模块,用于当所述缓存对象表中包含所述当前缓存对象时,从所述缓存对象表中获取当前缓存对象的下一次预计访问时间,并根据所述缓存数据更新所述缓存对象表中的缓存对象访问信息; 第二处理模块,用于当所述缓存对象表中包未含所述当前缓存对象,根据所述缓存数据建立当前缓存对象访问信息,根据当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,将计算结果写入所述当前缓存对象访问信息中,并将携带有所述当前缓存对象的下一次预计访问时间的所述当前缓存对象访问信息写入缓存对象表中; 确定模块,用于根据缓存 对象表中各个缓存对象的下一次预计访问时间,确定当前缓存调度的对象。
7.根据权利要求6所述的缓存调度系统,其特征在于,所述第二处理模块具体包括: 建立单元,用于当缓存对象表中包未含有所述当前缓存对象时,根据所述缓存数据建立当前缓存对象访问信息; 计算单元,用于根据当前缓存对象访问信息,计算所述当前缓存对象的下一次预计访问时间,并将计算结果写入所述缓存对象访问信息中; 检测单元,用于检测所述缓存对象表剩余空间大小; 空间处理单元,用于当所述缓存对象表剩余空间大小不大于所述当前缓存对象访问信息的大小时,按照所述缓存对象表中已有缓存对象的下一次预计访问时间长度从长到短的顺序,依次剔除已有缓存对象访问信息,直至所述缓存对象表剩余空间大小大于所述当前缓存对象访问信息的大小; 更新单元,用于将携带有所述缓存对象的下一次预计访问时间的所述当前缓存对象访问信息更新到缓存对象表中。
8.根据权利要求6或7所述的缓存调度系统,其特征在于,所述缓存对象访问信息还包括缓存对象最近访问时间、缓存对象最近访问时间间隔、缓存对象载入时间、缓存对象在缓存中访问次数和缓存对象的缓存空间大小。
9.根据权利要求8所述的缓存调度系统,其特征在于,所述计算单元具体包括: 历史数据获取单元,用于获取缓存对象表中已存缓存对象的实际访问时间和下一次预计访问时间的历史数据; 策略参数计算单元,用于根据缓存对象表中已存缓存对象的实际访问时间和下一次预计访问时间的历史数据计算策略参数;计算执行单元,用于根据当前缓存对象最近访问时间、缓存对象最近访问时间间隔、缓存对象载入时间、缓存对象在缓存中访问次数、缓存对象的缓存空间大小和所述策略参数计算当前缓存对象的下一次预计访问时间; 结果写入单元,用于将计算得到结果写入所述当前缓存对象访问信息中。
10.一种机器可读介质,其特征在于,所述机器可读介质加载有如权利要求1-5所述的缓存调度方法。
【文档编号】G06F12/08GK103544119SQ201310446326
【公开日】2014年1月29日 申请日期:2013年9月26日 优先权日:2013年9月26日
【发明者】谢善益, 梅桂华, 周刚, 曾强, 赵继光, 马明, 李玎, 徐柏榆, 翟瑞聪 申请人:广东电网公司电力科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1