CN103942097A - 一种数据处理方法、装置及具备相应装置的计算机 - Google Patents
一种数据处理方法、装置及具备相应装置的计算机 Download PDFInfo
- Publication number
- CN103942097A CN103942097A CN201410142461.2A CN201410142461A CN103942097A CN 103942097 A CN103942097 A CN 103942097A CN 201410142461 A CN201410142461 A CN 201410142461A CN 103942097 A CN103942097 A CN 103942097A
- Authority
- CN
- China
- Prior art keywords
- task queue
- type
- queue
- task
- network card
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 286
- 238000000034 method Methods 0.000 claims abstract description 110
- 230000008569 process Effects 0.000 claims abstract description 90
- 230000004044 response Effects 0.000 claims description 44
- 238000013507 mapping Methods 0.000 claims description 25
- 230000003993 interaction Effects 0.000 claims description 23
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
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/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据处理方法、装置及具备相应装置的计算机,数据处理装置可用于生成任务队列,并根据预设选路规则,将生成的各任务队列划分为需由物理网卡处理的第一类任务队列或需由自身处理的第二类任务队列;以及,在第一类任务队列中接收到工作队列单元时,指示物理网卡对第一类任务队列中的工作队列单元进行处理,在第二类任务队列中接收到工作队列单元时,由自身对第二类任务队列中的工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高远程直接内存访问RDMA业务的处理效率和效果的目的。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据处理方法、装置及具备相应装置的计算机。
背景技术
RDMA(Remote Direct Memory Access,远程直接内存访问)技术,不需要对操作系统造成影响,就可以将数据从一个应用系统快速移动到远程应用系统存储器中,从而解决了网络传输中服务器端数据处理的延迟。采用RDMA技术,可以减少传统以太网数据传输过程中对数据的内存拷贝、内核处理以及系统调用切换等过程,从而降低数据传输的时延,提高业务处理能力。
在现有技术中,可以在传统以太网链路上实现RDMA功能,其基本原理为:当有应用发出RDMA请求(WR,Work Request)时,应用将构造相应的WQE(Work Queue Element,工作队列单元)并将其压入发送队列中,由网卡从所述发送队列中取出相应的WQE进行处理,以将所述WQE重新组包成相应的RDMA报文后发送给对端;网卡还可以接收来自对端的RDMA报文,并对所述RDMA报文进行处理。
由上述内容可知,在现有技术中,通常是由纯硬件网卡来实现RDMA请求或RDMA报文的处理的,当网卡出现堵塞等工作异常情况时,将导致性能瓶颈,降低RDMA业务的处理效率与处理效果。
发明内容
本发明实施例提供了一种数据处理方法、装置及具备相应装置的计算机,以解决仅由网卡来实现RDMA请求或RDMA报文的处理时,业务处理效率以及处理效果均较差的问题。
第一方面,提供了一种计算机,包括数据处理装置以及物理网卡,其中:
所述数据处理装置,用于生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由所述物理网卡进行处理的任务队列,所述第二类任务队列为需由所述数据处理装置进行处理的任务队列;以及,在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡对所述第一类任务队列中的所述工作队列单元进行处理,在所述第二类任务队列中接收到工作队列单元时,根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,得到第二类RDMA请求报文,并将所述第二类RDMA请求报文发送给所述物理网卡;
所述物理网卡,用于在所述第一类任务队列中接收到工作队列单元时,根据所述数据处理装置的指示,从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,并将所述第一类RDMA请求报文发送给对端,以及接收所述第二类RDMA请求报文并将所述第二类RDMA请求报文发送给对端。
结合第一方面,在第一方面的第一种可能的实现方式中,所述初始化选路规则包括需由所述数据处理装置进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;
所述数据处理装置,具体用于根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
结合第一方面,在第一方面的第二种可能的实现方式中,所述物理网卡,还用于接收RDMA报文,并根据物理网卡队列权限信息,确定接收的RDMA报文是否需由所述物理网卡进行处理,如果否,则将所述接收的RDMA报文提供给所述数据处理装置,如果是,则根据所述处理逻辑对所述接收的RDMA报文进行处理,其中,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合;
所述数据处理装置,还用于接收来自所述物理网卡的所述接收的RDMA报文,并根据所述处理逻辑,对所述接收的RDMA报文进行处理。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述接收的RDMA报文为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文。
结合第一方面或第一方面的第一种、第二种或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述数据处理装置,还用于对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述数据处理装置,具体用于当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
结合第一方面的第四种或第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述数据处理装置,具体用于当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息,以及,将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列,并根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述数据处理装置,还用于在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
结合第一方面或第一方面的第一种、第二种或第三种可能的实现方式,在第一方面的第八种可能的实现方式中,所述数据处理装置,还用于建立自身与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
第二方面,提供了一种数据处理装置,包括:
初始化模块,用于生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由物理网卡进行处理的任务队列,所述第二类任务队列为需由软件处理模块进行处理的任务队列;
控制模块,用于在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡按照以下方式对所述第一类任务队列中的所述工作队列单元进行处理:从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,以及,将所述第一类RDMA请求报文发送给对端;以及,在所述第二类任务队列中接收到工作队列单元时,指示所述软件处理模块对所述第二类任务队列中的所述工作队列单元进行处理;
所述软件处理模块,用于在所述第二类任务队列中接收到工作队列单元时,根据所述控制模块的指示,从所述第二类任务队列中获取所述工作队列单元,并根据处理逻辑对所述工作队列单元进行处理,得到第二类RDMA报文,以及,将所述第二类RDMA报文发送给所述物理网卡,以由所述物理网卡将所述第二类RDMA请求报文发送给对端。
结合第二方面,在第二方面的第一种可能的实现方式中,所述初始化选路规则包括需由所述软件处理模块进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;
所述初始化模块,具体用于根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
结合第二方面,在第二方面的第二种可能的实现方式中,所述软件处理模块,还用于接收来自所述物理网卡的RDMA报文,并根据所述处理逻辑对所述RDMA报文进行处理;其中,所述RDMA报文是所述物理网卡根据物理网卡队列权限信息,确定接收到的RDMA报文不需由所述物理网卡进行处理时,发送给所述软件处理模块的,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述软件处理模块接收到的RDMA报文为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文。
结合第二方面或第二方面的第一种、第二种或第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述控制模块,还用于对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述软件处理模块替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述控制模块,具体用于当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
结合第二方面的第四种或第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述控制模块,具体用于当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息并提供给所述软件处理模块,以及将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列;
所述软件处理模块,还用于根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。
结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述控制模块,还用于在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
结合第二方面或第二方面的第一种、第二种或第三种可能的实现方式,在第二方面的第八种可能的实现方式中,所述初始化模块,还用于建立所述软件处理模块与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
第三方面,提供了一种数据处理方法,包括:
数据处理装置生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由物理网卡进行处理的任务队列,所述第二类任务队列为需由所述数据处理装置进行处理的任务队列;以及,
在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡按照以下方式对所述第一类任务队列中的所述工作队列单元进行处理:从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,以及,将所述第一类RDMA请求报文发送给对端;以及,
在所述第二类任务队列中接收到工作队列单元时,根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,得到第二类RDMA请求报文,并将所述第二类RDMA请求报文发送给所述物理网卡,以由所述物理网卡将所述第二类RDMA请求报文发送给对端。
结合第三方面,在第三方面的第一种可能的实现方式中,所述初始化选路规则包括需由所述数据处理装置进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;
根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,包括:
根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
结合第三方面,在第三方面的第二种可能的实现方式中,所述软件处理模块,所述方法还包括:接收来自所述物理网卡的RDMA报文,并根据所述处理逻辑对所述RDMA报文进行处理;
其中,所述RDMA报文是所述物理网卡根据物理网卡队列权限信息,确定接收到的RDMA报文不需由所述物理网卡进行处理时,发送给所述数据处理装置的,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,接收到的来自所述物理网卡的RDMA报文为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文。
结合第三方面或第三方面的第一种、第二种或第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述方法还包括:对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,包括:
当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
结合第三方面的第四种或第五种可能的实现方式,在第三方面的第六种可能的实现方式中,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理,包括:
当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息,以及,将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列,并根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。
结合第三方面的第六种可能的实现方式,在第三方面的第七种可能的实现方式中,所述方法还包括:在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
结合第三方面或第三方面的第一种、第二种或第三种可能的实现方式,在第三方面的第八种可能的实现方式中,在根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列之后,所述方法还包括:建立所述数据处理装置与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
在本发明实施例所述技术方案中,数据处理装置可用于生成任务队列,并针对生成的任一任务队列,根据预设的初始化选路规则,将该任务队列划分为需由物理网卡处理的第一类任务队列或需由自身处理的第二类任务队列;以及,在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡对所述第一类任务队列中的所述工作队列单元进行处理,在所述第二类任务队列中接收到工作队列单元时,根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明实施例一中所述计算机的结构示意图;
图2所示为本发明实施例二中所述计算机的结构示意图;
图3所示为本发明实施例三中所述数据处理装置的结构示意图;
图4所示为本发明实施例四中所述数据处理装置的结构示意图;
图5所示为本发明实施例五中所述数据处理方法的流程示意图。
具体实施方式
本发明实施例提供了一种数据处理方法、装置及具备相应数据处理装置的计算机,所述数据处理装置可用于生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由所述计算机中的物理网卡进行处理的任务队列,所述第二类任务队列为需由所述数据处理装置进行处理的任务队列,以及,在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡对所述第一类任务队列中的所述工作队列单元进行处理,在所述第二类任务队列中接收到工作队列单元时,根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,得到第二类RDMA请求报文,并将所述第二类RDMA请求报文发送给所述物理网卡;所述物理网卡可用于在所述第一类任务队列中接收到工作队列单元时,根据所述数据处理装置的指示,从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,并将所述第一类RDMA请求报文发送给对端,以及接收所述第二类RDMA请求报文并将所述第二类RDMA请求报文发送给对端。
由于在本发明实施例所述技术方案中,可根据预设的初始化选路规则,将生成的任一任务队列划分为需由物理网卡进行处理的第一类任务队列或需由数据处理装置进行处理的第二类任务队列,并在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡对所述第一类任务队列中的所述工作队列单元进行处理,在所述第二类任务队列中接收到工作队列单元时,由数据处理装置根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一:
本发明实施例一提供了一种计算机,如图1所示,其为本发明实施例一中所述计算机的结构示意图,所述计算机可包括数据处理装置11以及物理网卡12,其中:
所述数据处理装置11可用于生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由所述物理网卡12进行处理的任务队列,所述第二类任务队列为需由所述数据处理装置11进行处理的任务队列;以及,在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡12对所述第一类任务队列中的所述工作队列单元进行处理,在所述第二类任务队列中接收到工作队列单元时,根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,得到第二类RDMA请求报文,并将所述第二类RDMA请求报文发送给所述物理网卡12;
所述物理网卡12可用于在所述第一类任务队列中接收到工作队列单元时,根据所述数据处理装置11的指示,从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,并将所述第一类RDMA请求报文发送给对端,以及,接收所述第二类RDMA请求报文并将所述第二类RDMA请求报文发送给对端。
具体地,在本发明所述实施例中,所述数据处理装置11可用于采用以下方式生成任务队列,即QP(Queue Pair,队列对):
在进行计算机初始化的过程中,向所述计算机的操作系统申请内存资源,并根据申请的内存资源,注册相应的任务队列。需要说明的是,所述数据处理装置11所生成的任务队列通常可为多个,并且,每个任务队列均可包括相应的发送队列以及接收队列等,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述初始化选路规则可包括需由所述数据处理装置11进行处理的任务队列的标识或者需由所述物理网卡12进行处理的任务队列的标识;其中,所述初始化选路规则中包括的各任务队列的标识可以是各任务队列的QP序列号(如发送队列号)或者与各任务队列对应相连的通信对端的任务队列的QP序列号等能够唯一标识各任务队列的信息,本发明实施例对此不作任何限定。
相应地,所述数据处理装置11具体可用于根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
具体地,在本发明所述实施例中,若所述初始化选路规则包括需由所述数据处理装置11进行处理的任务队列的标识,则所述数据处理装置11具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第二类任务队列,否则,将所述任一任务队列标记为所述第一类任务队列;或者,
若所述初始化选路规则包括需由所述物理网卡12进行处理的任务队列的标识,则所述数据处理装置11具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第一类任务队列,否则,将所述任一任务队列标记为所述第二类任务队列;或者,
若所述初始化选路规则包括需由所述数据处理装置11进行处理的任务队列的标识以及需由所述物理网卡12进行处理的任务队列的标识,则所述数据处理装置11具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的需由所述数据处理装置11进行处理的任务队列的标识内或者需由所述物理网卡12进行处理的任务队列的标识标识内,若确定包括在所述初始化规则所包括的需由所述数据处理装置11进行处理的任务队列的标识内,则将所述任一任务队列标记为第二类任务队列,若确定包括在所述初始化规则所包括的需由所述物理网卡12进行处理的任务队列的标识内,则将所述任一任务队列标记为所述第一类任务队列,若确定未包括在所述初始化规则所包括的需由所述数据处理装置11进行处理的任务队列的标识内以及需由所述物理网卡12进行处理的任务队列的标识标识内,则可根据实际情况,将所述任一任务队列标记为所述第一类任务队列或所述第二类任务队列,本发明实施例对此不作任何限定。
进一步地,需要说明的是,在本发明所述实施例中,所述初始化选路规则可根据实际情况进行调整设定,本发明实施例对此不作赘述。另外,需要说明的是,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列时,通常需保证最终所得到的标记为所述第一类任务队列的各任务队列所能够占用的内存资源之和不大于预设的资源阈值(如所述物理网卡12所具备的最大内存资源),本发明实施例对此也不作赘述。
进一步地,在本发明所述实施例中,在根据所述初始化选路规则,将生成的任一任务队列标记为所述第一类任务队列或所述第二类任务队列的同时或之后,所述数据处理装置11还可用于建立自身与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡12与所述第一类任务队列的映射关系。
具体地,所述数据处理装置11可用于根据标记为所述第一类任务队列的各任务队列之间的先后关系(如QP序列号排序先后关系,或优先级先后关系等),依次建立所述物理网卡12与所述第一类任务队列中的各任务队列的映射关系,本发明实施例对此不作赘述。
进一步地,在根据所述初始化选路规则,将生成的任一任务队列标记为所述第一类任务队列或所述第二类任务队列之后,即可执行相应的RDMA请求或RDMA报文等的收发操作。
具体地,与现有技术类似,当有RDMA读请求或RDMA写请求等上层应用请求时,上层应用将构造相应的工作队列单元(WQE)并将其压入相应的任务队列中(具体地,上层应用可将各工作队列单元压入相应的任务队列的发送队列中)。相应地,所述数据处理装置11可在确定所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡12对所述第一类任务队列中的所述工作队列单元进行处理,以及,在确定所述第二类任务队列中接收到工作队列单元时,由自身对所述第二类任务队列中的所述工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
进一步地,所述物理网卡12以及所述数据处理装置11对工作队列单元进行处理所得到的第一类RDMA请求报文以及第二类RDMA请求报文均可通过所述物理网卡12发送给对端。另外需要说明的是,在本发明所述实施例中,在将所述第一类RDMA请求报文或所述第二类RDMA请求报文发送给对端时,所述对端通常可指的是所述第一类RDMA请求报文的访问目的端或所述第二类RDMA请求报文的访问目的端,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述物理网卡12还可用于接收RDMA报文(即来自对端的RDMA报文),并根据物理网卡队列权限信息,确定接收的RDMA报文是否需由所述物理网卡12进行处理,如果否,则将所述接收的RDMA报文提供给所述数据处理装置11,如果是,则根据所述处理逻辑对所述接收的RDMA报文进行处理,其中,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
相应地,所述数据处理装置11还可用于接收来自所述物理网卡12的所述接收的RDMA报文,并根据所述处理逻辑,对所述接收的RDMA报文进行处理。其中,所述接收的RDMA报文可以为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文等,本发明实施例对此不作任何限定。
具体地,在本发明所述实施例中,所述物理网卡12以及所述数据处理装置11可采用以下方式对接收到的来自对端的RDMA报文进行处理:
根据所述RDMA报文中指定的信息进行相应的DMA操作,如根据所述RDMA报文中指定的信息,将所述RDMA报文中携带的应用层数据存储在相应的内存槽位内,或者,从相应的内存槽位内读取数据并将读取到的数据返回给相应的对端设备等,本发明实施例对此不作赘述。
进一步地,在本发明所述实施例中,所述数据处理装置11还可用于对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置11替代所述物理网卡12对所述第一类任务队列中的满足切换条件的任务队列进行处理。
具体地,所述数据处理装置11可用于当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时(即监测到所述第一类任务队列中存在对应的任一或多个工作队列单元的单次交互时长大于预设时长的任务队列时),或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列(即前述提到的存在的任务队列)中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换,本发明实施例对此不作任何限定。
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
进一步地,所述数据处理装置11具体可用于当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡12停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡12处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息,以及,将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列,并根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。其中,所述当前处理信息可以为所述物理网卡12当前处理的工作队列单元的序列号、需要重传的工作队列单元的序列号等信息。
也就是说,在本发明所述实施例中,在进行软硬切换的过程中,满足切换条件的任务队列中的待处理工作队列单元或其所对应的待处理RDMA报文将不被处理,在切换完成后,再通过查询被缓存住的工作队列单元或RDMA报文,并将其作为新的请求转发至切换后的业务执行端的方式来进行相应的处理。
另外需要说明的是,在本发明所述实施例中,为了便于操作,可将进行软硬切换操作时的任务队列的状态标记为切换状态,将未进行软硬切换操作时的任务队列的状态标记为非切换状态(具体地,可按照预设的初始化选路规则,将各任务队列标记为硬件处理状态以及软件处理状态等),以便在接收到新的待处理工作队列单元或RDMA报文等时,可首先根据该新的待处理工作队列单元或RDMA报文等所对应的任务队列的状态标记判断其所对应的任务队列的当前状态是否为非切换状态,在确定其所对应的任务队列的当前状态为非切换状态时,再执行后续的判断该新的待处理工作队列单元或RDMA报文等所对应的任务队列为第一类任务队列或第二类任务队列等操作,本发明实施例对此不作赘述。
进一步地,在本发明所述实施例中,所述数据处理装置11还可用于在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。需要说明的是,上述修改物理网卡队列权限信息的操作也可由所述物理网卡12自身来执行,此时,所述物理网卡12可根据来自所述数据处理装置11的修改指示,修改物理网卡队列权限信息,本发明实施例对此不作任何限定。
本发明实施例一提供了一种包括数据处理装置以及物理网卡的计算机,由于在本发明实施例一所述技术方案中,所述数据处理装置可根据预设的初始化选路规则,将生成的任一任务队列划分为需由物理网卡进行处理的第一类任务队列或需由数据处理装置进行处理的第二类任务队列,并在第一类任务队列中接收到工作队列单元时,指示物理网卡对第一类任务队列中的工作队列单元进行处理,在第二类任务队列中接收到工作队列单元时,由自身对第二类任务队列中的工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
另外,在由物理网卡处理的任务队列满足相应的软硬切换条件时,还可将运行在物理网卡上的业务平滑地切换至主机端由软件接管,从而在形成软硬件主备切换的基础上,可进一步达到降低传统RDMA技术中存在的单点故障风险并进而提高RDMA业务处理的可靠性的目的。
实施例二:
本发明实施例二提供了一种计算机,如图2所示,其为本发明实施例二中所述计算机的结构示意图,所述计算机可包括至少一个处理器21、至少一个物理网卡22以及至少一个存储器23等部件。本领域技术人员可以理解,图2中示出的计算机的结构并不构成对计算机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本发明实施例对此不作任何限定。
具体地,所述处理器21可以是一个通用中央处理器、微处理器、ASIC(application-specific integrated circuit,特定应用集成电路)、或一个或多个用于控制本发明方案程序执行的集成电路,本发明实施例对此不作任何限定。
进一步地,所述存储器23可以是ROM(read-only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(random accessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器),CD-ROM(Compact Disc Read-Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备,或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
进一步地,所述存储器23可用于存储执行本发明方案的各应用程序代码,如物理网卡22的驱动程序代码、初始化程序代码以及经过调用后具备所述物理网卡22所具备的相应数据处理能力的软件网卡代码等;并且,所述存储器23中所存储的应用程序代码可由所述处理器21来控制执行。
具体地,在本发明所述实施例中,所述处理器21可用于通过调用所述存储器23中存储的各应用程序代码,以执行以下操作:
生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由所述物理网卡22进行处理的任务队列,所述第二类任务队列为需由所述处理器21进行处理的任务队列;以及,在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡22对所述第一类任务队列中的所述工作队列单元进行处理,在所述第二类任务队列中接收到工作队列单元时,根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,得到第二类RDMA请求报文,并将所述第二类RDMA请求报文发送给物理网卡22;
所述物理网卡22可用于在所述第一类任务队列中接收到工作队列单元时,根据所述处理器21的指示,从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,并将所述第一类RDMA请求报文发送给对端;以及,接收所述第二类RDMA请求报文并将所述第二类RDMA请求报文发送给对端。
具体地,在本发明所述实施例中,处理器21可用于采用以下方式生成任务队列(即QP):
在进行计算机初始化的过程中,向所述计算机的操作系统申请内存资源,并根据申请的内存资源,注册相应的任务队列。需要说明的是,所述处理器21所生成的任务队列通常可为多个,并且,每个任务队列均可包括相应的发送队列以及接收队列等,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述初始化选路规则可包括需由所述处理器21进行处理的任务队列的标识或者需由所述物理网卡22进行处理的任务队列的标识;其中,所述初始化选路规则中包括的各任务队列的标识可以是各任务队列的QP序列号(如发送队列号)或者与各任务队列对应相连的通信对端的任务队列的QP序列号等能够唯一标识各任务队列的信息,本发明实施例对此不作任何限定。
相应地,所述处理器21具体可用于根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
具体地,在本发明所述实施例中,若所述初始化选路规则包括需由所述处理器21进行处理的任务队列的标识,则所述处理器21具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第二类任务队列,否则,将所述任一任务队列标记为所述第一类任务队列;或者,
若所述初始化选路规则包括需由所述物理网卡22进行处理的任务队列的标识,则所述处理器21具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第一类任务队列,否则,将所述任一任务队列标记为所述第二类任务队列;或者,
若所述初始化选路规则包括需由所述处理器21进行处理的任务队列的标识以及需由所述物理网卡22进行处理的任务队列的标识,则所述处理器21具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的需由所述处理器21进行处理的任务队列的标识内或者需由所述物理网卡22进行处理的任务队列的标识标识内,若确定包括在所述初始化规则所包括的需由所述处理器21进行处理的任务队列的标识内,则将所述任一任务队列标记为第二类任务队列,若确定包括在所述初始化规则所包括的需由所述物理网卡22进行处理的任务队列的标识内,则将所述任一任务队列标记为所述第一类任务队列,若确定未包括在所述初始化规则所包括的需由所述处理器21进行处理的任务队列的标识内以及需由所述物理网卡22进行处理的任务队列的标识标识内,则可根据实际情况,将所述任一任务队列标记为所述第一类任务队列或所述第二类任务队列,本发明实施例对此不作任何限定。
进一步地,需要说明的是,在本发明所述实施例中,所述初始化选路规则可根据实际情况进行调整设定,本发明实施例对此不作赘述。另外,需要说明的是,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列时,通常需保证最终所得到的标记为所述第一类任务队列的各任务队列所能够占用的内存资源之和不大于预设的资源阈值(如所述物理网卡22所具备的最大内存资源),本发明实施例对此也不作赘述。
进一步地,在本发明所述实施例中,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列的同时或之后,所述处理器21还可用于建立自身与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡22与所述第一类任务队列的映射关系。
具体地,所述处理器21可用于根据标记为所述第一类任务队列的各任务队列之间的先后关系(如QP序列号排序先后关系,或优先级先后关系等),依次建立所述物理网卡22与所述第一类任务队列中的各任务队列的映射关系,本发明实施例对此不作赘述。
进一步地,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列之后,即可执行相应的RDMA请求或RDMA报文等的收发操作。
具体地,与现有技术类似,当有RDMA读请求或RDMA写请求等上层应用请求时,上层应用将构造相应的工作队列单元(WQE)并将其压入相应的任务队列中(具体地,上层应用可将各工作队列单元压入相应的任务队列的发送队列中)。相应地,所述处理器21可在确定所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡22对所述第一类任务队列中的所述工作队列单元进行处理,以及,在确定所述第二类任务队列中接收到工作队列单元时,由自身对所述第二类任务队列中的所述工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
进一步地,所述物理网卡22以及所述处理器21对工作队列单元进行处理所得到的第一类RDMA请求报文以及第二类RDMA请求报文均可通过所述物理网卡22发送给对端。另外需要说明的是,在本发明所述实施例中,在将所述第一类RDMA请求报文或所述第二类RDMA请求报文发送给对端时,所述对端通常可指的是所述第一类RDMA请求报文的访问目的端或所述第二类RDMA请求报文的访问目的端,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述物理网卡22还可用于接收RDMA报文(即来自对端的RDMA报文),并根据物理网卡队列权限信息,确定接收的RDMA报文是否需由所述物理网卡22进行处理,如果否,则将所述接收的RDMA报文提供给所述处理器21,如果是,则根据所述处理逻辑对所述接收的RDMA报文进行处理,其中,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
相应地,所述处理器21还可用于接收来自所述物理网卡22的所述接收的RDMA报文,并根据所述处理逻辑,对所述接收的RDMA报文进行处理。其中,所述接收的RDMA报文可以为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文等,本发明实施例对此不作任何限定。
具体地,在本发明所述实施例中,所述物理网卡22以及所述处理器21可采用以下方式对接收到的来自对端的RDMA报文进行处理:
根据所述RDMA报文中指定的信息进行相应的DMA操作,如根据所述RDMA报文中指定的信息,将所述RDMA报文中携带的应用层数据存储在相应的内存槽位内,或者,从相应的内存槽位内读取数据并将读取到的数据返回给相应的对端设备等,本发明实施例对此不作赘述。
进一步地,在本发明所述实施例中,所述处理器21还可用于对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述处理器21替代所述物理网卡22对所述第一类任务队列中的满足切换条件的任务队列进行处理。
具体地,所述处理器21可用于当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换,本发明实施例对此不作任何限定。
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
进一步地,所述处理器21具体可用于当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡22停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡22处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息,以及,将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列,并根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。其中,所述当前处理信息可以为所述物理网卡22当前处理的工作队列单元的序列号、需要重传的工作队列单元的序列号等信息。
也就是说,在本发明所述实施例中,在进行软硬切换的过程中,满足切换条件的任务队列中的待处理工作队列单元或其所对应的待处理RDMA报文将不被处理,在切换完成后,再通过查询被缓存住的工作队列单元或RDMA报文,并将其作为新的请求转发至切换后的业务执行端的方式来进行相应的处理。
另外需要说明的是,在本发明所述实施例中,为了便于操作,可将进行软硬切换操作时的任务队列的状态标记为切换状态,将未进行软硬切换操作时的任务队列的状态标记为非切换状态(具体地,可按照预设的初始化选路规则,将各任务队列标记为硬件处理状态以及软件处理状态等),以便在接收到新的待处理工作队列单元或RDMA报文等时,可首先根据该新的待处理工作队列单元或RDMA报文等所对应的任务队列的状态标记判断其所对应的任务队列的当前状态是否为非切换状态,在确定其所对应的任务队列的当前状态为非切换状态时,再执行后续的判断该新的待处理工作队列单元或RDMA报文等所对应的任务队列为第一类任务队列或第二类任务队列等操作,本发明实施例对此不作赘述。
进一步地,在本发明所述实施例中,所述处理器21还可用于在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。需要说明的是,上述修改物理网卡队列权限信息的操作也可由所述物理网卡22自身来执行,本发明实施例对此不作任何限定。
本发明实施例二提供了一种包括处理器以及物理网卡的计算机,由于在本发明实施例二所述技术方案中,所述处理器可根据预设的初始化选路规则,将生成的任一任务队列划分为需由物理网卡进行处理的第一类任务队列或需由处理器进行处理的第二类任务队列,并在第一类任务队列中接收到工作队列单元时,指示物理网卡对第一类任务队列中的工作队列单元进行处理,在第二类任务队列中接收到工作队列单元时,由自身对第二类任务队列中的工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
另外,在由物理网卡处理的任务队列满足相应的软硬切换条件时,还可将运行在物理网卡上的业务平滑地切换至主机端由软件接管,从而在形成软硬件主备切换的基础上,可进一步达到降低传统RDMA技术中存在的单点故障风险并进而提高RDMA业务处理的可靠性的目的。
实施例三:
本发明实施例三提供了一种数据处理装置,如图3所示,其为本发明实施例三中所述数据处理装置的结构示意图,所述数据处理装置可包括初始化模块31、控制模块32以及软件处理模块33,其中:
所述初始化模块31可用于生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由物理网卡进行处理的任务队列,所述第二类任务队列为需由软件处理模块33进行处理的任务队列;
所述控制模块32可用于在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡按照以下方式对所述第一类任务队列中的所述工作队列单元进行处理:从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,以及,将所述第一类RDMA请求报文发送给对端;以及,在所述第二类任务队列中接收到工作队列单元时,指示所述软件处理模块33对所述第二类任务队列中的所述工作队列单元进行处理;
所述软件处理模块33可用于在所述第二类任务队列中接收到工作队列单元时,根据所述控制模块32的指示,从所述第二类任务队列中获取所述工作队列单元,并根据处理逻辑对所述工作队列单元进行处理,得到第二类RDMA报文,以及,将所述第二类RDMA报文发送给所述物理网卡,以由所述物理网卡将所述第二类RDMA请求报文发送给对端。
进一步地,所述初始化选路规则可包括需由所述软件处理模块33进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;相应地,所述初始化模块31具体可用于根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
具体地,在本发明所述实施例中,若所述初始化选路规则包括需由所述软件处理模块33进行处理的任务队列的标识,则所述初始化模块31具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第二类任务队列,否则,将所述任一任务队列标记为所述第一类任务队列;或者,
若所述初始化选路规则包括需由所述物理网卡进行处理的任务队列的标识,则所述初始化模块31具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第一类任务队列,否则,将所述任一任务队列标记为所述第二类任务队列;或者,
若所述初始化选路规则包括需由所述软件处理模块33进行处理的任务队列的标识以及需由所述物理网卡进行处理的任务队列的标识,则所述初始化模块31具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的需由所述软件处理模块33进行处理的任务队列的标识内或者需由所述物理网卡进行处理的任务队列的标识标识内,若确定包括在所述初始化规则所包括的需由所述软件处理模块33进行处理的任务队列的标识内,则将所述任一任务队列标记为第二类任务队列,若确定包括在所述初始化规则所包括的需由所述物理网卡进行处理的任务队列的标识内,则将所述任一任务队列标记为所述第一类任务队列,若确定未包括在所述初始化规则所包括的需由所述软件处理模块33进行处理的任务队列的标识内以及需由所述物理网卡进行处理的任务队列的标识标识内,则可根据实际情况,将所述任一任务队列标记为所述第一类任务队列或所述第二类任务队列,本发明实施例对此不作任何限定。
进一步地,需要说明的是,在本发明所述实施例中,所述初始化选路规则可根据实际情况进行调整设定,本发明实施例对此不作赘述。另外,需要说明的是,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列时,通常需保证最终所得到的标记为所述第一类任务队列的各任务队列所能够占用的内存资源之和不大于预设的资源阈值(如所述物理网卡所具备的最大内存资源),本发明实施例对此也不作赘述。
进一步地,在本发明所述实施例中,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列的同时或之后,所述初始化模块31还可用于建立自身与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
进一步地,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列之后,即可执行相应的RDMA请求或RDMA报文等的收发操作。
具体地,与现有技术类似,当有RDMA读请求或RDMA写请求等上层应用请求时,上层应用将构造相应的工作队列单元(WQE)并将其压入相应的任务队列中(具体地,上层应用可将各工作队列单元压入相应的任务队列的发送队列中)。相应地,所述控制模块32可在确定所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡对所述第一类任务队列中的所述工作队列单元进行处理,以及,在确定所述第二类任务队列中接收到工作队列单元时,指示所述软件处理模块33对所述第二类任务队列中的所述工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
进一步地,所述物理网卡以及所述软件处理模块33对工作队列单元进行处理所得到的第一类RDMA请求报文以及第二类RDMA请求报文均可通过所述物理网卡发送给对端。另外需要说明的是,在本发明所述实施例中,在将所述第一类RDMA请求报文或所述第二类RDMA请求报文发送给对端时,所述对端通常可指的是所述第一类RDMA请求报文的访问目的端或所述第二类RDMA请求报文的访问目的端,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述软件处理模块33还可用于接收来自所述物理网卡的RDMA报文,并根据所述处理逻辑对所述RDMA报文进行处理;其中,所述RDMA报文是所述物理网卡根据物理网卡队列权限信息,确定接收到的RDMA报文不需由所述物理网卡进行处理时,发送给所述软件处理模块的,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
进一步地,所述软件处理模块33接收到的来自物理网卡的RDMA报文为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文等,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述控制模块32还可用于对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述软件处理模块33替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
进一步地,所述控制模块32具体可用于当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
进一步地,所述控制模块32可用于当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息并提供给所述软件处理模块33,以及将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列。其中,所述当前处理信息可以为所述物理网卡当前处理的工作队列单元的序列号、需要重传的工作队列单元的序列号等信息。
相应地,所述软件处理模块33还可用于根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。
也就是说,在本发明所述实施例中,在进行软硬切换的过程中,满足切换条件的任务队列中的待处理工作队列单元或其所对应的待处理RDMA报文将不被处理,在切换完成后,再通过查询被缓存住的工作队列单元或RDMA报文,并将其作为新的请求转发至切换后的业务执行端的方式来进行相应的处理。
另外需要说明的是,在本发明所述实施例中,为了便于操作,可将进行软硬切换操作时的任务队列的状态标记为切换状态,将未进行软硬切换操作时的任务队列的状态标记为非切换状态(具体地,可按照预设的初始化选路规则,将各任务队列标记为硬件处理状态以及软件处理状态等),以便在接收到新的待处理工作队列单元或RDMA报文等时,可首先根据该新的待处理工作队列单元或RDMA报文等所对应的任务队列的状态标记判断其所对应的任务队列的当前状态是否为非切换状态,在确定其所对应的任务队列的当前状态为非切换状态时,再执行后续的判断该新的待处理工作队列单元或RDMA报文等所对应的任务队列为第一类任务队列或第二类任务队列等操作,本发明实施例对此不作赘述。
进一步地,在本发明所述实施例中,所述控制模块32还可用于在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
本发明实施例三提供了一种数据处理装置,由于在本发明实施例三所述技术方案中,所述数据处理装置可根据预设的初始化选路规则,将生成的任一任务队列划分为需由物理网卡进行处理的第一类任务队列或需由软件处理模块进行处理的第二类任务队列,并在第一类任务队列中接收到工作队列单元时,指示物理网卡对第一类任务队列中的工作队列单元进行处理,在第二类任务队列中接收到工作队列单元时,指示软件处理模块对第二类任务队列中的工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
另外,在由物理网卡处理的任务队列满足相应的软硬切换条件时,还可将运行在物理网卡上的业务平滑地切换至主机端由软件接管,从而在形成软硬件主备切换的基础上,可进一步达到降低传统RDMA技术中存在的单点故障风险并进而提高RDMA业务处理的可靠性的目的。
实施例四:
本发明实施例四提供了一种数据处理装置,如图4所示,其为本发明实施例四中所述数据处理装置的结构示意图,所述数据处理装置可包括至少一个处理器41以及至少一个存储器42等部件。本领域技术人员可以理解,图4中示出的数据处理装置的结构并不构成对数据处理装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本发明实施例对此不作任何限定。
具体地,所述处理器41可以是一个通用中央处理器、微处理器、ASIC、或一个或多个用于控制本发明方案程序执行的集成电路,本发明实施例对此不作任何限定。
进一步地,所述存储器42可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM,CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备,或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
进一步地,所述存储器42可用于存储执行本发明方案的各应用程序代码,如物理网卡的驱动程序代码、初始化程序代码以及经过调用后具备所述物理网卡所具备的相应数据处理能力的软件网卡代码等;并且,所述存储器42中所存储的应用程序代码可由所述处理器41来控制执行。
具体地,在本发明所述实施例中,所述处理器41可用于通过调用所述存储器42中存储的各应用程序代码,以执行以下操作:
生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由物理网卡进行处理的任务队列,所述第二类任务队列为需由所述处理器41进行处理的任务队列;以及,
在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡按照以下方式对所述第一类任务队列中的所述工作队列单元进行处理:从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,以及,将所述第一类RDMA请求报文发送给对端;以及,在所述第二类任务队列中接收到工作队列单元时,从所述第二类任务队列中获取所述工作队列单元,并根据处理逻辑对所述工作队列单元进行处理,得到第二类RDMA报文,以及,将所述第二类RDMA报文发送给所述物理网卡,以由所述物理网卡将所述第二类RDMA请求报文发送给对端。
进一步地,所述初始化选路规则可包括需由所述处理器41进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;相应地,所述处理器41具体可用于根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
具体地,在本发明所述实施例中,若所述初始化选路规则包括需由所述处理器41进行处理的任务队列的标识,则所述处理器41具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第二类任务队列,否则,将所述任一任务队列标记为所述第一类任务队列;或者,
若所述初始化选路规则包括需由所述物理网卡进行处理的任务队列的标识,则所述处理器41具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第一类任务队列,否则,将所述任一任务队列标记为所述第二类任务队列;或者,
若所述初始化选路规则包括需由所述处理器41进行处理的任务队列的标识以及需由所述物理网卡进行处理的任务队列的标识,则所述处理器41具体可用于针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的需由所述处理器41进行处理的任务队列的标识内或者需由所述物理网卡进行处理的任务队列的标识标识内,若确定包括在所述初始化规则所包括的需由所述处理器41进行处理的任务队列的标识内,则将所述任一任务队列标记为第二类任务队列,若确定包括在所述初始化规则所包括的需由所述物理网卡进行处理的任务队列的标识内,则将所述任一任务队列标记为所述第一类任务队列,若确定未包括在所述初始化规则所包括的需由所述处理器41进行处理的任务队列的标识内以及需由所述物理网卡进行处理的任务队列的标识标识内,则可根据实际情况,将所述任一任务队列标记为所述第一类任务队列或所述第二类任务队列,本发明实施例对此不作任何限定。
进一步地,需要说明的是,在本发明所述实施例中,所述初始化选路规则可根据实际情况进行调整设定,本发明实施例对此不作赘述。另外,需要说明的是,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列时,通常需保证最终所得到的标记为所述第一类任务队列的各任务队列所能够占用的内存资源之和不大于预设的资源阈值(如所述物理网卡所具备的最大内存资源),本发明实施例对此也不作赘述。
进一步地,在本发明所述实施例中,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列的同时或之后,所述处理器41还可用于建立自身与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
进一步地,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列之后,即可执行相应的RDMA请求或RDMA报文等的收发操作。
具体地,与现有技术类似,当有RDMA读请求或RDMA写请求等上层应用请求时,上层应用将构造相应的工作队列单元(WQE)并将其压入相应的任务队列中(具体地,上层应用可将各工作队列单元压入相应的任务队列的发送队列中)。相应地,所述处理器41可在确定所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡对所述第一类任务队列中的所述工作队列单元进行处理,以及,在确定所述第二类任务队列中接收到工作队列单元时,由自身对所述第二类任务队列中的所述工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
进一步地,所述物理网卡以及所述处理器41对工作队列单元进行处理所得到的第一类RDMA请求报文以及第二类RDMA请求报文均可通过所述物理网卡发送给对端。另外需要说明的是,在本发明所述实施例中,在将所述第一类RDMA请求报文或所述第二类RDMA请求报文发送给对端时,所述对端通常可指的是所述第一类RDMA请求报文的访问目的端或所述第二类RDMA请求报文的访问目的端,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述处理器41还可用于接收来自所述物理网卡的RDMA报文,并根据所述处理逻辑对所述RDMA报文进行处理;其中,所述RDMA报文是所述物理网卡根据物理网卡队列权限信息,确定接收到的RDMA报文不需由所述物理网卡进行处理时,发送给所述软件处理模块的,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
进一步地,所述处理器41接收到的来自物理网卡的RDMA报文为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文等,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述处理器41还可用于对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述处理器41替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
进一步地,所述处理器41具体可用于当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
进一步地,所述处理器41具体可用于当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息,以及将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列,并根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。其中,所述当前处理信息可以为所述物理网卡当前处理的工作队列单元的序列号、需要重传的工作队列单元的序列号等信息。
也就是说,在本发明所述实施例中,在进行软硬切换的过程中,满足切换条件的任务队列中的待处理工作队列单元或其所对应的待处理RDMA报文将不被处理,在切换完成后,再通过查询被缓存住的工作队列单元或RDMA报文,并将其作为新的请求转发至切换后的业务执行端的方式来进行相应的处理。
另外需要说明的是,在本发明所述实施例中,为了便于操作,可将进行软硬切换操作时的任务队列的状态标记为切换状态,将未进行软硬切换操作时的任务队列的状态标记为非切换状态(具体地,可按照预设的初始化选路规则,将各任务队列标记为硬件处理状态以及软件处理状态等),以便在接收到新的待处理工作队列单元或RDMA报文等时,可首先根据该新的待处理工作队列单元或RDMA报文等所对应的任务队列的状态标记判断其所对应的任务队列的当前状态是否为非切换状态,在确定其所对应的任务队列的当前状态为非切换状态时,再执行后续的判断该新的待处理工作队列单元或RDMA报文等所对应的任务队列为第一类任务队列或第二类任务队列等操作,本发明实施例对此不作赘述。
进一步地,在本发明所述实施例中,所述处理器41还可用于在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
本发明实施例四提供了一种包括处理器以及存储器的数据处理装置,由于在本发明实施例四所述技术方案中,所述数据处理装置中的处理器可根据预设的初始化选路规则,将生成的任一任务队列划分为需由物理网卡进行处理的第一类任务队列或需由处理器进行处理的第二类任务队列,并在第一类任务队列中接收到工作队列单元时,指示物理网卡对第一类任务队列中的工作队列单元进行处理,在第二类任务队列中接收到工作队列单元时,由自身对第二类任务队列中的工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
另外,在由物理网卡处理的任务队列满足相应的软硬切换条件时,还可将运行在物理网卡上的业务平滑地切换至主机端由软件接管,从而在形成软硬件主备切换的基础上,可进一步达到降低传统RDMA技术中存在的单点故障风险并进而提高RDMA业务处理的可靠性的目的。
实施例五:
本发明实施例五提供了一种数据处理方法,如图5所示,其为本发明实施例五中所述数据处理方法的流程示意图,所述数据处理方法可包括以下步骤:
步骤101:数据处理装置生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由物理网卡进行处理的任务队列,所述第二类任务队列为需由所述数据处理装置进行处理的任务队列。
具体地,在本发明所述实施例中,所述数据处理装置可采用以下方式生成任务队列:
在进行计算机初始化的过程中,向所述计算机的操作系统申请内存资源,并根据申请的内存资源,注册相应的任务队列。需要说明的是,所述数据处理装置所生成的任务队列通常可为多个,并且,每个任务队列均可包括相应的发送队列以及接收队列等,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述初始化选路规则可包括需由所述数据处理装置进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;其中,所述初始化选路规则中包括的各任务队列的标识可以是各任务队列的QP序列号(如发送队列号)或者与各任务队列对应相连的通信对端的任务队列的QP序列号等能够唯一标识各任务队列的信息,本发明实施例对此不作任何限定。
相应地,根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,可包括:
根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
具体地,在本发明所述实施例中,若所述初始化选路规则包括需由所述数据处理装置进行处理的任务队列的标识,则所述数据处理装置具体可针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第二类任务队列,否则,将所述任一任务队列标记为所述第一类任务队列;或者,
若所述初始化选路规则包括需由所述物理网卡进行处理的任务队列的标识,则所述数据处理装置具体可针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的标识内,若是,则将所述任一任务队列标记为第一类任务队列,否则,将所述任一任务队列标记为所述第二类任务队列;或者,
若所述初始化选路规则包括需由所述数据处理装置进行处理的任务队列的标识以及需由所述物理网卡进行处理的任务队列的标识,则所述数据处理装置具体可针对生成的任一任务队列,根据所述任一任务队列的标识以及所述初始化选路规则,确定所述任一任务队列的标识是否包括在所述初始化规则所包括的需由所述数据处理装置进行处理的任务队列的标识内或者需由所述物理网卡进行处理的任务队列的标识标识内,若确定包括在所述初始化规则所包括的需由所述数据处理装置进行处理的任务队列的标识内,则将所述任一任务队列标记为第二类任务队列,若确定包括在所述初始化规则所包括的需由所述物理网卡进行处理的任务队列的标识内,则将所述任一任务队列标记为所述第一类任务队列,若确定未包括在所述初始化规则所包括的需由所述数据处理装置进行处理的任务队列的标识内以及需由所述物理网卡进行处理的任务队列的标识标识内,则可根据实际情况,将所述任一任务队列标记为所述第一类任务队列或所述第二类任务队列,本发明实施例对此不作任何限定。
进一步地,需要说明的是,在本发明所述实施例中,所述初始化选路规则可根据实际情况进行调整设定,本发明实施例对此不作赘述。另外,需要说明的是,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列时,通常需保证最终所得到的标记为所述第一类任务队列的各任务队列所能够占用的内存资源之和不大于预设的资源阈值(如所述物理网卡所具备的最大内存资源),本发明实施例对此也不作赘述。
进一步地,在本发明所述实施例中,在根据所述初始化选路规则,将生成的各任务队列标记为所述第一类任务队列或所述第二类任务队列的同时或之后,所述方法还可包括:
建立所述数据处理装置与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
具体地,所述数据处理装置可根据标记为所述第一类任务队列的各任务队列之间的先后关系(如QP序列号排序先后关系,或优先级先后关系等),依次建立所述物理网卡与所述第一类任务队列中的各任务队列的映射关系,本发明实施例对此不作赘述。
进一步地,需要说明的是,在本发明所述实施例中,所述步骤101为在进行RDMA请求或RDMA报文等的收发操作之前的初始化操作,并不是每次进行RDMA请求或RDMA报文等的收发操作时均需执行的操作,即,在执行完步骤101之后,可多次执行后续各步骤。
步骤102:数据处理装置确定所述第一类任务队列中接收到工作队列单元还是所述第二类任务队列中接收到工作队列单元,若所述第一类任务队列中接收到工作队列单元,则执行步骤103,若确定所述第二类任务队列中接收到工作队列单元,则执行步骤104。
其中,与现有技术类似,所述工作队列单元为与上层应用发送的RDMA读请求或RDMA写请求等上层应用请求相对应的工作队列单元,本发明实施例对此不作任何限定。
步骤103:数据处理装置指示所述物理网卡按照以下方式对所述第一类任务队列中的所述工作队列单元进行处理:从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,以及,将所述第一类RDMA请求报文发送给对端。
其中,在将所述第一类RDMA请求报文发送给对端时,所述对端通常可指的是所述第一类RDMA请求报文的访问目的端,本发明实施例对此不作任何限定。
步骤104:数据处理装置根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,得到第二类RDMA请求报文,并将所述第二类RDMA请求报文发送给所述物理网卡,以由所述物理网卡将所述第二类RDMA请求报文发送给对端。
也就是说,所述数据处理装置对工作队列单元进行处理所得到的第二类RDMA请求报文仍需通过所述物理网卡发送给对端。并且,在将所述第二类RDMA请求报文发送给对端时,所述对端通常可指的是所述第二类RDMA请求报文的访问目的端,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述方法还可包括以下步骤:
接收来自所述物理网卡的RDMA报文,并根据所述处理逻辑对所述RDMA报文进行处理;其中,所述RDMA报文是所述物理网卡根据物理网卡队列权限信息,确定接收到的RDMA报文不需由所述物理网卡进行处理时,发送给所述数据处理装置的,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
具体地,在本发明所述实施例中,所接收到的来自所述物理网卡的RDMA报文可为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文等,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述方法还可包括以下步骤:
对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
具体地,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,可以包括:
当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
进一步地,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理,可以包括:
当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息,以及,将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列,并根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。其中,所述当前处理信息可以为所述物理网卡当前处理的工作队列单元的序列号、需要重传的工作队列单元的序列号等信息。
也就是说,在本发明所述实施例中,在进行软硬切换的过程中,满足切换条件的任务队列中的待处理工作队列单元或其所对应的待处理RDMA报文将不被处理,在切换完成后,再通过查询被缓存住的工作队列单元或RDMA报文,并将其作为新的请求转发至切换后的业务执行端的方式来进行相应的处理。
另外需要说明的是,在本发明所述实施例中,为了便于操作,可将进行软硬切换操作时的任务队列的状态标记为切换状态,将未进行软硬切换操作时的任务队列的状态标记为非切换状态(具体地,可按照预设的初始化选路规则,将各任务队列标记为硬件处理状态以及软件处理状态等),以便在接收到新的待处理工作队列单元或RDMA报文等时,可首先根据该新的待处理工作队列单元或RDMA报文等所对应的任务队列的状态标记判断其所对应的任务队列的当前状态是否为非切换状态,在确定其所对应的任务队列的当前状态为非切换状态时,再执行后续的判断该新的待处理工作队列单元或RDMA报文等所对应的任务队列为第一类任务队列或第二类任务队列等操作,本发明实施例对此不作赘述。
进一步地,在本发明所述实施例中,所述方法还可包括以下步骤:
在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
本发明实施例五提供了一种数据处理方法,由于在本发明实施例五所述技术方案中,所述数据处理装置可根据预设的初始化选路规则,将生成的任一任务队列划分为需由物理网卡进行处理的第一类任务队列或需由数据处理装置进行处理的第二类任务队列,并在第一类任务队列中接收到工作队列单元时,指示物理网卡对第一类任务队列中的工作队列单元进行处理,在第二类任务队列中接收到工作队列单元时,由自身对第二类任务队列中的工作队列单元进行处理,从而在实现软硬相结合、主机网卡负荷分担的基础上,达到了提高RDMA业务的处理效率和处理效果的目的。
另外,在由物理网卡处理的任务队列满足相应的软硬切换条件时,还可将运行在物理网卡上的业务平滑地切换至主机端由软件接管,从而在形成软硬件主备切换的基础上,可进一步达到降低传统RDMA技术中存在的单点故障风险并进而提高RDMA业务处理的可靠性的目的。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (27)
1.一种计算机,其特征在于,包括数据处理装置以及物理网卡,其中:
所述数据处理装置,用于生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由所述物理网卡进行处理的任务队列,所述第二类任务队列为需由所述数据处理装置进行处理的任务队列,以及,在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡对所述第一类任务队列中的所述工作队列单元进行处理,在所述第二类任务队列中接收到工作队列单元时,根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,得到第二类远程直接内存访问RDMA请求报文,并将所述第二类RDMA请求报文发送给所述物理网卡;
所述物理网卡,用于在所述第一类任务队列中接收到工作队列单元时,根据所述数据处理装置的指示,从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类RDMA请求报文,并将所述第一类RDMA请求报文发送给对端,以及接收所述第二类RDMA请求报文并将所述第二类RDMA请求报文发送给对端。
2.根据权利要求1所述的计算机,其特征在于,所述初始化选路规则包括需由所述数据处理装置进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;
所述数据处理装置,具体用于根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
3.根据权利要求1所述的计算机,其特征在于,所述物理网卡,还用于接收RDMA报文,并根据物理网卡队列权限信息,确定接收的RDMA报文是否需由所述物理网卡进行处理,如果否,则将所述接收的RDMA报文提供给所述数据处理装置,如果是,则根据所述处理逻辑对所述接收的RDMA报文进行处理,其中,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合;
所述数据处理装置,还用于接收来自所述物理网卡的所述接收的RDMA报文,并根据所述处理逻辑,对所述接收的RDMA报文进行处理。
4.根据权利要求3所述的计算机,其特征在于,所述接收的RDMA报文为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文。
5.根据权利要求1-4任一项所述的计算机,其特征在于,所述数据处理装置,还用于对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
6.根据权利要求5所述的计算机,其特征在于,所述数据处理装置,具体用于当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
7.根据权利要求5或6所述的计算机,其特征在于,所述数据处理装置,具体用于当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息,以及,将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列,并根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。
8.根据权利要求7所述的计算机,其特征在于,所述数据处理装置,还用于在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
9.根据权利要求1-4任一项所述的计算机,其特征在于,所述数据处理装置,还用于建立自身与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
10.一种数据处理装置,其特征在于,包括:
初始化模块,用于生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由物理网卡进行处理的任务队列,所述第二类任务队列为需由软件处理模块进行处理的任务队列;
控制模块,用于在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡按照以下方式对所述第一类任务队列中的所述工作队列单元进行处理:从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类远程直接内存访问RDMA请求报文,以及,将所述第一类RDMA请求报文发送给对端;以及,在所述第二类任务队列中接收到工作队列单元时,指示所述软件处理模块对所述第二类任务队列中的所述工作队列单元进行处理;
所述软件处理模块,用于在所述第二类任务队列中接收到工作队列单元时,根据所述控制模块的指示,从所述第二类任务队列中获取所述工作队列单元,并根据处理逻辑对所述工作队列单元进行处理,得到第二类RDMA报文,以及,将所述第二类RDMA报文发送给所述物理网卡,以由所述物理网卡将所述第二类RDMA请求报文发送给对端。
11.根据权利要求10所述的装置,其特征在于,所述初始化选路规则包括需由所述软件处理模块进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;
所述初始化模块,具体用于根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
12.根据权利要求10所述的装置,其特征在于,所述软件处理模块,还用于接收来自所述物理网卡的RDMA报文,并根据所述处理逻辑对所述RDMA报文进行处理;其中,所述RDMA报文是所述物理网卡根据物理网卡队列权限信息,确定接收到的RDMA报文不需由所述物理网卡进行处理时,发送给所述软件处理模块的,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
13.根据权利要求12所述的装置,其特征在于,所述软件处理模块接收到的RDMA报文为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文。
14.根据权利要求10-13任一项所述的装置,其特征在于,所述控制模块,还用于对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述软件处理模块替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
15.根据权利要求14所述的装置,其特征在于,所述控制模块,具体用于当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
16.根据权利要求14或15所述的装置,其特征在于,所述控制模块,具体用于当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息并提供给所述软件处理模块,以及将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列;
所述软件处理模块,还用于根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。
17.根据权利要求16所述的装置,其特征在于,所述控制模块,还用于在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
18.根据权利要求10-13任一项所述的装置,其特征在于,所述初始化模块,还用于建立所述软件处理模块与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
19.一种数据处理方法,其特征在于,包括:
数据处理装置生成任务队列,并根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,所述第一类任务队列为需由物理网卡进行处理的任务队列,所述第二类任务队列为需由所述数据处理装置进行处理的任务队列;以及,
在所述第一类任务队列中接收到工作队列单元时,指示所述物理网卡按照以下方式对所述第一类任务队列中的所述工作队列单元进行处理:从所述第一类任务队列中获取所述工作队列单元,并根据所述处理逻辑对所述工作队列单元进行处理,得到第一类远程直接内存访问RDMA请求报文,以及,将所述第一类RDMA请求报文发送给对端;以及,
在所述第二类任务队列中接收到工作队列单元时,根据处理逻辑对所述第二类任务队列中的所述工作队列单元进行处理,得到第二类RDMA请求报文,并将所述第二类RDMA请求报文发送给所述物理网卡,以由所述物理网卡将所述第二类RDMA请求报文发送给对端。
20.根据权利要求19所述的方法,其特征在于,所述初始化选路规则包括需由所述数据处理装置进行处理的任务队列的标识或者需由所述物理网卡进行处理的任务队列的标识;
根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列,包括:
根据生成的任一任务队列的标识以及所述初始化选路规则,对所述生成的任一任务队列进行标记,以将所述生成的任一任务队列标记为第一类任务队列或第二类任务队列。
21.根据权利要求19所述的方法,其特征在于,所述方法还包括:接收来自所述物理网卡的RDMA报文,并根据所述处理逻辑对所述RDMA报文进行处理;
其中,所述RDMA报文是所述物理网卡根据物理网卡队列权限信息,确定接收到的RDMA报文不需由所述物理网卡进行处理时,发送给所述数据处理装置的,所述物理网卡队列权限信息为所述第一类任务队列中的各任务队列的标识的集合。
22.根据权利要求21所述的方法,其特征在于,接收到的来自所述物理网卡的RDMA报文为所述第一类RDMA报文的响应报文,或者所述第二类RDMA报文的响应报文,或者对端发送的RDMA读请求报文,或者对端发送的RDMA写请求报文。
23.根据权利要求19-22任一项所述的方法,其特征在于,所述方法还包括:对所述第一类任务队列进行监控,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理。
24.根据权利要求23所述的方法,其特征在于,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,包括:
当监控到所述第一类任务队列中存在任务队列的使用频率小于预设频率时,或者监测到所述第一类任务队列中存在任务队列中存在工作队列单元的单次交互时长大于预设时长时,或者监测到所述第一类任务队列中存在任务队列占用的处理器资源大于预设资源门限时,或者监测到所述第一类任务队列中存在任务队列、使得所述物理网卡从所述任务队列中获取工作队列单元的频率与接收到所述工作队列单元对应的响应报文的频率的差值大于预设值时,进行软硬切换;
其中,所述工作队列单元的单次交互时长是指,对所述工作队列单元进行处理之后发送给对端的时间与接收到所述对端发送的、所述工作队列单元对应的响应报文的时间的时间差值。
25.根据权利要求23或24所述的方法,其特征在于,当监控到所述第一类任务队列中存在任务队列满足切换条件时,进行软硬切换,以使所述数据处理装置替代所述物理网卡对所述第一类任务队列中的满足切换条件的任务队列进行处理,包括:
当监控到所述第一类任务队列中存在任务队列满足切换条件时,指示所述物理网卡停止对所述第一类任务队列中的满足切换条件的任务队列的处理,并从所述物理网卡处获取所述第一类任务队列中的满足切换条件的任务队列的当前处理信息,以及,将所述第一类任务队列中的满足切换条件的任务队列修改为第二类任务队列,并根据所述当前处理信息,对修改为第二类任务队列的所述第一类任务队列进行处理。
26.根据权利要求25所述的方法,其特征在于,所述方法还包括:在监控到所述第一类任务队列中存在任务队列满足切换条件时,修改所述物理网卡队列权限信息,以将所述修改为第二类任务队列的所述第一类任务队列的标识从所述物理网卡队列权限信息中移除。
27.根据权利要求19-22任一项所述的方法,其特征在于,在根据预设的初始化选路规则,将生成的任一任务队列划分为第一类任务队列或第二类任务队列之后,所述方法还包括:建立所述数据处理装置与所述第一类任务队列和所述第二类任务队列的映射关系,以及建立所述物理网卡与所述第一类任务队列的映射关系。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410142461.2A CN103942097B (zh) | 2014-04-10 | 2014-04-10 | 一种数据处理方法、装置及具备相应装置的计算机 |
PCT/CN2014/092026 WO2015154475A1 (zh) | 2014-04-10 | 2014-11-24 | 一种数据处理方法、装置及具备相应装置的计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410142461.2A CN103942097B (zh) | 2014-04-10 | 2014-04-10 | 一种数据处理方法、装置及具备相应装置的计算机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103942097A true CN103942097A (zh) | 2014-07-23 |
CN103942097B CN103942097B (zh) | 2017-11-24 |
Family
ID=51189772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410142461.2A Active CN103942097B (zh) | 2014-04-10 | 2014-04-10 | 一种数据处理方法、装置及具备相应装置的计算机 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103942097B (zh) |
WO (1) | WO2015154475A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015154475A1 (zh) * | 2014-04-10 | 2015-10-15 | 华为技术有限公司 | 一种数据处理方法、装置及具备相应装置的计算机 |
CN106201691A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种网络io密集型任务的调度方法及装置 |
WO2017177400A1 (zh) * | 2016-04-13 | 2017-10-19 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN107771332A (zh) * | 2015-06-02 | 2018-03-06 | 微软技术许可有限责任公司 | 经由基于rdma的rpc请求在联网计算机之间的快速读/写 |
CN110657472A (zh) * | 2019-09-05 | 2020-01-07 | 杭州电子科技大学 | 基于iOS的智能油烟机通信调度方法 |
CN111400213A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 传输数据的方法、装置及系统 |
CN117687795A (zh) * | 2024-01-25 | 2024-03-12 | 珠海星云智联科技有限公司 | 用于远程直接内存访问的硬件卸载方法、设备及介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445666B (zh) * | 2018-05-04 | 2022-12-06 | 阿里巴巴集团控股有限公司 | 一种网络质量检测方法、装置及服务器 |
CN113300979B (zh) * | 2021-02-05 | 2024-09-17 | 阿里巴巴集团控股有限公司 | Rdma网络下的网卡队列创建方法以及装置 |
CN113612773B (zh) * | 2021-08-03 | 2023-06-16 | 厦门至恒融兴信息技术股份有限公司 | 人工智能实现的智能报文识别和解析系统与方法 |
CN115865831A (zh) * | 2023-02-25 | 2023-03-28 | 广州翼辉信息技术有限公司 | 一种基于多队列加速网络性能的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808123A (zh) * | 2010-03-09 | 2010-08-18 | 浪潮(北京)电子信息产业有限公司 | 在存储系统中访问存储资源的方法和装置 |
US20110258337A1 (en) * | 2008-08-04 | 2011-10-20 | Zte Corporation | Method and system for enabling zero-copy transmission of streaming media data |
CN103150278A (zh) * | 2013-03-05 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 基于pio和dma混合的网络接口卡描述符提交方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442256C (zh) * | 2004-11-10 | 2008-12-10 | 国际商业机器公司 | 提供用于i/o适配器的队列对的方法、系统和存储介质 |
US7715428B2 (en) * | 2007-01-31 | 2010-05-11 | International Business Machines Corporation | Multicore communication processing |
US8589941B2 (en) * | 2010-04-23 | 2013-11-19 | International Business Machines Corporation | Resource affinity via dynamic reconfiguration for multi-queue network adapters |
CN103942097B (zh) * | 2014-04-10 | 2017-11-24 | 华为技术有限公司 | 一种数据处理方法、装置及具备相应装置的计算机 |
-
2014
- 2014-04-10 CN CN201410142461.2A patent/CN103942097B/zh active Active
- 2014-11-24 WO PCT/CN2014/092026 patent/WO2015154475A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258337A1 (en) * | 2008-08-04 | 2011-10-20 | Zte Corporation | Method and system for enabling zero-copy transmission of streaming media data |
CN101808123A (zh) * | 2010-03-09 | 2010-08-18 | 浪潮(北京)电子信息产业有限公司 | 在存储系统中访问存储资源的方法和装置 |
CN103150278A (zh) * | 2013-03-05 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 基于pio和dma混合的网络接口卡描述符提交方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015154475A1 (zh) * | 2014-04-10 | 2015-10-15 | 华为技术有限公司 | 一种数据处理方法、装置及具备相应装置的计算机 |
CN107771332A (zh) * | 2015-06-02 | 2018-03-06 | 微软技术许可有限责任公司 | 经由基于rdma的rpc请求在联网计算机之间的快速读/写 |
WO2017177400A1 (zh) * | 2016-04-13 | 2017-10-19 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN106201691A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种网络io密集型任务的调度方法及装置 |
CN110657472A (zh) * | 2019-09-05 | 2020-01-07 | 杭州电子科技大学 | 基于iOS的智能油烟机通信调度方法 |
CN111400213A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 传输数据的方法、装置及系统 |
CN111400213B (zh) * | 2019-09-29 | 2022-02-18 | 杭州海康威视系统技术有限公司 | 传输数据的方法、装置及系统 |
CN117687795A (zh) * | 2024-01-25 | 2024-03-12 | 珠海星云智联科技有限公司 | 用于远程直接内存访问的硬件卸载方法、设备及介质 |
CN117687795B (zh) * | 2024-01-25 | 2024-05-10 | 珠海星云智联科技有限公司 | 用于远程直接内存访问的硬件卸载方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2015154475A1 (zh) | 2015-10-15 |
CN103942097B (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103942097B (zh) | 一种数据处理方法、装置及具备相应装置的计算机 | |
US10938710B2 (en) | Protection switching method and system, and network device | |
CN110661702B (zh) | 一种链路备份的方法、装置及计算机可读存储介质 | |
US11240745B2 (en) | Network slice instance processing method and apparatus, and system | |
US9853906B2 (en) | Network prioritization based on node-level attributes | |
EP3099032A1 (en) | A load balancing method, device, system and computer storage medium | |
CN106533973B (zh) | 分发业务消息的方法、设备和系统 | |
US10979317B2 (en) | Service registration method and usage method, and related apparatus | |
US11734077B2 (en) | Evaluation device, evaluation method and evaluation program | |
CN109150659B (zh) | 一种处理器及bfd报文传输方法 | |
CN106603409B (zh) | 一种数据处理系统、方法及设备 | |
US10110344B2 (en) | Data packet transmission method and transmission device | |
US9923794B2 (en) | Method, apparatus, and system for identifying abnormal IP data stream | |
CN114640553A (zh) | 一种报文处理方法及装置 | |
EP3240251A1 (en) | Line card determination, determination processing method and device, and line card determination system | |
WO2017071430A1 (zh) | 处理报文的方法、网卡及系统、更新信息的方法及主机 | |
CN107547412B (zh) | 一种stp计算方法和装置 | |
KR101952187B1 (ko) | 서비스 노드 능력 처리 방법, 장치, 서비스 분류기 및 서비스 제어기 | |
US10951732B2 (en) | Service processing method and device | |
CN110636003A (zh) | 报文转发方法、装置、系统和计算机可读存储介质 | |
CN110731109A (zh) | 一种资源指示方法、设备和计算机存储介质 | |
CN112954084B (zh) | 边缘计算的处理方法、网络功能实例及边缘服务管控中心 | |
CN108874530B (zh) | 对报文转发设备的业务板进行扩容、缩容的方法和装置 | |
CN108282380B (zh) | 一种合法性检测方法和装置 | |
CA3081114C (en) | Integrity protection control method, network device and computer storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |