一种文件系统缓存预读取方法

文档序号:8395968阅读:461来源:国知局
一种文件系统缓存预读取方法
【专利说明】一种文件系统缓存预读取方法
[0001]
技术领域
[0002]本发明涉及磁盘读写操作方法,具体的说就是一种文件系统缓存预读取方法。
【背景技术】
[0003]在磁盘读写操作过程中,磁盘驱动器存取速度通常要比内存存取慢很多。当用户进行数据操作时,直接对磁盘进行读写的方式很容易由于速度慢而阻塞应用程序,同时效率也很低。文件系统缓存就是为了解决这种情况而设计的。缓存通常由高速存储介质组成,读写速度很快,时延较低。
[0004]预读操作即提前预测并读取后续读请求的内容,使得后续读请求能够命中缓存,而不用再次磁盘发起I/o操作。文件系统缓存预读可以减少磁盘I/O的次数,增加单次I/O的数据量,隐藏了后续读请求的读时延,提升了系统的读性能。预读技术的关键在于测准确率,因此,必须对请求进行分析和判断,通过分析缓存中的数据,发现其中的规律,然后利用其中的规律信息采取合适的预读取策略。

【发明内容】

[0005]针对现有技术发展状况,本发明提出了一种在文件读写过程中,对文件系统缓存的预读取方法。
[0006]本发明所述一种文件系统缓存预读取方法,解决上述技术问题采用的技术方案如下:该文件系统缓存预读取方法,在用户程序进行磁盘数据读写时,采用预读取策略提高读写效率,预读取的时机随着价值窗口的滑动情况而定,预读取扇区大小也随价值窗口的变化而改变;该方法通过自适应改变预读取扇区的时机和预读取扇区的大小,有效的提高磁盘读取数据的效率。
[0007]优选的,在进行磁盘数据读写时,进入读操作入口,若滑动价值窗口到命中的缓存扇区,并判断价值窗口是否滑出缓存窗口。
[0008]优选的,当预读取价值窗口滑动在缓存窗口之中时,不进行预读操作,并且重置窗口增长因子α。
[0009]优选的,当预读取价值窗口部分滑出缓存窗口时,进行预读取操作,增长因子α加I。
[0010]优选的,当预读取价值窗口部分滑出缓存窗口时,进行扇区预读操作,预读取扇区的大小为价值窗口大小乘以2的α次幂。
[0011]优选的,当预读取价值窗口完全滑出缓存窗口时,进行预读取操作,同时开启新的价值窗口和缓存窗口。
[0012]本发明的一种文件系统缓存预读取方法与现有技术相比具有的有益效果是:本发明在用户程序进行磁盘数据读写时,采用预读取策略提高读写效率,通过自适应改变预读取扇区的时机和预读取扇区的大小,能够对文件系统缓存的自适应预读取进行管理,可以有效的提高磁盘读取数据的效率。
【附图说明】
[0013]附图1为所述文件系统缓存预读取方法的流程图;
附图2为价值窗口在缓存窗口内的示意图;
附图3为价值窗口部分在缓存窗口内的示意图;
附图4为价值窗口滑出缓存窗口内的示意图。
【具体实施方式】
[0014]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参考附图,对本发明所述一种文件系统缓存预读取方法进一步详细说明。
[0015]本发明所述一种文件系统缓存预读取方法,在用户程序进行磁盘数据读写时,采用预读取策略提高读写效率,预读取的时机随着价值窗口的滑动情况而定,预读取扇区大小也随价值窗口的变化而改变。所述价值窗口即Value Window ;Value Window Size表示预定义的连续扇区数据的长度,可以设为4K、8K和16K等小块大小,考虑到缓存总大小的限制,设置范围应在[4Κ,256Κ]。
[0016]实施例:
本实施例所述一种文件系统缓存预读取方法,通过自适应改变预读取扇区的时机和预读取扇区的大小,可以有效的提高磁盘读取数据的效率。如附图1所示,在进行磁盘数据读写时,进入读操作入口,若滑动价值窗口到命中的缓存扇区,并判断价值窗口是否滑出缓存窗口。
[0017]当预读取价值窗口滑动在缓存窗口之中时,不进行预读操作,并且重置窗口增长因子α ;当预读取价值窗口部分滑出缓存窗口时,进行预读取操作,增长因子α加I ;当预读取价值窗口完全滑出缓存窗口时,进行预读取操作,同时开启新的价值窗口和缓存窗口。
[0018]当预读取价值窗口部分滑出缓存窗口时,应当进行扇区预读操作,预读取扇区的大小为价值窗口大小乘以2的α次幂。
[0019]本实施例所述文件系统缓存预读取方法中,所述缓存窗口即Cache Window,CacheWindow Size表示已经缓存的连续扇区数据的长度,即缓存窗口大小,本发明称一段连续扇区的数据在一个缓存窗口 Cache Window中。缓存池:即最大缓存空间;缓存池中包含多个缓存窗口,每个缓存窗口内的数据为一段读入缓存中的连续扇区的数据,虽然一个缓存窗口中的数据在扇区id上是连续的,但是并不要求其在缓存池中也连续存放。
[0020]使用本实施例所述文件系统缓存预读取方法,第一次读取磁盘数据时,缓存不命中,预读取数据大小为价值窗口大小,缓存窗口大小同样为价值窗口大小,即Cache WindowSize = Value Window Size0
[0021]当读数据缓存命中时,滑动价值窗口到命中缓存数据的扇区id,然后判断价值窗口是否滑出了缓存窗口。如果价值窗口没有滑出缓存窗口,则不进行缓存预读取操作,并且重置窗口增长因子α如图2所示。当价值窗口部分滑出了缓存窗口,则开启缓存预读取操作。预读取数据大小为价值窗口大小乘以2的α次幂,并且增长因子α加1,如图3所示。当价值窗口完全滑出了缓存窗口,即读数据缓存不命中时,开启新的价值窗口和缓存窗口,如图4所示。
[0022]本发明所述文件系统缓存预读取方法,可以根据已读缓存数据的信息,通过价值窗口和缓存窗口的配合,自适应的决定下一次预读取缓存数据的大小,不仅能够通过读入缓存数据提高磁盘读写效率,而且可以避免读入太多无用缓存信息,使缓存效率达到最优。
[0023]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【主权项】
1.一种文件系统缓存预读取方法,其特征在于,在用户程序进行磁盘数据读写时,采用预读取策略,预读取的时机随着价值窗口的滑动情况而定,预读取扇区大小也随价值窗口的变化而改变。
2.根据权利要求1所述一种文件系统缓存预读取方法,其特征在于,在进行磁盘数据读写时,进入读操作入口,若滑动价值窗口到命中的缓存扇区,并判断价值窗口是否滑出缓存窗口。
3.根据权利要求2所述一种文件系统缓存预读取方法,其特征在于,当预读取价值窗口滑动在缓存窗口之中时,不进行预读操作,并且重置窗口增长因子α。
4.根据权利要求2所述一种文件系统缓存预读取方法,其特征在于,当预读取价值窗口部分滑出缓存窗口时,进行预读取操作,增长因子α加I。
5.根据权利要求3所述一种文件系统缓存预读取方法,其特征在于,当预读取价值窗口部分滑出缓存窗口时,进行扇区预读操作,预读取扇区的大小为价值窗口大小乘以2的α次幕。
6.根据权利要求2所述一种文件系统缓存预读取方法,其特征在于,当预读取价值窗口完全滑出缓存窗口时,进行预读取操作,同时开启新的价值窗口和缓存窗口。
【专利摘要】本发明公开一种文件系统缓存预读取方法,涉及磁盘读写操作方法,在用户程序进行磁盘数据读写时,采用预读取策略提高读写效率,预读取的时机随着价值窗口的滑动情况而定,预读取扇区大小也随价值窗口的变化而改变。本发明通过自适应改变预读取扇区的时机和预读取扇区的大小,能够对文件系统缓存的自适应预读取进行管理,可以有效的提高磁盘读取数据的效率。
【IPC分类】G06F17-30, G06F12-02
【公开号】CN104715048
【申请号】CN201510135295
【发明人】张月辉, 张会健
【申请人】浪潮集团有限公司
【公开日】2015年6月17日
【申请日】2015年3月26日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1