[发明专利]一种AIO请求处理的方法、系统及设备在审
申请号: | 201811013926.9 | 申请日: | 2018-08-31 |
公开(公告)号: | CN109101331A | 公开(公告)日: | 2018-12-28 |
发明(设计)人: | 陈思聪 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 底层驱动 请求处理 申请 计算机可读存储介质 系统及设备 处理线程 处理延迟 调度算法 加入请求 接收用户 请求队列 通用块层 线程切换 省略 构建 队列 排序 兼容 发送 合并 | ||
本申请公开了一种AIO请求处理的方法,包括:接收用户输入的AIO请求;判断该AIO请求与底层驱动是否兼容;若是,则根据该AIO请求构建SCSI请求,并将该SCSI请求加入请求队列;根据该请求队列中的SCSI请求构造SCSI命令;将该SCSI命令发送至底层驱动,以使底层驱动执行该SCSI命令完成对AIO请求的处理。本申请所提供的技术方案,省略了现有技术中通用块层对AIO进行合并和排序并提交给专门的处理线程进行下发的过程,避免了线程切换和调度算法的开销,降低了CPU占用率,并降低了AIO请求的处理延迟。本申请同时还提供了一种AIO请求处理的系统、设备及计算机可读存储介质,具有上述有益效果。
技术领域
本申请涉及AIO请求处理领域,特别涉及一种AIO请求处理的方法、系统、设备及计算机可读存储介质。
背景技术
目前,在linux系统中,针对于用户提交的异步非阻塞IO请求(AsynchronousInput/Output,AIO),能够通过在内核构造阻塞式IO请求(Block Input Output,BIO)请求异步提交。BIO请求是linux内核中通用块层的一个核心数据结构,它描述了块设备的I/O操作,联系了内存缓冲区与块设备BIO请求是通用块层向底层提交IO请求的一种通用描述,BIO请求的引入,能够统一不同块设备的IO接口。
因为需要兼顾各种块设备的兼容性要求,通过通用块层的IO请求有着非常复杂的处理流程。通用块层会使用NOOP,CFQ等多种调度算法对IO进行合并和排序,并将IO提交给专门的处理线程进行下发。这样,就存在线程切换和调度算法的开销,导致CPU占用率大大上升,并加大了IO延迟,针对于某些对于延迟很敏感的操作来说,例如对文件系统元数据的操作,以及流媒体应用等,若再经过通用块层提交IO,则会带来较大的性能损失。
因此,如何降低AIO请求的处理延迟是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种AIO请求处理的方法、系统、设备及计算机可读存储介质,用于降低AIO请求的处理延迟。
为解决上述技术问题,本申请提供一种AIO请求处理的方法,该方法包括:
接收用户输入的AIO请求;
判断所述AIO请求与底层驱动是否兼容;
若是,则根据所述AIO请求构建SCSI请求,并将所述SCSI请求加入请求队列;
根据所述请求队列中的SCSI请求构造SCSI命令;
将所述SCSI命令发送至所述底层驱动,以使所述底层驱动执行所述SCSI命令完成对所述AIO请求的处理。
可选的,在将所述SCSI命令发送至底层驱动之后,还包括:
判断所述底层驱动对所述AIO请求的处理是否出现错误;
若是,则获取错误类型,并执行所述错误类型对应的修复策略。
可选的,在执行所述错误类型对应的修复策略之后,还包括:
记录所述错误类型及所述修复策略的执行时间,并输出至指定位置。
可选的,当所述AIO请求与底层驱动不兼容时,在将所述SCSI命令发送至底层驱动之前,还包括:
在AIO内核接口中构建块设备的BIO请求,并将所述BIO请求加入BIO请求队列;
根据所述BIO请求队列中的BIO请求构造SCSI命令。
本申请还提供一种AIO请求处理的系统,该系统包括:
接收模块,用于接收用户输入的AIO请求;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811013926.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据获取方法、装置和系统
- 下一篇:非对称多核异构并行处理系统