CN110618834B - I/o栈请求响应方法、系统和i/o栈请求响应控制方法及系统 - Google Patents
I/o栈请求响应方法、系统和i/o栈请求响应控制方法及系统 Download PDFInfo
- Publication number
- CN110618834B CN110618834B CN201910839106.3A CN201910839106A CN110618834B CN 110618834 B CN110618834 B CN 110618834B CN 201910839106 A CN201910839106 A CN 201910839106A CN 110618834 B CN110618834 B CN 110618834B
- Authority
- CN
- China
- Prior art keywords
- request
- requester
- response
- responder
- reset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000004044 response Effects 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000008569 process Effects 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种I/O栈请求响应方法、系统、装置及计算机可读存储介质和I/O栈请求响应控制方法及系统,包括:在资料库中利用请求指令中记载的请求类型查找到与自身对应的用于响应请求类型的响应者;依据请求类型发送请求信息至响应者;接收响应者反馈的响应结果;判断响应结果是否全部成功;若是,则判断是否还有下一级的请求者;若有,则通知下一级的请求者进行请求响应;本申请在资料库中建立请求类型、响应者和请求者之间的对应关系,建立了通过请求者请求响应者对请求响应,形成了观察者模式的请求响应方法,利用资料库建立对应关系,使得对应关系可调,通过在资料库中增加、修改或删除,可以调整一个请求的响应过程,使请求设置更为灵活。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种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处理层。
可选的,还包括:
重置接收模块,用于接收重置请求;
重置模块,用于利用所述重置指令进行状态重置;
重置通知模块,用于若还有下一级的请求者,则通知下一级的请求者利用所述重置请求进行所述状态重置;
其中,所述重置模块中任一请求者进行所述状态重置的过程,包括:
重置响应查找单元,用于在资料库中利用所述重置请求查找到与自身对应的响应者;
重置单元,用于依据所述重置指令发送重置指令至响应者,以使响应者状态重置;
第二下级判断单元,用于判断是否还有下一级的请求者。
本发明还公开了一种I/O栈请求响应控制系统,包括:
请求生成模块,用于生成请求指令;
请求查找模块,用于利用所述请求指令在资料库中利用所述请求指令中记载的请求类型查找到与所述请求类型对应的最高层请求者;
请求指令发送模块,用于发送所述请求指令至所述最高层请求者;
状态获取模块,用于获取与所述请求指令对应的请求者状态;
结果获取模块,用于利用请求者状态,得到响应结果;
重置请求发送模块,用于发送重置请求至所述最高层请求者,以重置与所述请求指令对应的请求者和响应者的状态。
本发明还公开了一种I/O栈请求响应装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如前述的I/O栈请求响应方法。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的I/O栈请求响应方法。
本发明中I/O栈请求响应方法,应用于与请求指令对应的最高层请求者,包括:接收请求指令;利用请求指令进行请求响应;若还有下一级的请求者,则通知下一级的请求者对请求指令进行请求响应;其中,任一请求者进行请求响应的过程,包括:在资料库中利用请求指令中记载的请求类型查找到与自身对应的用于响应请求类型的响应者;依据请求类型发送请求信息至响应者;接收响应者反馈的响应结果;判断响应结果是否全部成功;若全部成功,则判断是否还有下一级的请求者;其中,资料库中存储了请求类型、请求者与响应者三者之间的对应关系,请求者与响应者为I/O栈中的I/O处理层。
本发明在资料库中建立请求类型、响应者和请求者之间的对应关系,建立了通过请求者请求响应者对请求响应,形成了观察者模式的请求响应方法,利用资料库建立对应关系,使得对应关系可调,通过在资料库中增加、修改或删除,可以调整一个请求的响应过程,使请求设置更为灵活。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种I/O栈请求响应方法流程示意图;
图2为本发明实施例公开的一种请求响应流程示意图;
图3为本发明实施例公开的一种资料库存储结构示意图;
图4为本发明实施例公开的另一种I/O栈请求响应方法流程示意图;
图5为本发明实施例公开的一种I/O栈请求响应方法交互结构示意图;
图6为本发明实施例公开的一种I/O栈请求响应控制方法流程示意图;
图7为本发明实施例公开的一种I/O栈请求响应系统结构示意图;
图8为本发明实施例公开的一种I/O栈请求响应控制系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种I/O栈请求响应方法,参见图1和图2所示,应用于与请求指令对应的最高层请求者,该方法包括:
S11:接收请求指令。
具体的,为解决一个请求可能需要多个请求者分别调用多组响应者进行处理才能够完成一个请求,所以由最高层请求者接收存储系统下发的请求指令,能够依序的让后续下一级的请求者进行进一步的响应。
S12:利用请求指令进行请求响应。
具体的,请求响应的过程,具体包括S121至S125;
S121:在资料库中利用请求指令中记载的请求类型查找到与自身对应的用于响应请求类型的响应者。
具体的,资料库中预先存储了请求类型、请求者与响应者三者之间的对应关系,资料库中枚举了全部的请求类型、每种请求类型所对应的请求者、请求者处理不同请求类型对应的响应者和各级请求者之间的关系,所以通过请求指令中要求的请求类型在资料库中可以查找到与最高层请求者对应的用于响应请求类型的响应者。
其中,请求者与响应者均为I/O栈中的I/O处理层,每个I/O处理层在不同情况下可以分别扮演请求者或响应者,一个请求者对不同请求类型进行处理时,可以对应有不同的响应者。
具体的,资料库是I/O栈中每层I/O处理层共享的,每层I/O处理层均可以访问资料库获取其中资料,资料库可以以全局上下文的形式存在,当需要添加新的对应关系时,可以直接写入资料库中进行添加。
其中,参见图3所示,不同的请求类型1可以对应不同的请求者,最先执行的为最高层请求者2,其次后续的为下一级的请求者3。
S122:依据请求类型发送请求信息至响应者。
具体的,根据请求类型生成相应的请求信息,并发送请求信息至响应者,以使响应者根据请求信息执行相应的任务,响应者执行何种任务是由本身I/O处理层如何设计决定的,也可以在资料库中存储响应者根据请求信息应该执行何种任务,响应者通过访问资料库决定执行何种任务,完成响应。
S123:接收响应者反馈的响应结果。
具体的,各响应者完成各自的任务后,将会反馈响应结果至请求者,以便请求者继续根据响应结果判断是否继续执行,还是终止执行。
S124:判断响应结果是否全部成功;
S125:若全部成功,则判断是否还有下一级的请求者。
具体的,部分请求可能需要多个请求者分别进行请求,才能完成整个任务,而执行下一次请求的前提可能是上一次请求成功,因此,需要判断每次请求是否成功,若一个响应者响应失败,则无法继续执行请求,需要进行终止,若全部响应成功,则当前的请求者可以继续判断是否还有下一级的请求者需要进行请求,若无需下一级请求者对请求指令进行进一步的请求,当前请求者将不会查找到下一级请求者。
S13:若还有下一级的请求者,则通知下一级的请求者对请求指令进行请求响应。
具体的,若还有下一级请求者,则通知下一级请求者继续对请求指令进行上述请求响应,响应成功后继续判断是否有下一级请求者,直至没有下一级请求者完成请求或者响应失败终止请求。
其中,任一请求者进行请求响应的过程,同上述步骤S121至S125,可以理解的是,下一级请求者对请求指令完成请求响应后,同样会继续执行上述S13所述内容判断是否还有下一级的请求者,直至没有下一级或因响应失败而终止。
可见,本发明实施例在资料库中建立请求类型、响应者和请求者之间的对应关系,建立了通过请求者请求响应者对请求响应,形成了观察者模式的请求响应方法,利用资料库建立对应关系,使得对应关系可调,通过在资料库中增加、修改或删除,可以调整一个请求的响应过程,使请求设置更为灵活。
进一步的,在上述响应结果全部成功后,参见图4所示,还可以包括S14至S16;其中,
S14:接收重置请求。
具体的,为了进行后续的请求操作,需要重置完成一次请求的请求者和响应者,例如,响应结果可以以标识符的形式进行标记,例如,0,1等,所以需要对响应结果重置进行归为,为此,接收重置请求,准备重置。
S15:利用重置指令进行状态重置。
其中,任一请求者进行状态重置的过程,包括S151至S153;其中,
S151:在资料库中利用重置请求查找到与自身对应的响应者;
S152:依据重置指令发送重置指令至响应者,以使响应者状态重置;
S153:判断是否还有下一级的请求者;
S16:若还有下一级的请求者,则通知下一级的请求者利用重置请求进行状态重置;
具体的,重置请求可以下发至进行过请求仍未重置的最高层请求者,以使最高层请求者将重置请求分发至下级请求者和相应的响应者,完成状态重置。
进一步的,本发明实施例还公开了如下的一种具体实现方式:
具体的,首先建立请求类型的枚举,该结构体包含了能够完成的所有请求类型,并且如果有新的请求类型时,只需要在request_type中添加即可:
进一步的,还需要建立对应各层的枚举,以便建立I/O栈中各I/O处理层之间的请求者和响应者的关系:
其中,第一个枚举INACTIVE表示不对任何层发送请求,最后一个枚举ALL表示对I/O栈上的所有I/O处理层发送请求。
在存储系统初始化时,创建该资料库的全局上下文。全局上下文的生命周期同存储系统,其意义是保存创建的请求者对象,可以在响应者对象创建时,将其加入请求者的responders(响应者)链表当中,其结构简单描述如下:
其中,linkedlist*为一个指向链表数组的指针,该数组长度与请求类型个数相同,在初始化时通过调用内存分配函数进行分配。数组中的每个元素为一个链表,保存着请求类型相同的请求者对象(不同层)。
具体的,send_func为一个函数指针,主要作用是发送请求,会通知请求者的responders链表(资料库)中最高的层;当请求结束后参数is_inactive会变为为true,通过发送一个空请求,将requester(请求者)和收听的所有responder的状态重置,以便进行下一次请求。
requester参数,其结构如下:
其中,responders链表包含了该请求者的所有响应者,req_t表示请求者的请求类型;failed/done表示本次请求是否失败/完成;requesting表示正在请求的层,request_level表示需要请求的最大层。responders链表中的元素为该需要响应该请求的响应者,其结构如下:
其中,queue为请求者队列,任何通知了该响应者的请求者都会被放入该队列,等响应者完成响应时,依次调用logic_func通知队列里的请求者。req_t为响应者响应的请求类型,lyr为响应者所在的层,在创建响应者时确定;done和failed作为响应是否成功的标记,当本层的成功响应时,done被置为1;当因为某种原因响应失败时,failed被置为1。
logic_func为一个函数指针,主要作用是根据请求者对象的属性及响应者的响应,通知位于该请求者的responders链表中剩余的响应者。
get_done和get_failed接口可以获取requester的状态,以便感知请求是否被成功响应。
在该方法下,存储系统只需在有“请求—响应”业务需求的层创建请求者或响应者,并在需要发送请求时,调用统一的send_func接口发送请求,此时请求者的通知了responders链表中最高的层,其响应者收到通知并做出相应的处理。当处理完成时,异步调用统一的logic_func接口,将结果传递给该层响应者的requesters队列中的请求者,请求者根据结果的成功与否,做下一层通知或者终止该次通知,并更新自身的状态。存储系统只需查询请求者的状态(可以通过轮询等方式),就可以知道请求是否成功响应,然后根据该结果进行自己的逻辑处理,从而完成交互,其简单示意图可以如图5所示。
此外,本发明实施例还公开了一种I/O栈请求响应控制方法,参见图6所示,该方法包括:
S21:生成请求指令;
S22:利用请求指令在资料库中利用请求指令中记载的请求类型查找到与请求类型对应的最高层请求者;
S23:发送请求指令至最高层请求者。
具体的,存储系统生成请求指令,在资料库中查找与请求指令对应的最高层请求者,并将请求指令发送至最高层请求者,由于请求者为I/O栈中的I/O处理层,因此,当存储系统下发请求指令时,相当于指定相应的I/O处理层为最高清请求者,相当于临时创建了一个请求者,同理,后续的响应者也相当于临时创建。
S24:获取与请求指令对应的请求者状态;
S25:利用请求者状态,得到响应结果;
S26:发送重置请求至最高层请求者,以重置与请求指令对应的请求者和响应者的状态。
具体的,可以通过轮询等方式检测每个请求者的状态,判断出请求是否成功,得到响应结果,无论响应结果是失败还是成功均需发送重置请求至最高层请求者,以便重置状态,为后续请求做准备。
相应的,本发明实施例还公开了一种I/O栈请求响应系统,参见图7所示,应用于与请求指令对应的最高层请求者,该系统包括:
指令接收模块11,用于接收请求指令;
请求响应模块12,用于利用请求指令进行请求响应;
通知模块13,用于若还有下一级的请求者,则通知下一级的请求者对请求指令进行请求响应;
其中,请求响应模块12中任一请求者进行请求响应的过程,包括:
响应查找单元,用于在资料库中利用请求指令中记载的请求类型查找到与自身对应的用于响应请求类型的响应者;
请求信息发送单元,用于依据请求类型发送请求信息至响应者;
反馈接收单元,用于接收响应者反馈的响应结果;
结果判断单元,用于判断响应结果是否全部成功;
第一下级判断单元,用于若结果判断单元判定全部成功,则判断是否还有下一级的请求者;
其中,资料库中存储了请求类型、请求者与响应者三者之间的对应关系,请求者与响应者为I/O栈中的I/O处理层。
具体的,还可以包括重置接收模块、重置模块和重置通知模块13;其中,重置接收模块,用于接收重置请求;
重置模块,用于利用重置指令进行状态重置;
重置通知模块13,用于若还有下一级的请求者,则通知下一级的请求者利用重置请求进行状态重置;
其中,重置模块中任一请求者进行状态重置的过程,包括:
重置响应查找单元,用于在资料库中利用重置请求查找到与自身对应的响应者;
重置单元,用于依据重置指令发送重置指令至响应者,以使响应者状态重置;
第二下级判断单元,用于判断是否还有下一级的请求者。
相应的,本发明实施例还公开了一种I/O栈请求响应控制系统,参见图8所示,该系统包括:
请求生成模块21,用于生成请求指令;
请求查找模块22,用于利用请求指令在资料库中利用请求指令中记载的请求类型查找到与请求类型对应的最高层请求者;
请求指令发送模块23,用于发送请求指令至最高层请求者;
状态获取模块24,用于获取与请求指令对应的请求者状态;
结果获取模块25,用于利用请求者状态,得到响应结果;
重置请求发送模块26,用于发送重置请求至最高层请求者,以重置与请求指令对应的请求者和响应者的状态。
另外,本发明实施例还公开了一种I/O栈请求响应装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如前述的I/O栈请求响应方法。
此外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的I/O栈请求响应方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种I/O栈请求响应方法,其特征在于,应用于与请求指令对应的最高层请求者,包括:
接收所述请求指令;
利用所述请求指令进行请求响应;
若还有下一级的请求者,则通知下一级的请求者对所述请求指令进行所述请求响应;
其中,任一请求者进行所述请求响应的过程,包括:
在资料库中利用所述请求指令中记载的请求类型查找到与自身对应的用于响应所述请求类型的响应者;
依据所述请求类型发送请求信息至响应者;
接收响应者反馈的响应结果;
判断响应结果是否全部成功;
若全部成功,则判断是否还有下一级的请求者;
其中,所述资料库中存储了请求类型、请求者与响应者三者之间的对应关系,请求者与响应者为I/O栈中的I/O处理层。
2.根据权利要求1所述的I/O栈请求响应方法,其特征在于,响应结果全部成功后,还包括:
接收重置请求;
利用所述重置请求进行状态重置;
若还有下一级的请求者,则通知下一级的请求者利用所述重置请求进行所述状态重置;
其中,任一请求者进行所述状态重置的过程,包括:
在资料库中利用所述重置请求查找到与自身对应的响应者;
依据所述重置请求发送重置请求至响应者,以使响应者状态重置;
判断是否还有下一级的请求者。
3.一种I/O栈请求响应控制方法,其特征在于,包括:
生成请求指令;
利用所述请求指令在资料库中利用所述请求指令中记载的请求类型查找到与所述请求类型对应的最高层请求者;
发送所述请求指令至所述最高层请求者;
获取与所述请求指令对应的请求者状态;
利用请求者状态,得到响应结果;
发送重置请求至所述最高层请求者,以重置与所述请求指令对应的请求者和响应者的状态。
4.一种I/O栈请求响应系统,其特征在于,应用于与请求指令对应的最高层请求者,包括:
指令接收模块,用于接收所述请求指令;
请求响应模块,用于利用所述请求指令进行请求响应;
通知模块,用于若还有下一级的请求者,则通知下一级的请求者对所述请求指令进行所述请求响应;
其中,所述请求响应模块中任一请求者进行所述请求响应的过程,包括:
响应查找单元,用于在资料库中利用所述请求指令中记载的请求类型查找到与自身对应的用于响应所述请求类型的响应者;
请求信息发送单元,用于依据所述请求类型发送请求信息至响应者;
反馈接收单元,用于接收响应者反馈的响应结果;
结果判断单元,用于判断响应结果是否全部成功;
第一下级判断单元,用于若所述结果判断单元判定全部成功,则判断是否还有下一级的请求者;
其中,所述资料库中存储了请求类型、请求者与响应者三者之间的对应关系,请求者与响应者为I/O栈中的I/O处理层。
5.根据权利要求4所述的I/O栈请求响应系统,其特征在于,还包括:
重置接收模块,用于接收重置请求;
重置模块,用于利用所述重置请求进行状态重置;
重置通知模块,用于若还有下一级的请求者,则通知下一级的请求者利用所述重置请求进行所述状态重置;
其中,所述重置模块中任一请求者进行所述状态重置的过程,包括:
重置响应查找单元,用于在资料库中利用所述重置请求查找到与自身对应的响应者;
重置单元,用于依据所述重置请求发送重置请求至响应者,以使响应者状态重置;
第二下级判断单元,用于判断是否还有下一级的请求者。
6.一种I/O栈请求响应控制系统,其特征在于,包括:
请求生成模块,用于生成请求指令;
请求查找模块,用于利用所述请求指令在资料库中利用所述请求指令中记载的请求类型查找到与所述请求类型对应的最高层请求者;
请求指令发送模块,用于发送所述请求指令至所述最高层请求者;
状态获取模块,用于获取与所述请求指令对应的请求者状态;
结果获取模块,用于利用请求者状态,得到响应结果;
重置请求发送模块,用于发送重置请求至所述最高层请求者,以重置与所述请求指令对应的请求者和响应者的状态。
7.一种I/O栈请求响应装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1或2所述的I/O栈请求响应方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1或2所述的I/O栈请求响应方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910839106.3A CN110618834B (zh) | 2019-09-05 | 2019-09-05 | I/o栈请求响应方法、系统和i/o栈请求响应控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910839106.3A CN110618834B (zh) | 2019-09-05 | 2019-09-05 | I/o栈请求响应方法、系统和i/o栈请求响应控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110618834A CN110618834A (zh) | 2019-12-27 |
CN110618834B true CN110618834B (zh) | 2021-10-15 |
Family
ID=68922376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910839106.3A Active CN110618834B (zh) | 2019-09-05 | 2019-09-05 | I/o栈请求响应方法、系统和i/o栈请求响应控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618834B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870210A (zh) * | 2012-12-12 | 2014-06-18 | Lsi公司 | 具有多个处理栈的存储控制器中使用区域锁定转移i/o请求的方法和结构 |
CN104809124A (zh) * | 2014-01-24 | 2015-07-29 | 中国移动通信集团河北有限公司 | 云虚拟文件系统及其输入/输出请求处理方法 |
CN104903872A (zh) * | 2012-08-31 | 2015-09-09 | 才智知识产权控股公司(2) | 用于自适应持久化的系统、方法和接口 |
CN106201349A (zh) * | 2015-12-31 | 2016-12-07 | 华为技术有限公司 | 一种在物理主机中处理读/写请求的方法和装置 |
CN107479828A (zh) * | 2017-07-31 | 2017-12-15 | 山东超越数控电子有限公司 | 一种提高固态硬盘吞吐量性能的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268502B2 (en) * | 2013-09-16 | 2016-02-23 | Netapp, Inc. | Dense tree volume metadata organization |
US10331559B2 (en) * | 2015-08-27 | 2019-06-25 | Vmware, Inc. | Input/output filter configuration of linked storage |
-
2019
- 2019-09-05 CN CN201910839106.3A patent/CN110618834B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104903872A (zh) * | 2012-08-31 | 2015-09-09 | 才智知识产权控股公司(2) | 用于自适应持久化的系统、方法和接口 |
CN103870210A (zh) * | 2012-12-12 | 2014-06-18 | Lsi公司 | 具有多个处理栈的存储控制器中使用区域锁定转移i/o请求的方法和结构 |
CN104809124A (zh) * | 2014-01-24 | 2015-07-29 | 中国移动通信集团河北有限公司 | 云虚拟文件系统及其输入/输出请求处理方法 |
CN106201349A (zh) * | 2015-12-31 | 2016-12-07 | 华为技术有限公司 | 一种在物理主机中处理读/写请求的方法和装置 |
CN107479828A (zh) * | 2017-07-31 | 2017-12-15 | 山东超越数控电子有限公司 | 一种提高固态硬盘吞吐量性能的方法 |
Non-Patent Citations (1)
Title |
---|
基于请求类型I/O路径优化研究与实现;方雪娇;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170615;I137-36 * |
Also Published As
Publication number | Publication date |
---|---|
CN110618834A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4637842B2 (ja) | クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知 | |
US8713163B2 (en) | Monitoring cloud-runtime operations | |
US9164806B2 (en) | Processing pattern framework for dispatching and executing tasks in a distributed computing grid | |
JP4729172B2 (ja) | 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置 | |
US20160275123A1 (en) | Pipeline execution of multiple map-reduce jobs | |
CN111897638B (zh) | 分布式任务调度方法及系统 | |
JP4970939B2 (ja) | マルチノードシステムにおけるリソースの動的な割当の階層的管理 | |
US20080098048A1 (en) | Migrating temporary data of a session | |
US20050038835A1 (en) | Recoverable asynchronous message driven processing in a multi-node system | |
EP4148579B1 (en) | One-sided reliable remote direct memory operations | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
CN1836211A (zh) | 在群集计算系统中的快速应用程序通知 | |
CN110912972B (zh) | 一种业务处理方法、系统、电子设备及可读存储介质 | |
US10713378B2 (en) | Techniques for eventually consistent inheritance propagation for nested content item namespaces | |
US20050188068A1 (en) | System and method for monitoring and controlling server nodes contained within a clustered environment | |
US9430218B2 (en) | Apparatus and method of executing update, recording medium using the same, and server and method of providing update | |
CN112995262B (zh) | 分布式事务提交方法、系统及计算设备 | |
US7979870B1 (en) | Method and system for locating objects in a distributed computing environment | |
CN114116149A (zh) | 一种任务调度方法、装置、设备及介质 | |
US20130318146A1 (en) | System and Method for Committing Transactions on Remote Servers | |
CN110737510A (zh) | 块设备管理系统 | |
CN108958933B (zh) | 任务执行器的配置参数更新方法、装置及设备 | |
CN107172149A (zh) | 大数据即时调度方法 | |
CN110618834B (zh) | I/o栈请求响应方法、系统和i/o栈请求响应控制方法及系统 | |
CN110347659B (zh) | 数据处理方法和装置、交易数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |