CN103838680B - 一种数据缓存方法和装置 - Google Patents
一种数据缓存方法和装置 Download PDFInfo
- Publication number
- CN103838680B CN103838680B CN201210484238.7A CN201210484238A CN103838680B CN 103838680 B CN103838680 B CN 103838680B CN 201210484238 A CN201210484238 A CN 201210484238A CN 103838680 B CN103838680 B CN 103838680B
- Authority
- CN
- China
- Prior art keywords
- data
- access
- type
- proportion
- dial
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据缓存方法,所述方法包括:将当前待访问的数据划分为各种类型的访问数据,通过分别获得各种类型的所述访问数据的比重,在所述访问数据的比重大于预设比重的情况下,将该比重对应的访问数据进行缓存。本申请提出的技术方案可以实现对待访问的数据分类缓存。进一步在进行缓存时,将比重大于预设比重的访问数据缓存,从而在内存的缓存空间远远小于访问数据的总量时,可以优先缓存比重高于其他比重的某种类型的访问数据,在电子设备的内存的缓存空间较小的前提下,提高缓存数据的命中率,并且可以节约成本。
Description
技术领域
本申请涉及计算机领域,特别涉及一种数据缓存方法和装置。
背景技术
数据缓存技术是把数据临时存储在内存中的一种技术。电子设备采用数据缓存技术,将数据存储在缓存中。当设备使用数据时可以直接从内存中获取数据,从而可以减少设备从外部存储器中获取数据带来的网络和磁盘的双重代价。
但是缓存数据的内存容量有限,对于快速增长的数据量来说无法保证数据量缓存至内存中。因此为了提高缓存数据的命中率,电子设备采用两种技术方案:一是增加缓存的容量;二是选取缓存替换算法。其中缓存数据的命中率是指正确缓存当前访问数据的准确率。
虽然上述两种技术方案可以提高缓存数据的命中率,但是电子设备目前在缓存数据至内存时,随意将数据缓存至内存中直至内存的缓存空间不足。
发明内容
本申请所要解决的技术问题是提供一种数据缓存方法,用以解决现有技术中随意将数据缓存至内存中直至内存的缓存空间不足的问题,更进一步的,还可以提高缓存数据的命中率,并且可以节约成本。
本申请还提供了一种数据缓存装置,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种数据缓存方法,包括:
将当前待访问的数据划分为各种类型的访问数据;
建立各个访问阶段与各种类型的所述访问数据之间的对应关系;
分别获得每种类型的所述访问数据的比重,其中所述访问数据的比重为每种类型的访问数据在所有类型访问数据所占比例;
在所述访问数据的比重大于预设比重的情况下,将该比重对应的类型的访问数据进行缓存。
进一步,所述将当前待访问的数据划分为各种类型的访问数据包括:在访问数据位于关系数据库的情况下,将所述关系数据库中各个逻辑表分别划分为一类访问数据。
进一步,所述建立各个访问阶段与各种类型的所述访问数据之间的对应关系包括:将各个访问阶段与各种类型的所述访问数据之间的对应关系用矩阵R表示,其中矩阵R的行索引表示访问数据类型,列索引表示访问阶段。
进一步,获得每种类型的所述访问数据的比重包括:
获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量,其中所述不同访问阶段为从初始阶段经过n步所达到的访问阶段,n是初始访问阶段转移到第j个访问阶段的步数;
获取所有访问阶段对每种类型的访问数据的第二访问需求总量;
获取所有访问阶段对所有类型的访问数据的第三访问需求总量;
计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
进一步,所述获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量包括:
依据公式获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量;
其中,Rij表示第j个访问阶段对第i类数据的访问量;表示从初始访问阶段经过n步到第j个访问阶段的转移概率。
进一步,所述获取所有访问阶段对每种类型的访问数据的第二访问需求总量包括:依据公式获取所有访问阶段对每种类型的访问数据的第二访问需求总量,其中,表示不同步数下对第i类数据的第一访问需求总量。
进一步,所述获取所有访问阶段对所有类型的访问数据的第三访问需求总量包括:依据公式获取所有访问阶段对所有类型的访问数据的第三访问需求总量。
进一步,所述计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例包括:依据公式计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
进一步,所述数据缓存方法还包括:获取各种类型的所述访问数据的各种数据元素的访问概率;
在各种数据元素的访问概率的差值在预设差值范围内的情况下,选择先进先出FIFO替换算法或者随机替换算法;
在各种数据元素的访问概率的差值不在预设差值范围内的情况下,选择最近最少使用LRU替换算法。
进一步,所述获取各种类型的所述访问数据的各种数据元素的访问概率包括:根据公式获取各种类型的所述访问数据的各种数据元素的访问概率,其中Cni(n=0,1,2,…)表示第i类的访问数据的第n种数据元素被访问的次数。
进一步,上述缓存方法还包括:根据每种类型的所述访问数据的比重,为不同类型的访问数据分配匹配的缓存空间。
本申请公开了一种数据缓存装置,包括:
划分模块,用于将当前待访问的数据划分为各种类型的访问数据;
关系建立模块,用于建立各个访问阶段与各种类型的所述访问数据之间的对应关系;
比重获得模块,用于分别获得每种类型的所述访问数据的比重,其中所述访问数据的比重为每种类型的访问数据在所有类型访问数据所占比例;
数据缓存模块,用于在所述访问数据的比重大于预设比重的情况下,将该比重对应的类型的访问数据进行缓存。
进一步,所述划分模块具体用于将关系数据库中各个逻辑表分别划分为一类访问数据。
进一步,所述比重获得模块包括:
第一计算单元,用于获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量,其中所述不同访问阶段为从初始阶段经过n步所达到的访问阶段,n是初始访问阶段转移到第j个访问阶段的步数;
第二计算单元,用于获取所有访问阶段对每种类型的访问数据的第二访问需求总量;
第三计算单元,用于获取所有访问阶段对所有类型的访问数据的第三访问需求总量;
第四计算单元,用于计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
进一步,所述第一计算单元包括:依据公式获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量,其中,Rij表示第j个访问阶段对第i类数据的访问量;表示从初始访问阶段经过n步到第j个访问阶段的转移概率。
进一步,所述第二计算单元包括:依据公式获取所有访问阶段对每种类型的访问数据的第二访问需求总量,其中,表示不同步数下对第i类数据的第一访问需求总量。
进一步,所述第三计算单元包括:依据公式获取所有访问阶段对所有类型的访问数据的第三访问需求总量。
进一步,所述第四计算单元包括:依据公式计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
进一步,所述数据缓存装置还包括:
概率获取模块,用于获取各种类型的所述访问数据的各种数据元素的访问概率;
第一选择模块,用于在各种数据元素的访问概率的差值在预设差值范围内的情况下,选择先进先出FIFO替换算法或者随机替换算法;
第二选择模块,用于在各种数据元素的访问概率的差值不在预设差值范围内的情况下,选择最近最少使用LRU替换算法。
进一步,所述概率获取模块具体用于根据公式获取各种类型的所述访问数据的各种数据元素的访问概率,其中Cni(n=0,1,2,…)表示第i类的访问数据的第n种数据元素被访问的次数。
进一步,所述数据缓存装置还包括:分配模块,用于根据每种类型的所述访问数据的比重,为不同类型的访问数据分配匹配的缓存空间。
与现有技术相比,本申请包括以下优点:
在本申请中,首先将当前待访问的数据划分为各种类型的访问数据,通过分别获得各种类型的所述访问数据的比重,在所述访问数据的比重大于预设比重的情况下,将该比重对应的访问数据进行缓存。相对于现有技术来说,上述技术方案可以实现对待访问的数据分类缓存。进一步在进行缓存时,将比重大于预设比重的访问数据缓存,从而在内存的缓存空间远远小于访问数据的总量时,可以优先缓存比重高于其他比重的某种类型的访问数据,在电子设备的内存的缓存空间较小的前提下,提高缓存数据的命中率,并且可以节约成本。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请中数据缓存方法的一个实施例的流程图;
图2是本申请中数据缓存方法中获得各种类型的所述访问数据的比重的流程图;
图3是本申请中一个阶段转移示意图;
图4是本申请中数据缓存方法的另一个实施例的流程图;
图5是本申请中数据缓存方法的又一个实施例的流程图;
图6是本申请中数据缓存装置的一种结构框图;
图7是本申请中比重获得模块的一种结构框图;
图8是本申请中数据缓存装置的另一种结构框图;
图9是本申请中数据缓存装置的又一种结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提出了一种数据缓存的方法,该方法包括:将当前待访问的数据划分为各种类型的访问数据,建立各个访问阶段与各种类型的所述访问数据之间的对应关系,分别获得每种类型的所述访问数据在所有类型访问数据所占比例,在所述访问数据的比重大于预设比重的情况下,将该比重对应的类型的访问数据进行缓存。
下面将结合具体的实施例对本申请的数据缓存方法进行详细的说明。
一个实施例
请参阅图1,其示出了本申请提出的数据缓存方法的一个流程图,包括以下步骤:
步骤101:将当前待访问的数据划分为各种类型的访问数据。
电子设备在执行某个应用程序时,该应用程序会访问不同类型的访问数据,因此在执行应用程序之前,需要将当前待访问的数据按照数据的类型划分为不同类型的访问数据,因此电子设备可以将应用程序访问的数据中的同一种类型的访问数据划分在一起。
在本实施例中,访问数据的划分在数据类型不同时划分也不同。例如:应用程序在访问关系数据库中的访问数据时,可以将各个逻辑表分别划分为一类访问数据,即一个逻辑表为一种类型的访问数据。在本实施例中访问数据可以用集合形式表示,如{Dn,n=0,1,2,...},其中Dn为第n种类型的访问数据。
步骤102:建立各个访问阶段与各种类型的所述访问数据之间的对应关系。
电子设备中执行的应用程序在执行过程中具有不同的访问阶段,如开启阶段、初始化阶段和数据检测阶段等访问阶段。在本实施例中,将访问阶段也采用集合形式表示,如{Sn,n=0,1,2,…},其中Sn为第n个访问阶段,应用程序在不同访问阶段下对各种类型的所述访问数据需求不同。
在本实施例中,电子设备通过一个二维矩阵R表示应用程序的各个访问阶段和各种类型的所述访问数据之间的关系,矩阵的行索引表示访问数据类型,矩阵的列索引表示访问阶段。
例如:矩阵在该矩阵中单个元素Rij表示访问阶段Sj对类型为Di的所述访问数据的访问量,如访问阶段S0对数据D0、D1和D2的访问需求量是2、3和0。
步骤103:分别获得各种类型的所述访问数据的比重,其中所述访问数据的比重为每种类型的访问数据在所有类型访问数据所占比例。
对于任意一种类型的访问数据,在获得该种类型的访问数据的比重时需要获得所有访问阶段对访问数据的访问需求总量,进而与所有访问阶段对所有类型的访问数据进行计算,得出该种类型的访问数据的比重。具体过程请参阅图2所示,其示出了获得比重的详细过程,可以包括以下步骤:
S1:获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量。其中所述不同访问阶段为从初始阶段经过n步所达到的访问阶段,n是初始访问阶段转移到第n个访问阶段的步数。
应用程序在执行过程中,从初始访问阶段到不同访问阶段需要经过不同步数,如图3所示,其以一个应用程序为例,该应用程序的不同访问阶段的转移可以使用马尔可夫链来描述。其中在图3中箭头表示阶段转移过程,且一个箭头表示一个步数,详细描述出初始阶段到不同访问阶段经过的步数,并且在箭头上标注了上一个访问阶段转移到下一个访问阶段的转移概率。因此,在执行步骤S1时,可以结合图3所示的阶段转移示意图得出不同访问阶段对每种类型的访问数据的第一访问需求总量。
在本实施例中,步骤S1可以依据公式获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量,其中,Rij表示第j个访问阶段对第i类数据的访问量;表示从初始访问阶段经过n步到第j个访问阶段的转移概率。
需要说明的是:应用程序每一次阶段变化都意味着内部的属性和数据等的变化,还意味着时间维度的一次推进,因此可以抽象成某种随机过程;应用程序下一访问阶段的运行完全可以由当前访问阶段决定,这是符合马尔可夫链的核心约束的;在当前访问阶段已知的情况下,应用程序的历史访问阶段也可以确定,这符合统计学中马尔可夫链的条件概率的约束。因此所有应用程序的不同访问阶段的转移可以使用马尔可夫链来描述,并且转移概率可以利用C-K方程计算。以图3为例,P2 03=P1 01*P1 13。
结合图3所示的阶段转移示意图,可以得出步骤S1的执行结果。在图3中从访问阶段S0转移到访问阶段S10的最大步数为5,其不同步数执行结果如下:
n=1时:Ri 1=P1 01Ri1+P1 02Ri2。
n=2时:Ri 2=P2 03Ri3+P2 04Ri4+P2 05Ri5。
n=3时:Ri 3=P3 06Ri6+P3 07Ri7+P3 09Ri9。
n=4时:Ri 4=P4 08Ri8+P4 09Ri9+P4 010Ri10。
n=5时:Ri 5=P5 010Ri10。
S2:获取所有访问阶段对每种类型的访问数据的第二访问需求总量。
在本实施例中,步骤S2可以依据公式获取所有访问阶段对每种类型的访问数据的第二访问需求总量,其中,表示不同步数下对第i类数据的第一访问需求总量。在执行步骤S2时,可以结合图3所示的阶段转移示意图得出所有访问阶段对每种类型的访问数据的第二访问需求总量,其中第二访问需求总量的个数与访问数据类型的个数相同。
根据上述步骤S1的计算结果,并结合图3所示的阶段转移示意图,从访问阶段S0转移到访问阶段S10的最大步数为5,所以步骤S2的执行结果如下:TotalRi=R1 i+R2 i+R3 i+R4 i+R5 i。
其中,在上述公式中有:Ri 1=P1 01Ri1+P1 02Ri2,Ri 2=P2 03Ri3+P2 04Ri4+P2 05Ri5;Ri 3=P3 06Ri6+P3 07Ri7+P3 09Ri9;Ri 4=P4 08Ri8+P4 09Ri9+P4 010Ri10;Ri 5=P5 010Ri10。
根据上述计算公式和算法,可以分别得出所有访问阶段对每种类型的访问数据的第二访问需求总量。
S3:获取所有访问阶段对所有类型的访问数据的第三访问需求总量;在本实施例中,步骤S3可以依据公式获取所有访问阶段对所有类型的访问数据的第三访问需求总量。在执行步骤S3时,可以结合图3所示的阶段转移示意图得出所有访问阶段对所有类型的访问数据的第三访问需求总量。
根据上述步骤S2的计算结果,并结合图3所示的阶段转移示意图,从访问阶段S0转移到访问阶段S10的最大步数为5,所以步骤S3的执行结果如下:
其中,公式中
根据上述计算公式和算法,可以得出所有访问阶段对所有类型的访问数据的第三访问需求总量,可见第三访问需求总量为所有访问阶段对不同类型的第二访问需求总量的加和。
S4:计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
在本实施例中,步骤S4可以依据公式
计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。在执行步骤S3时,可以结合图3所示的阶段转移示意图得出每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例。
根据以上步骤的计算结果,并结合图3所示的阶段转移示意图,从访问阶段S0转移到访问阶段S10的最大步数为5,所以步骤S4的执行结果如下:
根据上述公式,可以分别得出每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
步骤104:在所述访问数据的比重大于预设比重的情况下,将该比重对应的访问数据进行缓存。
根据上述步骤获得的每种类型的所述访问数据的比重,进而可以确定所要缓存访问数据的类型,其中所述访问数据的比重为每种类型的访问数据在所有类型访问数据所占比例。在缓存前,电子设备将每种类型的访问数据的比重与预设比重进行比较,在所述访问数据的比重大于预设比重的情况下将该类型的访问数据进行缓存,而对于访问数据所占的比重小于预设比重的时候不缓存该类型的访问数据。
其中,预设比重是统计不同应用程序对各种访问数据的访问次数得出,该预设比重可以依据电子设备的内存容量大小设置,即不同容量的内存,电子设备的预设比重不同。
访问数据缓存到内存后,电子设备后续执行不同应用程序的各个访问阶段时,若访问阶段需要访问的访问数据经过本申请提供的数据缓存方法已经被缓存至内存中,则该访问阶段可以直接访问内存中缓存的访问数据,提高数据访问效率。
应用上述技术方案,通过将待访问的数据划分为各种类型的数据,建立各个访问阶段与各种类型的访问数据之间的对应关系,分别获得每种类型的所述访问数据的比重,根据每种类型的访问数据所占的比重,确定将那些类型的访问数据进行缓存,在内存的缓存空间远远小于访问数据的总量时,通过一定的计算获得在应用程序的整个过程中所占比重较大的数据进行缓存,可以优先缓存比重高于其他比重的某种类型的访问数据,在电子设备的内存的缓存空间较小的前提下,提高缓存数据的命中率,并且可以节约成本。
另一个实施例
本实施例在图1所示的数据缓存方法的基础上,还可以进行缓存替换算法的选择,如图4所示,其中图4是本申请提出的数据缓存方法的另一种流程图,在图1的基础上,还包括:
步骤105:获取各种类型的所述访问数据的各种数据元素的访问概率。
访问概率获取的具体过程可以为:依据公式获取各种类型的所述访问数据的各种数据元素的访问概率,其中,Cni(n=0,1,2,…)表示第i类的访问数据的第n种数据元素被访问的次数。
步骤106:根据上述各种类型的所述访问数据的各种数据元素的访问概率,选择缓存替换算法。
在本实施例中,缓存替换算法选取的一种可行方式可以为:首先将各种数据元素的访问概率进行比较,得出访问概率的差值。其次,判断访问概率的差值是否在预设差值范围内,在各种数据元素的访问概率的差值在预设差值范围内的情况下,选择先进先出FIFO替换算法或者随机替换算法。
在各种数据元素的访问概率的差值不在预设差值范围内的情况下,选择最近最少使用LRU替换算法。
需要说明的是:访问概率可以直观表明每种访问数据中不同种类数据元素被访问概率,从而得出一种类型访问数据被访问的均衡程度,即一种类型访问数据中不同种类数据元素被访问次数之间的差异。因此在判断访问概率的差值是否在预设差值范围内可以为判断同一种类型的访问数据的不同种类数据元素的访问概率的差值是否在预设差值范围内,在同一种类型的访问数据的不同种类数据元素的所有访问概率的差值在预设差值范围内的情况下,表明该种类型的访问数据的所有种类数据元素的被访问次数大致相同,进而选择FIFO替换算法或者随机替换算法,否则表明该种类型的访问数据的所有种类数据元素的被访问次数存在很大差异,进而选择LRU替换算法。
综上,本实施例在提高缓存数据的命中率和节约成本的同时,还可以根据访问概率判断数据元素被访问的均衡程度,进而选择与均衡程度对应的缓存替换算法进行数据缓存替换,进一步提高缓存数据的命中率。
在上述所有实施例中,还可以根据每种类型的所述访问数据的比重,不同类型的访问数据分配匹配的缓存空间,如图5所示,其中图5是本申请提出的数据缓存方法的再一种流程图,在图1的基础上还包括:
步骤107:根据每种类型的所述访问数据的比重,为不同类型的访问数据分配匹配的缓存空间。
电子设备中用于缓存数据的内存空间都是有限的,而且相对与快速增长的数据量来说更是有限,从访问数据的比重可以得出访问数据在所有类型访问数据中的比例,因此可以根据每种类型的所述访问数据的比重,为不同类型的访问数据分配匹配的缓存空间,进而可以使缓存空间得到合理利用,避免缓存资源浪费,使缓存资源得到了充分的利用,并有效节约了成本。
与上述方法实施例相对应,本申请还提出了一种数据缓存装置,请参阅图6所示,所述数据缓存装置包括:划分模块601、关系建立模块602、比重获得模块603、数据缓存模块604;其中:
划分模块601,用于将当前待访问的数据划分为各种类型的访问数据。
在本实施例中,访问数据的划分在数据类型不同时划分也不同。例如:应用程序在访问关系数据库中的访问数据时,可以将各个逻辑表分别划分为一类访问数据,即一个逻辑表为一种类型的访问数据。在本实施例中访问数据可以用集合形式表示,如{Dn,n=0,1,2,...},其中Dn为第n种类型的访问数据。
关系建立模块602,用于建立各个访问阶段与各种类型的所述访问数据之间的对应关系。
在本实施例中,将访问阶段也采用集合形式表示,如{Sn,n=0,1,2,...},其中Sn为第n个访问阶段,应用程序在不同访问阶段下对各种类型的所述访问数据需求不同。
在本实施例中,电子设备通过一个二维矩阵R表示应用程序的各个访问阶段和各种类型的所述访问数据之间的关系,矩阵的行索引表示访问数据类型,矩阵的列索引表示访问阶段。
例如:矩阵在该矩阵中单个元素Rij表示访问阶段Sj对类型为Di的所述访问数据的访问量,如访问阶段S0对数据D0、D1和D2的访问需求量是2、3和0。
比重获得模块603,用于分别获得每种类型的所述访问数据的比重,其中所述访问数据的比重为每种类型的访问数据在所有类型访问数据所占比例。
对于任意一种类型的访问数据,在获得该种类型的访问数据的比重时需要获得所有访问阶段对访问数据的访问需求总量,进而与所有访问阶段对所有类型的访问数据进行计算,得出该种类型的访问数据的比重。请参阅图7所示,其示出了本申请提供的数据缓存装置中比重获得模块的一种结构示意图,比重获得模块包括:第一计算单元701、第二计算单元702、第三计算单元703和第四计算单元704,其中:
第一计算单元701,用于获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量,其中所述不同访问阶段为从初始阶段经过n步所达到的访问阶段,n是初始访问阶段转移到第j个访问阶段的步数。
在本实施例中,第一计算单元701可以依据公式获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量,其中,Rij表示第j个访问阶段对第i类数据的访问量;表示从初始访问阶段经过n步到第j个访问阶段的转移概率。
第二计算单元702,用于获取所有访问阶段对每种类型的访问数据的第二访问需求总量。
在本实施例中,第二计算单元702可以依据公式获取所有访问阶段对每种类型的访问数据的第二访问需求总量,其中,表示不同步数下对第i类数据的第一访问需求总量,其中第二访问需求总量的个数与访问数据类型的个数相同。
第三计算单元703,用于获取所有访问阶段对所有类型的访问数据的第三访问需求总量。
在本实施例中,第三计算单元703可以依据公式获取所有访问阶段对所有类型的访问数据的第三访问需求总量,可见第三访问需求总量为所有访问阶段对不同类型的第二访问需求总量的加和。
第四计算单元704,用于计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
在本实施例中,第四计算单元704可以依据公式
计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
数据缓存模块604,用于在所述访问数据的比重大于预设比重的情况下,将该比重对应的类型的访问数据进行缓存。
根据上述模块获得的每种类型的所述访问数据的比重,进而可以确定所要缓存访问数据的类型,其中所述访问数据的比重为每种类型的访问数据在所有类型访问数据所占比例。在缓存前,电子设备将每种类型的访问数据的比重与预设比重进行比较,在所述访问数据的比重大于预设比重的情况下将该类型的访问数据进行缓存,而对于访问数据所占的比重小于预设比重的时候不缓存该类型的访问数据。
其中,预设比重是统计不同应用程序对各种访问数据的访问次数得出,该预设比重可以依据电子设备的内存容量大小设置,即不同容量的内存,电子设备的预设比重不同。
访问数据缓存到内存后,电子设备后续执行不同应用程序的各个访问阶段时,若访问阶段需要访问的访问数据经过本申请提供的数据缓存方法已经被缓存至内存中,则该访问阶段可以直接访问内存中缓存的访问数据,提高数据访问效率。
请参阅图8,其示出了本申请中数据缓存装置的另一种结构示意图,本申请提出的数据缓存装置在图6的数据缓存装置基础之上,还包括:概率获取模块605、第一选择模块606和第二选择模块607,其中,
概率获取模块605,用于获取各种类型的所述访问数据的各种数据元素的访问概率。
概率获取模块605具体用于依据公式获取各种类型的所述访问数据的各种数据元素的访问概率,其中,Cni(n=0,1,2,...)表示第i类的访问数据的第n种数据元素被访问的次数。
第一选择模块606,用于在各种数据元素的访问概率的差值在预设差值范围内的情况下,选择先进先出FIFO替换算法或者随机替换算法。
第二选择模块607,用于在各种数据元素的访问概率的差值不在预设差值范围内的情况下,选择最近最少使用LRU替换算法。
需要说明的是:访问概率可以直观表明每种访问数据中不同种类数据元素被访问概率,从而得出一种类型访问数据被访问的均衡程度,即一种类型访问数据中不同种类数据元素被访问次数之间的差异。因此在判断访问概率的差值是否在预设差值范围内可以为判断同一种类型的访问数据的不同种类数据元素的访问概率的差值是否在预设差值范围内,在同一种类型的访问数据的不同种类数据元素的所有访问概率的差值在预设差值范围内的情况下,表明该种类型的访问数据的所有种类数据元素的被访问次数大致相同,进而选择FIFO替换算法或者随机替换算法,否则表明该种类型的访问数据的所有种类数据元素的被访问次数存在很大差异,进而选择LRU替换算法。
请参阅图9,其示出了本申请中数据缓存装置的又一种结构示意图,本申请提出的数据缓存装置在图6的数据缓存装置基础之上,还包括:分配模块608,用于根据每种类型的所述访问数据的比重,为不同类型的访问数据分配匹配的缓存空间。
从访问数据的比重可以得出访问数据在所有类型访问数据中的比例,因此可以根据每种类型的所述访问数据的比重,为不同类型的访问数据分配匹配的缓存空间,进而可以使缓存空间得到合理利用,避免缓存资源浪费,使缓存资源得到了充分的利用,并有效节约了成本。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种数据缓存方法、装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (19)
1.一种数据缓存方法,其特征在于,包括以下步骤:
将当前待访问的数据划分为各种类型的访问数据;
建立各个访问阶段与各种类型的所述访问数据之间的对应关系;
分别获得每种类型的所述访问数据的比重,其中所述访问数据的比重为每种类型的访问数据在所有类型访问数据所占比例;
在所述访问数据的比重大于预设比重的情况下,将该比重对应的类型的访问数据进行缓存;
其中,所述获得每种类型的所述访问数据的比重的过程包括:
获取不同访问阶段对每种类型的访问数据的第一访问需求总量,其中所述不同访问阶段为从初始阶段经过n步所达到的访问阶段,n是初始访问阶段转移到第j个访问阶段的步数;
获取所有访问阶段对每种类型的访问数据的第二访问需求总量;
获取所有访问阶段对所有类型的访问数据的第三访问需求总量;
计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
2.根据权利要求1所述的数据缓存方法,其特征在于,所述将当前待访问的数据划分为各种类型的访问数据包括:在访问数据位于关系数据库的情况下,将所述关系数据库中各个逻辑表分别划分为一类访问数据。
3.根据权利要求1所述的数据缓存方法,其特征在于,所述建立各个访问阶段与各种类型的所述访问数据之间的对应关系包括:将各个访问阶段与各种类型的所述访问数据之间的对应关系用矩阵R表示,其中矩阵R的行索引表示访问数据类型,列索引表示访问阶段。
4.根据权利要求1所述的数据缓存方法,其特征在于,所述获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量包括:
依据公式获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量;
其中,Rij表示第j个访问阶段对第i类数据的访问量;表示从初始访问阶段经过n步到第j个访问阶段的转移概率。
5.根据权利要求4所述的数据缓存方法,其特征在于,所述获取所有访问阶段对每种类型的访问数据的第二访问需求总量包括:依据公式获取所有访问阶段对每种类型的访问数据的第二访问需求总量,其中,表示不同步数下对第i类数据的第一访问需求总量。
6.根据权利要求5所述的数据缓存方法,其特征在于,所述获取所有访问阶段对所有类型的访问数据的第三访问需求总量包括:依据公式获取所有访问阶段对所有类型的访问数据的第三访问需求总量。
7.根据权利要求6所述的数据缓存方法,其特征在于,所述计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例包括:依据公式计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
8.根据权利要求1所述的数据缓存方法,其特征在于,还包括:获取各种类型的所述访问数据的各种数据元素的访问概率;
在各种数据元素的访问概率的差值在预设差值范围内的情况下,选择先进先出FIFO替换算法或者随机替换算法;
在各种数据元素的访问概率的差值不在预设差值范围内的情况下,选择最近最少使用LRU替换算法。
9.根据权利要求8所述的数据缓存方法,其特征在于,所述获取各种类型的所述访问数据的各种数据元素的访问概率包括:根据公式获取各种类型的所述访问数据的各种数据元素的访问概率,其中Cni(n=0,1,2,…)表示第i类的访问数据的第n种数据元素被访问的次数。
10.根据权利要求1至9任意一项所述的数据缓存方法,其特征在于,还包括:根据每种类型的所述访问数据的比重,为不同类型的访问数据分配匹配的缓存空间。
11.一种数据缓存装置,其特征在于,包括:
划分模块,用于将当前待访问的数据划分为各种类型的访问数据;
关系建立模块,用于建立各个访问阶段与各种类型的所述访问数据之间的对应关系;
比重获得模块,用于分别获得每种类型的所述访问数据的比重,其中所述访问数据的比重为每种类型的访问数据在所有类型访问数据所占比例;
数据缓存模块,用于在所述访问数据的比重大于预设比重的情况下,将该比重对应的类型的访问数据进行缓存;
其中,所述比重获得模块包括:
第一计算单元,用于获取不同访问阶段对每种类型的访问数据的第一访问需求总量,其中所述不同访问阶段为从初始阶段经过n步所达到的访问阶段,n是初始访问阶段转移到第j个访问阶段的步数;
第二计算单元,用于获取所有访问阶段对每种类型的访问数据的第二访问需求总量;
第三计算单元,用于获取所有访问阶段对所有类型的访问数据的第三访问需求总量;
第四计算单元,用于计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
12.根据权利要求11所述的数据缓存装置,其特征在于,所述划分模块具体用于将关系数据库中各个逻辑表分别划分为一类访问数据。
13.根据权利要求11所述的数据缓存装置,其特征在于,所述第一计算单元包括:依据公式获取所述不同访问阶段对每种类型的访问数据的第一访问需求总量,其中,Rij表示第j个访问阶段对第i类数据的访问量;表示从初始访问阶段经过n步到第j个访问阶段的转移概率。
14.根据权利要求13所述的数据缓存装置,其特征在于,所述第二计算单元包括:依据公式获取所有访问阶段对每种类型的访问数据的第二访问需求总量,其中,表示不同步数下对第i类数据的第一访问需求总量。
15.根据权利要求14所述的数据缓存装置,其特征在于,所述第三计算单元包括:依据公式获取所有访问阶段对所有类型的访问数据的第三访问需求总量。
16.根据权利要求15所述的数据缓存装置,其特征在于,所述第四计算单元包括:依据公式计算每种类型的访问数据的第二访问需求总量在第三访问需求总量中的比例,将该比例作为每种类型的访问数据的比重。
17.根据权利要求11所述的数据缓存装置,其特征在于,还包括:
概率获取模块,用于获取各种类型的所述访问数据的各种数据元素的访问概率;
第一选择模块,用于在各种数据元素的访问概率的差值在预设差值范围内的情况下,选择先进先出FIFO替换算法或者随机替换算法;
第二选择模块,用于在各种数据元素的访问概率的差值不在预设差值范围内的情况下,选择最近最少使用LRU替换算法。
18.根据权利要求17所述的数据缓存装置,其特征在于,所述概率获取模块具体用于根据公式获取各种类型的所述访问数据的各种数据元素的访问概率,其中Cni(n=0,1,2,…)表示第i类的访问数据的第n种数据元素被访问的次数。
19.根据权利要求11至18任意一项所述的数据缓存装置,其特征在于,还包括:分配模块,用于根据每种类型的所述访问数据的比重,为不同类型的访问数据分配匹配的缓存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210484238.7A CN103838680B (zh) | 2012-11-23 | 2012-11-23 | 一种数据缓存方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210484238.7A CN103838680B (zh) | 2012-11-23 | 2012-11-23 | 一种数据缓存方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838680A CN103838680A (zh) | 2014-06-04 |
CN103838680B true CN103838680B (zh) | 2018-03-23 |
Family
ID=50802201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210484238.7A Active CN103838680B (zh) | 2012-11-23 | 2012-11-23 | 一种数据缓存方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838680B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866436B (zh) * | 2014-06-12 | 2018-02-02 | 国家电网公司 | 海量安全事件存储方法 |
CN106502789A (zh) * | 2016-10-12 | 2017-03-15 | 阔地教育科技有限公司 | 一种资源访问方法及装置 |
CN107943720A (zh) * | 2017-11-29 | 2018-04-20 | 武汉理工大学 | 混合云中基于文件收益及优先级权重的lru缓存优化算法 |
CN108694241B (zh) * | 2018-05-14 | 2023-04-18 | 平安科技(深圳)有限公司 | 一种数据的存储方法及设备 |
CN109407996B (zh) * | 2018-11-07 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种缓存管理方法以及相关装置 |
CN111258929B (zh) * | 2018-12-03 | 2023-09-26 | 北京京东尚科信息技术有限公司 | 缓存控制方法、装置和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690985A (zh) * | 2004-04-20 | 2005-11-02 | 日立环球储存科技荷兰有限公司 | 用于高速缓存的磁盘装置和控制方法 |
CN102609360A (zh) * | 2012-01-12 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8878335B2 (en) * | 2010-12-23 | 2014-11-04 | Infineon Technologies Ag | Method and system for providing fusing after packaging of semiconductor devices |
-
2012
- 2012-11-23 CN CN201210484238.7A patent/CN103838680B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690985A (zh) * | 2004-04-20 | 2005-11-02 | 日立环球储存科技荷兰有限公司 | 用于高速缓存的磁盘装置和控制方法 |
CN102609360A (zh) * | 2012-01-12 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103838680A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838680B (zh) | 一种数据缓存方法和装置 | |
CN106372114B (zh) | 一种基于大数据的联机分析处理系统和方法 | |
Liu et al. | Data caching optimization in the edge computing environment | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN105868388B (zh) | 一种基于fpga的内存olap查询优化方法 | |
CN102355490B (zh) | 用于网络空间信息服务系统的空间信息集群缓存预取方法 | |
CN106709068A (zh) | 一种热点数据识别方法及其装置 | |
CN109948774A (zh) | 基于网络层捆绑运算的神经网络加速器及其实现方法 | |
CN103455531B (zh) | 一种支持高维数据实时有偏查询的并行索引方法 | |
CN106528815B (zh) | 一种路网移动对象概率聚集查询方法及系统 | |
CN103714098B (zh) | 用于对数据库进行分区的方法和系统 | |
CN103345514A (zh) | 大数据环境下的流式数据处理方法 | |
Li et al. | Adaptive priority-based cache replacement and prediction-based cache prefetching in edge computing environment | |
CN108024307B (zh) | 一种基于物联网的异构网络接入选择方法及系统 | |
CN113255004B (zh) | 一种安全且高效的联邦学习内容缓存方法 | |
CN108920552A (zh) | 一种面向多源大数据流的分布式索引方法 | |
CN109472361A (zh) | 神经网络优化方法 | |
CN105991674A (zh) | 一种信息推送方法和装置 | |
CN109358821A (zh) | 一种成本驱动的云计算冷热数据存储优化方法 | |
CN107102995A (zh) | 一种sql执行计划的确定方法及装置 | |
CN107729500A (zh) | 一种联机分析处理的数据处理方法、装置及后台设备 | |
CN107426315A (zh) | 一种基于BP神经网络的分布式缓存系统Memcached的改进方法 | |
CN103425694B (zh) | 关系型数据的搜索方法和装置 | |
CN117076466B (zh) | 一种针对大型档案数据库的快速数据索引方法 | |
Maroulis et al. | Adaptive Indexing for In-situ Visual Exploration and Analytics. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |