本发明涉及服务器,尤其涉及一种数据预读方法及装置。
背景技术:
1、缓存是一种加速访问存储系统的经典方案,其作用是把频繁访问的热数据放在内存中,快速响应用户的i/o请求,不经常访问的数据则放在硬盘中。新一代的分布式文件系统往往通过构建客户端缓存的方式,在客户端存储频繁访问的热数据,以最大程度减小访问延迟,提升读写性能。
2、现有的缓存预读只能进行顺序预读、逆序预读以及定长跳读,对于没有规律的重复序列无法进行预读,导致预读的缓存命中率低。
技术实现思路
1、本发明提供一种数据预读方法及装置,用以提升预读的缓存命中率。
2、本发明提供一种数据预读方法,包括:
3、接收目标文件的访问请求,并基于所述访问请求,确定所述目标文件中多个文件数据块的目标预取序列;
4、基于所述目标预取序列,从预设置的跳转列表中确定所述目标文件的后续文件的数据预取顺序,所述跳转列表是基于多个文件的文件数据块的预取序列确定的,所述多个文件是基于存储空间中文件的历史访问频率确定的;
5、基于所述数据预取顺序,从所述存储空间中获取所述后续文件的文件数据块,并将所述后续文件的文件数据块预取至缓存中。
6、根据本发明提供的一种数据预读方法,基于所述访问请求,确定所述目标文件中多个文件数据块的目标预取序列,包括:
7、基于所述访问请求,确定所述目标文件的元数据;
8、基于元数据,确定所述目标文件的访问模式以及所述目标文件的跳转记录,所述跳转记录为存储空间中访问所述多个文件数据块的访问跳转顺序;
9、基于所述访问模式以及所述跳转记录,确定所述目标文件中多个文件数据块的目标预取序列。
10、根据本发明提供的一种数据预读方法,基于所述目标预取序列,从预设置的跳转列表中确定所述目标文件的后续文件的数据预取顺序,包括:
11、基于所述目标预取序列,从预设置的跳转列表中确定与所述目标预取序列相同的相同序列;
12、确定所述相同序列处于所述跳转列表的位置,并确定所述位置的后续文件的预取序列,并将所述后续文件的预取序列的数据预取顺序作为所述目标文件的后续文件的数据预取顺序。
13、根据本发明提供的一种数据预读方法,基于所述访问模式以及所述跳转记录,确定所述目标文件中多个文件数据块的目标预取序列之后,还包括:
14、基于所述目标预取序列,确定所述跳转列表中是否包含与所述目标预取序列相同的序列;
15、在所述跳转列表中不包含与所述预取序列相同的序列的情况下,在所述跳转列表中添加所述预取序列;
16、在所述跳转列表中包含与所述预取序列相同的序列的情况下,基于所述目标预取序列,从所述跳转列表中确定与所述目标预取序列相同的相同序列;
17、将所述跳转列表中的相同序列调整至所述跳转列表的队首,并将所述相同序列的访问频率计数加一,以增加所述相同序列的历史访问频率,所述访问频率计数为所述相同序列对应的文件在预设时间段中的历史访问频率。
18、根据本发明提供的一种数据预读方法,在所述跳转列表中添加所述预取序列之后,还包括:
19、确定所述跳转列表的序列长度,在所述序列长度大于预设长度阈值的情况下,删除所述跳转列表尾部的序列,使得删除后的跳转列表的序列长度小于等于所述预设长度阈值。
20、根据本发明提供的一种数据预读方法,预设置所述跳转列表,包括:
21、获取所述存储空间的多个历史访问文件,并确定所述多个历史访问文件在预设时间段中的访问频率;
22、从所述多个历史访问文件中确定访问频率大于预设频率阈值的多个目标历史访问文件;
23、基于各目标历史访问文件的文件数据块在所述存储空间的预取序列,构建所述跳转列表。
24、根据本发明提供的一种数据预读方法,目标文件中的中多个文件数据块为非顺序读取的文件数据块。
25、本发明还提供一种数据预读装置,包括:
26、文件处理模块,用于接收目标文件的访问请求,并基于所述访问请求,确定所述目标文件中多个文件数据块的目标预取序列;
27、预取顺序确定模块,用于基于所述目标预取序列,从预设置的跳转列表中确定所述目标文件的后续文件的数据预取顺序,所述跳转列表是基于多个文件的文件数据块的预取序列确定的,所述多个文件是基于存储空间中文件的历史访问频率确定的;
28、预取模块,用于基于所述数据预取顺序,从所述存储空间中获取所述后续文件的文件数据块,并将所述后续文件的文件数据块预取至缓存中。
29、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种数据预读方法。
30、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据预读方法。
31、本发明提供的数据预读方法及装置,通过确定数据预取顺序后,按照跳转列表中确定的数据预取顺序,从存储空间中获取后续文件的文件数据块,并将获取的后续文件的各文件数据块预取至缓存中,方便后续文件的直接读取。与此同时,基于存储空间中文件的历史访问频率确定的跳转列表,记录了重复访问文件的预读序列,实现了对于没有规律的重复序列的预读过程,提升了缓存命中率,提高系统的性能。
1.一种数据预读方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据预读方法,其特征在于,所述基于所述访问请求,确定所述目标文件中多个文件数据块的目标预取序列,包括:
3.根据权利要求1所述的数据预读方法,其特征在于,所述基于所述目标预取序列,从预设置的跳转列表中确定所述目标文件的后续文件的数据预取顺序,包括:
4.根据权利要求2所述的数据预读方法,其特征在于,所述基于所述访问模式以及所述跳转记录,确定所述目标文件中多个文件数据块的目标预取序列之后,还包括:
5.根据权利要求4所述的数据预读方法,其特征在于,所述在所述跳转列表中添加所述预取序列之后,还包括:
6.根据权利要求1所述的数据预读方法,其特征在于,预设置所述跳转列表,包括:
7.根据权利要求1-6任一项所述的数据预读方法,其特征在于,所述目标文件中的中多个文件数据块为非顺序读取的文件数据块。
8.一种数据预读装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述数据预读方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据预读方法。