CN107480072A - 基于关联模式的透明计算服务端缓存优化方法及系统 - Google Patents
基于关联模式的透明计算服务端缓存优化方法及系统 Download PDFInfo
- Publication number
- CN107480072A CN107480072A CN201710723425.9A CN201710723425A CN107480072A CN 107480072 A CN107480072 A CN 107480072A CN 201710723425 A CN201710723425 A CN 201710723425A CN 107480072 A CN107480072 A CN 107480072A
- Authority
- CN
- China
- Prior art keywords
- stream
- frequent
- data
- data block
- mode
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及透明计算技术大数据挖掘领域,公开了一种基于关联模式的透明计算服务端缓存优化方法及系统,以减少磁盘I/O开销、提高缓存的命中率及提升透明计算服务质量。本发明方法包括:引入支持度对各批次的数据流进行筛选以构建FP‑tree;在挖掘各批次数据流的频繁模式和支持度计数信息时,如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘;根据各批次数据流的频繁模式和支持度计数信息创建及更新FP‑Stream结构;当将任一数据块读入缓存时,将该数据块在FP‑Stream结构模式中相关频繁模式所关联的其它频繁项所对应的数据块一并读入。
Description
技术领域
本发明涉及透明计算技术大数据挖掘领域,尤其涉及一种基于关联模式的透明计算服务端缓存优化方法及系统。
背景技术
普适计算是21世纪以来被广泛研究和应用的计算模式,它强调通过对数字环境的上下文感知,为用户提供及时有效的服务。透明计算是一种新的普适计算模式,它的主要思想是使计算和存储相分离,也就是用户私有数据、应用程序以及操作系统都存放在远程服务器,而不是本地机器上。在这种计算和存储分离的模式下,所有的用户数据、应用及操作系统就可以像软件资源一样被按需组合。
透明服务平台由搭载轻量级微内核操作系统的透明客户端、透明网络以及提供数据服务的服务端管理平台组成。服务端的主要功能为提供透明计算数据访问服务和透明资源管理服务。因此,透明计算用户自主可控地按需使用服务的过程,其本质是借助虚拟磁盘技术访问存储于服务端的数据。其采用的虚拟磁盘模型具有以下特点:
(1)、按资源共享程度及性质划分的三层链式存储机制。虚拟磁盘中数据资源被分成3类:系统资源、应用群组资源、私有数据资源;
(2)、结合了位图的写时重定向机制。系统虚拟磁盘和群组虚拟磁盘上的数据以只读的方式存储于服务器,共享给多终端用户;当用户需要对系统虚拟磁盘和群组虚拟磁盘上的数据进行修改时,写时重定向机制将改写块存储于相应用户的用户虚拟磁盘,并使用位图标记改写块的位置。
基于透明计算存储与计算分离的思想,在透明终端按需加载数据的过程中,对网络性能就有了很高的要求。在提高用户使用透明计算的体验质量方面,服务端性能成为其服务性能的瓶颈。缓存命中率是透明计算服务端性能表现最关键的因素,因此在服务端制定有效的缓存策略,减少磁盘I/O次数,是改善透明服务质量的一个极为重要的途径。
目前针对透明计算的缓存优化思想主要有:
(1)、优化缓存结构,从使用分级缓存的角度提高缓存命中率;
(2)、结合FIFO、LRU、LFU等缓存替换策略,提出基于单个数据块的访问时间、访问频次计数的缓存策略;
(3)、从查询速率的角度,如对终端缓存数据进行分区,结合索引等技术提高数据查询速率。
透明服务平台中虚拟磁盘的三层链式存储模型解决了大量数据冗余和数据共享的问题,而结合现有透明计算及其缓存优化的研究现状,在服务性能方面仍存在以下问题:
(1)、透明服务平台的三层链式存储的特点,决定了其数据访问的特殊性,因此,其用户数据访问行为模型也会不同于其它虚拟磁盘存储模型。使用传统的缓存策略效果并不显著;
(2)、数据块资源在存储上具有一定的规则,针对用户当前访问所需的数据块,必然存在着与之相关的数据块,如果对这些关联度较大的数据块进行预取,就可以减少对磁盘的I/O,从而提高其访问效率。而目前缺乏对透明计算数据块的关联规则进行挖掘的研究工作;
(3)、透明计算是强调以用户为中心的网络计算服务模式,并且用户的所有资源均存储在服务端。在服务多客户端的情况下,当大量用户对透明服务端进行访问时,会对网络等服务资源产生严重负载。
发明内容
本发明目的在于公开一种基于关联模式的透明计算服务端缓存优化方法及系统,以减少磁盘I/O开销、提高缓存的命中率及提升透明计算服务质量。
为实现上述目的,本发明公开一种基于关联模式的透明计算服务端缓存优化方法,包括:
将被用户访问的数据流分批进行处理,扫描各批次所分别对应的数据集合,记录各批次所对应数据集合中满足筛选条件的事务项,并筛选支持度计数大于或等于τ*(σ-ε)*|Bi|的数据块以对n≥2批次的数据流Bn构建FP-tree;其中,σ为最小支持度,ε为最大支持度误差,|Bi|表示批次为i数据流的宽度;
使用FP增长法挖掘各批次数据流的频繁模式和支持度计数信息,如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘;
根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构;
根据FP-Stream结构获得不同时间粒度下的频繁项集,当将任一数据块读入缓存时,将该数据块在FP-Stream结构模式中相关频繁模式所关联的其它频繁项所对应的数据块一并读入。
与上述方法相对应的,本发明还公开一种基于关联模式的透明计算服务端缓存优化系统,包括:
第一处理单元,用于将被用户访问的数据流分批进行处理,扫描各批次所分别对应的数据集合,记录各批次所对应数据集合中满足筛选条件的事务项,并筛选支持度计数大于或等于τ*(σ-ε)*|Bi|的数据块以对n≥2批次的数据流Bn构建FP-tree;其中,σ为最小支持度,ε为最大支持度误差,|Bi|表示批次为i数据流的宽度;
第二处理单元,用于使用FP增长法挖掘各批次数据流的频繁模式和支持度计数信息,如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘;
第三处理单元,用于根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构;
第四处理单元,用于根据FP-Stream结构获得不同时间粒度下的频繁项集,当将任一数据块读入缓存时,将该数据块在FP-Stream结构模式中相关频繁模式所关联的其它频繁项所对应的数据块一并读入。
本发明具有以下有益效果:
出于预取多个数据块来减少磁盘I/O的缓存策略,结合透明服务平台数据访问特征对FP-Stream算法进行相应改进,能有效地预取多个数据块,减少磁盘I/O开销。
而且,相比改进前的FP-Stream在处理n≥2的数据集合Bn时,无论原始数据中项的支持度是否频繁,都对其进行存储而言,那么对于大量的访问并不频繁的块,放入FP-Stream中不久就又会通过剪枝被舍弃,这在空间和时间上就产生很大的浪费。而本发明在对n≥2批次的数据流Bn构建FP-tree也使用了支持度系数τ对原始数据流进行筛选,避免处理访问不频繁的数据块产生的时间和空间上的成本。
另一方面,相比于改进前的FP-Stream在使用FP增长法逐层递归,获得所有的频繁模式及其子集,直至递归到根节点为止,由此会产生大量的子集。其中,大量子集的产生会消耗一定的时间和空间资源,且对于缓存策略中预取多个相关块的思想来说是冗余的。而本发明通过:如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘,以此避免了处理不必要子集所产生的时间和空间上的成本。
下面将参照附图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种FP-tree结构示意图;
图2为本发明实施例的一种FP-stream结构示意图;
图3为本发明实施例的一种停止频繁模式子集挖掘的条件模式基的示意图;
图4为本发明实施例例举的5分钟内透明计算服务端被访问数据块的频次累计统计图;
图5为本发明实施例例举的相同块前后被访问的时间间隔分布示意图;
图6为本发明实施例例举的数据块偏移量差值的分布示意图;
图7为本发明实施例例举的预取不同数量的数据块对缓存命中率影响的对比结果图;
图8为本发明实施例例举的不同缓存策略下的缓存命中率比较结果示意图。
具体实施方式
为了本领域技术人员更好的区分了解本发明实施例中的技术方案,对现有的FP-Stream简述如下:
FP-Stream通过对原始数据两次的扫描,保留了所有的频繁项集和时序关系。采用对数时间窗框架记录频繁项集的时序特征,即FP-Stream的树形结构中,每个节点都有一个时间窗列表,节点到根节点的路径表示一个频繁项集,该频繁项集的支持度存储在这个节点的相应时间窗内。如果当前窗口中保存的是当前一分钟的事务,那么接下来的窗口依次保存的就是最后一分钟、之前的2分钟、再之前的4分钟等的事务。这样,时间粒度以2的指数进行增长,保存一年的数据也只需log2(365×24×60)+1≈20个时间窗。假设把数据流按先后顺序分为B1,B2,B3…等若干批次进行处理,最小支持度为σ,最大支持度误差为ε,|Bn|表示Bn的宽度,现有FP-Stream挖掘频繁项集的步骤如下:
(1).构建FP-tree并挖掘频繁项集
1).扫描当前数据集合Bn,根据Bn中项的频次计数创建头表f_list,f_list按照数据流中项的频次对降序排列的项进行存储;构建f_list时,如果n=1,则仅保留支持度计数不小于(σ-ε)*|Bn|的项,否则不对Bn中的项进行筛选,即把所有事务中的项都进行记录,具体的记录信息如表1。
表1:
2).如果FP-tree不为空,清空FP-tree,对Bn每个事务中的项,按照f_list排序,从根节点开始把数据压缩进FP-tree。以表1中的关系数据为例,对表1中数据进行FP-tree的构造,获得图1所示结构。
3).从f_list的末端开始,对FP-tree进行遍历,使用FP增长法逐层递归,获得所有的频繁模式及其子集,直至递归到根节点为止。使用FP增长法对图a中的树结构进行挖掘,最终获得的频繁模式记录如表2。
表2:
基于上述表2,如下述步骤构建时间敏感的FP-Stream:
1).每当到了一个数据流批次Bn的结尾,从Bn所构建的FP-tree中挖掘频繁项集,把频繁项集中的项按照f_list的顺序对FP-Stream进行更新。如果挖掘到的频繁项集所对应的频繁项I已经存在于FP-Stream中,就把I对应的支持度计数写入时间窗列表;如果挖掘到的频繁项集I不在FP-Stream中,且其支持度计数大于ε*|Bi|,把I插入到FP-Stream中,否则停止FP-tree中对I的超集的挖掘。
2).对FP-Stream按深度优先的策略进行扫描,检测每个项集对应的时间窗是否更新,如果没有,就在倾斜窗口中插入0。
3).假设距当前最近的批次的时间窗标识为t0,最远的批次的时间窗标识为tn,某项集倾斜时间窗中的支持度计数为对项集的时间窗进行剪尾,如果满足以下条件则保留把舍去:
且
4).遍历FP-Stream树的节点,如果节点的时间窗为空,就把该节点及其子节点从FP-Stream中减去。以表1中的数据为第一批原始数据,并使用表2中的频繁模式构建FP-Stream,获得图2所示的结构。
根据以上步骤可知,在递归查找每个频繁模式的时候,会产生大量的子集;如:上述表2中的{I2,I5}和{I1,I5}则为{I2,I1,I5}的冗余子集。频繁项集中大量子集的产生会消耗一定的时间和空间资源,且对于缓存策略中预取多个相关块的思想来说是冗余的。针对FP-Stream算法的特点和透明计算访问数据的特征,本发明实施例1公开一种依托改进FP-Stream进行基于关联模式的透明计算服务端缓存优化方法,简称为CPCS(CorrelationPattern Based Cache Strategy),实施步骤如下。
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
实施例1
本实施例公开一种依托改进FP-Stream进行基于关联模式的透明计算服务端缓存优化方法。包括:
步骤S1、将被用户访问的数据流分批进行处理,扫描各批次所分别对应的数据集合,记录各批次所对应数据集合中满足筛选条件的事务项,并筛选支持度计数大于或等于τ*(σ-ε)*|Bi|的数据块以对n≥2批次的数据流Bn构建FP-tree;其中,σ为最小支持度,ε为最大支持度误差,|Bi|表示批次为i数据流的宽度。
在该步骤中,在对n≥2批次的数据流Bn构建FP-tree也使用了支持度系数τ对原始数据流进行筛选,避免处理访问不频繁的数据块产生的时间和空间上的成本。其中,上述的σ、ε和|Bi|等参数可以在FP-tree和FP-Stream初始化时进行具体设置。
步骤S2、使用FP增长法挖掘各批次数据流的频繁模式和支持度计数信息,如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘。
例如:
挖掘从表头header的最后一个项开始,在图1的FP树中可以看到,从根节点到I5:1(其表示I5在表1中的出现频次为1,后续类似的表述与之同义,不做赘述)的路径有两条:
·I2:7-->I1:4-->I5:1
·I2:7-->I1:4-->I3:2-->I5:1
I2:7-->I1:4和I2:7-->I1:4-->I3:2因为最终到达的节点肯定是I5,所以将I5省略就是I5的条件模式基,记为{I2,I1:1}{I2,I1,I3:1};基于各频繁项的条件模式基可以推导出相关的频繁模式,如对应I5节点的频繁模式有:{I2,I5:2},{I1,I5:2},{I2,I1,I5:2}。而基于本实施例步骤S2,当出现如图3所示的条件模式基时,则只需要挖掘出{I2,I1,I3}的频繁模式及其对应的支持度信息,并停止再对其子集{I2,I1}、{I1,I3}及{I2,I3}进行挖掘,以此避免了处理不必要子集所产生的时间和空间上的成本。
步骤S3、根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构。
本实施例对FP-Stream结构的更新包括但不限于:
对FP-Stream按深度优先的策略进行扫描,检测每个频繁项对应的时间窗是否更新,如果没有,在相应的频繁项对应的倾斜窗口中插入0;
假设距当前最近的批次的时间窗标识为t0,最远的批次的时间窗标识为tn,任一频繁项倾斜时间窗中的支持度计数为对该频繁项的时间窗进行尾部置零的操作,如果满足以下条件则保留把置为零;具体条件如下:
且 以及
如果任一频繁项倾斜时间窗的支持度都为0,则舍弃该频繁项及其相应的子节点。
步骤S4、根据FP-Stream结构获得不同时间粒度下的频繁项集,当将任一数据块读入缓存时,将该数据块在FP-Stream结构模式中相关频繁模式所关联的其它频繁项所对应的数据块一并读入。
优选地,本实施例的缓存采用两层结构,第一层用于存放在FP-Stream结构模式中相关频繁模式所关联的数据块集合,第二层用于存放系统数据、应用群组数据及用户数据;第一和第二层都采用以LRU为基础策略的队列形式。
当用户对某数据块DBi进行访问时,将数据块的关联模式应用于缓存的步骤为:
(1)、判断DBi是否存在于第一层缓存中,如果存在,将DBi放在第一层缓存队列的队首;
(2)、如果DBi不在第一层缓存中,辨别其属于系统资源、应用资源还是用户资源,并在第二层缓存的相应分区中进行匹配,如果匹配到了,使用LRU方法把数据块DBi放到相应队列的队首;否则,执行第(3)步;
(3)、在FP-Stream中查找DBi对应的频繁项,如果找到了,则从磁盘中将FP-Stream结构模式中该频繁项相关频繁模式所关联的其它频繁项所对应的数据块一并读入第一层缓存的队首;如果FP-Stream中没有与DBi相关的频繁项,从磁盘中读取DBi及与其连续的至少一个数据块放入第二层缓存的相应分区中。藉此,FP-Stream是针对历史访问中被访问的比较频繁的数据块的;而从磁盘中取连续(指数据块的存储地址/偏移量连续)的数据块,是针对历史访问中被访问的不频繁的数据块,一方面是根据磁盘存储的一般规律来的,并以此作为第二层缓存的数据输入源,另一方面则有效弥补了FP-Stream无法挖掘历史中没有记录的数据块的缺陷,使得本实施例的二层缓存结构相比现有的普通结构具有了突出的实质性特点和显著进步。
【本实施例原理及论证】
随机选取透明计算运行过程中5分钟的访问记录,以数据块的偏移量代表被访问的数据块,并按照偏移量大小进行排序。这些数据块在5分钟内被访问的频次累计如图4所示。从图中可以看到,被访问的数据块的频次累计基本分布在15、12、3、2等多个水平层次。在大量数据块被访问的频次比较一致的情况下,我们可以认为这些数据块之间具有强关联规则。
取图4中支持度计数不小于15的数据块的相关访问记录,其中包括对2878块不同的数据块的43225次访问。按照数据块偏移量大小、访问时间对其访问记录排序后,计算数据块被前后访问的时间间隔,数据块前后被访问的时间间隔分布如图5。由图5知,相同数据块前后被访问的时间间隔大部分集中在35秒以内,对于间隔较久的访问,有一部分是不同数据块被访问的间距。因此,访问频次较高的数据块被重复访问到的时间间隔并不久。而FP-Stream在处理n≥2的数据集合Bn时,无论原始数据中项的支持度是否频繁,都对其进行存储。那么对于大量的访问并不频繁的块,放入FP-Stream中不久就又会通过剪枝被舍弃,这在空间和时间上就产生很大的浪费。
取图4中支持度计数不小于15的数据块的相关访问记录,按照访问时间,依次计算前后两次访问的数据块偏移量之间的差值ξ,差值ξ与其出现的累计次数的关系分布如图6。从图6可知,有37499个差值为8,而其余5725个访问间隔则分布在-14565520和15226320之间。由此可推测,数据块的访问大部分是具有连续性的,且被连续访问的数据块的偏移量之差为8。那么如果每次连续访问的块的数量比较多,在使用FP-Stream挖掘频繁模式的时候,挖掘到的频繁项集必然会产生很多的子集。
为测试本发明上述实施例中数据块连续取方法的有效性,采集了35个透明计算用户90分钟内自由操作透明终端的数据。在2134258次数据块访问记录中包含了61542个不同的数据块。在最小支持度取0.19,最大支持度误差为0.02,间隔宽度|Bn|为30的情况下,分别不进行预取,预取5块,10块,得到的缓存命中率如图7所示。其中横坐标轴上缓存的大小是以可存储的数据块数为标准。由图7可见,不同大小的缓存中,通过连续取的命中率始终高于不预取时候的命中率,说明预取的策略是有效的;而预取5块和10块时,缓存命中率并没有区别,说明数据块大多是以不超过5块连续出现的。为此,优选地,本实施例在上述处理过程中,一并读入第二层缓存的关联数据块的数量小于或等于5。
为测试本发明所提出的缓存策略的有效性,还将CPCS方法与现有LRU(Leastrecently used,最近最少使用)、LFU(least frequently used)、LFRU(最近最不频繁使用替换算法)的命中率进行了比较,实验结果如图8。从图8中可以看出,在缓存大小为1024、2048、4096、8192时,CPCS的缓存命中率始终是高于其他缓存置换算法的。
实施例2
与上述实施例1相对应的,本实施例公开一种基于关联模式的透明计算服务端缓存优化系统,包括:
第一处理单元,用于将被用户访问的数据流分批进行处理,扫描各批次所分别对应的数据集合,记录各批次所对应数据集合中满足筛选条件的事务项,并筛选支持度计数大于或等于τ*(σ-ε)*|Bi|的数据块以对n≥2批次的数据流Bn构建FP-tree;其中,σ为最小支持度,ε为最大支持度误差,|Bi|表示批次为i数据流的宽度;
第二处理单元,用于使用FP增长法挖掘各批次数据流的频繁模式和支持度计数信息,如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘;
第三处理单元,用于根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构;
第四处理单元,用于根据FP-Stream结构获得不同时间粒度下的频繁项集,当将任一数据块读入缓存时,将该数据块在FP-Stream结构模式中相关频繁模式所关联的其它频繁项所对应的数据块一并读入。
可选的,在本实施例系统中,根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构包括:
如果挖掘到的频繁项集中的频繁项I在FP-Stream中,就把I对应的支持度计数写入时间窗列表;如果挖掘到的频繁项I不在FP-Stream中,且其支持度计数大于ε*|Bi|,把I插入到FP-Stream中,且在把I第一次放入FP-Stream的时候,用I的支持度计数对其前缀路径上节点的时间窗进行更新;否则,停止在FP-tree中对I的超集的挖掘。
可选的,本系统的第三处理单元还用于:
对FP-Stream按深度优先的策略进行扫描,检测每个频繁项对应的时间窗是否更新,如果没有,在相应的频繁项对应的倾斜窗口中插入0;
假设距当前最近的批次的时间窗标识为t0,最远的批次的时间窗标识为tn,任一频繁项倾斜时间窗中的支持度计数为对该频繁项的时间窗进行尾部置零的操作,如果满足以下条件则保留把置为零;具体条件如下:
且 以及
如果任一频繁项倾斜时间窗的支持度都为0,则舍弃该频繁项及其相应的子节点。
优选地,本实施例系统的缓存采用两层结构,第一层用于存放在FP-Stream结构模式中相关频繁模式所关联的数据块集合,第二层用于存放系统数据、应用群组数据及用户数据;第一和第二层都采用以LRU为基础策略的队列形式;当用户对某数据块DBi进行访问时,所述第四处理单元还用于:
(1)、判断DBi是否存在于第一层缓存中,如果存在,将DBi放在第一层缓存队列的队首;
(2)、如果DBi不在第一层缓存中,辨别其属于系统资源、应用资源还是用户资源,并在第二层缓存的相应分区中进行匹配,如果匹配到了,使用LRU方法把数据块DBi放到相应队列的队首;否则,执行第(3)步;
(3)、在FP-Stream中查找DBi对应的频繁项,如果找到了,则从磁盘中将FP-Stream结构模式中该频繁项相关频繁模式所关联的其它频繁项所对应的数据块一并读入第一层缓存的队首;如果FP-Stream中没有与DBi相关的频繁项,从磁盘中读取DBi及与其连续的至少一个数据块放入第二层缓存的相应分区中。较佳的,一并读入第二层缓存的关联数据块的数量小于或等于5。
综上,本发明实施例公开的基于关联模式的透明计算服务端缓存优化方法及系统,具有以下有益效果:
出于预取多个数据块来减少磁盘I/O的缓存策略,结合透明服务平台数据访问特征对FP-Stream算法进行相应改进,能有效地预取多个数据块,减少磁盘I/O开销。
而且,相比改进前的FP-Stream在处理n≥2的数据集合Bn时,无论原始数据中项的支持度是否频繁,都对其进行存储而言,那么对于大量的访问并不频繁的块,放入FP-Stream中不久就又会通过剪枝被舍弃,这在空间和时间上就产生很大的浪费。而本发明在对n≥2批次的数据流Bn构建FP-tree也使用了支持度系数τ对原始数据流进行筛选,避免处理访问不频繁的数据块产生的时间和空间上的成本。
另一方面,相比于改进前的FP-Stream在使用FP增长法逐层递归,获得所有的频繁模式及其子集,直至递归到根节点为止,由此会产生大量的子集。其中,大量子集的产生会消耗一定的时间和空间资源,且对于缓存策略中预取多个相关块的思想来说是冗余的。而本发明通过:如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘,以此避免了处理不必要子集所产生的时间和空间上的成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于关联模式的透明计算服务端缓存优化方法,其特征在于,包括:
将被用户访问的数据流分批进行处理,扫描各批次所分别对应的数据集合,记录各批次所对应数据集合中满足筛选条件的事务项,并筛选支持度计数大于或等于τ*(σ-ε)*|Bi|的数据块以对n≥2批次的数据流Bn构建FP-tree;其中,σ为最小支持度,ε为最大支持度误差,|Bi|表示批次为i数据流的宽度;
使用FP增长法挖掘各批次数据流的频繁模式和支持度计数信息,如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘;
根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构;
根据FP-Stream结构获得不同时间粒度下的频繁项集,当将任一数据块读入缓存时,将该数据块在FP-Stream结构模式中相关频繁模式所关联的其它频繁项所对应的数据块一并读入。
2.根据权利要求1所述的基于关联模式的透明计算服务端缓存优化方法,其特征在于,根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构包括:
如果挖掘到的频繁项集中的频繁项I在FP-Stream中,就把I对应的支持度计数写入时间窗列表;如果挖掘到的频繁项I不在FP-Stream中,且其支持度计数大于ε*|Bi|,把I插入到FP-Stream中,且在把I第一次放入FP-Stream的时候,用I的支持度计数对其前缀路径上节点的时间窗进行更新;否则,停止在FP-tree中对I的超集的挖掘。
3.根据权利要求1所述的基于关联模式的透明计算服务端缓存优化方法,其特征在于,还包括:
对FP-Stream按深度优先的策略进行扫描,检测每个频繁项对应的时间窗是否更新,如果没有,在相应的频繁项对应的倾斜窗口中插入0;
假设距当前最近的批次的时间窗标识为t0,最远的批次的时间窗标识为tn,任一频繁项倾斜时间窗中的支持度计数为对该频繁项的时间窗进行尾部置零的操作,如果满足以下条件则保留把置为零;具体条件如下:
且 以及
如果任一频繁项倾斜时间窗的支持度都为0,则舍弃该频繁项及其相应的子节点。
4.根据权利要求1至3任一所述的基于关联模式的透明计算服务端缓存优化方法,其特征在于,所述缓存采用两层结构,第一层用于存放在FP-Stream结构模式中相关频繁模式所关联的数据块集合,第二层用于存放系统数据、应用群组数据及用户数据;第一和第二层都采用以LRU为基础策略的队列形式;
当用户对某数据块DBi进行访问时,将数据块的关联模式应用于缓存的步骤为:
(1)、判断DBi是否存在于第一层缓存中,如果存在,将DBi放在第一层缓存队列的队首;
(2)、如果DBi不在第一层缓存中,辨别其属于系统资源、应用资源还是用户资源,并在第二层缓存的相应分区中进行匹配,如果匹配到了,使用LRU方法把数据块DBi放到相应队列的队首;否则,执行第(3)步;
(3)、在FP-Stream中查找DBi对应的频繁项,如果找到了,则从磁盘中将FP-Stream结构模式中该频繁项相关频繁模式所关联的其它频繁项所对应的数据块一并读入第一层缓存的队首;如果FP-Stream中没有与DBi相关的频繁项,从磁盘中读取DBi及与其连续的至少一个数据块放入第二层缓存的相应分区中。
5.根据权利要求4所述的基于关联模式的透明计算服务端缓存优化方法,其特征在于,一并读入第二层缓存的关联数据块的数量小于或等于5。
6.一种基于关联模式的透明计算服务端缓存优化系统,其特征在于,包括:
第一处理单元,用于将被用户访问的数据流分批进行处理,扫描各批次所分别对应的数据集合,记录各批次所对应数据集合中满足筛选条件的事务项,并筛选支持度计数大于或等于τ*(σ-ε)*|Bi|的数据块以对n≥2批次的数据流Bn构建FP-tree;其中,σ为最小支持度,ε为最大支持度误差,|Bi|表示批次为i数据流的宽度;
第二处理单元,用于使用FP增长法挖掘各批次数据流的频繁模式和支持度计数信息,如果任一条件模式基出现单一前缀路径,且路径上的节点元素的频次相等,则停止对该频次相等的各节点元素所组合的频繁模式子集的挖掘;
第三处理单元,用于根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构;
第四处理单元,用于根据FP-Stream结构获得不同时间粒度下的频繁项集,当将任一数据块读入缓存时,将该数据块在FP-Stream结构模式中相关频繁模式所关联的其它频繁项所对应的数据块一并读入。
7.根据权利要求6所述的基于关联模式的透明计算服务端缓存优化系统,其特征在于,根据所述各批次数据流的频繁模式和支持度计数信息创建及更新FP-Stream结构包括:
如果挖掘到的频繁项集中的频繁项I在FP-Stream中,就把I对应的支持度计数写入时间窗列表;如果挖掘到的频繁项I不在FP-Stream中,且其支持度计数大于ε*|Bi|,把I插入到FP-Stream中,且在把I第一次放入FP-Stream的时候,用I的支持度计数对其前缀路径上节点的时间窗进行更新;否则,停止在FP-tree中对I的超集的挖掘。
8.根据权利要求6所述的基于关联模式的透明计算服务端缓存优化系统,其特征在于,所述第三处理单元,还用于:
对FP-Stream按深度优先的策略进行扫描,检测每个频繁项对应的时间窗是否更新,如果没有,在相应的频繁项对应的倾斜窗口中插入0;
假设距当前最近的批次的时间窗标识为t0,最远的批次的时间窗标识为tn,任一频繁项倾斜时间窗中的支持度计数为对该频繁项的时间窗进行尾部置零的操作,如果满足以下条件则保留把置为零;具体条件如下:
且 以及
如果任一频繁项倾斜时间窗的支持度都为0,则舍弃该频繁项及其相应的子节点。
9.根据权利要求6至8任一所述的基于关联模式的透明计算服务端缓存优化系统,其特征在于,所述缓存采用两层结构,第一层用于存放在FP-Stream结构模式中相关频繁模式所关联的数据块集合,第二层用于存放系统数据、应用群组数据及用户数据;第一和第二层都采用以LRU为基础策略的队列形式;
当用户对某数据块DBi进行访问时,所述第四处理单元还用于:
(1)、判断DBi是否存在于第一层缓存中,如果存在,将DBi放在第一层缓存队列的队首;
(2)、如果DBi不在第一层缓存中,辨别其属于系统资源、应用资源还是用户资源,并在第二层缓存的相应分区中进行匹配,如果匹配到了,使用LRU方法把数据块DBi放到相应队列的队首;否则,执行第(3)步;
(3)、在FP-Stream中查找DBi对应的频繁项,如果找到了,则从磁盘中将FP-Stream结构模式中该频繁项相关频繁模式所关联的其它频繁项所对应的数据块一并读入第一层缓存的队首;如果FP-Stream中没有与DBi相关的频繁项,从磁盘中读取DBi及与其连续的至少一个数据块放入第二层缓存的相应分区中。
10.根据权利要求9所述的基于关联模式的透明计算服务端缓存优化系统,其特征在于,一并读入第二层缓存的关联数据块的数量小于或等于5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710723425.9A CN107480072B (zh) | 2017-08-22 | 2017-08-22 | 基于关联模式的透明计算服务端缓存优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710723425.9A CN107480072B (zh) | 2017-08-22 | 2017-08-22 | 基于关联模式的透明计算服务端缓存优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107480072A true CN107480072A (zh) | 2017-12-15 |
CN107480072B CN107480072B (zh) | 2020-07-10 |
Family
ID=60602108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710723425.9A Active CN107480072B (zh) | 2017-08-22 | 2017-08-22 | 基于关联模式的透明计算服务端缓存优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107480072B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189823A (zh) * | 2018-08-08 | 2019-01-11 | 鞍钢股份有限公司 | 一种基于连铸坯缺陷分析的数据挖掘方法 |
CN109451344A (zh) * | 2018-12-28 | 2019-03-08 | 扬州大学 | P2p流媒体系统中基于关联规则的缓存替换方法 |
CN109491985A (zh) * | 2018-10-10 | 2019-03-19 | 北京中盾安全技术开发公司 | 一种基于关联规则的热数据处理方法和装置 |
CN116775713A (zh) * | 2023-08-22 | 2023-09-19 | 北京遥感设备研究所 | 基于数据访问模式的数据库主被动缓存优化方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5305389A (en) * | 1991-08-30 | 1994-04-19 | Digital Equipment Corporation | Predictive cache system |
CN101630291A (zh) * | 2009-08-03 | 2010-01-20 | 中国科学院计算技术研究所 | 虚拟存储系统和方法 |
CN103823823A (zh) * | 2013-07-08 | 2014-05-28 | 电子科技大学 | 基于频繁项集挖掘算法的反规范化策略选择方法 |
CN105468541A (zh) * | 2015-12-11 | 2016-04-06 | 中南大学 | 一种面向透明计算智能终端的缓存管理方法 |
CN106096736A (zh) * | 2016-05-27 | 2016-11-09 | 大连楼兰科技股份有限公司 | 基于FP‑Tree序列模式挖掘的故障诊断与估价的平台 |
CN106126341A (zh) * | 2016-06-23 | 2016-11-16 | 成都信息工程大学 | 应用于大数据的多计算框架处理系统及关联规则挖掘方法 |
-
2017
- 2017-08-22 CN CN201710723425.9A patent/CN107480072B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5305389A (en) * | 1991-08-30 | 1994-04-19 | Digital Equipment Corporation | Predictive cache system |
CN101630291A (zh) * | 2009-08-03 | 2010-01-20 | 中国科学院计算技术研究所 | 虚拟存储系统和方法 |
CN103823823A (zh) * | 2013-07-08 | 2014-05-28 | 电子科技大学 | 基于频繁项集挖掘算法的反规范化策略选择方法 |
CN105468541A (zh) * | 2015-12-11 | 2016-04-06 | 中南大学 | 一种面向透明计算智能终端的缓存管理方法 |
CN106096736A (zh) * | 2016-05-27 | 2016-11-09 | 大连楼兰科技股份有限公司 | 基于FP‑Tree序列模式挖掘的故障诊断与估价的平台 |
CN106126341A (zh) * | 2016-06-23 | 2016-11-16 | 成都信息工程大学 | 应用于大数据的多计算框架处理系统及关联规则挖掘方法 |
Non-Patent Citations (1)
Title |
---|
韦理、张尧学、周悦芝: "透明计算系统中缓存性能的仿真分析与验证", 《清华大学学报(自然科学版)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189823A (zh) * | 2018-08-08 | 2019-01-11 | 鞍钢股份有限公司 | 一种基于连铸坯缺陷分析的数据挖掘方法 |
CN109491985A (zh) * | 2018-10-10 | 2019-03-19 | 北京中盾安全技术开发公司 | 一种基于关联规则的热数据处理方法和装置 |
CN109451344A (zh) * | 2018-12-28 | 2019-03-08 | 扬州大学 | P2p流媒体系统中基于关联规则的缓存替换方法 |
CN116775713A (zh) * | 2023-08-22 | 2023-09-19 | 北京遥感设备研究所 | 基于数据访问模式的数据库主被动缓存优化方法 |
CN116775713B (zh) * | 2023-08-22 | 2024-01-02 | 北京遥感设备研究所 | 基于数据访问模式的数据库主被动缓存优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107480072B (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104468807B (zh) | 进行网页缓存的处理方法、云端装置、本地装置及系统 | |
US7711916B2 (en) | Storing information on storage devices having different performance capabilities with a storage system | |
Lee et al. | IRLbot: scaling to 6 billion pages and beyond | |
CN110188080A (zh) | 基于客户端高效缓存的远程文件数据访问性能优化方法 | |
CN104063330B (zh) | 数据预取方法及装置 | |
CN107480072A (zh) | 基于关联模式的透明计算服务端缓存优化方法及系统 | |
Xu et al. | Characterizing facebook's memcached workload | |
CN106959928B (zh) | 一种基于多级缓存结构的流式数据实时处理方法及系统 | |
CN104320448B (zh) | 一种基于大数据的计算设备的缓存与预取加速方法和装置 | |
US11093496B1 (en) | Performance-based query plan caching | |
CN110119487A (zh) | 一种适用于发散数据的缓存更新方法 | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
Hassan et al. | Optimizing the performance of data warehouse by query cache mechanism | |
CN111177090A (zh) | 一种基于子模优化算法的客户端缓存方法及系统 | |
Pan et al. | Penalty-and locality-aware memory allocation in redis using enhanced AET | |
CN107766355A (zh) | 层级数据管理方法、层级数据管理系统及即时通信系统 | |
EP3507699B1 (en) | Method and systems for master establishment using service-based statistics | |
US10235420B2 (en) | Bucket skiplists | |
Li et al. | SS-LRU: a smart segmented LRU caching | |
US10067678B1 (en) | Probabilistic eviction of partial aggregation results from constrained results storage | |
CN108021674A (zh) | 一种同步云端仿真数据的多级缓存传输加速系统 | |
CN107577618A (zh) | 一种三路均衡缓存淘汰方法及装置 | |
US10747515B2 (en) | Fields hotness based object splitting | |
CN104636209B (zh) | 基于大数据和云存储系统定向性能优化的资源调度系统和方法 | |
US20140095802A1 (en) | Caching Large Objects In A Computer System With Mixed Data Warehousing And Online Transaction Processing Workload |
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 |