买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种实时数据缓存机制_朗坤智慧科技股份有限公司_201710055582.7 

申请/专利权人:朗坤智慧科技股份有限公司

申请日:2017-01-24

公开(公告)日:2020-06-26

公开(公告)号:CN106909518B

主分类号:G06F12/126(20160101)

分类号:G06F12/126(20160101)

优先权:

专利状态码:有效-授权

法律状态:2020.06.26#授权;2017.07.25#实质审查的生效;2017.06.30#公开

摘要:本发明公开了一种实时数据缓存机制,IRR表示一个页面最近两次访问的距离,R表示上次访问到至今访问了多少其他页,T表示页面的时间因子,缓存首先将IRR较大者替换出缓存,如果IRR相等,则将R在[Rmax,Rmax‑S]之间的T最大的页面替换出去,Rmax为IRR相等的页面中R最大值,Rmax‑S为最大值减去S的值。解决了一般缓存替换算法缓存污染,循环性质访问,不关注访问的概率性特征,没有考虑到实时数据的特点等问题,算法同时考虑了页面历史访问信息,最近访问频率,以及所缓存的数据的特征,有效的提高了缓存的命中率。

主权项:1.一种实时数据缓存机制,其特征在于:IRR表示一个页面最近两次访问的距离,R表示上次访问到至今访问了多少其他页,T表示页面的时间因子,缓存首先将IRR较大者替换出缓存,如果IRR相等,则将R在[Rmax,Rmax-S]之间的T最大的页面替换出去,Rmax为IRR相等的页面中R最大值,Rmax-S为最大值减去S的值;若一个页面首次访问则其IRR为无穷大,R为0,T为Tcurr-Tmax,Tmax为数据最大时间;所述一种实时数据缓存机制采用的数据结构由两个块单元信息数据结构集合构成,其中低IRR块保存IRR值低的块信息,高IRR块保存高IRR块的信息;所述IRR值低的块信息和高IRR块的信息为链表或者树;所述两个块单元信息数据结构对应的物理缓存由两部分组成,低IRR块是局部性最高的块需要常驻内存内存,高IRR块并不是所有的块都需要常驻内存,只需缓存一部分,其块的历史信息保留为算法调度提供参考;物理缓存的长度分为低IRR块长度Llirr和高IRR块缓存长度Lhirr1的和;所述S的值为5;H=RqcacheRq,缓存命中率H为命中缓存的请求次数Rqcache和总请求次数Rq的商;则每次查询的响应时间为TRq=Tcache*H+Tdb*1-H,其中Tcache为查询缓存的请求响应时间,Tdb为数据库服务其他查询操作和数据传输的时间;由于Tdb远大于Tcache,提高查询命中率可大幅度提高查询响应时间;查询时间局部性表现为,对于查询请求序列Q1,Q2,Q3,…Qn,Qi1≤i≤n表示第i次查询请求,当i≤j时若Qi=Qj,在间隔d=|i-j|内产生的非重复查询次数为在第n次查询时产生的非重复查询次数为对于一个页面P则从当前时刻n开始最近两次访问的非重复查询次数为IRp,距当前时刻非重复查询次数为RP,页面时间戳为Tp;通过相关特征参数进行建模,表示某个页面的查询热值度函数:fhotp=IRp+RP+1-Hp*Tn-TpHp为第n时刻页面P的命中率,Tn为第n时刻的时间值;对于页面p其热值函数fhotp的值越大则这个页面的局部性越差,访问的可能性越低。

全文数据:一种实时数据缓存机制技术领域[0001]本发明涉及一种缓存机制,特别是一种实时数据缓存机制。背景技术[0002]实时数据库其底层文件页淘汰算法依赖于程序局部性原理以及实时数据的相关特性,各种缓存淘汰算法的主要不同在于如何量化局部性。常见的有FIF0算法,LRU算法,这两种算法的缺点是没有使用缓存访问次数的信息,使得对于空间局限性较弱的场景效率很低,极端情况下可能完全无法命中缓存。LIRSLowInter-referenceRecencySet算法,有效的避免了上述算法的缺点,并且具有较高的性能。众所周知,缓存替换算法的高效性对于IO系统整体性能有着非常重要的影响,常见的缓存替换算法有如下缺陷:[0003]1、缓存污染问题:大量并发的对冷块进行访问会对热块进行不明智的替换,这在序列扫描中非常普遍。[0004]2、循环性质访问问题:假如需要对一个文件进行循环性质的访问,并且文件的大小略微大于缓存的大小,那么就会出现即将被访问的快被当作冷块替换出去,一个明智的策略应尽量保证缓存的失效率近似于缓存空间不足的比例。[OOOS]3、不关注访问的概率性特征:在多用户访问数据库场景中,每条记录的访问都涉及B树,即需要先访问索引再访问数据。[0006]4、通用缓存替换算法没有考虑到实时数据的特点,即时效性,数据离当前时间越近时效性越高。[0007]传统LRU,FIF0算法没有充分考虑数据的历史访问信息,访问概率等信息,只是简单的将最近访问的数据缓存起来,这会导致缓存效率底下在极端情况下缓存每次访问都不会命中,LIRS算法改进了LRU和FIFO算法的缺点,但是没有充分考虑到缓存数据的信息,在实时数据中越与当前时间靠近的数据块访问的概率越大。发明内容[0008]本发明所要解决的技术问题是提供一种实时数据缓存机制,其提高了缓存的命中率。[0009]为解决上述技术问题,本发明所采用的技术方案是:[0010]一种实时数据缓存机制,其特征在于:IRR表示一个页面最近两次访问的距离,R表示上次访问到至今访问了多少其他页,T表示页面的时间因子,缓存首先将IRR较大者替换出缓存,如果IRR相等,则将R在[Rmax,Rmax-S]之间的T最大的页面替换出去,Rmax为IRR相等的页面中R最大值,Rinax_S为最大值减去S的值。[0011]进一步地,若一个页面首次访问则其IRR为无穷大,R为〇,T为Tcurr-Tmax,Tmax为数据最大时间。[0012]进一步地,所述一种实时数据缓存机制采用的数据结构由两个块单元信息数据结构集合构成,其中低块保存IRR值低的块信息,高IRR块保存高IRR块的信息。[0013]进一步地,所述IRR值低的块信息和高IRR块的信息为链表或者树。[0014]进一步地,所述两个块单元信息数据结构对应的物理缓存由两部分组成,低IRR块是局部性最高的块需要常驻内存内存,高IRR块并不是所有的块都需要常驻内存,只需缓存一部分,其块的历史信息保留为算法调度提供参考;物理缓存的长度分为低IRR块长度LIirr和高IRR块缓存长度Lhirr1的和。[0015]进一步地,所述S的值为5。[0016]本发明与现有技术相比,具有以下优点和效果:解决了一般缓存替换算法缓存污染,循环性质访问,不关注访问的概率性特征,没有考虑到实时数据的特点等问题,算法同时考虑了页面历史访问信息,最近访问频率,以及所缓存的数据的特征,有效的提高了缓存的命中率。附图说明[0017]图1是本发明的数据结构示意图。[0018]图2是本发明的实施例time9时刻状态示意图。[0019]图3是本发明的实施例timell时刻状态示意图。[0020]图4是本发明的频次排名示意图。[0021]图5是本发明的算法命中率对比示意图。具体实施方式[0022]下面通过附图并结合实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。[0023]本发明的一种实时数据缓存机制,使用IRR表示一个页面最近两次访问的距离,R表示上次访问到至今访问了多少其他页,T表示页面的时间因子页面所存数据结束时间到当前时间的长度)。若一个页面首次访问则其IRR为无穷大,R为〇,T为Tcurr-Tmax,Tmax为数据最大时间,算法使用一个页面的新近访问时间和数据时效性去量化这个页面的局部性。因为实时数据总是越靠近当前时间时效性越高越有可能最近被访问。为了将最近访问页面的历史访问信息和其缓存的数据时效性考虑进去,算法首先考虑将IRR较大者替换出缓存,如果IRR相等,则将R在[Rmax,Rmax-S]之间的T最大的页面替换出去,Rmax为IRR相等的页面中R最大值,Rmax-S为最大值减去S的值,S—般可以设置为5。[0024]如图1所示,为整个算法的使用的数据结构,由两个块元信息数据结构集合组成,低IRR块保存IRR值低的块信息,高IRR块保存高IRR块的信息,这两个信息可以是链表或者树。对应的物理缓存也由两部分组成,低IRR块是局部性最高的块需要常驻内存内存,高IRR块并不是所有的块都需要常驻内存,只需缓存一部分即可,但是其块的历史信息应该保留为算法调度提供参考。物理缓存的长度分为低IRR块长度Llirr和高IRR块缓存长度Lhirrl的和。[0025]实施例:[0026]假定共有A,B,C,D,E五块其最大时间Tmaxa=1,Tmaxb=2,Tmaxc=3,Tmaxd=4,Tmaxe=5,S二l〇[0027]如图2所示,为time9时刻状态,A最近一次访问是在time8,顾此时A的R值为1,然而士夬A在time6和timeS时刻时为倒数第二次访问和倒数第一次访问,两个时间范围内只有块D被访问,所以块A的IRR为1,块A的T=Tcurr-Tmaxa=9-1=8。块B最近一次访问是在time5时亥丨J,而time6和time8时刻访问块A,time7时刻访问D,time9时刻访问E,所以块B的R为3俩次访问A只能做一次计数),IRR的值为1time3和time5访问B,time4访问C,块B的T=Tcurr-Tmaxb=9-2=7。块C只有在time4时被访问,所以R为4,11^为无穷大,块:的1'=1':11灯-1'1^叉〇=9-3=6。块D,E是同样的道理。[0028]此时假设物理缓存大小为L=Llirr+Lhirrl,Llirr=2,Lhirrl=2,即在该纹理缓存中只能存放两个IRR值低的块,两个IRR值高的块,那么低IRR块元数据信息集合为{A,B},高IRR块元信息集合为{C,D,E},此时在C,D,E三块中由于其块D,E的R值比C低故而将会常驻内存。保留D,E而不是C是为了保留最近访问的块,这些块最可能下次被访问。A,B由于其在IRR低集合中所以A,B也常驻内存,所以在内存中的块为{A,B,D,E}。[0029]如果在timelO时间内访问C,那么我们该如何对缓存块进行淘汰,从上面的分析可以知道块C的IRR值较高,然而此时IRR较高的块有D,E常驻内存,则此时是把块D和块E中哪块替换出内存需要比较他们的各个参考值,由于E的IRR为无穷大所以直接换出E块,调入D块,在D块进入缓存后需要对两个元信息集合做跟新,以确定D该属于哪个集合。[0030]如图3所示,为time10时访问块D,然后time11时刻访问块E的状态,根据图1时的计算方法可以得出块A的R值为2,IRR值为1,T为10;块B的R值为3,IRR值为1,T为9;块C的R值为4,IRR值为无穷大,T为8;块D的R值为1,IRR值为2,T值为7;块E的R值为0,IRR值为1,T值为6。此时块A,块1±夬£的IRR值均为1,而低IRR缓存的大小为2,所以A,B,E中只有两块能在低IRR缓存中,此时只能比较R值在[Rmax-S,Rmax]即[2,3],A,B两块在比较范围内,而此时Ta=10,Tb=9,所以TaTb所以块A被移除低IRR块到高IRR块中,块E进入第IRR块中。此时低IRR块元信息集合中有{B,E},高IRR块元信息集合中有{D,B}。t〇〇31]此时我们给出一个通用的定义,一个缓存算法的优劣主要体现在查询命中率上:H=RqcacheRq,缓存命中率H为命中缓存的请求次数Rqcache和总请求次数Rq的商。则每次查询的响应时间为TRq=T_h^H+Tdb*1-H,其中Tcache为查询缓存的请求响应时间,TdbS数据库服务其他查询操作和数据传输的时间。由于Tdb远大于Tcache,因此提高查询命中率就可以大幅度提高查询响应时间。[0032]通过分析大量的实时数据库查询日志可以得出访问最频繁的数据总是在最近几个小时内产生的数据,因此在空间适当的数据库中如果查询缓存不出现大比例的缓存数据失效替换,则能保证数据库查询的效能。分析还发现查询频率最高的20%占据了80%的请求量如图4所示。查询时间局部性表现为,对于查询请求序列Q!,q2,q3,...Qn,Qi1in表示第i次查询请求,当ij时若Qi=Qj,在间隔d=|i-j|内产生的非重复查询次数为IRqi,在第n次查询时产生的非重复查询次数为Rqn,对于一个页面P则从当前时刻n开始最近两次访问的非重复查询次数为IRP,距当前时刻非重复查询次数为RP,页面时间戳为Tp。经过以上分析可以通过相关特征参数进行建模,表示某个页面的查询热值度函数:[0033]fhotp=IRP+Rp+1-Hp*Tn-Tp[0034]HP为第n时刻页面P的命中率,Tn为第n时刻的时间值。于是对于页面p其热值函数fhotp的值月大说明这个页面的局部性越差,访问的可能性越低。如图5所示为本算法的命中率和LRU算法的命中率比较,在缓存较小区间随着缓存空间的增高架缓存命中率提升很快,从图中可以看出本文提出的算法比LRU算法在最优缓存空间(查询总量2〇%下f率有显著提升。[OO35]本说明书中所描述的以上内容仅仅是对本发明所作的举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明说明书的内容或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

权利要求:1.一种实时数据缓存机制,其特征在于:IRR表示一个页面最近两次访问的距离,R表示上次访问到至今访问了多少其他页,T表示页面的时间因子,缓存首先将IRR较大者替换出缓存,如果IRR相等,则将R在[Rmax,Rmax-S]之间的T最大的页面替换出去,Rmax为IRR相等的页面中R最大值,Rmax-S为最大值减去S的值。2.按照权利要求1所述的一种实时数据缓存机制,其特征在于:若一个页面首次访问则其IRR为无穷大,R为〇,T为Tcurr-Tmax,Tmax为数据最大时间。3.按照权利要求1所述的一种实时数据缓存机制,其特征在于:所述一种实时数据缓存机制采用的数据结构由两个块单元信息数据结构集合构成,其中低IRR块保存IRR值低的块信息,高IRR块保存高IRR块的信息。4.按照权利要求3所述的一种实时数据缓存机制,其特征在于:所述IRR值低的块信息和高IRR块的信息为链表或者树。5.按照权利要求3所述的一种实时数据缓存机制,其特征在于:所述两个块单元信息数据结构对应的物理缓存由两部分组成,低IRR块是局部性最高的块需要常驻内存内存,高IRR块并不是所有的块都需要常驻内存,只需缓存一部分,其块的历史信息保留为算法调度提供参考;物理缓存的长度分为低IRR块长度Llirr和高IRR块缓存长度Lhirrl的和。6.按照权利要求1所述的一种实时数据缓存机制,其特征在于:所述S的值为5。

百度查询: 朗坤智慧科技股份有限公司 一种实时数据缓存机制

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。