异步IO请求的调度方法、系统、电子设备及介质与流程

allin2023-04-04  120


异步i/o请求的调度方法、系统、电子设备及介质
技术领域
1.本技术涉及i/o请求处理技术领域,尤其涉及异步i/o请求的调度方法、系统、电子设备及介质。


背景技术:

2.随着应用需求的发展、计算机处理能力的提高,应用程序处理的数据规模不断变大,从文件读入或向文件写出的数据量急剧提高,数据输入/输出(i/o)的开销逐步成为应用程序的性能瓶颈。现有技术中包括异步i/o技术,即应用程序在启动数据i/o操作后,无需等待数据i/o操作的完成,就继续执行程序的其他计算,使得程序计算与数据i/o重叠进行。由于i/o请求的发出在实际时间上通常不是均匀的,因此会导致i/o请求在短时间内被多次执行时,会出现处理效率大大降低甚至处理出错的情况。


技术实现要素:

3.有鉴于此,本技术实施例提供了异步i/o请求的调度方法、系统、电子设备及介质,以解决现有技术中i/o请求在短时间内被多次执行时,会出现处理效率大大降低甚至处理出错的情况的问题。
4.本技术实施例的第一方面,提供了一种异步i/o请求的调度方法,包括:响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括预期停顿时间和预期处理时长;对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,并缓存所述新增i/o请求及所述i/o请求时间信息;响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。
5.本技术实施例的第二方面,提供了一种异步i/o请求的调度系统,包括:管理模块,被配置为响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括预期停顿时间和预期处理时长;对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,并缓存所述新增i/o请求及所述i/o请求时间信息;筛选模块,被配置为响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。
6.本技术实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可以在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
7.本技术实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
8.有益效果本技术实施例与现有技术相比存在的有益效果至少包括:通过新增i/o请求生成
对应的新增i/o请求时间信息并缓存至预设的i/o请求缓存池,最后从所述i/o请求缓存池中筛选出目标i/o请求进行处理,可以避免i/o请求在短时间大量运行时出现的处理效率降低及出现错误的技术问题。
附图说明
9.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
10.图1是根据本技术实施例提供的异步i/o请求的调度方法的一个应场景的示意图;图2是根据本技术实施例提供的一种异步i/o请求的调度方法的一些实施例的流程图;图3是根据本技术实施例提供的另一种异步i/o请求的调度方法的另一些实施例的流程图;图4是根据本技术实施例提供的一种异步i/o请求的调度系统的简易结构示意图;图5是根据本技术实施例提供的电子设备的示意图。
具体实施方式
11.下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
12.另外还需要说明的是,为了便于描述,附图中仅示出了与有关本技术相关的部分。在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
13.需要注意,本技术中提及的“第一”、“第二”等概念仅用于对不同的系统、装置、模块或单元进行区分,并非用于限定这些系统、装置、模块或单元所执行的功能的顺序或者相互依存关系。
14.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
15.本技术实施方式中的多个系统之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
16.应用程序在运行过程中,通常会不断发出数据i/o请求,但是i/o请求的发出在实际时间上通常不是均匀的。例如,天气预报程序每次启动运行后,会对未来几天的天气进行预报;在预报计算过程中,通常每隔几小时预报(例如3小时)就要把当前所预报出的大量天气要素分别输出到数据文件;即在进行几小时预报计算的过程中,不会产生数据输出请求,而在几小时预报计算完成时,会集中产生大量i/o请求。在上述情况下,如果异步i/o的技术实现要求在完成一个数据i/o请求后才能去接收应用程序发出的下一个i/o请求,这会使得应用程序集中发出的多个数据i/o请求无法取得异步i/o应有的加速效果。因此,异步i/o技术应该具有i/o请求池,实现对应用程序多个i/o请求的缓存,使得应用程序在集中发出多
个i/o请求后能快速返回到计算状态。
17.应用程序对不同变量进行输入与输出的响应时间限制不同(从获得异步i/o请求到完成该请求之间的时间长度,被称为响应时间)。例如,对于上面所提到的天气预报程序,在采用带有请求池的异步i/o技术时,其变量的异步输出可以仅满足一个条件:在应用程序运行结束退出前完成写出,而变量的异步读入则需在使用该变量前完成。此外,应用程序输入与输出不同变量的频率可能不同。一般说来,一个变量的i/o频率越高,对应的响应时间应该越短,过大的响应时间安排可能会导致对内存资源的极大消耗,甚至造成堵塞出现故障。
18.在不同变量i/o的响应时间要求不同的情况下,想要尽可能发挥异步i/o的加速效果,就需要对请求池中i/o请求按照优先顺序进行调度,以尽早完成要求高的i/o请求。本技术针对异步i/o技术,设计了自动确定请求池中需要优先处理的i/o请求的调度系统,充分考虑不同变量i/o的不同响应时间要求,同时确保异步i/o不过大消耗内存资源。
19.下面将参考附图并结合实施例来详细说明本技术。
20.图1是根据本技术的一些实施例的异步i/o请求的调度方法的一个应用场景的示意图。
21.在图1的应用场景中,首先,响应于检测到新增i/o请求102,计算设备101可以生成所述新增i/o请求102的i/o请求时间信息103,其中,所述i/o请求时间信息103包括预期停顿时间104和预期处理时长105。其次,计算设备101可以对所述新增i/o请求102的所述预期停顿时间104和预期处理时长105进行预测及设定,并缓存所述新增i/o请求102及所述i/o请求时间信息103。最后,响应于检测到i/o请求执行操作106,计算设备101可以从已缓存的至少一个i/o请求时间信息103中筛选出目标i/o请求时间信息107,并对所述目标i/o请求时间信息107对应的目标i/o请求108进行处理。
22.需要说明的是,上述计算设备101可以是硬件,也可以是软件。当计算设备为硬件时,可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。当计算设备体现为软件时,可以安装在上述所列举的硬件设备中。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
23.应该理解,图1中的计算设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的计算设备。
24.继续参考图2,示出了根据本技术的异步i/o请求的调度方法的一些实施例的流程200。该方法可以由图1中的计算设备101来执行。该异步i/o请求的调度的方法,包括以下步骤:步骤201,响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括预期停顿时间和预期处理时长。
25.在一些实施例中,异步i/o请求的调度方法的执行主体(如图1所示的计算设备101)可以通过有线连接方式或无线连接方式连接目标设备,然后,响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括预期停顿时间和预期处理时长。
26.i/o请求时间信息可以指i/o请求从新建至处理结束期间内的与时间相关的信息。
27.在一些实施例的一些可选的实现方式中,i/o请求时间信息可以包括但不限于变量大小、i/o变量标记、发起时间、预期停顿时间、实际停顿时间、预期处理时长、实际处理时长,其中,所述变量大小和所述i/o变量标记根据所述新增i/o请求确定,所述预期停顿时间、所述实际停顿时间、所述预期处理时长和所述实际处理时长被设置为无效值,所述发起时间被设置为生成所述i/o请求时间信息的时间。
28.在一些实施例的一些可选的实现方式中,i/o请求时间信息可以包括但不限于变量大小、发起时间、实际停顿时间和实际处理时长,其中,所述变量大小和所述i/o变量标记根据所述新增i/o请求确定。
29.变量大小可以指i/o请求对应处理的变量的大小。i/o变量标记可以指i/o请求对应处理的变量的标识。该标识可以为英文、中文、数字、符号等的结合。需要指出的是,针对同一变量的不同操作对应不同的变量标记。应用程序在不断运行的过程中,会对一个变量进行多次输出,以记录该变量伴随计算过程的变化情况,科学计算程序尤其具有这样的需求。例如,针对某一变量的读操作和写操作对应不同的i/o变量标记;针对同一变量的不同类型的读操作也对应不同的变量标记。作为示例,变量标记a可以表示针对变量c的3次循环的读操作,变量标记b可以表示针对变量c的6次循环的读操作,则变量标记a和变量标记b不同。
30.发起时间可以指发起i/o请求的时间。预期处理时长可以指i/o请求在被调用执行时至调用执行结束时的预期时长。实际处理时长可以指i/o请求在被调用执行时至调用执行结束时的实际时长。
31.预期停顿时间可以指检测到针对该i/o请求时间对应的i/o请求的等待完成命令的预期时间。实际停顿时间可以指检测到针对该i/o请求时间对应的i/o请求的等待完成命令的实际时间。等待完成命令可以指上述执行主体检测到的针对已经生成的i/o请求的等待完成的命令。由于i/o请求被新建需要一定时长,因此上述执行主体会接收到针对新增i/o请求的两次命令,第一次为新增i/o请求命令,第二次为针对新增i/o请求的等待完成命令。作为一个具体示例,外部应用程序可以第一次发送针对某一变量的新增i/o请求。当新增i/o请求完成后,外部应用程序可以第二次发送针对该新增i/o请求的等待完成命令,此时外部程序会一直等待该新增i/o请求的处理,直至该新增i/o请求被处理完成。
32.上述执行主体可以根据新增i/o请求来确定对应的变量以及变量的变量大小和变量标记,并将该新增i/o请求的预期停顿时间、实际停顿时间、预期处理时长和实际处理时长设置为无效值,将该新增i/o请求的发起时间被设置为生成所述i/o请求时间信息的时间。
33.在一些实施例的一些可选的实现方式中,响应于检测到针对任一i/o请求的等待完成命令时,把任一i/o请求的所述实际停顿时间设置为当前时间。
34.需要指出的是,上述无线连接方式可以包括但不限于3g/4g/5g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
35.步骤202,对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,并缓存所述新增i/o请求及所述i/o请求时间信息。
36.在一些实施例中,上述执行主体可以对所述新增i/o请求的预期停顿时间和预期
处理时长进行预测及设定,并缓存所述新增i/o请求及所述i/o请求时间信息。
37.在一些实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定:第一步,上述执行主体可以获取与所述新增i/o请求对应的相似i/o请求,其中,所述相似i/o请求的所述i/o变量标记与所述新增i/o请求的所述i/o变量标记相同,且所述相似i/o请求的所述实际停顿时间和所述实际处理时长均为有效值。其中,实际停顿时间和实际处理时长均为有效值,表示该相似i/o请求已经处理完成。
38.第二步,上述执行主体可以将所述新增i/o请求的预期处理时长设置为所述相似i/o请求的实际处理时长。
39.第三步,上述执行主体可以基于所述相似i/o请求的发起时间和实际停顿时间,生成目标停顿时长。目标停顿时长可以指相似i/o请求的发起时间与实际停顿时间之间的时间长度。
40.第四步,上述执行主体可以基于所述目标停顿时长和所述新增i/o请求的发起时间,生成目标停顿时间并将所述目标停顿时间确定为所述新增i/o请求的预期停顿时间。将相似i/o请求的发起时间增加目标停顿时长后,可以计算出预期停顿时间。通过上述处理,可以大大提高i/o请求的处理时间预测精准度,以便于后续的调度处理。
41.在一些实施例的一些可选的实现方式中,上述执行主体缓存所述新增i/o请求及所述i/o请求时间信息时,可以将每一i/o请求缓存至预设的i/o请求缓存池,将每一i/o请求时间信息缓存至预设的i/o请求时间信息缓存池;或者,可以将每一i/o请求以及对应的i/o请求时间信息缓存至预设的i/o请求缓存池。i/o请求及i/o请求时间信息可以被分别存放至不同的缓存池,也可以同时存放在一个缓存池中,在此不作限制。
42.步骤203,响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。
43.在一些实施例中,响应于检测到i/o请求执行操作,上述执行主体可以从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。由于i/o请求在不断地生成、执行以及完成,因此i/o请求执行操作可以指筛选出一个i/o请求作为被执行i/o请求,并执行对应处理操作。
44.在一些实施例的一些可选的实现方式中,响应于检测到i/o请求执行操作,上述执行主体可以基于以下步骤从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息:第一步,响应于检测到i/o请求执行操作,若存在处于等待完成状态的第一候选i/o请求时间信息,上述执行主体可以将任一所述第一候选i/o请求时间信息确定为所述目标i/o请求时间信息,其中,处于等待完成状态表示所述第一候选i/o请求时间信息的实际停顿时间为有效值且实际处理时长为无效值。
45.第二步,若不存所述第一候选i/o请求时间信息,上述执行主体可以判断是否存在至少一个预期停顿时间和实际处理时长均为无效值的第二候选i/o请求时间信息;若存在,上述执行主体可以将发起时间最早的第二候选i/o请求时间信息确定为所述目标i/o请求时间信息。
46.第三步,若不存在所述第一候选i/o请求时间信息和所述第二候选i/o请求时间信息,上述执行主体可以判断是否存在预期停顿时间为有效值、实际停顿时间和实际处理时长均为无效值的第三候选i/o请求时间信息,若存在,上述执行主体可以将所述预期停顿时间最早、发起时间最早、变量大小最大以及预期处理时长最长的第三候选i/o请求时间信息确定为所述目标i/o请求时间信息。通过上述处理,可以更为精准地筛选。
47.在一些实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤对所述目标i/o请求时间信息对应的目标i/o请求进行处理:第一步,上述执行主体可以获取所述目标i/o请求时间信息对应的目标i/o请求以及目标变量。
48.第二步,上述执行主体可以基于所述目标i/o请求对所述目标变量进行读写处理。
49.第三步,上述执行主体可以获取所述读写处理的处理时长,并将所述处理时长赋值于所述目标i/o请求的实际处理时长。
50.在一些实施例的一些可选的实现方式中,获取所述读写处理的处理时长,并将所述处理时长赋值于所述目标i/o请求的实际处理时长之后,上述执行主体可以获取与所述目标i/o请求的所述i/o变量标记相同的至少一个候选i/o请求时间信息,其中,所述候选i/o请求时间信息的请求停顿实际时间和实际处理时长均为有效值;保留发起时间最晚的候选i/o请求时间信息并删除其它候选i/o请求时间信息。除了保证各i/o变量标记对应的已完成i/o请求中,至少有一条i/o请求时间信息被缓存,其余已完成i/o请求的i/o请求时间信息均会被删除。通过删除多余的i/o请求时间信息,可以减少i/o请求时间占用的存储空间,增加运行效率。
51.在一些实施例的一些可选的实现方式中,响应于检测到应用程序退出操作,上述执行主体可以将已缓存的i/o请求时间信息以及对应的i/o请求写入目标文件,供所述应用程序启动时读取。将将已缓存的i/o请求时间信息以及对应的i/o请求写入目标文件,可以在转换运行环境时可以更快速的对i/o请求时间信息进行预测,提高了本技术的实用性。应当理解的是,本方法是在应用程序运行过程中执行的,在不断运行的过程中会对一个变量进行多次输出,通过i/o变量标记可以记录该变量随计算过程的变化情况。
52.本技术的上述各个实施例中的其中一个实施例的有益效果至少包括:通过新增i/o请求生成对应的新增i/o请求时间信息并缓存至预设的i/o请求缓存池,最后从所述i/o请求缓存池中筛选出目标i/o请求进行处理,可以避免i/o请求在短时间大量运行时出现的处理效率降低及出现错误的技术问题。
53.继续参考图3,示出了根据本技术的异步i/o请求的调度方法的另一些实施例的流程300,该方法可以由图1中的计算设备101来执行。该异步i/o请求的调度方法包括:步骤301,响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括变量大小、i/o变量标记、发起时间、预期停顿时间、实际停顿时间、预期处理时长、实际处理时长。
54.步骤302,获取与所述新增i/o请求对应的相似i/o请求,其中,所述相似i/o请求的所述i/o变量标记与所述新增i/o请求的所述i/o变量标记相同,且所述相似i/o请求的所述实际停顿时间和所述实际处理时长均为有效值。
55.步骤303,将所述新增i/o请求的预期处理时长设置为所述相似i/o请求的实际处
理时长。
56.步骤304,基于所述相似i/o请求的发起时间和实际停顿时间,生成目标停顿时长。
57.步骤305,基于所述目标停顿时长和所述新增i/o请求的发起时间,生成目标停顿时间并将所述目标停顿时间确定为所述新增i/o请求的预期停顿时间。
58.步骤306,缓存所述新增i/o请求及所述i/o请求时间信息。
59.步骤307,响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。
60.本技术的上述各个实施例中的其中一个实施例的有益效果至少包括:通过新增i/o请求生成对应的新增i/o请求时间信息并缓存至预设的i/o请求缓存池,最后从所述i/o请求缓存池中筛选出目标i/o请求进行处理,可以避免i/o请求在短时间大量运行时出现的处理效率降低及出现错误的技术问题。
61.在一些实施例中,步骤301-307的具体实现及所带来的技术效果可以参考图2对应的那些实施例中的步骤201-203,在此不再赘述。
62.上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
63.下述为本技术系统实施例,可以用于执行本技术方法实施例。对于本技术系统实施例中未披露的细节,请参照本技术方法实施例。
64.进一步参考图4,作为对上述各图上述方法的实现,本技术提供了异步i/o请求的调度系统的一些实施例,这些系统实施例与图2上述的那些方法实施例相对应。
65.如图4所示,一些实施例的异步i/o请求的调度系统400包括:管理模块401,被配置为响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括预期停顿时间和预期处理时长;对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,并缓存所述新增i/o请求及所述i/o请求时间信息。
66.筛选模块402,被配置为响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。
67.在一些实施例的一些可选的实现方式中,所述i/o请求时间信息还包括:变量大小、i/o变量标记、发起时间、实际停顿时间、实际处理时长,其中,所述变量大小和所述i/o变量标记根据所述新增i/o请求确定,所述预期停顿时间、所述实际停顿时间、所述预期处理时长和所述实际处理时长被设置为无效值,所述发起时间被设置为生成所述i/o请求时间信息的时间。
68.在一些实施例的一些可选的实现方式中,异步i/o请求的调度系统400还包括:设置模块,被配置为响应于检测到针对任一i/o请求的等待完成命令时,把任一i/o请求的所述实际停顿时间设置为当前时间。
69.在一些实施例的一些可选的实现方式中,所述对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,包括:获取与所述新增i/o请求对应的相似i/o请求,其中,所述相似i/o请求的所述i/o变量标记与所述新增i/o请求的所述i/o变量标记相同,且
所述相似i/o请求的所述实际停顿时间和所述实际处理时长均为有效值;将所述新增i/o请求的预期处理时长设置为所述相似i/o请求的实际处理时长;基于所述相似i/o请求的发起时间和实际停顿时间,生成目标停顿时长;基于所述目标停顿时长和所述新增i/o请求的发起时间,生成目标停顿时间并将所述目标停顿时间确定为所述新增i/o请求的预期停顿时间。
70.在一些实施例的一些可选的实现方式中,所述响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,包括:响应于检测到i/o请求执行操作,若存在处于等待完成状态的第一候选i/o请求时间信息,将任一所述第一候选i/o请求时间信息确定为所述目标i/o请求时间信息,其中,处于等待完成状态表示所述第一候选i/o请求时间信息的实际停顿时间为有效值且实际处理时长为无效值。
71.在一些实施例的一些可选的实现方式中,所述响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,还包括:若不存所述第一候选i/o请求时间信息,判断是否存在至少一个预期停顿时间和实际处理时长均为无效值的第二候选i/o请求时间信息;若存在,将发起时间最早的第二候选i/o请求时间信息确定为所述目标i/o请求时间信息。
72.在一些实施例的一些可选的实现方式中,所述响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,还包括:若不存在所述第一候选i/o请求时间信息和所述第二候选i/o请求时间信息,判断是否存在预期停顿时间为有效值、实际停顿时间和实际处理时长均为无效值的第三候选i/o请求时间信息;若存在,将所述预期停顿时间最早、发起时间最早、变量大小最大以及预期处理时长最长的第三候选i/o请求时间信息确定为所述目标i/o请求时间信息。
73.在一些实施例的一些可选的实现方式中,所述对所述目标i/o请求时间信息对应的目标i/o请求进行处理,包括:获取所述目标i/o请求时间信息对应的目标i/o请求以及目标变量;基于所述目标i/o请求对所述目标变量进行读写处理;获取所述读写处理的处理时长,并将所述处理时长赋值于所述目标i/o请求的实际处理时长。
74.在一些实施例的一些可选的实现方式中,异步i/o请求的调度系统400还包括:获取模块,被配置为获取与所述目标i/o请求的所述i/o变量标记相同的至少一个候选i/o请求时间信息,其中,所述候选i/o请求时间信息的请求停顿实际时间和实际处理时长均为有效值。删除模块,被配置为保留发起时间最晚的候选i/o请求时间信息并删除其它候选i/o请求时间信息。
75.在一些实施例的一些可选的实现方式中,所述缓存所述新增i/o请求及所述i/o请求时间信息,包括:将每一i/o请求缓存至预设的i/o请求缓存池,将每一i/o请求时间信息缓存至预设的i/o请求时间信息缓存池,或者,将每一i/o请求以及对应的i/o请求时间信息缓存至预设的i/o请求缓存池。
76.在一些实施例的一些可选的实现方式中,异步i/o请求的调度系统400还包括:写入模块,被配置为响应于检测到应用程序退出操作,将已缓存的i/o请求时间信息以及对应的i/o请求写入目标文件,供所述应用程序启动时读取。
77.可以理解的是,该系统400中记载的诸模块与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于系统400及其
中包含的模块,在此不再赘述。
78.如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
79.通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图5中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
80.特别地,根据本技术的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom 502被安装。在该计算机程序被处理装置501执行时,执行本技术的一些实施例的方法中限定的上述功能。
81.需要说明的是,本技术的一些实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
82.在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
83.上述计算机可读介质可以是上述装置中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括预期停顿时间和预期处理时长;对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,并缓存所述新增i/o请求及所述i/o请求时间信息;响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。
84.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的一些实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
85.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
86.描述于本技术的一些实施例中的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:管理模块和筛选模块。例如,管理模块还可以被描述为“管理i/o请求和i/o请求时间信息的模块”。
87.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
88.以上描述仅为本技术的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

技术特征:
1.一种异步i/o请求的调度方法,其特征在于,包括:响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括预期停顿时间和预期处理时长;对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,并缓存所述新增i/o请求及所述i/o请求时间信息;响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。2.根据权利要求1所述的方法,其特征在于,所述i/o请求时间信息还包括:变量大小、i/o变量标记、发起时间、实际停顿时间和实际处理时长,其中,所述变量大小和所述i/o变量标记根据所述新增i/o请求确定,所述发起时间被设置为生成所述i/o请求时间信息的时间,在对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定之前,所述预期停顿时间、所述实际停顿时间、所述预期处理时长和所述实际处理时长被设置为无效值。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:响应于检测到针对任一i/o请求的等待完成命令,将所述任一i/o请求的所述实际停顿时间设置为当前时间。4.根据权利要求2所述的方法,其特征在于,所述对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,包括:获取与所述新增i/o请求对应的相似i/o请求,其中,所述相似i/o请求的所述i/o变量标记与所述新增i/o请求的所述i/o变量标记相同,且所述相似i/o请求的所述实际停顿时间和所述实际处理时长均为有效值;将所述新增i/o请求的预期处理时长设置为与所述相似i/o请求的实际处理时长相同;基于所述相似i/o请求的发起时间和实际停顿时间,生成目标停顿时长;基于所述目标停顿时长和所述新增i/o请求的发起时间,生成目标停顿时间并将所述目标停顿时间确定为所述新增i/o请求的预期停顿时间。5.根据权利要求2所述的方法,其特征在于,所述响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,包括:响应于检测到i/o请求执行操作,若存在处于等待完成状态的第一候选i/o请求时间信息,将任一所述第一候选i/o请求时间信息确定为所述目标i/o请求时间信息,其中,处于等待完成状态表示所述第一候选i/o请求时间信息的实际停顿时间为有效值且实际处理时长为无效值。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:若不存所述第一候选i/o请求时间信息,判断是否存在至少一个预期停顿时间和实际处理时长均为无效值的第二候选i/o请求时间信息;若存在,将发起时间最早的第二候选i/o请求时间信息确定为所述目标i/o请求时间信息。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:若不存在所述第一候选i/o请求时间信息和所述第二候选i/o请求时间信息,判断是否存在预期停顿时间为有效值,且实际停顿时间和实际处理时长均为无效值的第三候选i/o请求时间信息;
若存在,将所述预期停顿时间最早、发起时间最早、变量大小最大以及预期处理时长最长的第三候选i/o请求时间信息确定为所述目标i/o请求时间信息。8.根据权利要求2所述的方法,其特征在于,所述对所述目标i/o请求时间信息对应的目标i/o请求进行处理,包括:获取所述目标i/o请求时间信息对应的目标i/o请求以及目标变量;基于所述目标i/o请求对所述目标变量进行读写处理;获取所述读写处理的处理时长,并将所述处理时长赋值于所述目标i/o请求的实际处理时长。9.根据权利要求8所述的方法,其特征在于,所述获取所述读写处理的处理时长,并将所述处理时长赋值于所述目标i/o请求的实际处理时长之后,还包括:获取与所述目标i/o请求的所述i/o变量标记相同的至少一个候选i/o请求时间信息,其中,所述候选i/o请求时间信息的请求停顿实际时间和实际处理时长均为有效值;保留发起时间最晚的候选i/o请求时间信息并删除其它候选i/o请求时间信息。10.根据权利要求1所述的方法,其特征在于,所述缓存所述新增i/o请求及所述i/o请求时间信息,包括:将每一i/o请求缓存至预设的i/o请求缓存池,将每一i/o请求时间信息缓存至预设的i/o请求时间信息缓存池,或者,将每一i/o请求以及对应的i/o请求时间信息缓存至预设的i/o请求缓存池。11.根据权利要求1至10任一项所述的方法,其特征在于,所述方法还包括:响应于检测到应用程序退出操作,将已缓存的i/o请求时间信息以及对应的i/o请求写入目标文件,供所述应用程序启动时读取。12.一种异步i/o请求的调度系统,其特征在于,包括:管理模块,被配置为响应于检测到新增i/o请求,生成所述新增i/o请求的i/o请求时间信息,其中,所述i/o请求时间信息包括预期停顿时间和预期处理时长;对所述新增i/o请求的预期停顿时间和预期处理时长进行预测及设定,并缓存所述新增i/o请求及所述i/o请求时间信息;筛选模块,被配置为响应于检测到i/o请求执行操作,从已缓存的至少一个i/o请求时间信息中筛选出目标i/o请求时间信息,并对所述目标i/o请求时间信息对应的目标i/o请求进行处理。13.一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可以在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至11任一项所述方法的步骤。14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述方法的步骤。

技术总结
本申请涉及I/O请求处理技术领域,提供了异步I/O请求的调度方法、装置、电子设备及计算机可读存储介质。该方法包括:响应于检测到新增I/O请求,生成新增I/O请求的I/O请求时间信息,其中,I/O请求时间信息包括预期停顿时间和预期处理时长;对新增I/O请求的预期停顿时间和预期处理时长进行预测及设定,并缓存新增I/O请求及I/O请求时间信息;响应于检测到I/O请求执行操作,从已缓存的至少一个I/O请求时间信息中筛选出目标I/O请求时间信息,并对目标I/O请求时间信息对应的目标I/O请求进行处理。本申请实施例通过上述步骤可以避免I/O请求在短时间大量运行时出现的处理效率降低及出现错误的技术问题。错误的技术问题。错误的技术问题。


技术研发人员:李锐喆 赵彤
受保护的技术使用者:北京卡普拉科技有限公司
技术研发日:2022.05.18
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-8966.html

最新回复(0)