CN102207909B - 一种基于代价的闪存数据库缓冲区置换方法 - Google Patents

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

Info

Publication number
CN102207909B
CN102207909B CN201110144933.4A CN201110144933A CN102207909B CN 102207909 B CN102207909 B CN 102207909B CN 201110144933 A CN201110144933 A CN 201110144933A CN 102207909 B CN102207909 B CN 102207909B
Authority
CN
China
Prior art keywords
page
queue
data page
cost
read
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.)
Expired - Fee Related
Application number
CN201110144933.4A
Other languages
English (en)
Other versions
CN102207909A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201110144933.4A priority Critical patent/CN102207909B/zh
Publication of CN102207909A publication Critical patent/CN102207909A/zh
Application granted granted Critical
Publication of CN102207909B publication Critical patent/CN102207909B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种基于代价的闪存数据库缓冲区置换方法
技术领域
本发明涉及一种缓冲区置换方法,特别是关于一种基于代价的闪存数据库缓冲区置换方法。
背景技术
典型的计算机系统包含两层存储器,分别是主存(缓冲区)和辅存(外部存储介质,如磁盘或者SSD)。缓冲区的存取速度远快于辅存,二者一般使用相同大小的数据页。
当系统需要操作一个数据页时,缓冲区算法需要按照如下步骤为系统准备所需的数据页:
(1)检查请求页是否在当前缓冲区中。
(2)若请求页在当前缓冲区中,则直接取得所需数据,结束。
(3)否则按照某种策略选择一个置换页。
(4)若置换页为只读页,则直接读入请求页;否则首先将置换页的
内容写回外存,然后读入请求页。
其中前两步都可通过0(1)代价完成,因此,处理一个请求页的代价由第(3)步的CPU代价和第(4)步的外存操作代价组成。
对于第(3)步操作,虽然一般情况下CPU操作代价相对于外存操作来说较小,实际当中,尤其是在出现频繁换页的情况下,如果第(3)步的操作代价太高的话,将会影响到系统性能。
对于第(4)步的外存IO操作,假设(i)缓冲区中无空闲空间放置新的请求页,(ii)数据页访问序列为:r1,r2,...,rN,其中发生页缺失的序列是:r′1,r′2,...,r′M(M≤N),(iii)访问r1(1≤i≤N)的IO代价为
Figure BSA00000507956900011
则处理整个数据页访问序列的外存IO操作代价如公式(1)所示。
C Total = Σ i = 1 N C r i - - - ( 1 )
第(4)步操作的目标就是最小化访问n个数据页的IO总代价,当请求页r在缓冲区中时,可以直接得到,这时,访问外存的IO代价为Cr=0,因此,公式(1)可以简化为如下的公式(2)。
C Total = Σ j = 1 M C r ′ j - - - ( 2 )
假设M次页缺失对应的M个置换页中,有M′个数据页在缓冲区进行了修改,从缓冲区写回外存的代价用CW表示,从外存读入缓冲区的代价用CR表示。相应的,磁盘上的操作代价用
Figure BSA00000507956900022
表示,而闪存上的操作代价用
Figure BSA00000507956900023
Figure BSA00000507956900024
表示。对于磁盘来说,已有方法[3-9]的基本假设是磁盘的读写代价相同,即
Figure BSA00000507956900025
公式(2)变为公式(3),其中
Figure BSA00000507956900026
Figure BSA00000507956900027
统一用C表示。
C Total D = Σ j = 1 M C r ′ j = M ′ ( C R D + C W D ) + ( M - M ′ ) C R D = M ′ C W D + MC R D = kMC , ( 1 ≤ k ≤ 2 ) - - - ( 3 )
因此,对于磁盘来说,降低n个数据页的IO操作代价
Figure BSA00000507956900029
可以通过减少页缺失次数M来获得,即降低缺页率(提高命中率)来获得。缺页率反映了必须从辅存读入缓冲区的数据页的比例。2Q(双队列方法)、ARC(自适应的置换方法)、LIRS(低内部访问最近集合方法)、CLOCK(时钟方法)、LRU-K(k个最近最少使用方法)、FBR(基于频率的置换方法)和LRFU(最近及最不频繁使用方法)等算法主要通过使用启发式方法来提高系统的性能,通过考虑数据页在缓冲区中的滞留时间和使用频率来减少缺页率。
具有不对称存取时间的缓冲区置换问题可模拟成加权缓冲区问题,其目的是最小化请求序列的总代价。针对该问题,在“New results onserver problems,SIAM J.Discrete Math.,vol.4,no.2,pp.172-181,1991.”一文中提出了复杂度为0(sn2)的最优离线算法,其中s表示缓冲区中数据页的个数,n表示请求序列的长度。由于该算法的时间和空间复杂度很高,即使提前知道完整的请求序列,其运行也需要耗费大量的时间和空间资源。
对于在线算法,不可能提前知道任何未来的请求序列。研究者已经提出了许多在线的基于闪存的缓冲区管理算法。由于闪存的读写代价不对称,因此公式(2)变为公式(4)。
C Total F = Σ j = 1 M C r ′ j = M ′ ( C R F + C W F ) + ( M - M ′ ) C R F = M ′ C W F + M C R F - - - ( 4 )
注意在公式(4)中,
Figure BSA000005079569000211
中包含由于写出操作引起的擦除操作的代价。可见,对于闪存来说,由于其读写代价不对称,单纯减少随机写操作的次数并不一定能够降低IO操作的总代价。其外存IO操作代价
Figure BSA000005079569000212
受两个因素的影响一一读次数和写次数。假设降低写操作的次数M′所节省的代价为
Figure BSA000005079569000213
因此造成读次数增多所带来的额外代价为
Figure BSA000005079569000214
则一个基于闪存的缓冲区算法通过降低写操作的次数所获得的好处为
Figure BSA000005079569000215
如果置换算法设计不合理,导致δ<0,则系统性能反而下降。同时,已有的基于闪存的缓冲区置换算法的基本假设是闪存的随机读代价相对于随机写代价来说可忽略不计,如图1所示,该假设与实际情况不符,即使在某种类型的闪存硬盘上δ>0,在其它类型的闪存硬盘上也可能出现δ<0的情况。
考虑闪存的缓冲区策略(FAB)维护了一个块层LRU队列,同一物理块的数据页被聚集到一起。当命中一个数据页时,包含该数据页的整个块都移动到LRU队列的头部。当发生缺页时,包含最多数据页的块将被置换出缓冲区,所有这个块中的已修改页都将写回闪存。FAB主要用在多数写请求都是顺序写的便携式媒体播放器上。
在“Bplru:A buffer management scheme for improving randomwrites in flash storage,in FAST,2008,pp.239-252.”一文中的提出的BPLRU(块填充最近最少使用方法)也维护了一个块层LRU队列。与FAB不同,BPLRU使用SSD内部的RAM作为缓冲区,将随机写变成顺序写来提高写操作的效率和减少擦除操作的次数。然而,这种方法并不能真正减少内存缓冲区中写请求的次数。在“Cflru:a replacementalgorithm for flash memory,in CASES,2006,pp.234-241.”一文中提出的CFLRU(干净页优先最近最少使用方法)是利用闪存读写性能的不对称性提出一种优先置换只读页的缓冲区置换策略,这种策略假设闪存的写代价远远大于读代价。CFLRU的基本思想如图2所示。其中LRU队列分成两个部分:工作区(Working Region)和置换区(Clean-FirstRegion)。每当发生缺页中断时,如果在置换区中存在只读的数据页,CFLRU就会从中选择最近最少使用的只读页进行置换,如图2的p6。只有当置换区中没有只读页时,才选择队列尾部的修改页p7进行置换。置换区的大小是由参数w控制的。与LRU策略相比,CFLRU在很大程度上减少了对闪存的写操作,但对于不同类型的闪存来说,所需的读写操作代价的变化非常大,在某些类型的闪存上可能会出现性能下降的问题。
基于相同的思想,文献“Flashing up the storage layer.Proceedings of the VLDB Endowment,2008,1(1):514-525”将CFLRU置换区中的数据页根据其修改状态组织为不同的队列,从而可以将选择置换页操作的时间复杂度降为0(1)。在“Cfdc:a flash-awarereplacement policy for database buffer management.In:Boncz PA,ed.Proceedings of the Fifth International Workshop on DataManagement on New Hardware.New York:ACM Press,2009.15-20”一文中,通过对CFLRU置换区中的数据页进行重新组织来提升CFLRU算法的执行效率。如图3所示,CFDC的缓冲区也分为两部分,分别是工作区(Working Region)和置换区(Priority Region),其中Priority Region和CFLRU的Clean-First Region相对应。在CFDC的置换区中,根据数据页是否为修改页将其组织到两个队列中,其中只读页放在干净页队列中,所有的修改页放在不同的聚类中,这些聚类用脏页队列进行组织,同一个聚类中修改页的物理位置比较接近。和FAB算法的块层LRU算法相比,CFDC中的块大小是可变的。
但是,以上方法的主要不足在于:1、针对磁盘设计的缓冲区策略假定所有对辅存的物理操作有着相同的存取代价,因此无法利用闪存读速度快的优势,并且无法避免闪存写操作代价高这个固有缺陷;2、针对闪存设计的缓冲区策略假设闪存的读代价与昂贵的写操作代价相比是可以忽略的,这与实际的情况不符。3、针对闪存设计的缓冲区策略都没有考虑不同的闪存的读写代价不对称性的差异,只是针对某一款闪存设计缓冲区策略。4、针对闪存设计的缓冲区策略都没有考虑不同数据页的置换代价各不相同的问题。
发明内容
针对现有技术存在的问题,本发明的目的在于提供一种能提高系统性能、适应各种闪存以及可以在只读页和修改页之间进行公平选择的缓冲区置换方法。
为实现上述目的,本发明的基于代价的闪存数据库缓冲区置换方法,具体步骤为:
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)中的只读队列RQ为所有只读数据页的集合,修改队列WQ为所有修改过数据页的集合。
进一步,只读队列RQ和修改队列WQ中的每个数据页分别按照权值的大小依次排序,权值最大的排在队列头部,权值最小的排在队列尾部。
进一步,步骤2)中数据页的变量参数包括向后距离r.bkw和数据页的代价r.Cost。
进一步,步骤2)中权值计算公式为r.W=r.Cost/r.bkw。
进一步,所述向后距离r.bkw表示从数据页r最后一次被访问到目前为止系统访问其他数据页的次数。
进一步,所述数据页的代价r.Cost包括只读页置换代价和修改页置换代价。
进一步,所述只读页置换代价为闪存读入一个数据页的代价,修改页置换代价包括将数据页r的内容写回闪存所需的写代价、从闪存读入请求页的代价和将数据页r的内容写回闪存所引起的级联操作的平均代价。
本发明由于采取以上技术方案,其具有以下优点:1、本发明由于采用基于代价的闪存数据库缓冲区置换方法与其他基于闪存的数据库系统的缓冲区置换方法相比,本发明能根据不同性能的闪存进行自适应的策略调整,因此可以应用到不同的闪存硬盘上,并能获得比其他缓冲区方法更好的性能。2、本发明在命中率不下降的前提下,从只读队列或者修改队列中根据数据页的权值公平的选择合适的置换页,能减少对闪存的写操作,减少了对闪存的磨损并提高了系统的性能。3、本发明能很好的处理序列访问模式和长循环访问模式,从而与其他基于闪存提出的的缓冲区管理方法相比,能取得更好的性能,适应各种闪存及各种存取模式。
附图说明
图1为NAND闪存随机读(RR)和随机写(RW)消耗的时间比例,X轴为9种闪存硬盘,1是三星MCAQE32G8APP-0XA,2是三星K9WAG08U1A,3是三星K9XXG08UXM,4是三星K9F1208R0B,5是三星K9GAG08B0M,6是现代HY27SA1G1M,7是三星K9K1208U0A,8是三星K9F2808Q0B,9是三星MCAQE32G5APP;
图2为CFLRU置换策略示意图;
图3为CFDC置换策略示意图;
图4为本发明的缓冲区组织方式,R表示只读页,W表示修改页,两个队列的队头为最左边权值最大的数据页;
图5为本发明的基于代价的闪存数据库缓冲区置换方法的总体流程示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
如图4所示,本发明采用的缓冲区中数据页的组织方式为:缓冲区中的数据页按照是否被修改过,分别存储到两个不同的队列中,分别是只读队列RQ和修改队列WQ,其中,只读队列RQ用来存放只读的页,修改队列WQ用来存放修改过的页。根据数据页的变量参数对缓冲区的数据页赋予权值并排序。
如图5所示,本发明的基于代价的闪存数据库缓冲区置换方法包括如下步骤:
1)若CPU发出请求的数据页r被命中,即该数据页在内存缓冲区中,则判断r是否在只读队列RQ中;若不在内存缓冲区中,进行步骤4)的操作;
2)上述步骤1)中,若r不在只读队列RQ中,设定请求页r的状态,将其计数器加1,并将其移动到修改队列WQ的头部;
3)上述步骤1)中,若r在只读队列RQ中,则判断CPU的请求是否是要修改r;若是要修改r,则设定请求页r的状态,将其计数器加1,并将其移动到修改队列WQ的头部;若仅是读r,则设定请求页r的状态,将其计数器加1,并将其移动到只读队列RQ的头部;4)若CPU发出请求的数据页r未被命中,即该数据页不在内存缓冲区中,则判断缓冲区是否已满;若缓冲区不满,从闪存存取请求页,并重复步骤3)的过程;
5)上述步骤4)中,若缓冲区已满,则判断队列RQ和WQ是否是非空的;若都是非空的,则比较RQ和WQ队尾处两个数据页的权值,并将权值较小的一个数据页候选为置换页;否则,从非空的那个队列中选择队尾处的数据页为置换页;
6)若置换页是在WQ中选择的,还需要将置换页的内容写回闪存,然后才能从闪存存取请求页;否则,直接从闪存存取请求页;
7)存取到请求页之后重复步骤3)的过程。
综上所述,在本发明的基于代价的闪存数据库缓冲区置换方法中,通过将数据页的置换代价和其驻留内存的影响相结合,为每个数据页附加一个权值,需要选择置换页时,选择具有最小权值的数据页,从而可以在延长修改页驻留缓冲区的同时,不至于使其长期占用缓冲区中的有效空间,由于该权值会根据不同闪存的读写代价进行动态调整,因此可以适用于不同类型的硬盘。进一步,通过分析本方法的特点,得出了同类型数据页权值关系稳定性的结论,从而将内存的CPU操作代价从O(klogk)降低为0(1)。
以下通过公式对本发明的方法加以验证:
定义1:(向后距离)假定r是缓冲区中的数据页,r的向后距离r.bkw表示从r最后一次被访问到目前为止系统访问数据页的次数。
定义1提到的向后距离可在算法中用于预测未来的访问情况。例如,假定访问序列为r1,r2,r4,r5,r4,r3,在r3被访问后,根据定义1,r1.bkw=6,r2.bkw=5,r3.bkw=1,r4.bkw=2,r5.bkw=3。假设缓冲区的大小是5,即所有数据页都在缓冲区中,如果需要选择置换页的话,由于r1.bkw=6,因此,r1可以作为置换页被移出缓冲区为新来的请求页准备空间。
在此方法中,缓冲区的每个数据页r附加有三个变量,第一个是F,用以标识r是否被修改过,r.F=Read表示r为只读页,r.F=Write表示r为修改页;第二个是向后距离bkw,最后一个是权值W,用以表示随着时间的推移,r驻留内存能够节省的代价,W的值根据公式(5)得到。
r.W=r.Cost/r.bkw                        (5)
其中Cost表示r被换出并且读入请求页时需要付出的IO代价,当r为只读页,即r.F=Read时,r.Cost等于从闪存读入一个数据页的代价;当r为修改页,即r.F=Write时,r.Cost由三部分代价组成:(1)将r的内容写回闪存所需的写代价,(2)从闪存读入请求页的代价,(3)将r的内容写回闪存所引起的级联操作的平均代价。注意r.Cost仅表示将r换出时需要付出的具体操作代价,该代价不包含由于r驻留缓冲区对系统性能造成的影响。如果仅仅根据r.Cost作为挑选置换页的标准,则只读页将首先被强制换出。由于r.bkw表示从r最后一次被访问以来系统访问其它数据页的次数,通过比较不同数据页的向后距离,可以预测这些数据页在未来被访问的可能性。因此,我们使用加权值r.W作为挑选置换页的标准。r.W通过将r的换出代价和其向后距离综合考虑,可以表示随着时间的变化,r因驻留缓冲区对系统性能贡献的变化情况。只读页和修改页的置换代价可以通过闪存硬盘制造商公开的资料获取,或者通过执行一定数量的随机读写操作后取平均值得到。
采用数据页的组织方式为:通过判断缓冲区中的页是否被修改过,分别存储到只读队列和修改队列中,每个数据页按照权值的大小排序。
对于缓冲区中的非请求页而言,所有的只读页在处理请求页前后的排序关系保持不变,所有的修改页在处理请求页前后的排序关系也保持不变。由于修改页的置换代价较大,在系统处理请求页之后其顺序可能需要调整到只读页前面,因此在调整数据页的顺序时,可以从权值最小的修改页开始向前调整,而只读页不需要调整。当碰到一个修改页r时,假设其前面的修改页为r1,则只需将位于r和r1之间的只读页的权值与r的权值相比较,从而将r调整到合适的位置。这就使得排序操作的时间复杂度降低为0(k),k为缓冲区的大小,从而将整个方法的时间复杂度降低为0(k)。每次选择置换页时,只需要比较两个队列尾部两个数据页的权值,选择权值较小的数据页即可。
为了降低时间复杂度,需要解决两个问题:(1)每个被处理的请求页应调整到队列的哪个位置?(2)如何解决每次处理请求页时修改所有数据页权值的问题?
定理1:r1和r2为缓冲区中的两个数据页,并且r1.F=r2.F。若r1.bkw>r2.bkw,则r1.W<r2.W。
定理1说明了如果r1.F=r2.F,则最近使用的数据页的权值大。根据定义1,当前请求页的向后距离为1,因此,对于第(1)个问题,每个被处理的请求页因为在相应队列中有最大权值,只需简单放置在相应队列的队头位置即可。对于第(2)个问题,根据定理1,每次处理请求页时,缓冲区中其它页的相对位置保持不变,因此,为了简化在每次访问时需要修改所有数据页的权值问题,引入一个全局计数器C,每次处理一个请求页时,C的值加1,同时为每个数据页引入一个新的时间戳变量T,用来表示其最后一次作为请求页时的访问时间,T的取值并非真正的时间值,而是当前的计数器值。这样,就可以将此方法的时间复杂度从0(k)降低到0(1)。
推论1:对于只读页或者修改页队列中的两个数据页r1,r2,即r1.F=r2.F,若r1.W>r2.W,则r1.T>r2.T。
证明:由于r1.F=r2.F,则r1.Cost=r2.Cost。
由于r1.W>r2.W,根据公式(5),可知r1.bkw<r2.bkw。
根据算法2,r1.bkw=C-r1.T,即r1.T=C-r1.bkw,r2.T=C-r2.bkw。
由于r1.bkw<r2.bkw,因此r1.T>r2.T。
证毕。
推论2:只读页或者修改页队列中,从队头至队尾,数据页的T值按照降序排序。
证明:由于只读页和修改页队列中的数据页的权值按降序排序,根据推论1,可知数据页的T值按照降序有序。
证毕。
推论1说明在同一个数据页队列中,若一个数据页权值越大,则其T值越大,而推论2则说明了在只读页或者修改页队列中,数据页的T值按照降序有序。这就为我们处理计数器数值溢出提供了便利。我们用rMax.T-rMm.T表示最大T值的数据页和最小T值的数据页之间T值之差。其中rMax为两个数据页队列的队头元素中T值较大的数据页,而rMin为两个数据页队列队尾元素中T值较小的数据页。rMax.T-rMin.T的值越小,说明数据页的访问模式趋向于均匀分布的随机访问模式;反之,若rMax.T-rMin.T越大,说明部分数据页循环访问。这时,在没有数据页换出的情况下,部分数据页多次循环访问将造成计数器的值无谓增大,为了消除计数器数值溢出的情况,我们用ρk来控制rMax.T-rMin.T的大小,ρ为自定义变量,其值的确定根据实验情况而定,k为缓冲区大小。若rmax.T-rMin.T≤ρk(显然ρ≥1)成立,则给r.T赋值并将计数器值加1,并将其插入队列Q的头部;否则说明缓冲区中存在循环存取的序列,这时,为了控制计数器值无谓增大的情况,只需要交换队头元素p和r的值及位置即可。如果C即将溢出,即C+ρk=CMAX,则将计数器本身及缓冲区中的所有数据页的T值同时减去rMin.T。
上述实施例仅用于说明本发明,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。

Claims (7)

1.基于代价的闪存数据库缓冲区置换方法,具体步骤为:
1)将数据页归类为只读队列(RQ)和修改队列(WQ);
2)根据置换内存缓存数据页所需的不同I/O代价和数据页因驻留内存造成的对系统的影响因素对缓冲区的数据页赋予权值;
3)若CPU发出请求的数据页被命中,即该数据页在内存缓冲区中,则判断数据页是否在只读队列(RQ)中;
4)上述步骤3)中,若被请求的数据页不在只读队列(RQ)中,设定被请求数据页的状态,将被请求数据页的访问计数器加1,并将其移动到修改队列(WQ)的头部;
5)上述步骤3)中,若所述数据页在只读队列RQ中,则判断CPU的请求
是否是要修改数据页;若是要修改数据页,则设定被请求数据页的状态,将其计数器加1,并将其移动到修改队列(WQ)的头部;若仅是读数据页,则设定被请求数据页的状态,将其计数器加1,并将其移动到只读队列(RQ)的头部;
6)若CPU发出请求的数据页未被命中,即该数据页不在内存缓冲区中,则判断缓冲区是否已满;若缓冲区不满,从闪存存取请求页,并重复步骤5)的过程;
7)上述步骤6)中,若缓冲区已满,则判断只读队列(RQ)和修改队列(WQ)是否是非空的;若都是非空的,则比较只读队列(RQ)和修改队列(WQ)队尾处两个数据页的权值,并将权值较小的一个数据页候选为置换页;否则,从非空的只读队列(RQ)或修改队列(WQ)中选择队尾处的数据页为置换页;
8)若置换页是在修改队列(WQ)中选择的,还需要将置换页的内容写回闪存,然后才能从闪存存取请求页;否则,直接从闪存存取请求页;
9)存取到请求页之后重复步骤5)的过程。
2.如权利要求1所述的置换方法,其特征在于,步骤1)中的只读队列(RQ)为所有只读数据页的集合,修改队列(WQ)为所有修改过数据页的集合。
3.如权利要求2所述的置换方法,其特征在于,只读队列(RQ)和修改队列(WQ)中的每个数据页分别按照权值的大小依次排序,权值最大的排在队列头部,权值最小的排在队列尾部。
4.如权利要求3所述的置换方法,其特征在于,步骤2)中数据页的变量参数包括数据页向后访问距离(r.bkw)和访问数据页的时间代价(r.Cost)。
5.如权利要求4所述的置换方法,其特征在于,步骤2)中数据页的权值由访问数据页的时间代价除以数据页向后访问距离来得到,即权值(r.W)=访问数据页的时间代价(r.Cost)/数据页向后的访问距离(r.bkw)。
6.如权利要求5所述的置换方法,其特征在于,所述向后访问距离(r.bkw)表示从数据页最后一次被访问到目前为止系统访问数据页的次数。
7.如权利要求6所述的置换方法,其特征在于,所述数据页的时间代价(r.Cost)包括只读页置换代价和修改页置换代价;所述只读页置换代价为闪存读入一个数据页的代价,修改页置换代价包括将数据页的内容写回闪存所需的写代价、从闪存读入请求页的代价和将数据页的内容写回闪存所引起的级联操作的平均代价。
CN201110144933.4A 2011-05-31 2011-05-31 一种基于代价的闪存数据库缓冲区置换方法 Expired - Fee Related CN102207909B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110144933.4A CN102207909B (zh) 2011-05-31 2011-05-31 一种基于代价的闪存数据库缓冲区置换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110144933.4A CN102207909B (zh) 2011-05-31 2011-05-31 一种基于代价的闪存数据库缓冲区置换方法

Publications (2)

Publication Number Publication Date
CN102207909A CN102207909A (zh) 2011-10-05
CN102207909B true CN102207909B (zh) 2014-03-26

Family

ID=44696751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110144933.4A Expired - Fee Related CN102207909B (zh) 2011-05-31 2011-05-31 一种基于代价的闪存数据库缓冲区置换方法

Country Status (1)

Country Link
CN (1) CN102207909B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123243B (zh) * 2013-04-24 2018-08-03 鸿富锦精密电子(天津)有限公司 数据缓存系统及方法
CN103984736B (zh) * 2014-05-21 2017-04-12 西安交通大学 一种高效的nand闪存数据库系统的缓存管理方法
WO2017015952A1 (zh) * 2015-07-30 2017-02-02 华为技术有限公司 一种高速缓冲存储器中存储数据的替换方法和替换装置
CN107590084A (zh) * 2017-08-22 2018-01-16 浙江万里学院 一种基于分类策略的页级缓冲区改进方法
CN107704401A (zh) * 2017-11-02 2018-02-16 郑州云海信息技术有限公司 一种存储系统中缓存数据的置换方法、系统及存储系统
CN109408408A (zh) * 2018-10-24 2019-03-01 江苏华存电子科技有限公司 一种闪存存储设备中闪存块状态管理表有效存取的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067608A (en) * 1997-04-15 2000-05-23 Bull Hn Information Systems Inc. High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
US20100042776A1 (en) * 2008-08-18 2010-02-18 Dong Young Seo Method and apparatus for providing enhanced write performance using a buffer cache management scheme based on a buffer replacement rule

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067608A (en) * 1997-04-15 2000-05-23 Bull Hn Information Systems Inc. High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
US20100042776A1 (en) * 2008-08-18 2010-02-18 Dong Young Seo Method and apparatus for providing enhanced write performance using a buffer cache management scheme based on a buffer replacement rule

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
向小岩.闪存数据库若干关键问题研究.《中国科学技术大学博士学位论文》.2009,全文.
闪存数据库若干关键问题研究;向小岩;《中国科学技术大学博士学位论文》;20090810;全文 *

Also Published As

Publication number Publication date
CN102207909A (zh) 2011-10-05

Similar Documents

Publication Publication Date Title
CN102207909B (zh) 一种基于代价的闪存数据库缓冲区置换方法
CN107247675B (zh) 一种基于分类预测的缓存选择方法和系统
CN105653591A (zh) 一种工业实时数据分级存储及迁移方法
CN112035061B (zh) 固态硬盘资源分配方法、装置和存储介质
CN104090852A (zh) 管理混合缓存的方法及设备
Guo et al. Parallelism and garbage collection aware I/O scheduler with improved SSD performance
CN111143243A (zh) 一种基于nvm混合内存的缓存预取方法及系统
Das et al. Reuse distance-based probabilistic cache replacement
CN102521049B (zh) 多核间内存调度方法
CN106233265A (zh) 将访问频率层次结构用于逐出目标的选择
Kang et al. Dynamic management of key states for reinforcement learning-assisted garbage collection to reduce long tail latency in SSD
CN106383792A (zh) 一种基于缺失感知的异构多核缓存替换方法
Pan et al. Caching-aware garbage collection to improve performance and lifetime for NAND flash SSDs
US6615316B1 (en) Using hardware counters to estimate cache warmth for process/thread schedulers
Yuan et al. DPW-LRU: An efficient buffer management policy based on dynamic page weight for flash memory in cyber-physical systems
Yuan et al. PR-LRU: A novel buffer replacement algorithm based on the probability of reference for flash memory
Chen et al. The design of an efficient swap mechanism for hybrid DRAM-NVM systems
CN102681792B (zh) 一种固态盘内存分区方法
CN115858510A (zh) 一种评测数据温度并进行动态存储管理的方法及存储介质
CN103020077A (zh) 一种电力系统实时数据库内存管理方法
On et al. FD-Buffer: A cost-based adaptive buffer replacement algorithm for flashmemory devices
CN106569728B (zh) 多磁盘阵列raid共享写缓存的处理方法及装置
CN102097128A (zh) 一种基于闪存的自适应缓冲区置换方法
TWI803179B (zh) 記憶體系統及非揮發性記憶體的控制方法
Campoy et al. Using genetic algorithms in content selection for locking-caches

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140326

Termination date: 20150531

EXPY Termination of patent right or utility model