当前位置: 首页 > 专利查询>孟小峰专利>正文

一种基于代价的闪存数据库缓冲区置换方法技术

技术编号:6594150 阅读:232 留言:1更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于代价的闪存数据库缓冲区置换方法,其将缓冲区中的数据页进行归类并赋予权值,在进行缓冲区置换时,根据数据页的权值选择置换页。与其他基于闪存的数据库系统的缓冲区置换方法相比,本发明专利技术能根据不同性能的闪存进行自适应的策略调整,因此可以应用到不同的闪存硬盘上,并能获得比其他缓冲区方法更好的性能。本发明专利技术在命中率不下降的前提下,从只读队列或者修改队列中根据数据页的权值公平的选择合适的置换页,能减少对闪存的写操作,减少了对闪存的磨损并提高了系统的性能。本发明专利技术能很好的处理序列访问模式和长循环访问模式,从而与其他基于闪存提出的缓冲区管理方法相比,能取得更好的性能,适应各种闪存及各种存取模式。

【技术实现步骤摘要】

本专利技术涉及一种缓冲区置换方法,特别是关于。
技术介绍
典型的计算机系统包含两层存储器,分别是主存(缓冲区)和辅存(外部存储介质,如磁盘或者SSD)。缓冲区的存取速度远快于辅存,二者一般使用相同大小的数据页。当系统需要操作一个数据页时,缓冲区算法需要按照如下步骤为系统准备所需的数据页(1)检查请求页是否在当前缓冲区中。(2)若请求页在当前缓冲区中,则直接取得所需数据,结束。(3)否则按照某种策略选择一个置换页。(4)若置换页为只读页,则直接读入请求页;否则首先将置换页的内容写回外存,然后读入请求页。其中前两步都可通过0(1)代价完成,因此,处理一个请求页的代价由第(3)步的 CPU代价和第(4)步的外存操作代价组成。对于第(3)步操作,虽然一般情况下CPU操作代价相对于外存操作来说较小,实际当中,尤其是在出现频繁换页的情况下,如果第( 步的操作代价太高的话,将会影响到系统性能。对于第(4)步的外存IO操作,假设⑴缓冲区中无空闲空间放置新的请求页,(^丨数据页访问序列为巧,巧,…-,!^,其中发生页缺失的序列是!·' 1; r' 2,..., r' m(M彡N),(iii)访问巧(1彡i彡N)的IO代价为Q ,则处理整个数据页访问序列的外存IO操作代价如公式(1)所示。Crolal=YjIiCri(1)第(4)步操作的目标就是最小化访问η个数据页的IO总代价,当请求页r在缓冲区中时,可以直接得到,这时,访问外存的IO代价为Cr = 0,因此,公式⑴可以简化为如下的公式O)。Ctm1=Yjm^i(2)假设M次页缺失对应的M个置换页中,有M'个数据页在缓冲区进行了修改,从缓冲区写回外存的代价用Cw表示,从外存读入缓冲区的代价用Ck表示。相应的,磁盘上的操作代价用C和C丨表示,而闪存上的操作代价用G和c(表示。对于磁盘来说,已有方法[3-9] 的基本假设是磁盘的读写代价相同,即《 = G,公式(2)变为公式(3),其中c纟和Cf统一用C表示。C^lal = Cr, = M'(Cdr + C^)+ {M-M')CDR ^ M'+ MCdr = kMC {\<k<2)(3)因此,对于磁盘来说,降低η个数据页的IO操作代价C^可以通过减少页缺失次数M来获得,即降低缺页率(提高命中率)来获得。缺页率反映了必须从辅存读入缓冲区的数据页的比例。2Q(双队列方法)、ARC(自适应的置换方法)、LIRS(低内部访问最近集合方法)、CLOCK(时钟方法)、LRU-K(k个最近最少使用方法)、FBR(基于频率的置换方法)和 LRFU(最近及最不频繁使用方法)等算法主要通过使用启发式方法来提高系统的性能,通过考虑数据页在缓冲区中的滞留时间和使用频率来减少缺页率。具有不对称存取时间的缓冲区置换问题可模拟成加权缓冲区问题,其目的是最小化请求序列的总代价。针对该问题,在“New results on server problems, SIAM J. Discrete Math.,vol. 4, no. 2, pp. 172-181,1991. ”一文中提出了复杂度为 0 (sn2)的最优离线算法,其中s表示缓冲区中数据页的个数,η表示请求序列的长度。由于该算法的时间和空间复杂度很高,即使提前知道完整的请求序列,其运行也需要耗费大量的时间和空间资源。对于在线算法,不可能提前知道任何未来的请求序列。研究者已经提出了许多在线的基于闪存的缓冲区管理算法。由于闪存的读写代价不对称,因此公式(2)变为公式 ⑷。本文档来自技高网...

【技术保护点】
1.基于代价的闪存数据库缓冲区置换方法,具体步骤为:1)将数据页归类为只读队列RQ和修改队列WQ;2)根据数据页的变量参数对缓冲区的数据页赋予权值;3)若CPU发出请求的数据页r被命中,即该数据页在内存缓冲区中,则判断数据页r是否在只读队列RQ中;若不在内存缓冲区中,进行步骤4)的操作;4)上述步骤3)中,若数据页r不在只读队列RQ中,设定请求页r的状态,将其计数器加1,并将其移动到修改队列WQ的头部;5)上述步骤3)中,若数据页r在只读队列RQ中,则判断CPU的请求是否是要修改数据页r;若是要修改r,则设定请求页r的状态,将其计数器加1,并将其移动到修改队列WQ的头部;若仅是读数据页r,则设定请求页r的状态,将其计数器加1,并将其移动到只读队列RQ的头部;6)若CPU发出请求的数据页r未被命中,即该数据页不在内存缓冲区中,则判断缓冲区是否已满;若缓冲区不满,从闪存存取请求页,并重复步骤5)的过程;7)上述步骤6)中,若缓冲区已满,则判断只读队列RQ和修改队列WQ是否是非空的;若都是非空的,则比较只读队列RQ和修改队列WQ队尾处两个数据页的权值,并将权值较小的一个数据页候选为置换页;否则,从非空的只读队列RQ或修改队列WQ中选择队尾处的数据页为置换页;8)若置换页是在修改队列WQ中选择的,还需要将置换页的内容写回闪存,然后才能从闪存存取请求页;否则,直接从闪存存取请求页;9)存取到请求页之后重复步骤5)的过程。...

【技术特征摘要】
1.基于代价的闪存数据库缓冲区置换方法,具体步骤为1)将数据页归类为只读队列RQ和修改队列WQ;2)根据数据页的变量参数对缓冲区的数据页赋予权值;3)若CPU发出请求的数据页r被命中,即该数据页在内存缓冲区中,则判断数据页r是否在只读队列RQ中;若不在内存缓冲区中,进行步骤4)的操作;4)上述步骤;3)中,若数据页r不在只读队列RQ中,设定请求页r的状态,将其计数器加1,并将其移动到修改队列WQ的头部;5)上述步骤3)中,若数据页r在只读队列RQ中,则判断CPU的请求是否是要修改数据页r ;若是要修改r,则设定请求页r的状态,将其计数器加1,并将其移动到修改队列WQ的头部;若仅是读数据页r,则设定请求页r的状态,将其计数器加1,并将其移动到只读队列 RQ的头部;6)若CPU发出请求的数据页r未被命中,即该数据页不在内存缓冲区中,则判断缓冲区是否已满;若缓冲区不满,从闪存存取请求页,并重复步骤幻的过程;7)上述步骤6)中,若缓冲区已满,则判断只读队列RQ和修改队列WQ是否是非空的; 若都是非空的,则比较只读队列RQ和修改队列WQ队尾处两个数据页的权值,并将权值较小的一个数据页候选为置换页;否则,从非空的只读队列RQ或修改队列WQ中选择队尾处的数据页为置换页;8)若置换页是在修改队列WQ中选择的,还需要将置换页的内容写回闪存,然后才能从闪存存取请求页;否则,直接从闪存存取请求页;9)存取...

【专利技术属性】
技术研发人员:孟小峰汤显
申请(专利权)人:孟小峰
类型:发明
国别省市:11

网友询问留言 已有1条评论
  • 来自[北京市联通] 2015年01月24日 11:11
    (1)购物的钱款。
    0
1