输入输出请求处理方法、装置及计算机可读存储介质与流程
- 国知局
- 2024-12-06 12:16:26
本发明实施例涉及计算机,具体涉及一种输入输出请求处理方法、装置及计算机可读存储介质。
背景技术:
1、传统的io处理方法中,缓存系统通常采用较大的固定块大小,例如64kb,这种设置在处理大规模io请求时会具有较高的效率,然而面对小规模的io请求,大缓存块的设置会导致缓存空间不能得到有效的利用,导致缓存资源的浪费。
技术实现思路
1、鉴于上述问题,本发明实施例提供了一种输入输出请求处理方法、装置及计算机可读存储介质,用于解决现有技术中存在的针对小规模io请求的处理存在缓存资源浪费的问题。
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、根据本发明实施例的又一方面,提供了一种计算机可读存储介质,存储介质中存储有至少一可执行指令,可执行指令在输入输出请求处理装置或计算机设备上运行时,使得输入输出请求处理装置或计算机设备执行如上任意所述的输入输出请求处理方法的操作。
32、本发明实施例通过将输入输出请求拆分为更小的子请求,降低输入输出请求的颗粒度,并按照其对应的地址信息进行聚合,得到与磁盘阵列中数据块或者磁盘条带相对应的数据条,在数据条的基础上拆分聚合出与磁盘阵列中数据块或者磁盘条带相对应的聚合请求,从而能够实现对主机内存空间的颗粒化管理,减少内存碎片,提升内存利用率。
33、上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
技术特征:1.一种输入输出请求处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述将多个所述输入输出请求分别拆分为多个子请求,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于多个子请求对应的地址信息,将多个所述子请求分别聚合到对应的数据条中,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一子请求对应的磁盘阵列的类型,创建第一数据条,包括:
5.根据权利要求3所述的方法,其特征在于,所述基于多个子请求对应的地址信息,将多个所述子请求分别聚合到对应的数据条中,还包括:
6.根据权利要求3或5所述的方法,其特征在于,所述基于多个子请求对应的地址信息,将多个所述子请求分别聚合到对应的数据条中,还包括:
7.根据权利要求1所述的方法,其特征在于,所述对多个所述数据条进行纵向空间的聚合,得到多个聚合请求,包括:
8.一种输入输出请求处理装置,其特征在于,所述装置包括:
9.一种计算机设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令在输入输出请求处理装置或计算机设备上运行时,使得输入输出请求处理装置或计算机设备执行如权利要求1-7任意一项所述的输入输出请求处理方法的操作。
技术总结本发明涉及计算机技术领域,公开了一种输入输出请求处理方法、装置及计算机可读存储介质,该方法包括:获取多个输入输出请求,并将多个输入输出请求分别拆分为多个子请求;基于多个子请求对应的地址信息,将多个子请求分别聚合到对应的数据条中;对多个数据条进行纵向空间的聚合,得到多个聚合请求,并将多个聚合请求下发给磁盘阵列。如此,通过将输入输出请求拆分为更小的子请求,降低输入输出请求的颗粒度,并按照其对应的地址信息进行聚合,得到与磁盘阵列中数据块或者磁盘条带相对应的数据条,在数据条的基础上聚合出聚合请求,从而能够实现对主机的内存空间的颗粒化管理,减少内存碎片,提升内存利用率。技术研发人员:罗玮,张辅云,滕峰,邵隆,梁家鹏受保护的技术使用者:无锡众星微系统技术有限公司技术研发日:技术公布日:2024/12/2本文地址:https://www.jishuxx.com/zhuanli/20241204/340371.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表