一种异步IO请求的调度与处理方法、装置、设备及介质制造方法及图纸

技术编号:38817584 阅读:11 留言:0更新日期:2023-09-15 19:56
本发明专利技术提供了一种异步IO请求的调度与处理方法、装置、设备及介质,涉及计算机技术领域。方法包括:响应于对异步IO请求的调度与处理命令,根据当前的调度设置,从当前异步IO请求队列中确定可以调度的所有候选IO请求;在所有候选IO请求中,根据设定的联合条件,确定满足所述联合条件的一组待处理IO请求;将所述一组待处理IO请求进行合并,建立联合IO请求;对所述联合IO请求进行执行。本发明专利技术可将满足一定条件的多个IO请求合并成为一个数据量更大的联合IO请求,完成该联合IO请求,从而进一步提高异步I/O系统的工作效率。高异步I/O系统的工作效率。高异步I/O系统的工作效率。

【技术实现步骤摘要】
一种异步IO请求的调度与处理方法、装置、设备及介质


[0001]本专利技术涉及计算机
,具体涉及一种异步IO请求的调度与处理方法、装置、设备及介质。

技术介绍

[0002]随着计算机计算性能的提升,应用程序的计算规模也随之水涨船高,然而计算机I/O性能的提升速度远远跟不上计算性能的提升速度,I/O过程成为了不少应用程序的性能瓶颈。为了尽可能地提升I/O性能,现代高性能计算机在硬件层面使用了可进行并行存取的磁盘阵列,在系统层面引入了并行文件系统来尽可能提升计算机层面I/O性能的上限。为了让应用程序充分利用现代高性能计算机的I/O性能,并行I/O系统应运而生;而为了进一步减少I/O开销对程序性能的影响,又出现了异步I/O系统,使I/O操作和应用程序的计算过程能够在时间上重叠。此外,当前还出现了并行I/O系统和异步I/O系统的合体,即异步并行I/O系统。
[0003]异步I/O系统(包括异步并行I/O系统)在应用程序发起IO请求时,会将IO请求缓存到队列中。当IO请求队列中有尚未处理的请求时,异步I/O系统会按照一定规则从IO请求队列中取出并完成各IO请求。异步I/O系统完成一个IO请求的工作效率(可通过单位时间内输入或输出的字节数进行定量)通常与IO请求数据量的大小成正相关,即数据量越大则工作效率越高,特别是当异步I/O系统具有并行I/O功能时。各IO请求的数据量大小是由使用异步I/O系统的应用程序决定的。
[0004]因此,尽管异步I/O系统无法增加各IO请求的数据量大小,但若将满足一定条件的多个IO请求合并起来,成为一个数据量更大的IO请求(称为联合IO请求),则能够进一步提高异步I/O系统的工作效率。

技术实现思路

[0005]有鉴于此,本申请实施例提供一种异步IO请求的调度与处理方法、装置异步IO请求的调度与处理方法、装置、设备及介质,以在调度IO请求的处理时,将若干个IO请求进行合并,从而达到有效提高异步IO系统工作效率的目的。
[0006]本申请实施例提供以下技术方案:一种异步IO请求的调度与处理方法,包括:响应于对异步IO请求的调度与处理命令,根据当前的调度设置,从当前异步IO请求队列中确定可以调度的所有候选IO请求;在所有候选IO请求中,根据设定的联合条件,确定满足所述联合条件的一组待处理IO请求;将所述一组待处理IO请求进行合并,建立联合IO请求;对所述联合IO请求进行执行。
[0007]根据本申请一种实施例,响应于对异步IO请求的调度与处理命令,根据当前的调度设置,从当前异步IO请求队列中确定可以调度的所有候选IO请求,包括:
从当前异步IO请求队列中,按照设定的调度优先级规则,将所述调度与处理命令所对应的一个或一组IO请求进行排序,形成所述所有候选IO请求。
[0008]根据本申请一种实施例,所述设定的联合条件包括:所述一组待处理IO请求中的所有IO请求都是针对同一数据文件,且所有IO请求的读写类型相同。
[0009]根据本申请一种实施例,在所有候选IO请求中,根据设定的联合条件,确定满足所述联合条件的一组待处理IO请求,包括:在所有候选IO请求中,根据设定的联合条件,获得满足所述联合条件的一个或多个的待处理IO请求候选组;其中,若获得满足所述联合条件的一个所述待处理IO请求候选组,则该待处理IO请求候选组即为所述一组待处理IO请求;若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求。
[0010]根据本申请一种实施例,若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求,包括:从多个所述待处理IO请求候选组中随机筛选出一个候选组,作为所述一组待处理IO请求。
[0011]根据本申请一种实施例,若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求,包括:计算每个所述待处理IO请求候选组中所有IO请求的数据总量,将数据总量最大的候选组作为所述一组待处理IO请求。
[0012]根据本申请一种实施例,还包括,分别计算每个所述待处理IO请求候选组中所有IO请求的数据总量,得到最大数据总量;获取数据总量与所述最大数据总量之间的差值在设定差值范围内的多个所述待处理IO请求候选组,分别分析该多个所述待处理IO请求候选组以及所述最大数据总量对应的所述待处理IO请求候选组中所有IO请求的地址范围之间的间断程度,选出间断程度最低的所述待处理IO请求候选组,将该间断程度最低的所述待处理IO请求候选组作为所述一组待处理IO请求。
[0013]根据本申请一种实施例,若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求,包括:对多个所述待处理IO请求候选组,根据每个候选组中各IO请求在对应文件中访问的地址范围,将每个所述待处理IO请求候选组分为若干个候选子组,从所有的所述候选子组中,选择数据总量最大的候选子组,将该候选子组作为所述一组待处理IO请求;其中,所述候选子组满足设定条件,所述设定条件包括:当一个候选子组中有多个IO请求时,该多个IO请求的地址范围可无缝拼接为大的总地址范围;以及,分别来自任意两个不同候选子组中的两个IO请求的地址范围不连续。
[0014]根据本申请一种实施例,若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求,包括:根据预设的联合IO请求数据量最大阈值,将每个所述待处理IO请求候选组分为若
干个候选子组,从所有的所述候选子组中,通过设定的选择条件,选择一个候选子组作为所述一组待处理IO请求;其中,所述选择条件包括:随机选择,或选择数据总量最大的候选子组,或选择组内所有IO请求的地址范围之间的间断程度最低的候选子组;其中,将每个所述待处理IO请求候选组分为若干个候选子组时,每个所述候选子组只有一个IO请求,或所述候选子组中所有IO请求的数据总量不超过所述联合IO请求数据量最大阈值。
[0015]根据本申请一种实施例,还包括,若从当前异步IO请求队列中确定,当前只存在一个可以调度的候选IO请求时,将该候选IO请求的数据量与设定阈值进行比较;若该候选IO请求的数据量不小于所述设定阈值,则直接处理该候选IO请求;若该候选IO请求的数据量小于所述设定阈值,则从当前异步IO请求队列中选择一个或多个其他IO请求,将所述一个或多个其他IO请求与该候选IO请求共同作为所述一组待处理IO请求;其中,所述一个或多个其他IO请求与该候选IO请求对应同一个数据文件,且所述一个或多个其他IO请求与该候选IO请求的读写类型相同。
[0016]根据本申请一种实施例,将所述一组待处理IO请求进行合并,建立联合IO请求,包括:建立新的缓存空间;当联合IO请求是写请求本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异步IO请求的调度与处理方法,其特征在于,包括:响应于对异步IO请求的调度与处理命令,根据当前的调度设置,从当前异步IO请求队列中确定可以调度的所有候选IO请求;在所有候选IO请求中,根据设定的联合条件,确定满足所述联合条件的一组待处理IO请求;将所述一组待处理IO请求进行合并,建立联合IO请求;对所述联合IO请求进行执行。2.根据权利要求1所述的异步IO请求的调度与处理方法,其特征在于,响应于对异步IO请求的调度与处理命令,根据当前的调度设置,从当前异步IO请求队列中确定可以调度的所有候选IO请求,包括:从当前异步IO请求队列中,按照设定的调度优先级规则,将所述调度与处理命令所对应的一个或一组IO请求进行排序,形成所述所有候选IO请求。3.根据权利要求1所述的异步IO请求的调度与处理方法,其特征在于,所述设定的联合条件包括:所述一组待处理IO请求中的所有IO请求都是针对同一数据文件,且所有IO请求的读写类型相同。4.根据权利要求1所述的异步IO请求的调度与处理方法,其特征在于,在所有候选IO请求中,根据设定的联合条件,确定满足所述联合条件的一组待处理IO请求,包括:在所有候选IO请求中,根据设定的联合条件,获得满足所述联合条件的一个或多个的待处理IO请求候选组;其中,若获得满足所述联合条件的一个所述待处理IO请求候选组,则该待处理IO请求候选组即为所述一组待处理IO请求;若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求。5.根据权利要求4所述的异步IO请求的调度与处理方法,其特征在于,若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求,包括:从多个所述待处理IO请求候选组中随机筛选出一个候选组,作为所述一组待处理IO请求。6.根据权利要求4所述的异步IO请求的调度与处理方法,其特征在于,若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求,包括:计算每个所述待处理IO请求候选组中所有IO请求的数据总量,将数据总量最大的候选组作为所述一组待处理IO请求。7.根据权利要求6所述的异步IO请求的调度与处理方法,其特征在于,还包括,分别计算每个所述待处理IO请求候选组中所有IO请求的数据总量,得到最大数据总量;获取数据总量与所述最大数据总量之间的差值在设定差值范围内的多个所述待处理IO请求候选组,分别分析该多个所述待处理IO请求候选组以及所述最大数据总量对应的所述待处理IO请求候选组中所有IO请求的地址范围之间的间断程度,选出间断程度最低的所
述待处理IO请求候选组,将该间断程度最低的所述待处理IO请求候选组作为所述一组待处理IO请求。8.根据权利要求4所述的异步IO请求的调度与处理方法,其特征在于,若获得满足所述联合条件的多个所述待处理IO请求候选组,则从多个所述待处理IO请求候选组中筛选出一组,作为所述一组待处理IO请求,包括:对多个所述待处理IO请求候选组,根据每个候选组中各IO请求在...

【专利技术属性】
技术研发人员:李锐喆孙超赵彤
申请(专利权)人:北京卡普拉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1