闪存磁盘混合存储结构中的数据管理方法及系统转让专利

申请号 : CN201210172048.1

文献号 : CN102707904B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 崔斌吕雁飞李井

申请人 : 北京大学

摘要 :

本发明公开了一种闪存磁盘混合存储结构中的数据管理方法及系统,涉及数据管理技术领域,本发明通过概率来对页面的操作进行控制,节省了闪存空间,减小了闪存的写操作,并提高了数据管理的性能。

权利要求 :

1.一种闪存磁盘混合存储结构中的数据管理方法,其特征在于,所述方法包括以下步骤:S1:当需要对当前页面进行操作时,判断所述当前页面是否在内存中,若是,则直接在所述内存对所述当前页面进行相应的读/写操作,并结束所述方法,否则执行步骤S2;

S2:判断所述当前页面是否在闪存中,若是,则执行步骤S3,否则执行步骤S5;

S3:生成第一随机数,若所述第一随机数小于预设的提升概率Pelevate,则执行步骤S4,否则直接在所述闪存中对所述当前页面进行相应的读/写操作,并结束所述方法,所述第一随机数的取值范围为0~1;

S4:判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入所述闪存,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并结束所述方法,否则申请空的内存页面,直接将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并结束所述方法;

S5:判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入磁盘或所述闪存中,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,否则申请空的内存页面,将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作;

其中,所述内存中待替换的页面为所述内存中最近最少被操作的页面。

2.如权利要求1所述的方法,其特征在于,在所述内存已满的情况下,执行所述方法第一预设次数后,步骤S5之后还包括以下步骤:S601:比较在执行所述方法第一预设次数内,需要进行操作的页面p直接在所述闪存中进行操作所产生的时间代价和写入所述内存中后进行操作所产生的时间代价;

S602:若写入内存中后进行操作所产生的时间代价较少,则增大所述预设的提升概率Pelevate,否则减小所述预设的提升概率Pelevate。

3.如权利要求2所述的方法,其特征在于,所述需要进行操作的页面p直接在所述闪存中进行操作的时间代价Cue通过以下公式进行计算,Cue=RpCfr+WpCfw,

所述要进行操作的页面p写入所述内存中后进行操作所产生的时间代价Ce通过以下公式进行计算,Ce=RmevictCfr+WmevictCfw+Cfw,

其中,Rp为所述要进行操作的页面p被读取次数,Wp为所述要进行操作的页面p被写入次数,Cfr为所述闪存读取一个页面的时间代价,Cfw为所述闪存写入一个页面的时间代价,Rmevict为所述内存中待替换的页面pmevict被读取次数,Wmevict为所述内存中待替换的页面pmevict被写入次数。

4.如权利要求1所述的方法,其特征在于,步骤S5中,将所述内存中替换出的页面写入磁盘或所述闪存中时,具体包括以下步骤:S51:找出所述内存中待替换的页面;

S52:生成第二随机数,若所述第二随机数小于预设的下沉概率Psink,则执行步骤S53,否则将所述内存中待替换的页面写入所述磁盘,并执行步骤S55,所述第二随机数的取值范围为0~1;

S53:判断所述闪存是否已满,若是,则执行步骤S54,否则直接将所述内存中待替换的页面写入所述闪存,并执行步骤S55;

S54:找出所述闪存中待替换的页面,将所述闪存中待替换的页面写入所述磁盘,并将所述内存中待替换的页面写入所述闪存;

S55:执行后续步骤。

5.如权利要求4所述的方法,其特征在于,所述闪存中待替换的页面为所述闪存中最近最少被操作的页面。

6.如权利要求5所述的方法,其特征在于,在所述内存和闪存均已满的情况下,执行所述方法第二预设次数后,步骤S5之后还包括以下步骤:S611:比较在执行所述方法第二预设次数内,所述内存中待替换的页面pmevict写入所述闪存所产生的时间代价和写入所述磁盘所产生的时间代价;

S612:若写入所述闪存所产生的时间代价较少,则增大所述预设的下沉概率Psink,否则减小所述预设的下沉概率Psink。

7.如权利要求6所述的方法,其特征在于,所述内存中待替换的页面pmevict写入所述闪存所产生的时间代价Csinkf通过以下公式进行计算,Csinkf=RmevictCfr+WmevictCfw+RfevictCdr+WfevictCdw+Cfw,所述内存中待替换的页面pmevict写入所述磁盘所产生的时间代价Csinkd通过以下公式进行计算,Csinkd=RmevictCdr+WmevictCdw+RfevictCfr+WfevictCfw,其中,Cfr为所述闪存读取一个页面的时间代价,Cfw为所述闪存写入一个页面的时间代价,Cdr为所述磁盘读取一个页面的时间代价,Cdw为所述磁盘写入一个页面的时间代价,Rmevict为所述内存中待替换的页面pmevict被读取次数,Wmevict为所述内存中待替换的页面pmevict被写入次数,Rfevict为所述闪存中待替换的页面pfevict被读取次数,Wfevict为所述闪存中待替换的页面pfevict被写入次数。

8.一种闪存磁盘混合存储结构中的数据管理系统,其特征在于,所述系统包括:内存判断模块,用于当需要对当前页面进行操作时,判断所述当前页面是否在内存中,若是,则直接在所述内存对所述当前页面进行相应的读/写操作,并停止,否则执行闪存判断模块;

闪存判断模块,用于判断所述当前页面是否在闪存中,若是,则执行随机数生成模块,否则执行磁盘操作模块;

随机数生成模块,用于生成第一随机数,若所述第一随机数小于预设的提升概率Pelevate,则执行闪存操作模块,否则直接在所述闪存中对所述当前页面进行相应的读/写操作,并停止,所述第一随机数的取值范围为0~1;

闪存操作模块,用于判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入所述闪存,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并停止,否则申请空的内存页面,直接将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并停止;

磁盘操作模块,用于判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入磁盘或所述闪存中,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,否则申请空的内存页面,将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作;

其中,所述内存中待替换的页面为所述内存中最近最少被操作的页面。

说明书 :

闪存磁盘混合存储结构中的数据管理方法及系统

技术领域

[0001] 本发明涉及数据管理技术领域,特别涉及一种闪存磁盘混合存储结构中的数据管理方法及系统。

背景技术

[0002] 虽然闪存技术在近些年来得到了较快的发展,但是与传统磁盘相比,基于作为闪存的固态硬盘(SSD)容量仍然有限,价格也偏高。目前固态硬盘的容量和价格介于磁盘和内存中间,因此,可以将固态硬盘部署在内存和磁盘中间,作为磁盘数据的缓存而组成混合存储结构。
[0003] 典型的混合存储结构如图1所示,硬盘上所有数据存储和组织数据页。一个页面在被访问之前需要加载到主内存。由于闪存与磁盘相比具有更好的性能,它可以作为主内存和磁盘之间的缓存,即当页面内存发生错失,系统将首先检查闪存。仅当闪存也不包含该页面时,磁盘才会被访问。
[0004] 现有的混合存储设计方法主要基于几种确定性的管理方法。
[0005] 1)全包含方法。在这种结构中,闪存上包含了所有的内存的页面。因此内存中替换出的干净页面可以直接替换出。但是这种方法的缺点是内存里包含所有的闪存页面会浪费一定的闪存空间,使总的缓存容量减少。
[0006] 2)降级方法。这种方法与全包含不同,内存中与闪存中的页面不同。所以与全包含的方法相比,降级方法可以更好地扩大有效的总缓冲区容量。但是从内存中替换出的页面要经常性的放置到闪存中,使得闪存写操作比较多,而闪存写操作代价又比较大。
[0007] 3)基于频率的方法。这种方法会统计各个页面的访问频率,将访问频率较高的页面放置在内存和闪存中,以达到降低访问代价的目的。但是统计频率的存储和计算代价比较大,要找到需要替换的页面也需要较长的时间,给这种方法的使用带来一定的限制。

发明内容

[0008] (一)要解决的技术问题
[0009] 本发明要解决的技术问题是:如何节省闪存空间,减小闪存的写操作,并提高数据管理的性能。
[0010] (二)技术方案
[0011] 为解决上述技术问题,本发明提供了一种闪存磁盘混合存储结构中的数据管理方法,所述方法包括以下步骤:
[0012] S1:当需要对当前页面进行操作时,判断所述当前页面是否在内存中,若是,则直接在所述内存对所述当前页面进行相应的读/写操作,并结束所述方法,否则执行步骤S2;
[0013] S2:判断所述当前页面是否在闪存中,若是,则执行步骤S3,否则执行步骤S5;
[0014] S3:生成第一随机数,若所述第一随机数小于预设的提升概率Pelevate,则执行步骤S4,否则直接在所述闪存中对所述当前页面进行相应的读/写操作,并结束所述方法,所述第一随机数的取值范围为0~1;
[0015] S4:判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入所述闪存,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并结束所述方法,否则申请空的内存页面,直接将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并结束所述方法;
[0016] S5:判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入磁盘或所述闪存中,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,否则申请空的内存页面,将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作。
[0017] 优选地,所述内存中待替换的页面为所述内存中最近最少被操作的页面。
[0018] 优选地,在所述内存已满的情况下,执行所述方法第一预设次数后,步骤S5之后还包括以下步骤:
[0019] S601:比较在执行所述方法第一预设次数内,需要进行操作的页面p直接在所述闪存中进行操作所产生的时间代价和写入所述内存中后进行操作所产生的时间代价;
[0020] S602:若写入内存中后进行操作所产生的时间代价较少,则增大所述预设的提升概率Pelevate,否则减小所述预设的提升概率Pelevate。
[0021] 优选地,所述需要进行操作的页面p直接在所述闪存中进行操作的时间代价Cue通过以下公式进行计算,
[0022] Cue=RpCfr+WpCfw,
[0023] 所述要进行操作的页面p写入所述内存中后进行操作所产生的时间代价Ce通过以下公式进行计算,
[0024] Ce=RmevictCfr+WmevictCfw+Cfw,
[0025] 其中,Rp为所述要进行操作的页面p被读取次数,Wp为所述要进行操作的页面p被写入次数,Cfr为所述闪存读取一个页面的时间代价,Cfw为所述闪存写入一个页面的时间代价,Rmevict为所述内存中待替换的页面pmevic被读取次数,Wmevict为所述内存中待替换的页面pmevict被写入次数。
[0026] 优选地,步骤S5中,将所述内存中替换出的页面写入磁盘或所述闪存中时,具体包括以下步骤:
[0027] S51:找出所述内存中待替换的页面;
[0028] S52:生成第二随机数,若所述第二随机数小于预设的下沉概率Psink,则执行步骤S53,否则将所述内存中待替换的页面写入所述磁盘,并执行步骤S55,所述第二随机数的取值范围为0~1;
[0029] S53:判断所述闪存是否已满,若是,则执行步骤S54,否则直接将所述内存中待替换的页面写入所述闪存,并执行步骤S55;
[0030] S54:找出所述闪存中待替换的页面,将所述闪存中待替换的页面写入所述磁盘,并将所述内存中待替换的页面写入所述闪存;
[0031] S55:执行后续步骤。
[0032] 优选地,所述闪存中待替换的页面为所述闪存中最近最少被操作的页面。
[0033] 优选地,在所述内存和闪存均已满的情况下,执行所述方法第二预设次数后,步骤S5之后还包括以下步骤:
[0034] S611:比较在执行所述方法第二预设次数内,所述内存中待替换的页面pmevict写入所述闪存所产生的时间代价和写入所述磁盘所产生的时间代价;
[0035] S612:若写入所述闪存所产生的时间代价较少,则增大所述预设的下沉概率Psink,否则减小所述预设的下沉概率Psink。
[0036] 优选地,所述内存中待替换的页面pmevict写入所述闪存所产生的时间代价Csin kf通过以下公式进行计算,
[0037] Csin kf=RmevictCfr+WmevictCfw+RfevictCdr+WfevictCdw+Cfw,
[0038] 所述内存中待替换的页面pmevict写入所述磁盘所产生的时间代价Csin kd通过以下公式进行计算,
[0039] Csin kd=RmevictCdr+WmevictCdw+RfevictCfr+WfevictCfw,
[0040] 其中,Cfr为所述闪存读取一个页面的时间代价,Cfw为所述闪存写入一个页面的时间代价,Cdr为所述磁盘读取一个页面的时间代价,Cdw为所述磁盘写入一个页面的时间代价,Rmevict为所述内存中待替换的页面pmevict被读取次数,Wmevict为所述内存中待替换的页面pmevict被写入次数,Rfevict为所述闪存中待替换的页面pfevict被读取次数,Wfevict为所述闪存中待替换的页面pfevict被写入次数。
[0041] 本发明还公开了一种闪存磁盘混合存储结构中的数据管理系统,所述系统包括:
[0042] 内存判断模块,用于当需要对当前页面进行操作时,判断所述当前页面是否在内存中,若是,则直接在所述内存对所述当前页面进行相应的读/写操作,并停止,否则执行闪存判断模块;
[0043] 闪存判断模块,用于判断所述当前页面是否在闪存中,若是,则执行随机数生成模块,否则执行磁盘操作模块;
[0044] 随机数生成模块,用于生成第一随机数,若所述第一随机数小于预设的提升概率Pelevate,则执行闪存操作模块,否则直接在所述闪存中对所述当前页面进行相应的读/写操作,并停止,所述第一随机数的取值范围为0~1;
[0045] 闪存操作模块,用于判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入所述闪存,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并停止,否则申请空的内存页面,直接将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并停止;
[0046] 磁盘操作模块,用于判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入磁盘或所述闪存中,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,否则申请空的内存页面,将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作。
[0047] (三)有益效果
[0048] 本发明通过概率来对页面的操作进行控制,节省了闪存空间,减小了闪存的写操作,并提高了数据管理的性能。

附图说明

[0049] 图1是按照本发明一种实施方式的闪存磁盘混合存储结构中的数据管理方法的流程图;
[0050] 图2是Psink对所述方法性能的影响的示意图;
[0051] 图3是Pelevate对所述方法性能的影响的示意图;
[0052] 图4是在低速闪存的情况下,在B+树上的闪存内存比和方法性能之间的对应关系示意图;
[0053] 图5是在高速闪存的情况下,在B+树上的闪存内存比和方法性能之间的对应关系示意图;
[0054] 图6是在低速闪存的情况下,在TPC-B数据集上的闪存内存比和方法性能之间的对应关系示意图;
[0055] 图7是在高速闪存的情况下,在TPC-B数据集上的闪存内存比和方法性能之间的对应关系示意图;
[0056] 图8是在低速闪存的情况下,在TPC-C数据集上的闪存内存比和方法性能之间的对应关系示意图;
[0057] 图9是在高速闪存的情况下,在TPC-C数据集上的闪存内存比和方法性能之间的对应关系示意图;
[0058] 图10是各种方法的时间代价的比较图;
[0059] 图11是内存闪存比和性能之间的对应关系图。

具体实施方式

[0060] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0061] 图1是按照本发明一种实施方式的闪存磁盘混合存储结构中的数据管理方法的流程图;参照图1,所述方法包括以下步骤:
[0062] S1:当需要对当前页面进行操作时,判断所述当前页面是否在内存中,若是,则直接在所述内存对所述当前页面进行相应的读/写操作,并结束所述方法,否则执行步骤S2;
[0063] S2:判断所述当前页面是否在闪存中,若是,则执行步骤S3,否则执行步骤S5;
[0064] S3:生成第一随机数,若所述第一随机数小于预设的提升概率Pelevate,则执行步骤S4,否则直接在所述闪存中对所述当前页面进行相应的读/写操作,并结束所述方法,所述第一随机数的取值范围为0~1;
[0065] S4:判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入所述闪存,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并结束所述方法,否则申请空的内存页面,直接将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并结束所述方法;
[0066] S5:判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入磁盘或所述闪存中,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,否则申请空的内存页面,将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作。
[0067] 本实施方式中,所述内存中待替换的页面的选定采用最近最少使用算法(Least Recently Used,LRU),优选地,所述内存中待替换的页面为所述内存中最近最少被操作的页面。
[0068] 为便于根据实际情况进行适应性调整,优选地,在所述内存已满的情况下,执行所述方法第一预设次数后,步骤S5之后还包括以下步骤:
[0069] S601:比较在执行所述方法第一预设次数内,需要进行操作的页面p直接在所述闪存中进行操作所产生的时间代价和写入所述内存中后进行操作所产生的时间代价;
[0070] S602:若写入内存中后进行操作所产生的时间代价较少,则增大所述预设的提升概率Pelevate,否则减小所述预设的提升概率Pelevate,所述预设的提升概率Pelevate可采用固定步长增大和减小,也可采用按比例增大和减小。
[0071] 在此情况下,所述要进行操作的页面p将在所述内存中被访问,而所述内存中待替换的页面pmevict将被写入所述闪存(一个写代价Cfw),并且所述内存中替换出的页面以后会在闪存上被读写,优选地,所述需要进行操作的页面p直接在所述闪存中进行操作的时间代价Cue通过以下公式进行计算,
[0072] Cue=RpCfr+WpCfw,
[0073] 在这种情况下,所述需要进行操作的页面p还会访问闪存,所述要进行操作的页面p写入所述内存中后进行操作所产生的时间代价Ce通过以下公式进行计算,[0074] Ce=RmevictCfr+WmevictCfw+Cfw,
[0075] 其中,Rp为所述要进行操作的页面p被读取次数,Wp为所述要进行操作的页面p被写入次数,Cfr为所述闪存读取一个页面的时间代价,Cfw为所述闪存写入一个页面的时间代价,Rmevict为所述内存中待替换的页面pmevic被读取次数,Wmevict为所述内存中待替换的页面pmevict被写入次数。
[0076] 优选地,步骤S5中,将所述内存中替换出的页面写入磁盘或所述闪存中时,具体包括以下步骤:
[0077] S51:找出所述内存中待替换的页面;
[0078] S52:生成第二随机数,若所述第二随机数小于预设的下沉概率Psink,则执行步骤S53,否则将所述内存中待替换的页面写入所述磁盘,并执行步骤S55,所述第二随机数的取值范围为0~1;
[0079] S53:判断所述闪存是否已满,若是,则执行步骤S54,否则直接将所述内存中待替换的页面写入所述闪存,并执行步骤S55;
[0080] S54:找出所述闪存中待替换的页面,将所述闪存中待替换的页面写入所述磁盘,并将所述内存中待替换的页面写入所述闪存;
[0081] S55:执行后续步骤。
[0082] 本实施方式中,所述闪存中待替换的页面的选定也采用最近最少使用算法,优选地,所述闪存中待替换的页面为所述闪存中最近最少被操作的页面。
[0083] 为便于根据实际情况进行适应性调整,在所述内存和闪存均已满的情况下,执行所述方法第二预设次数后,步骤S5之后还包括以下步骤:
[0084] S611:比较在执行所述方法第二预设次数内,所述内存中待替换的页面pmevict写入所述闪存所产生的时间代价和写入所述磁盘所产生的时间代价;
[0085] S612:若写入所述闪存所产生的时间代价较少,则增大所述预设的下沉概率Psink,否则减小所述预设的下沉概率Psink,所述预设的下沉概率Psink可采用固定步长增大和减小,也可采用按比例增大和减小。
[0086] 将替换出的页面放到闪存上,如果此时闪存已满,还要将闪存上的一个页面替换到磁盘上,所以,所述内存中待替换的页面pmevict会从闪存上被访问,所述闪存中待替换的页面pfevict会从磁盘上被访问,优选地,所述内存中待替换的页面pmevict写入所述闪存所产生的时间代价Csinkf通过以下公式进行计算,
[0087] Csin kf=RmevictCfr+WmevictCfw+RfevictCdr+WfevictCdw+Cfw,
[0088] 将替换出的页面放到磁盘上,在这种情况下,所述内存中待替换的页面pmevict会从磁盘访问,优选地,所述内存中待替换的页面pmevict写入所述磁盘所产生的时间代价Csinkd通过以下公式进行计算,
[0089] Csinkd=RmevictCdr+WmevictCdw+RfevictCfr+WfevictCfw,
[0090] 其中,Cfr为所述闪存读取一个页面的时间代价,Cfw为所述闪存写入一个页面的时间代价,Cdr为所述磁盘读取一个页面的时间代价,Cdw为所述磁盘写入一个页面的时间代价,Rmevict为所述内存中待替换的页面pmevict被读取次数,Wmevict为所述内存中待替换的页面pmevict被写入次数,Rfevict为所述闪存中待替换的页面pfevict被读取次数,Wfevict为所述闪存中待替换的页面pfevict被写入次数。
[0091] 下面对本发明的方法与现有技术的方法进行比较。实验中使用了两种数据库基准标准TPC-B和TPC-C,还有一组B+树访问的记录。数据库基准标准的访问记录在PostgreSQL 9.0上运行2GB大小数据库获得。B+树访问的记录则是在B+树上执行5%的插入,5%的删除,10%的更新加上80%的读取操作得到。所有使用的访问记录的信息列在下表中:
[0092]页面数(103) 记录长度(106) 写操作比例
TPC-B 15.1 2.7 18%
TPC-C 155 15.8 16%
B+-tree 39 4.2 9.40%
[0093] 在实验中将本发明的基于概率的管理方法(HyPro)与基于访问频率的混合存储管理方法(Frq-based)、全包含方法(Inclusion)和降级方法(Demotion)进行比较。不同的方法主要比较总的时间代价来评估其性能。另外,还统计了访问次数和CPU时间等。对于闪存的时间代价,我们使用三星的两款固态硬盘的数据分别代表了高端和低端固态硬盘。实验中使用参数列在下表中:
[0094]
[0095]
[0096] 首先,观察参数的变化如何影响性能。我们使用TPC-B基准测试的访问记录并使用低端SSD的代价参数。图2中展示了Psink对所述方法性能(即所述时间代价,也即为I/O时间)的影响。图中还列出了参数调整中统计的Csinkf和Csinkd的数值。可以看出,当Psink=0.15附近时,算法的性能达到最优。而此时Csinkf和Csinkd的值接近相等。这也验证了本发明的参数调整方法。所述方法的性能也与参数Pelevate有关,因为Pelevate控制闪存页面到内存的提升操作。过大的Pelevate值可能会导致过多的页面提升,而太小的数值又不能起到热页面识别的作用。图3为所述方法的性能随Pelevate变化的图像,所述方法的Pelevate在0.01和0.02之间时达到最佳性能。
[0097] 在本实验中,我们将内存的页面数固定在1000,然后从1∶1到10∶1变化闪存内存的比例。也就是说将闪存的大小从1000变化到10000页面。
[0098] 本发明的方法在大部分情况下超过其他方法的性能,在所有的情况下,至少与其他方法有相似的性能。参照图4~5,在B+树的访问记录上,基于频率(Frq-based)的方法有着较好的性能。因为B+树访问时访问的模式基本固定,统计频率可以学习出较好的访问特征。包含(Inclusion)和降级算法(Demotion)相比,在闪存内存比较小时,降级算法比较占优势。这是因为包含中,闪存包含所有的内存页面,这种重复保存浪费了一定量的闪存空间,当闪存内存比较小的时候,浪费现象比较明显。而降级算法中,闪存和内存中保存不同的页面,节省了时间,但是也就需要在内存和闪存中进行频繁的页面调整,带来一定的代价开销,也就造成了在闪存内存比较大时降级算法(Demotion)表现不佳。
[0099] 参照图6~7为在不同闪存下,各个方法在TPC-B上性能的比较。
[0100] 在实际系统中,总时间是I/O时间和计算时间的总和,前面我们只比较了I/O时间,下面图8~9列出了不同方法的运行时间比较。也就是去除I/O时间后的计算时间,使用的数据集是TPC-C。可以看出基于频率的方法使用最多的计算时间。这是因为在不同频率中选择出最少访问的页面至少需要log(n)的访问时间代价。包含和降级算法所用的时间最少,因为两者所要维护的数据结构最少。参照图10,我们的方法使用的时间比包含和降级方法要多,但是由前面的实验可以看出,与本发明的方法在时间代价上取得优势来说,多出计算时间可以忽略不计,所以我们方法有着最好的总时间代价。
[0101] 在一个混合存储系统中,为了使整体的性价比达到最优,通常闪存内存要保持在一定的比例。最后,我们讨论比较合理的闪存和内存的比例。每GB存储下的成本如前表中列出的数据。所以内存与闪存的价格比约为3.37比1。考虑预算为10000,从1到20变化闪存与内存的比例,统计时间代价得到图11。图中显示出,单纯使用内存,或使用过大的闪存都不是好的系统设计,比较好的办法是构建混合存储系统。而在实验设置的性能和价格的条件下,闪存内存容量比在5∶1左右时达到比较好的性能。
[0102] 本发明还公开了一种闪存磁盘混合存储结构中的数据管理系统,所述系统包括:
[0103] 内存判断模块,用于当需要对当前页面进行操作时,判断所述当前页面是否在内存中,若是,则直接在所述内存对所述当前页面进行相应的读/写操作,并停止,否则执行闪存判断模块;
[0104] 闪存判断模块,用于判断所述当前页面是否在闪存中,若是,则执行随机数生成模块,否则执行磁盘操作模块;
[0105] 随机数生成模块,用于生成第一随机数,若所述第一随机数小于预设的提升概率Pelevate,则执行闪存操作模块,否则直接在所述闪存中对所述当前页面进行相应的读/写操作,并停止,所述第一随机数的取值范围为0~1;
[0106] 闪存操作模块,用于判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入所述闪存,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并停止,否则申请空的内存页面,直接将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,并停止;
[0107] 磁盘操作模块,用于判断所述内存是否已满,若是,则申请空的内存页面,将所述内存中待替换的页面写入磁盘或所述闪存中,再将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作,否则申请空的内存页面,将所述当前页面写入所述内存中,在所述内存中对所述当前页面进行相应的读/写操作。
[0108] 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。