CN106909518A - 一种实时数据缓存机制 - Google Patents

一种实时数据缓存机制 Download PDF

Info

Publication number
CN106909518A
CN106909518A CN201710055582.7A CN201710055582A CN106909518A CN 106909518 A CN106909518 A CN 106909518A CN 201710055582 A CN201710055582 A CN 201710055582A CN 106909518 A CN106909518 A CN 106909518A
Authority
CN
China
Prior art keywords
irr
block
real time
time data
rmax
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.)
Granted
Application number
CN201710055582.7A
Other languages
English (en)
Other versions
CN106909518B (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.)
Longkon Wisdom Polytron Technologies Inc
Original Assignee
Longkon Wisdom Polytron Technologies Inc
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 Longkon Wisdom Polytron Technologies Inc filed Critical Longkon Wisdom Polytron Technologies Inc
Priority to CN201710055582.7A priority Critical patent/CN106909518B/zh
Publication of CN106909518A publication Critical patent/CN106909518A/zh
Application granted granted Critical
Publication of CN106909518B publication Critical patent/CN106909518B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

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

Claims (6)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710055582.7A CN106909518B (zh) 2017-01-24 2017-01-24 一种实时数据缓存机制

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710055582.7A CN106909518B (zh) 2017-01-24 2017-01-24 一种实时数据缓存机制

Publications (2)

Publication Number Publication Date
CN106909518A true CN106909518A (zh) 2017-06-30
CN106909518B CN106909518B (zh) 2020-06-26

Family

ID=59207480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710055582.7A Active CN106909518B (zh) 2017-01-24 2017-01-24 一种实时数据缓存机制

Country Status (1)

Country Link
CN (1) CN106909518B (zh)

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148465A1 (en) * 2003-01-29 2004-07-29 Sudarshan Kadambi Method and apparatus for reducing the effects of hot spots in cache memories
CN1604054A (zh) * 2003-09-29 2005-04-06 刘志明 层次化视频点播中的磁盘缓存替换算法
WO2007065105A3 (en) * 2005-11-30 2008-08-21 Red Hat Inc Method for tracking of non-resident pages
US7484117B1 (en) * 2005-08-19 2009-01-27 Network Appliance, Inc. Method and apparatus for detecting and remedying excessive loop initialization
CN102184236A (zh) * 2011-05-16 2011-09-14 复旦大学 一种空间数据库中基于距离的自适应页面替换方法
CN102314397A (zh) * 2011-09-23 2012-01-11 浙江大学 缓存数据块的处理方法
WO2012030900A1 (en) * 2010-08-31 2012-03-08 Oracle International Corporation Method and system for removing cache blocks
US20120089784A1 (en) * 2010-10-12 2012-04-12 Red Hat, Inc. Lock Amortization In A Data Counter
US20120159086A1 (en) * 2010-12-16 2012-06-21 International Business Machines Corporation Cache Management
CN103106153A (zh) * 2013-02-20 2013-05-15 哈尔滨工业大学 基于访问密度的web缓存替换方法
CN104111900A (zh) * 2013-04-22 2014-10-22 中国移动通信集团公司 一种缓存中数据替换方法及装置
CN104572502A (zh) * 2015-01-12 2015-04-29 浪潮电子信息产业股份有限公司 一种存储系统缓存策略自适应方法
CN104571954A (zh) * 2014-12-26 2015-04-29 杭州华为数字技术有限公司 一种数据存储方法及装置
CN104866433A (zh) * 2015-05-31 2015-08-26 上海交通大学 基于历史信息的多级缓存方法
CN105045894A (zh) * 2015-07-31 2015-11-11 中国科学院计算技术研究所 一种面向分布式顺序表的缓存方法及系统
CN106155936A (zh) * 2015-04-01 2016-11-23 华为技术有限公司 一种缓存替换方法与相关装置
CN106227679A (zh) * 2016-07-25 2016-12-14 北京邮电大学 一种数据缓存替换方法及装置
CN106294216A (zh) * 2016-08-11 2017-01-04 电子科技大学 一种用于风电系统的缓存替换方法
CN106294375A (zh) * 2015-05-15 2017-01-04 阿里巴巴集团控股有限公司 一种数据请求实时处理方法和装置

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148465A1 (en) * 2003-01-29 2004-07-29 Sudarshan Kadambi Method and apparatus for reducing the effects of hot spots in cache memories
CN1604054A (zh) * 2003-09-29 2005-04-06 刘志明 层次化视频点播中的磁盘缓存替换算法
US7484117B1 (en) * 2005-08-19 2009-01-27 Network Appliance, Inc. Method and apparatus for detecting and remedying excessive loop initialization
WO2007065105A3 (en) * 2005-11-30 2008-08-21 Red Hat Inc Method for tracking of non-resident pages
WO2012030900A1 (en) * 2010-08-31 2012-03-08 Oracle International Corporation Method and system for removing cache blocks
US20120089784A1 (en) * 2010-10-12 2012-04-12 Red Hat, Inc. Lock Amortization In A Data Counter
US20120159086A1 (en) * 2010-12-16 2012-06-21 International Business Machines Corporation Cache Management
CN102184236B (zh) * 2011-05-16 2013-06-12 复旦大学 一种空间数据库中基于距离的自适应页面替换方法
CN102184236A (zh) * 2011-05-16 2011-09-14 复旦大学 一种空间数据库中基于距离的自适应页面替换方法
CN102314397A (zh) * 2011-09-23 2012-01-11 浙江大学 缓存数据块的处理方法
CN103106153A (zh) * 2013-02-20 2013-05-15 哈尔滨工业大学 基于访问密度的web缓存替换方法
CN104111900A (zh) * 2013-04-22 2014-10-22 中国移动通信集团公司 一种缓存中数据替换方法及装置
CN104571954A (zh) * 2014-12-26 2015-04-29 杭州华为数字技术有限公司 一种数据存储方法及装置
CN104572502A (zh) * 2015-01-12 2015-04-29 浪潮电子信息产业股份有限公司 一种存储系统缓存策略自适应方法
CN106155936A (zh) * 2015-04-01 2016-11-23 华为技术有限公司 一种缓存替换方法与相关装置
CN106294375A (zh) * 2015-05-15 2017-01-04 阿里巴巴集团控股有限公司 一种数据请求实时处理方法和装置
CN104866433A (zh) * 2015-05-31 2015-08-26 上海交通大学 基于历史信息的多级缓存方法
CN105045894A (zh) * 2015-07-31 2015-11-11 中国科学院计算技术研究所 一种面向分布式顺序表的缓存方法及系统
CN106227679A (zh) * 2016-07-25 2016-12-14 北京邮电大学 一种数据缓存替换方法及装置
CN106294216A (zh) * 2016-08-11 2017-01-04 电子科技大学 一种用于风电系统的缓存替换方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SONG JIANG等: "LIRS: an efficient low inter-reference recency set replacement policy to improve buffer cache performance", 《JUNE 2002 SIGMETRICS "02: PROCEEDINGS OF THE 2002 ACM SIGMETRICS INTERNATIONAL CONFERENCE ON MEASUREMENT AND MODELING OF COMPUTER SYSTEMS》 *
SONG JIANG等: "Making LRU Friendly to Weak LocalityWorkloads:A Novel Replacement Algorithm to Improve Buffer Cache Performance", 《IEEE TRANSACTIONS ON COMPUTERS》 *

Also Published As

Publication number Publication date
CN106909518B (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN103885728B (zh) 一种基于固态盘的磁盘缓存系统
CN108806773B (zh) 医学影像云存储平台设计方法
CN104361113B (zh) 一种内存‑闪存混合存储模式下的olap查询优化方法
CN103324724B (zh) 数据处理方法及装置
CN106599199A (zh) 一种数据缓存与同步方法
US20080052488A1 (en) Method for a Hash Table Lookup and Processor Cache
CN104077405B (zh) 时序类型数据存取方法
DE102016225545A1 (de) Profilierungs-cache-ersatz
CN107066393A (zh) 提高地址映射表中映射信息密度的方法
CN107273522A (zh) 面向多应用的数据存储系统和数据调用方法
CN106547476A (zh) 用于数据存储系统的方法和装置
US20080098169A1 (en) Cost based analysis of direct I/O access
CN106603646B (zh) 一种基于用户兴趣偏好的信息中心网络缓存方法
CN101692229A (zh) 基于数据内容的三维空间数据自适应多级缓存系统
CN110413199A (zh) 管理存储系统的方法、设备和计算机程序产品
CN104572502B (zh) 一种存储系统缓存策略自适应方法
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
CN104111898A (zh) 基于多维数据相似性的混合存储系统及数据管理方法
Hoque et al. Disk layout techniques for online social network data
CN109542803A (zh) 一种基于深度学习的混合多模式热数据缓存策略
Tang et al. ACR: an adaptive cost-aware buffer replacement algorithm for flash storage devices
CN106909518A (zh) 一种实时数据缓存机制
CN105045894A (zh) 一种面向分布式顺序表的缓存方法及系统
KR20160121819A (ko) 이종 메모리 기반 데이터 관리 장치
CN106708750A (zh) 存储系统的缓存预读方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: Floor 31, Asia Pacific business building, No. 2 Hanzhong Road, Gulou District, Nanjing, Jiangsu 210005

Patentee after: LUCULENT SMART TECHNOLOGIES CO.,LTD.

Address before: Room a808, World Trade Center building, 67 Gulou Shanxi Road, Nanjing, Jiangsu 210000

Patentee before: LUCULENT SMART TECHNOLOGIES CO.,LTD.