[发明专利]一种IO请求处理方法及系统在审
| 申请号: | 202110801222.3 | 申请日: | 2021-07-15 |
| 公开(公告)号: | CN113703959A | 公开(公告)日: | 2021-11-26 |
| 发明(设计)人: | 李养兆;仇锋利 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春辉 |
| 地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 io 请求 处理 方法 系统 | ||
1.一种IO请求处理方法,其特征在于,包括:
Virtio设备将Block层下发的IO请求存储至发送队列;
控制端从所述发送队列获取所述IO请求,对所述IO请求进行处理获得IO处理结果,并将所述IO处理结果存储至完成队列;
所述Virtio设备从所述完成队列获取所述IO处理结果,并将所述IO处理结果反馈至所述Block层。
2.根据权利要求1所述的IO请求处理方法,其特征在于,所述Virtio设备从所述完成队列获取所述IO处理结果,包括:
利用轮询线程对所述完成队列进行轮询,获得所述IO处理结果。
3.根据权利要求2所述的IO请求处理方法,其特征在于,所述将所述IO处理结果反馈至所述Block层之前,还包括:
根据所述IO处理结果计算所述轮询线程的当前负载;
若所述当前负载达到预设负载上限,则开启新的轮询线程;
若所述当前负载未达到所述预设负载上限,则执行所述将所述IO处理结果反馈至所述Block层的步骤。
4.根据权利要求3所述的IO请求处理方法,其特征在于,所述开启新的轮询线程之前,还包括:
统计所述轮询线程的启动数量;
判断所述启动数量是否达到预设数量上限,若否,则执行所述开启新的轮询线程的步骤。
5.根据权利要求4所述的IO请求处理方法,其特征在于,还包括:
若所述启动数量达到所述预设数量上限,则发出告警提示。
6.根据权利要求3所述的IO请求处理方法,其特征在于,若所述当前负载未达到所述预设负载上限,则所述执行所述将所述IO处理结果反馈至所述Block层的步骤之前,还包括:
判断所述当前负载是否低于预设负载下限;
若所述当前负载低于所述预设负载下限,则判断所述轮询线程是否为唯一线程;
若所述轮询线程不为所述唯一线程,则关闭所述轮询线程;
若所述轮询线程为所述唯一线程,则执行所述将所述IO处理结果反馈至所述Block层的步骤。
7.根据权利要求6所述的IO请求处理方法,其特征在于,所述关闭所述轮询线程之前,还包括:
获取关闭上一轮询线程的时间节点以及当前时间节点;
根据所述关闭上一轮询线程的时间节点和所述当前时间节点计算间隔时长;
判断所述间隔时长是否达到预设时长;
若是,则执行所述关闭所述轮询线程的步骤。
8.一种IO请求处理系统,其特征在于,包括:
Block层,用于下发IO请求至Virtio设备;
控制端,用于从发送队列获取所述IO请求,对所述IO请求进行处理获得IO处理结果,并将所述IO处理结果存储至完成队列;
所述Virtio设备,用于将所述IO请求存储至所述发送队列;以及从所述完成队列获取所述IO处理结果,并将所述IO处理结果反馈至所述Block层。
9.根据权利要求8所述的IO请求处理系统,其特征在于,所述Virtio设备具体用于利用轮询线程对所述完成队列进行轮询,获得所述IO处理结果。
10.根据权利要求9所述的IO请求处理系统,其特征在于,所述Virtio设备还用于在所述将所述IO处理结果反馈至所述Block层之前,根据所述IO处理结果计算所述轮询线程的当前负载;若所述当前负载达到预设负载上限,则开启新的轮询线程;若所述当前负载未达到所述预设负载上限,则执行所述将所述IO处理结果反馈至所述Block层的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110801222.3/1.html,转载请声明来源钻瓜专利网。





