一种顺序访问区间的识别方法、装置以及介质与流程

文档序号:31406414发布日期:2022-09-03 07:00阅读:62来源:国知局
一种顺序访问区间的识别方法、装置以及介质与流程

1.本技术涉及数据存储领域,特别是涉及一种顺序访问区间的识别方法、装置以及介质。


背景技术:

2.块设备是输入/输出(input/output,i/o)设备中的一类,块设备将信息存储在固定大小的块中,且每个块都有自己的地址,还可以在块设备的任意位置读取一定长度的数据,例如u盘和sd卡等均属于块设备,磁盘是最常见的块设备。对块设备的操作包括随机读写和顺序读写,以磁盘为例,在磁盘的连续空间上进行的读写操作即为顺序读写;而对应的,磁头不断的调整磁道的位置,以在不同位置上的读写数据,就是随机读写。在应用中,针对块设备中数据的顺序读操作,存储系统可以进行预读等动作以提高顺序读请求的访问性能。预读是针对顺序读而提出的一种用于提升顺序读性能的技术,用于缩小存储设备和应用程序之间巨大的效率差距。存储系统在接收到顺序读的请求后,可提前将后续需要读取的数据存到内存中,即将块设备中相应区间内的数据读取后暂存到内存中,然后在访问该数据的请求到来后,直接从内存中提供相关的数据,预读提高了顺序读请求的访问速率。而存储系统在实现预读时,需要准确的识别出下一个需要读取的位置。目前,基于块设备的顺序读识别,基本的做法是根据前后发生的io请求位置是否连续,判定到单个顺序访问点,即获取到客户端的顺序读访问请求,然后根据顺序读的访问顺序依次预读相应的位置的数据。
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.优选地,所述顺序访问区间的识别装置还包括:
32.第二获取模块,用于在若当前存在有所述顺序访问区间与所述读请求对应的存储区间相交,则按顺序滑动对应的所述顺序访问区间以预读滑动后所述顺序访问区间中的数据之前,获取所述顺序访问区间的第一中间位置以及所述读请求对应的存储区间的第二中间位置;
33.加权模块,用于以预设加权值对所述第一中间位置和所述第二中间位置进行加权计算得到加权中间位置;所述若当前存在有所述顺序访问区间与所述读请求对应的存储区间相交,则按顺序滑动对应的所述顺序访问区间以预读滑动后所述顺序访问区间中的数据包括:根据所述加权中间位置滑动对应的所述顺序访问区间以将所述加权中间位置作为对应的所述顺序访问区间的中间位置。
34.优选地,所述顺序访问区间的识别装置还包括:
35.合并模块,用于在若当前不存在顺序访问区间与所述读请求对应的存储区间相交,则根据所述读请求对应的存储区间建立新的所述顺序访问区间以预读新的所述顺序访问区间中的数据;以及若当前存在有所述顺序访问区间与所述读请求对应的存储区间相交,则按顺序滑动对应的所述顺序访问区间以预读滑动后所述顺序访问区间中的数据之后,当多个独立的所述顺序访问区间出现相交且相交部分的占比达到一定的阈值,则将对应的多个所述顺序访问区间进行合并。
36.删除模块,用于在若当前不存在顺序访问区间与所述读请求对应的存储区间相交,则根据所述读请求对应的存储区间建立新的所述顺序访问区间以预读新的所述顺序访问区间中的数据;以及若当前存在有所述顺序访问区间与所述读请求对应的存储区间相交,则按顺序滑动对应的所述顺序访问区间以预读滑动后所述顺序访问区间中的数据之后,若自所述顺序访问区间的最后活动时间起的预设时长内,所述顺序访问区间未进行滑动,则删除对应的所述顺序访问区间;其中,所述最后活动时间为所述顺序访问区间建立时生成,并在所述顺序访问区间滑动后以滑动的当前时间更新所述最后活动时间。
37.为解决上述技术问题,本技术还提供一种顺序访问区间的识别装置,包括:存储器,用于存储计算机程序;
38.处理器,用于执行计算机程序时实现上述顺序访问区间的识别方法的步骤。
39.为解决上述技术问题,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述顺序访问区间的识别方法的步骤。
40.本技术所提供的顺序访问区间的识别方法,客户端会发送读请求访问块设备中相
应存储区间的数据。存储系统在块设备中获取读请求对应的存储区间后,对顺序访问区间以及读请求对应的存储区间进行比较,若当前不存在顺序访问区间与读请求对应的存储区间相交,则根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据;若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据。其中,顺序访问区间为块设备中的存储区间。本技术提供的识别方法,当存在随机读和顺序读的混合业务场景时,滑动顺序访问区间就可以实现顺序读相关数据的预读,不会受随机读的影响。另外,通过建立多个顺序访问区间,还可以同时实现多个顺序读。
41.本技术还提供了一种顺序访问区间的识别装置和计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。
附图说明
42.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1为本技术实施例提供的一种顺序访问区间的识别方法的流程图;
44.图2为本技术实施例提供的一种顺序访问区间滑动的示意图;
45.图3为本技术实施例提供的顺序访问区间的识别装置的结构图;
46.图4为本技术另一实施例提供的顺序访问区间的识别装置的结构图。
具体实施方式
47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
48.本技术的核心是提供一种顺序访问区间的识别方法、装置以及介质,以准确的识别出后续的访问位置以提高访问效率。
49.块设备将信息存储在固定大小的块中,且每个块都有自己的地址,还可以在块设备的任意位置读取一定长度的数据,例如u盘,sd卡、磁盘等均属于块设备,对块设备的操作包括随机读写和顺序读写,以磁盘为例,在磁盘的连续空间上进行的读写操作即为顺序读写;而存储的数据在磁盘中占据空间,对于一个新磁盘,操作系统会将数据文件依次写入磁盘,当有些数据被删除时,就会空出该数据原来占有的存储空间,时间长了,不断的写入、删除数据,就会产生很多零零散散的存储空间,就会造成一个较大的数据文件放在许多不连续的存贮空间上,读写些这部分数据时,就是随机读写;在开机时、启动大型程序时,电脑要读取大量小文件,而这些文件也不是连续存放的,也属于随机读取的范围。
50.在应用中,针对块设备中数据的顺序读操作,存储系统可以进行预读等动作以提高顺序读请求的访问性能。预读是针对顺序读而提出的一种用于提升顺序读性能的技术,用于缩小存储设备和应用程序之间巨大的效率差距。存储系统在接收到顺序读的请求后,可提前将块设备中后续需要读取的数据存到内存中,即将块设备中相应区间内的数据读取
后暂存到内存中,然后在访问该数据的请求到来后,直接从内存中提供相关的数据,预读提高了顺序读请求的访问速率。而存储系统在实现预读时,需要准确的识别出下一个需要读取的位置。目前,基于块设备的顺序读识别,基本的做法是根据前后发生的io请求位置是否连续,判定到单个顺序访问点,即针对块设备的顺序读访问,根据顺序读的访问顺序依次预读相应的位置的数据。
51.但是,这种做法无法应对同时存在随机读,顺序读的混合业务场景,因为随机读是无法预测的,因此无法知道下一个访问的位置;目前的方案也无法做到多个顺序读访问点的识别;并且在多路径访问存储系统的场景下,客户端的顺序请求到达存储系统的先后顺序会发生变化,也会导致无法识别出后续的访问位置。即客户端在访问块设备的数据时,若不是单纯的只有一个顺序读访问,而是多种情况混合时,目前的方案将无法准确的识别出后续的访问位置,导致访问效率低下。
52.为了解决该问题,本技术提供一种顺序访问区间的识别方法,客户端访问存储系统的块设备中保存的数据时,通过本技术提供的方法,可以识别出块设备的多个顺序访问区间。基于识别到的顺序访问区间,存储系统可以进行预读等动作以提高顺序读请求的访问性能。其中,客户端包括但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
53.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
54.基于上述问题,本技术提出了一种基于滑动区间方式的块设备顺序读访问识别方法,该方法抛开具体的io请求关联关系,从统计上对io访问位置进行划分,识别出顺序访问点,然后会以一个区间的形式进行滑动。该方法可以支持多个顺序读访问点的识别,对顺序请求的先后顺序没有严格要求,也能够适用于顺序读和随机读混合的业务场景,并且由于是基于统计上的识别,对存储系统性能的影响也大大减小。
55.图1为本技术实施例提供的一种顺序访问区间的识别方法的流程图如图1所示,该方法包括如下步骤:
56.s10:获取读请求在块设备中对应的存储区间。
57.本技术基于存储系统虚拟块设备进行读访问信息的管理,客户端在访问块设备中的数据时,会发送读请求,存储系统会先获取客户端发送的读请求在块设备中对应的存储区间。块设备的存储区间是连续的,当客户端发送顺序读请求时,就可以预测出客户端将要读取的数据所在的存储区间,然后进行预读,将对应的存储区间内的数据保存在存储系统的内存中,客户端在读取相应数据时,就不需要从块设备中进行访问(从块设备中读取数据较慢,需要等待),从而加快了整个访问流程的速度。
58.s11:判断当前是否存在顺序访问区间与读请求对应的存储区间相交;若否,则进入步骤s12;若是,则进入步骤s13。
59.s12:根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据。
60.s13:按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据。
61.其中,顺序访问区间为块设备中的存储区间。针对需要处理的读请求信息,如果读请求对应的存储区间被已存在的顺序访问区间包含,则融入已存在的顺序访问区间,即相交的顺序访问区间与读请求对应的存储区间相互对应。然后对顺序访问区间的位置进行滑动以进行下一次预读,即每次滑动后进行一次预读,然后同一顺序读的读请求再次访问时,就再次滑动顺序访问区间。一般情况下,设定的顺序访问区间会大于读请求对应的存储区间,但不限定各区间的具体大小,顺序访问区间滑动的距离也不作限定,可设定固定距离进行滑动,在具体实施中,还可以根据读请求对应的存储区间的中心位置与顺序访问区间的中心位置对滑动的距离进行设置。另外,当两个独立的顺序访问区间由于滑动出现相交时且相交部分的占比达到一定的阈值,则可以将这两个顺序访问区间进行合并,然后进行整体滑动。
62.以下提供一种滑动顺序访问区间的示例,一个顺序访问区间由seq(off,len)定义,其中off为区间的起点位置,len为顺序访问区间的长度,len固定,off随着顺序访问区间的更新进行滑动。读请求对应的存储区间由r(off,len)定义,off为该区间的起点位置,len为该区间的长度。当一个读请求访问信息r(off,len)与一个已经存在的顺序访问区间seq(off,len)相交时,则认为该读请求属于该顺序访问区间,取r(off,len)中间值rc,取seq(off,len)的中间值seqc,计算rc与seqc的加权中间值作为滑动后顺序访问区间的中间值,计算得到新的seq1(off,len);这里可根据实际情况设置加权值,然后以设定的加权值对中间值rc与seqc的距离进行加权计算,得到加权中间值。其中一种较为简单的方式是,取rc与seqc的中间值作为滑动后顺序访问区间的中间值。另外,针对每一个顺序访问区间按一定周期记录最近n次的中心点采样值;当一个顺序访问区间的最近n次中心点采样值为顺序增长时,则判定该顺序访问区间为有效状态(真正的顺序访问区间),否则判定为识别中状态(预估顺序访问区间)。
63.图2为本技术实施例提供的一种顺序访问区间滑动的示意图;图2体现了一种顺序访问区间的识别过程,在块设备10中记录读请求的各访问点,随机读产生的随机访问点(访问点1、访问点2、访问点4、访问点3),由于没有相关的访问信息进行更新,即新的读请求产生的访问点与该访问点不存在对应的关系,则该访问点只会在短时间内被记录,无法形成真正的顺序访问区间。针对一个顺序读产生的顺序访问区间(顺序访问区间1、顺序访问区间2),短时间内会有大量的读请求更新(新的读请求的访问点包含在顺序访问区间之中),对应的顺序访问区间会一直存在,并且随着顺序读请求的滑动而滑动。
64.如果目前不存在顺序访问区间包含读请求对应的存储区间,说明该读请求是随机读或者是新的顺序读,若是新的顺序读,则需要根据读请求信息创建新的顺序访问区间,进而对新的顺序读的相关数据进行预读。若该读请求是随机读,则需要将其滤除。滤除的方式不作限定,可以判读单次读请求的数据量是否足够大,一般随机读的数据量较小,而顺序读的数据量较大,因此,可以设置阈值,若该次读请求的访问数据量小于阈值,则不处理该读请求,即不进行预读。上文示例是根据单词读请求访问的数据量大小进行判断,下面举另一示例,若当前不存在顺序访问区间与读请求对应的存储区间相交时,则建立预估顺序访问区间,然后根据新的读请求滑动预估顺序访问区间;若预估顺序访问区间在块设备的存储区间中按顺序滑动,则将预估顺序访问区间作为真正的顺序访问区间。本示例是对多个读请求对应的存储区间进行判断,若读请求对应的存储区间在块设备中是按顺序进行滑动,
则判断这些读请求属于同一个顺序读,将预估顺序访问区间作为真正的顺序访问区间后,就可以开始预读。具体可按一定周期记录预估顺序访问区间的中心点,当多个中心点表现为顺序增长时,则认为是一个有效的顺序访问区间。需要注意的是,这里不限定预估顺序访问区间按顺序滑动多少次才认定为真正的顺序访问区间,可根据实际情况进行设置。具体实施中,当一个读请求访问信息对应的r(off,len)与所有已经存在的顺序访问区间seq(off,len)均不相交时,可取r(off,len)的中间值rc,以rc作为中间值计算生成新的seq(off,len),作为新的顺序访问区间进行跟踪。
65.另外,当一个顺序访问区间长时间未被更新时,则可清除该顺序访问区间的信息。本技术提供的方法是基于卷的访问信息管理以及有效顺序访问区间识别等过程,顺序读识别过程是一个短时间内卷访问信息的统计分析过程,在一个卷被访问时,建立对应的卷访问信息,卷访问信息结构中包含卷的标识,并记录了正在识别中的卷的多个顺序访问区间信息。顺序访问区间信息是一个短时间内的统计信息,一个顺序访问区间在一定时间内没有新的读请求信息合并更新,则该区间失效,相应的顺序访问区间被销毁。当一个卷内的所有顺序访问区间均被销毁,且该卷在一定时间内没有发生访问,则不再进行跟踪,并将相应的卷访问信息进行销毁。本技术的关键点是:通过限定顺序访问区间的生命周期(顺序访问区间长时间未被更新时则进行清除),动态滑动顺序访问区间,多个中心点采样值顺序化判断等识别出有效的顺序访问区间。通过该方法可以不依赖客户端的读请求到达存储系统的先后顺序,还能支持顺序读和随机读的混合场景,支持识别多个顺序访问区间等,并且由于是统计意义上的顺序识别,可以降低对存储系统资源的消耗,该方法还能够适用于客户端使用多路径的场景。
66.本技术实施例所提供的顺序访问区间的识别方法,客户端会发送读请求访问块设备中相应存储区间的数据。存储系统在块设备中获取读请求对应的存储区间后,对顺序访问区间以及读请求对应的存储区间进行比较,若当前不存在顺序访问区间与读请求对应的存储区间相交,则根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据;若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据。其中,顺序访问区间为块设备中的存储区间。本技术实施例提供的识别方法,当存在随机读和顺序读的混合业务场景时,滑动顺序访问区间就可以实现顺序读相关数据的预读,不会受随机读的影响。另外,通过建立多个顺序访问区间,还可以同时实现多个顺序读。
67.上述实施例中并未限定顺序访问区间的滑动距离,本技术实施例提供一种方案,若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据之前,还包括:获取顺序访问区间的第一中间位置以及读请求对应的存储区间的第二中间位置;以预设加权值对第一中间位置和第二中间位置进行加权计算得到加权中间位置。若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据包括:根据加权中间位置滑动对应的顺序访问区间以将加权中间位置作为对应的顺序访问区间的中间位置。另外,作为一种优选的实施方式,以预设加权值对第一中间位置和第二中间位置进行加权计算得到加权中间位置包括:取第一中间位置和第二中间位置的中间位置作为加权中间位置。
68.即顺序访问区间由seq(off,len)定义,读请求对应的存储区间由r(off,len)定义,当一个读请求访问信息r(off,len)与一个已经存在的顺序访问区间seq(off,len)相交时,则认为该读请求属于该顺序访问区间,取seq(off,len)的中间值seqc(第一中间位置),取r(off,len)中间值rc(第二中间位置),计算rc与seqc的加权中间值作为滑动后顺序访问区间的中间值,计算得到新的seq1(off,len);这里可根据实际情况设置加权值,然后以设定的加权值对中间值rc与seqc的距离进行加权计算,得到加权中间值。其中一种较为简单的方式是,取rc与seqc的中间值作为滑动后顺序访问区间的中间值。
69.本技术实施例提供的方案通过顺序访问区间的第一中间位置以及读请求对应的存储区间的第二中间位置来计算滑动后的顺序访问区间的中间位置,例如,直接取rc与seqc的中间值作为滑动后顺序访问区间的中间值,可以在适应读请求对应的存储区间的基础上,较为平滑的滑动顺序访问区间。
70.为了滤除随机读的访问请求,本技术实施例提供一种方案,若当前不存在顺序访问区间与读请求对应的存储区间相交,则根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据包括:若当前不存在顺序访问区间与读请求对应的存储区间相交,则建立预估顺序访问区间;根据新的读请求滑动预估顺序访问区间;若预估顺序访问区间在块设备的存储区间中按顺序滑动,则将预估顺序访问区间作为真正的顺序访问区间。本实施例在当前不存在顺序访问区间与读请求对应的存储区间相交时,只建立一个预估顺序访问区间,此时并不进行预读,若根据新的读请求更新预估顺序访问区间后,预估顺序访问区间在块设备的存储区间中按顺序进行了滑动,则说明该系列的读请求为顺序读,可对顺序访问区间的数据进行预读。
71.作为一种优选的实施方式,若当前不存在顺序访问区间与读请求对应的存储区间相交,则建立预估顺序访问区间包括:根据读请求对应的存储区间的中间位置建立预估顺序访问区间,以使预估顺序访问区间的中间位置为读请求对应的存储区间的中间位置。即当一个读请求访问信息对应的r(off,len)与所有已经存在的顺序访问区间seq(off,len)均不相交时,则取r(off,len)的中间值rc,以rc作为中间值计算生成预估顺序访问区间。
72.在应用中,多个顺序访问区间可能存在相交的情况,预读时会将相交部分重复读取,因此,若当前不存在顺序访问区间与读请求对应的存储区间相交,则根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据;以及若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据之后,还包括:当多个独立的顺序访问区间出现相交且相交部分的占比达到一定的阈值,则将对应的多个顺序访问区间进行合并。将多个重复的顺序访问区间进行合并可避免对块设备中的一个存储区间进行重复预读。
73.当一个顺序访问区间长时间未滑动时,说明该顺序读已经完成,需要删除相应的顺序访问区间。因此,在若当前不存在顺序访问区间与读请求对应的存储区间相交,则根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据;以及若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据之后,还包括:若自顺序访问区间的最后活动时间起的预设时长内,顺序访问区间未进行滑动,则删除对应的顺序访问区间;其中,最后活动时间为顺序访问区间建立时生成,并在顺序访问区间滑动后以滑动的当前时间更新最后活
动时间。即在顺序访问区间生成以及发生更新滑动的时候,顺序访问区间的最后活动时间需要进行更新。
74.在上述实施例中,对于顺序访问区间的识别方法进行了详细描述,本技术还提供顺序访问区间的识别装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
75.基于功能模块的角度,本实施例提供一种顺序访问区间的识别装置,图3为本技术实施例提供的顺序访问区间的识别装置的结构图,如图3所示,该装置包括:
76.第一获取模块11,用于获取读请求在块设备中对应的存储区间;
77.建立模块12,用于若当前不存在顺序访问区间与读请求对应的存储区间相交,则根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据;其中,顺序访问区间为块设备中的存储区间;
78.滑动模块13,用于若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据。
79.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
80.作为优选的实施方式,顺序访问区间的识别装置还包括:
81.第二获取模块,用于在若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据之前,获取顺序访问区间的第一中间位置以及读请求对应的存储区间的第二中间位置;
82.加权模块,用于以预设加权值对第一中间位置和第二中间位置进行加权计算得到加权中间位置;若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据包括:根据加权中间位置滑动对应的顺序访问区间以将加权中间位置作为对应的顺序访问区间的中间位置。
83.合并模块,用于在若当前不存在顺序访问区间与读请求对应的存储区间相交,则根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据;以及若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据之后,当多个独立的顺序访问区间出现相交且相交部分的占比达到一定的阈值,则将对应的多个顺序访问区间进行合并。
84.删除模块,用于在若当前不存在顺序访问区间与读请求对应的存储区间相交,则根据读请求对应的存储区间建立新的顺序访问区间以预读新的顺序访问区间中的数据;以及若当前存在有顺序访问区间与读请求对应的存储区间相交,则按顺序滑动对应的顺序访问区间以预读滑动后顺序访问区间中的数据之后,若自顺序访问区间的最后活动时间起的预设时长内,顺序访问区间未进行滑动,则删除对应的顺序访问区间;其中,最后活动时间为顺序访问区间建立时生成,并在顺序访问区间滑动后以滑动的当前时间更新最后活动时间。
85.本实施例提供的顺序访问区间的识别装置,与上述方法对应,故具有与上述方法相同的有益效果。
86.基于硬件的角度,本实施例提供了另一种顺序访问区间的识别装置,图4为本技术另一实施例提供的顺序访问区间的识别装置的结构图,如图4所示,顺序访问区间的识别装
置包括:存储器20,用于存储计算机程序;
87.处理器21,用于执行计算机程序时实现如上述实施例中所提到的顺序访问区间的识别方法的步骤。
88.本实施例提供的顺序访问区间的识别装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
89.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
90.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的顺序访问区间的识别方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于顺序访问区间的识别方法涉及到的数据等。
91.在一些实施例中,顺序访问区间的识别装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
92.本领域技术人员可以理解,图中示出的结构并不构成对顺序访问区间的识别装置的限定,可以包括比图示更多或更少的组件。
93.本技术实施例提供的顺序访问区间的识别装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:顺序访问区间的识别方法。
94.本实施例提供的顺序访问区间的识别装置,与上述方法对应,故具有与上述方法相同的有益效果。
95.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
96.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例描述的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(randomaccess memory,ram)、磁碟或者光盘
等各种可以存储程序代码的介质。
97.本实施例提供的计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。
98.以上对本技术所提供的顺序访问区间的识别方法、装置以及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
99.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1