欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)處理方法、裝置及具備相應(yīng)裝置的計(jì)算的制造方法

文檔序號(hào):6543358閱讀:149來源:國知局
一種數(shù)據(jù)處理方法、裝置及具備相應(yīng)裝置的計(jì)算的制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)處理方法、裝置及具備相應(yīng)裝置的計(jì)算機(jī),數(shù)據(jù)處理裝置可用于生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)選路規(guī)則,將生成的各任務(wù)隊(duì)列劃分為需由物理網(wǎng)卡處理的第一類任務(wù)隊(duì)列或需由自身處理的第二類任務(wù)隊(duì)列;以及,在第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示物理網(wǎng)卡對(duì)第一類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,在第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由自身對(duì)第二類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高遠(yuǎn)程直接內(nèi)存訪問RDMA業(yè)務(wù)的處理效率和效果的目的。
【專利說明】一種數(shù)據(jù)處理方法、裝置及具備相應(yīng)裝置的計(jì)算機(jī)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)處理方法、裝置及具備相應(yīng)裝置的計(jì)算機(jī)。
【背景技術(shù)】
[0002]RDMA (Remote Direct Memory Access,遠(yuǎn)程直接內(nèi)存訪問)技術(shù),不需要對(duì)操作系統(tǒng)造成影響,就可以將數(shù)據(jù)從一個(gè)應(yīng)用系統(tǒng)快速移動(dòng)到遠(yuǎn)程應(yīng)用系統(tǒng)存儲(chǔ)器中,從而解決了網(wǎng)絡(luò)傳輸中服務(wù)器端數(shù)據(jù)處理的延遲。采用RDMA技術(shù),可以減少傳統(tǒng)以太網(wǎng)數(shù)據(jù)傳輸過程中對(duì)數(shù)據(jù)的內(nèi)存拷貝、內(nèi)核處理以及系統(tǒng)調(diào)用切換等過程,從而降低數(shù)據(jù)傳輸?shù)臅r(shí)延,提聞業(yè)務(wù)處理能力。
[0003]在現(xiàn)有技術(shù)中,可以在傳統(tǒng)以太網(wǎng)鏈路上實(shí)現(xiàn)RDMA功能,其基本原理為:當(dāng)有應(yīng)用發(fā)出RDMA請(qǐng)求(WR, Work Request)時(shí),應(yīng)用將構(gòu)造相應(yīng)的WQE (Work Queue Element,工作隊(duì)列單元)并將其壓入發(fā)送隊(duì)列中,由網(wǎng)卡從所述發(fā)送隊(duì)列中取出相應(yīng)的WQE進(jìn)行處理,以將所述WQE重新組包成相應(yīng)的RDMA報(bào)文后發(fā)送給對(duì)端;網(wǎng)卡還可以接收來自對(duì)端的RDMA報(bào)文,并對(duì)所述RDMA報(bào)文進(jìn)行處理。
[0004]由上述內(nèi)容可知,在現(xiàn)有技術(shù)中,通常是由純硬件網(wǎng)卡來實(shí)現(xiàn)RDMA請(qǐng)求或RDMA報(bào)文的處理的,當(dāng)網(wǎng)卡出現(xiàn)堵塞等工作異常情況時(shí),將導(dǎo)致性能瓶頸,降低RDMA業(yè)務(wù)的處理效率與處理效果。

【發(fā)明內(nèi)容】

[0005]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法、裝置及具備相應(yīng)裝置的計(jì)算機(jī),以解決僅由網(wǎng)卡來實(shí)現(xiàn)RDMA請(qǐng)求或RDMA報(bào)文的處理時(shí),業(yè)務(wù)處理效率以及處理效果均較差的問題。
[0006]第一方面,提供了一種計(jì)算機(jī),包括數(shù)據(jù)處理裝置以及物理網(wǎng)卡,其中:
[0007]所述數(shù)據(jù)處理裝置,用于生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列;以及,在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA請(qǐng)求報(bào)文,并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給所述物理網(wǎng)卡;
[0008]所述物理網(wǎng)卡,用于在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)所述數(shù)據(jù)處理裝置的指示,從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,并將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端,以及接收所述第二類RDMA請(qǐng)求報(bào)文并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。[0009]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述初始化選路規(guī)則包括需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí);
[0010]所述數(shù)據(jù)處理裝置,具體用于根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
[0011]結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述物理網(wǎng)卡,還用于接收RDMA報(bào)文,并根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收的RDMA報(bào)文是否需由所述物理網(wǎng)卡進(jìn)行處理,如果否,則將所述接收的RDMA報(bào)文提供給所述數(shù)據(jù)處理裝置,如果是,則根據(jù)所述處理邏輯對(duì)所述接收的RDMA報(bào)文進(jìn)行處理,其中,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合;
[0012]所述數(shù)據(jù)處理裝置,還用于接收來自所述物理網(wǎng)卡的所述接收的RDMA報(bào)文,并根據(jù)所述處理邏輯,對(duì)所述接收的RDMA報(bào)文進(jìn)行處理。
[0013]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述接收的RDMA報(bào)文為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文。
[0014]結(jié)合第一方面或第一方面的第一種、第二種或第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)處理裝置,還用于對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
[0015]結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)處理裝置,具體用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換;
[0016]其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
[0017]結(jié)合第一方面的第四種或第五種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)處理裝置,具體用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息,以及,將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列,并根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。
[0018]結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)處理裝置,還用于在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
[0019]結(jié)合第一方面或第一方面的第一種、第二種或第三種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)處理裝置,還用于建立自身與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映身寸關(guān)系。
[0020]第二方面,提供了一種數(shù)據(jù)處理裝置,包括:
[0021]初始化模塊,用于生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由軟件處理模塊進(jìn)行處理的任務(wù)隊(duì)列;
[0022]控制模塊,用于在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡按照以下方式對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理:從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,以及,將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端;以及,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述軟件處理模塊對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理;
[0023]所述軟件處理模塊,用于在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)所述控制模塊的指示,從所述第二類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA報(bào)文,以及,將所述第二類RDMA報(bào)文發(fā)送給所述物理網(wǎng)卡,以由所述物理網(wǎng)卡將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
[0024]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述初始化選路規(guī)則包括需由所述軟件處理模塊進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí);
[0025]所述初始化模塊,具體用于根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
[0026]結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述軟件處理模塊,還用于接收來自所述物理網(wǎng)卡的RDMA報(bào)文,并根據(jù)所述處理邏輯對(duì)所述RDMA報(bào)文進(jìn)行處理;其中,所述RDMA報(bào)文是所述物理網(wǎng)卡根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收到的RDMA報(bào)文不需由所述物理網(wǎng)卡進(jìn)行處理時(shí),發(fā)送給所述軟件處理模塊的,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。
[0027]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述軟件處理模塊接收到的RDMA報(bào)文為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文。
[0028]結(jié)合第二方面或第二方面的第一種、第二種或第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述控制模塊,還用于對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述軟件處理模塊替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
[0029]結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述控制模塊,具體用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換;
[0030]其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
[0031]結(jié)合第二方面的第四種或第五種可能的實(shí)現(xiàn)方式,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述控制模塊,具體用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息并提供給所述軟件處理模塊,以及將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列;
[0032]所述軟件處理模塊,還用于根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。
[0033]結(jié)合第二方面的第六種可能的實(shí)現(xiàn)方式,在第二方面的第七種可能的實(shí)現(xiàn)方式中,所述控制模塊,還用于在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
[0034]結(jié)合第二方面或第二方面的第一種、第二種或第三種可能的實(shí)現(xiàn)方式,在第二方面的第八種可能的實(shí)現(xiàn)方式中,所述初始化模塊,還用于建立所述軟件處理模塊與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
[0035]第三方面,提供了一種數(shù)據(jù)處理方法,包括:
[0036]數(shù)據(jù)處理裝置生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列;以及,
[0037]在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡按照以下方式對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理:從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,以及,將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端;以及,
[0038]在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA請(qǐng)求報(bào)文,并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給所述物理網(wǎng)卡,以由所述物理網(wǎng)卡將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
[0039]結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述初始化選路規(guī)則包括需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí);
[0040]根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,包括:
[0041]根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
[0042]結(jié)合第三方面,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述軟件處理模塊,所述方法還包括:接收來自所述物理網(wǎng)卡的RDMA報(bào)文,并根據(jù)所述處理邏輯對(duì)所述RDMA報(bào)文進(jìn)行處理;
[0043]其中,所述RDMA報(bào)文是所述物理網(wǎng)卡根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收到的RDMA報(bào)文不需由所述物理網(wǎng)卡進(jìn)行處理時(shí),發(fā)送給所述數(shù)據(jù)處理裝置的,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。
[0044]結(jié)合第三方面的第二種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方式中,接收到的來自所述物理網(wǎng)卡的RDMA報(bào)文為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文。
[0045]結(jié)合第三方面或第三方面的第一種、第二種或第三種可能的實(shí)現(xiàn)方式,在第三方面的第四種可能的實(shí)現(xiàn)方式中,所述方法還包括:對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
[0046]結(jié)合第三方面的第四種可能的實(shí)現(xiàn)方式,在第三方面的第五種可能的實(shí)現(xiàn)方式中,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,包括:
[0047]當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換;
[0048]其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
[0049]結(jié)合第三方面的第四種或第五種可能的實(shí)現(xiàn)方式,在第三方面的第六種可能的實(shí)現(xiàn)方式中,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理,包括:[0050]當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息,以及,將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列,并根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。
[0051]結(jié)合第三方面的第六種可能的實(shí)現(xiàn)方式,在第三方面的第七種可能的實(shí)現(xiàn)方式中,所述方法還包括:在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
[0052]結(jié)合第三方面或第三方面的第一種、第二種或第三種可能的實(shí)現(xiàn)方式,在第三方面的第八種可能的實(shí)現(xiàn)方式中,在根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列之后,所述方法還包括:建立所述數(shù)據(jù)處理裝置與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
[0053]在本發(fā)明實(shí)施例所述技術(shù)方案中,數(shù)據(jù)處理裝置可用于生成任務(wù)隊(duì)列,并針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將該任務(wù)隊(duì)列劃分為需由物理網(wǎng)卡處理的第一類任務(wù)隊(duì)列或需由自身處理的第二類任務(wù)隊(duì)列;以及,在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
【專利附圖】

【附圖說明】
[0054]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0055]圖1所示為本發(fā)明實(shí)施例一中所述計(jì)算機(jī)的結(jié)構(gòu)示意圖;
[0056]圖2所示為本發(fā)明實(shí)施例二中所述計(jì)算機(jī)的結(jié)構(gòu)示意圖;
[0057]圖3所示為本發(fā)明實(shí)施例三中所述數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0058]圖4所示為本發(fā)明實(shí)施例四中所述數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0059]圖5所示為本發(fā)明實(shí)施例五中所述數(shù)據(jù)處理方法的流程示意圖。
【具體實(shí)施方式】
[0060]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法、裝置及具備相應(yīng)數(shù)據(jù)處理裝置的計(jì)算機(jī),所述數(shù)據(jù)處理裝置可用于生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由所述計(jì)算機(jī)中的物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列,以及,在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA請(qǐng)求報(bào)文,并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給所述物理網(wǎng)卡;所述物理網(wǎng)卡可用于在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)所述數(shù)據(jù)處理裝置的指示,從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,并將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端,以及接收所述第二類RDMA請(qǐng)求報(bào)文并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
[0061]由于在本發(fā)明實(shí)施例所述技術(shù)方案中,可根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為需由物理網(wǎng)卡進(jìn)行處理的第一類任務(wù)隊(duì)列或需由數(shù)據(jù)處理裝置進(jìn)行處理的第二類任務(wù)隊(duì)列,并在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由數(shù)據(jù)處理裝置根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0062]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0063]實(shí)施例一:
[0064]本發(fā)明實(shí)施例一提供了一種計(jì)算機(jī),如圖1所示,其為本發(fā)明實(shí)施例一中所述計(jì)算機(jī)的結(jié)構(gòu)示意圖,所述計(jì)算機(jī)可包括數(shù)據(jù)處理裝置11以及物理網(wǎng)卡12,其中:
[0065]所述數(shù)據(jù)處理裝置11可用于生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由所述物理網(wǎng)卡12進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述數(shù)據(jù)處理裝置11進(jìn)行處理的任務(wù)隊(duì)列;以及,在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡12對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA請(qǐng)求報(bào)文,并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給所述物理網(wǎng)卡12 ;
[0066]所述物理網(wǎng)卡12可用于在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)所述數(shù)據(jù)處理裝置11的指示,從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,并將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端,以及,接收所述第二類RDMA請(qǐng)求報(bào)文并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
[0067]具體地,在本發(fā)明所述實(shí)施例中,所述數(shù)據(jù)處理裝置11可用于采用以下方式生成任務(wù)隊(duì)列,即QP (Queue Pair,隊(duì)列對(duì)):
[0068]在進(jìn)行計(jì)算機(jī)初始化的過程中,向所述計(jì)算機(jī)的操作系統(tǒng)申請(qǐng)內(nèi)存資源,并根據(jù)申請(qǐng)的內(nèi)存資源,注冊(cè)相應(yīng)的任務(wù)隊(duì)列。需要說明的是,所述數(shù)據(jù)處理裝置11所生成的任務(wù)隊(duì)列通常可為多個(gè),并且,每個(gè)任務(wù)隊(duì)列均可包括相應(yīng)的發(fā)送隊(duì)列以及接收隊(duì)列等,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0069]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述初始化選路規(guī)則可包括需由所述數(shù)據(jù)處理裝置11進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡12進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí);其中,所述初始化選路規(guī)則中包括的各任務(wù)隊(duì)列的標(biāo)識(shí)可以是各任務(wù)隊(duì)列的QP序列號(hào)(如發(fā)送隊(duì)列號(hào))或者與各任務(wù)隊(duì)列對(duì)應(yīng)相連的通信對(duì)端的任務(wù)隊(duì)列的QP序列號(hào)等能夠唯一標(biāo)識(shí)各任務(wù)隊(duì)列的信息,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0070]相應(yīng)地,所述數(shù)據(jù)處理裝置11具體可用于根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
[0071]具體地,在本發(fā)明所述實(shí)施例中,若所述初始化選路規(guī)則包括需由所述數(shù)據(jù)處理裝置11進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述數(shù)據(jù)處理裝置11具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列;或者,
[0072]若所述初始化選路規(guī)則包括需由所述物理網(wǎng)卡12進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述數(shù)據(jù)處理裝置11具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第二類任務(wù)隊(duì)列;或者,
[0073]若所述初始化選路規(guī)則包括需由所述數(shù)據(jù)處理裝置11進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)以及需由所述物理網(wǎng)卡12進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述數(shù)據(jù)處理裝置11具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的需由所述數(shù)據(jù)處理裝置11進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)或者需由所述物理網(wǎng)卡12進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),若確定包括在所述初始化規(guī)則所包括的需由所述數(shù)據(jù)處理裝置11進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,若確定包括在所述初始化規(guī)則所包括的需由所述物理網(wǎng)卡12進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列,若確定未包括在所述初始化規(guī)則所包括的需由所述數(shù)據(jù)處理裝置11進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)以及需由所述物理網(wǎng)卡12進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),則可根據(jù)實(shí)際情況,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0074]進(jìn)一步地,需要說明的是,在本發(fā)明所述實(shí)施例中,所述初始化選路規(guī)則可根據(jù)實(shí)際情況進(jìn)行調(diào)整設(shè)定,本發(fā)明實(shí)施例對(duì)此不作贅述。另外,需要說明的是,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列時(shí),通常需保證最終所得到的標(biāo)記為所述第一類任務(wù)隊(duì)列的各任務(wù)隊(duì)列所能夠占用的內(nèi)存資源之和不大于預(yù)設(shè)的資源閾值(如所述物理網(wǎng)卡12所具備的最大內(nèi)存資源),本發(fā)明實(shí)施例對(duì)此也不作贅述。
[0075]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,在根據(jù)所述初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列的同時(shí)或之后,所述數(shù)據(jù)處理裝置11還可用于建立自身與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡12與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
[0076]具體地,所述數(shù)據(jù)處理裝置11可用于根據(jù)標(biāo)記為所述第一類任務(wù)隊(duì)列的各任務(wù)隊(duì)列之間的先后關(guān)系(如QP序列號(hào)排序先后關(guān)系,或優(yōu)先級(jí)先后關(guān)系等),依次建立所述物理網(wǎng)卡12與所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的映射關(guān)系,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0077]進(jìn)一步地,在根據(jù)所述初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列之后,即可執(zhí)行相應(yīng)的RDMA請(qǐng)求或RDMA報(bào)文等的收發(fā)操作。
[0078]具體地,與現(xiàn)有技術(shù)類似,當(dāng)有RDMA讀請(qǐng)求或RDMA寫請(qǐng)求等上層應(yīng)用請(qǐng)求時(shí),上層應(yīng)用將構(gòu)造相應(yīng)的工作隊(duì)列單元(WQE)并將其壓入相應(yīng)的任務(wù)隊(duì)列中(具體地,上層應(yīng)用可將各工作隊(duì)列單元壓入相應(yīng)的任務(wù)隊(duì)列的發(fā)送隊(duì)列中)。相應(yīng)地,所述數(shù)據(jù)處理裝置11可在確定所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡12對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,以及,在確定所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由自身對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0079]進(jìn)一步地,所述物理網(wǎng)卡12以及所述數(shù)據(jù)處理裝置11對(duì)工作隊(duì)列單元進(jìn)行處理所得到的第一類RDMA請(qǐng)求報(bào)文以及第二類RDMA請(qǐng)求報(bào)文均可通過所述物理網(wǎng)卡12發(fā)送給對(duì)端。另外需要說明的是,在本發(fā)明所述實(shí)施例中,在將所述第一類RDMA請(qǐng)求報(bào)文或所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端時(shí),所述對(duì)端通常可指的是所述第一類RDMA請(qǐng)求報(bào)文的訪問目的端或所述第二類RDMA請(qǐng)求報(bào)文的訪問目的端,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0080]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述物理網(wǎng)卡12還可用于接收RDMA報(bào)文(SP來自對(duì)端的RDMA報(bào)文),并根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收的RDMA報(bào)文是否需由所述物理網(wǎng)卡12進(jìn)行處理,如果否,則將所述接收的RDMA報(bào)文提供給所述數(shù)據(jù)處理裝置11,如果是,則根據(jù)所述處理邏輯對(duì)所述接收的RDMA報(bào)文進(jìn)行處理,其中,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。
[0081]相應(yīng)地,所述數(shù)據(jù)處理裝置11還可用于接收來自所述物理網(wǎng)卡12的所述接收的RDMA報(bào)文,并根據(jù)所述處理邏輯,對(duì)所述接收的RDMA報(bào)文進(jìn)行處理。其中,所述接收的RDMA報(bào)文可以為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文等,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0082]具體地,在本發(fā)明所述實(shí)施例中,所述物理網(wǎng)卡12以及所述數(shù)據(jù)處理裝置11可采用以下方式對(duì)接收到的來自對(duì)端的RDMA報(bào)文進(jìn)行處理:
[0083]根據(jù)所述RDMA報(bào)文中指定的信息進(jìn)行相應(yīng)的DMA操作,如根據(jù)所述RDMA報(bào)文中指定的信息,將所述RDMA報(bào)文中攜帶的應(yīng)用層數(shù)據(jù)存儲(chǔ)在相應(yīng)的內(nèi)存槽位內(nèi),或者,從相應(yīng)的內(nèi)存槽位內(nèi)讀取數(shù)據(jù)并將讀取到的數(shù)據(jù)返回給相應(yīng)的對(duì)端設(shè)備等,本發(fā)明實(shí)施例對(duì)此不作贅述。[0084]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述數(shù)據(jù)處理裝置11還可用于對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置11替代所述物理網(wǎng)卡12對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
[0085]具體地,所述數(shù)據(jù)處理裝置11可用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí)(即監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在對(duì)應(yīng)的任一或多個(gè)工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長的任務(wù)隊(duì)列時(shí)),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列(即前述提到的存在的任務(wù)隊(duì)列)中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0086]其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
[0087]進(jìn)一步地,所述數(shù)據(jù)處理裝置11具體可用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡12停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡12處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息,以及,將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列,并根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。其中,所述當(dāng)前處理信息可以為所述物理網(wǎng)卡12當(dāng)前處理的工作隊(duì)列單元的序列號(hào)、需要重傳的工作隊(duì)列單元的序列號(hào)等信息。
[0088]也就是說,在本發(fā)明所述實(shí)施例中,在進(jìn)行軟硬切換的過程中,滿足切換條件的任務(wù)隊(duì)列中的待處理工作隊(duì)列單元或其所對(duì)應(yīng)的待處理RDMA報(bào)文將不被處理,在切換完成后,再通過查詢被緩存住的工作隊(duì)列單元或RDMA報(bào)文,并將其作為新的請(qǐng)求轉(zhuǎn)發(fā)至切換后的業(yè)務(wù)執(zhí)行端的方式來進(jìn)行相應(yīng)的處理。
[0089]另外需要說明的是,在本發(fā)明所述實(shí)施例中,為了便于操作,可將進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為切換狀態(tài),將未進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為非切換狀態(tài)(具體地,可按照預(yù)設(shè)的初始化選路規(guī)則,將各任務(wù)隊(duì)列標(biāo)記為硬件處理狀態(tài)以及軟件處理狀態(tài)等),以便在接收到新的待處理工作隊(duì)列單元或RDMA報(bào)文等時(shí),可首先根據(jù)該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記判斷其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)是否為非切換狀態(tài),在確定其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)為非切換狀態(tài)時(shí),再執(zhí)行后續(xù)的判斷該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列等操作,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0090]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述數(shù)據(jù)處理裝置11還可用于在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。需要說明的是,上述修改物理網(wǎng)卡隊(duì)列權(quán)限信息的操作也可由所述物理網(wǎng)卡12自身來執(zhí)行,此時(shí),所述物理網(wǎng)卡12可根據(jù)來自所述數(shù)據(jù)處理裝置11的修改指示,修改物理網(wǎng)卡隊(duì)列權(quán)限信息,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0091]本發(fā)明實(shí)施例一提供了一種包括數(shù)據(jù)處理裝置以及物理網(wǎng)卡的計(jì)算機(jī),由于在本發(fā)明實(shí)施例一所述技術(shù)方案中,所述數(shù)據(jù)處理裝置可根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為需由物理網(wǎng)卡進(jìn)行處理的第一類任務(wù)隊(duì)列或需由數(shù)據(jù)處理裝置進(jìn)行處理的第二類任務(wù)隊(duì)列,并在第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示物理網(wǎng)卡對(duì)第一類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,在第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由自身對(duì)第二類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0092]另外,在由物理網(wǎng)卡處理的任務(wù)隊(duì)列滿足相應(yīng)的軟硬切換條件時(shí),還可將運(yùn)行在物理網(wǎng)卡上的業(yè)務(wù)平滑地切換至主機(jī)端由軟件接管,從而在形成軟硬件主備切換的基礎(chǔ)上,可進(jìn)一步達(dá)到降低傳統(tǒng)RDMA技術(shù)中存在的單點(diǎn)故障風(fēng)險(xiǎn)并進(jìn)而提高RDMA業(yè)務(wù)處理的可靠性的目的。
[0093]實(shí)施例二:
[0094]本發(fā)明實(shí)施例二提供了一種計(jì)算機(jī),如圖2所示,其為本發(fā)明實(shí)施例二中所述計(jì)算機(jī)的結(jié)構(gòu)示意圖,所述計(jì)算機(jī)可包括至少一個(gè)處理器21、至少一個(gè)物理網(wǎng)卡22以及至少一個(gè)存儲(chǔ)器23等部件。本領(lǐng)域技術(shù)人員可以理解,圖2中示出的計(jì)算機(jī)的結(jié)構(gòu)并不構(gòu)成對(duì)計(jì)算機(jī)的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0095]具體地,所述處理器21可以是一個(gè)通用中央處理器、微處理器、ASIC(application-specific integrated circuit,特定應(yīng)用集成電路)、或一個(gè)或多個(gè)用于控制本發(fā)明方案程序執(zhí)行的集成電路,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0096]進(jìn)一步地,所述存儲(chǔ)器23可以是R0M(read_only memory,只讀存儲(chǔ)器)或可存儲(chǔ)靜態(tài)信息和指令的其他類型的靜態(tài)存儲(chǔ)設(shè)備,RAM (random access memory,隨機(jī)存取存儲(chǔ)器)或者可存儲(chǔ)信息和指令的其他類型的動(dòng)態(tài)存儲(chǔ)設(shè)備,也可以是EEPROM (ElectricallyErasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器),CD-ROM (CompactDisc Read-Only Memory,只讀光盤)或其他光盤存儲(chǔ)、光碟存儲(chǔ)(包括壓縮光碟、激光碟、光碟、數(shù)字通用光碟、藍(lán)光光碟等)、磁盤存儲(chǔ)介質(zhì)或者其他磁存儲(chǔ)設(shè)備,或者能夠用于攜帶或存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計(jì)算機(jī)存取的任何其他介質(zhì),但不限于此。
[0097]進(jìn)一步地,所述存儲(chǔ)器23可用于存儲(chǔ)執(zhí)行本發(fā)明方案的各應(yīng)用程序代碼,如物理網(wǎng)卡22的驅(qū)動(dòng)程序代碼、初始化程序代碼以及經(jīng)過調(diào)用后具備所述物理網(wǎng)卡22所具備的相應(yīng)數(shù)據(jù)處理能力的軟件網(wǎng)卡代碼等;并且,所述存儲(chǔ)器23中所存儲(chǔ)的應(yīng)用程序代碼可由所述處理器21來控制執(zhí)行。
[0098]具體地,在本發(fā)明所述實(shí)施例中,所述處理器21可用于通過調(diào)用所述存儲(chǔ)器23中存儲(chǔ)的各應(yīng)用程序代碼,以執(zhí)行以下操作:
[0099]生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由所述物理網(wǎng)卡22進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述處理器21進(jìn)行處理的任務(wù)隊(duì)列;以及,在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡22對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA請(qǐng)求報(bào)文,并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給物理網(wǎng)卡22 ;
[0100]所述物理網(wǎng)卡22可用于在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)所述處理器21的指示,從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,并將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端;以及,接收所述第二類RDMA請(qǐng)求報(bào)文并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送
給對(duì)端。
[0101]具體地,在本發(fā)明所述實(shí)施例中,處理器21可用于采用以下方式生成任務(wù)隊(duì)列(即 QP):
[0102]在進(jìn)行計(jì)算機(jī)初始化的過程中,向所述計(jì)算機(jī)的操作系統(tǒng)申請(qǐng)內(nèi)存資源,并根據(jù)申請(qǐng)的內(nèi)存資源,注冊(cè)相應(yīng)的任務(wù)隊(duì)列。需要說明的是,所述處理器21所生成的任務(wù)隊(duì)列通??蔀槎鄠€(gè),并且,每個(gè)任務(wù)隊(duì)列均可包括相應(yīng)的發(fā)送隊(duì)列以及接收隊(duì)列等,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0103]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述初始化選路規(guī)則可包括需由所述處理器21進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡22進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí);其中,所述初始化選路規(guī)則中包括的各任務(wù)隊(duì)列的標(biāo)識(shí)可以是各任務(wù)隊(duì)列的QP序列號(hào)(如發(fā)送隊(duì)列號(hào))或者與各任務(wù)隊(duì)列對(duì)應(yīng)相連的通信對(duì)端的任務(wù)隊(duì)列的QP序列號(hào)等能夠唯一標(biāo)識(shí)各任務(wù)隊(duì)列的信息,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0104]相應(yīng)地,所述處理器21具體可用于根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
[0105]具體地,在本發(fā)明所述實(shí)施例中,若所述初始化選路規(guī)則包括需由所述處理器21進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述處理器21具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列;或者,
[0106]若所述初始化選路規(guī)則包括需由所述物理網(wǎng)卡22進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述處理器21具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第二類任務(wù)隊(duì)列;或者,
[0107]若所述初始化選路規(guī)則包括需由所述處理器21進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)以及需由所述物理網(wǎng)卡22進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述處理器21具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的需由所述處理器21進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)或者需由所述物理網(wǎng)卡2 2進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),若確定包括在所述初始化規(guī)則所包括的需由所述處理器21進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,若確定包括在所述初始化規(guī)則所包括的需由所述物理網(wǎng)卡22進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列,若確定未包括在所述初始化規(guī)則所包括的需由所述處理器21進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)以及需由所述物理網(wǎng)卡22進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),則可根據(jù)實(shí)際情況,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0108]進(jìn)一步地,需要說明的是,在本發(fā)明所述實(shí)施例中,所述初始化選路規(guī)則可根據(jù)實(shí)際情況進(jìn)行調(diào)整設(shè)定,本發(fā)明實(shí)施例對(duì)此不作贅述。另外,需要說明的是,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列時(shí),通常需保證最終所得到的標(biāo)記為所述第一類任務(wù)隊(duì)列的各任務(wù)隊(duì)列所能夠占用的內(nèi)存資源之和不大于預(yù)設(shè)的資源閾值(如所述物理網(wǎng)卡22所具備的最大內(nèi)存資源),本發(fā)明實(shí)施例對(duì)此也不作贅述。
[0109]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列的同時(shí)或之后,所述處理器21還可用于建立自身與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡22與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
[0110]具體地,所述處理器21可用于根據(jù)標(biāo)記為所述第一類任務(wù)隊(duì)列的各任務(wù)隊(duì)列之間的先后關(guān)系(如QP序列號(hào)排序先后關(guān)系,或優(yōu)先級(jí)先后關(guān)系等),依次建立所述物理網(wǎng)卡22與所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的映射關(guān)系,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0111]進(jìn)一步地,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列之后,即可執(zhí)行相應(yīng)的RDMA請(qǐng)求或RDMA報(bào)文等的收發(fā)操作。
[0112]具體地,與現(xiàn)有技術(shù)類似,當(dāng)有RDMA讀請(qǐng)求或RDMA寫請(qǐng)求等上層應(yīng)用請(qǐng)求時(shí),上層應(yīng)用將構(gòu)造相應(yīng)的工作隊(duì)列單元(WQE)并將其壓入相應(yīng)的任務(wù)隊(duì)列中(具體地,上層應(yīng)用可將各工作隊(duì)列單元壓入相應(yīng)的任務(wù)隊(duì)列的發(fā)送隊(duì)列中)。相應(yīng)地,所述處理器21可在確定所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡22對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,以及,在確定所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由自身對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0113]進(jìn)一步地,所述物理網(wǎng)卡22以及所述處理器21對(duì)工作隊(duì)列單元進(jìn)行處理所得到的第一類RDMA請(qǐng)求報(bào)文以及第二類RDMA請(qǐng)求報(bào)文均可通過所述物理網(wǎng)卡22發(fā)送給對(duì)端。另外需要說明的是,在本發(fā)明所述實(shí)施例中,在將所述第一類RDMA請(qǐng)求報(bào)文或所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端時(shí),所述對(duì)端通常可指的是所述第一類RDMA請(qǐng)求報(bào)文的訪問目的端或所述第二類RDMA請(qǐng)求報(bào)文的訪問目的端,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0114]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述物理網(wǎng)卡22還可用于接收RDMA報(bào)文(SP來自對(duì)端的RDMA報(bào)文),并根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收的RDMA報(bào)文是否需由所述物理網(wǎng)卡22進(jìn)行處理,如果否,則將所述接收的RDMA報(bào)文提供給所述處理器21,如果是,則根據(jù)所述處理邏輯對(duì)所述接收的RDMA報(bào)文進(jìn)行處理,其中,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。[0115]相應(yīng)地,所述處理器21還可用于接收來自所述物理網(wǎng)卡22的所述接收的RDMA報(bào)文,并根據(jù)所述處理邏輯,對(duì)所述接收的RDMA報(bào)文進(jìn)行處理。其中,所述接收的RDMA報(bào)文可以為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文等,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0116]具體地,在本發(fā)明所述實(shí)施例中,所述物理網(wǎng)卡22以及所述處理器21可采用以下方式對(duì)接收到的來自對(duì)端的RDMA報(bào)文進(jìn)行處理:
[0117]根據(jù)所述RDMA報(bào)文中指定的信息進(jìn)行相應(yīng)的DMA操作,如根據(jù)所述RDMA報(bào)文中指定的信息,將所述RDMA報(bào)文中攜帶的應(yīng)用層數(shù)據(jù)存儲(chǔ)在相應(yīng)的內(nèi)存槽位內(nèi),或者,從相應(yīng)的內(nèi)存槽位內(nèi)讀取數(shù)據(jù)并將讀取到的數(shù)據(jù)返回給相應(yīng)的對(duì)端設(shè)備等,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0118]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述處理器21還可用于對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述處理器21替代所述物理網(wǎng)卡22對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
[0119]具體地,所述處理器21可用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0120]其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
[0121]進(jìn)一步地,所述處理器21具體可用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡22停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡22處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息,以及,將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列,并根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。其中,所述當(dāng)前處理信息可以為所述物理網(wǎng)卡22當(dāng)前處理的工作隊(duì)列單元的序列號(hào)、需要重傳的工作隊(duì)列單元的序列號(hào)等信息。
[0122]也就是說,在本發(fā)明所述實(shí)施例中,在進(jìn)行軟硬切換的過程中,滿足切換條件的任務(wù)隊(duì)列中的待處理工作隊(duì)列單元或其所對(duì)應(yīng)的待處理RDMA報(bào)文將不被處理,在切換完成后,再通過查詢被緩存住的工作隊(duì)列單元或RDMA報(bào)文,并將其作為新的請(qǐng)求轉(zhuǎn)發(fā)至切換后的業(yè)務(wù)執(zhí)行端的方式來進(jìn)行相應(yīng)的處理。
[0123]另外需要說明的是,在本發(fā)明所述實(shí)施例中,為了便于操作,可將進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為切換狀態(tài),將未進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為非切換狀態(tài)(具體地,可按照預(yù)設(shè)的初始化選路規(guī)則,將各任務(wù)隊(duì)列標(biāo)記為硬件處理狀態(tài)以及軟件處理狀態(tài)等),以便在接收到新的待處理工作隊(duì)列單元或RDMA報(bào)文等時(shí),可首先根據(jù)該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記判斷其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)是否為非切換狀態(tài),在確定其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)為非切換狀態(tài)時(shí),再執(zhí)行后續(xù)的判斷該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列等操作,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0124]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述處理器21還可用于在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。需要說明的是,上述修改物理網(wǎng)卡隊(duì)列權(quán)限信息的操作也可由所述物理網(wǎng)卡22自身來執(zhí)行,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0125]本發(fā)明實(shí)施例二提供了一種包括處理器以及物理網(wǎng)卡的計(jì)算機(jī),由于在本發(fā)明實(shí)施例二所述技術(shù)方案中,所述處理器可根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為需由物理網(wǎng)卡進(jìn)行處理的第一類任務(wù)隊(duì)列或需由處理器進(jìn)行處理的第二類任務(wù)隊(duì)列,并在第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示物理網(wǎng)卡對(duì)第一類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,在第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由自身對(duì)第二類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0126]另外,在由物理網(wǎng)卡處理的任務(wù)隊(duì)列滿足相應(yīng)的軟硬切換條件時(shí),還可將運(yùn)行在物理網(wǎng)卡上的業(yè)務(wù)平滑地切換至主機(jī)端由軟件接管,從而在形成軟硬件主備切換的基礎(chǔ)上,可進(jìn)一步達(dá)到降低傳統(tǒng)RDMA技術(shù)中存在的單點(diǎn)故障風(fēng)險(xiǎn)并進(jìn)而提高RDMA業(yè)務(wù)處理的可靠性的目的。
[0127]實(shí)施例三:
[0128]本發(fā)明實(shí)施例三提供了一種數(shù)據(jù)處理裝置,如圖3所示,其為本發(fā)明實(shí)施例三中所述數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,所述數(shù)據(jù)處理裝置可包括初始化模塊31、控制模塊32以及軟件處理模塊33,其中:
[0129]所述初始化模塊31可用于生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由軟件處理模塊33進(jìn)行處理的任務(wù)隊(duì)列;
[0130]所述控制模塊32可用于在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡按照以下方式對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理:從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,以及,將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端;以及,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述軟件處理模塊33對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理;
[0131]所述軟件處理模塊33可用于在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)所述控制模塊32的指示,從所述第二類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA報(bào)文,以及,將所述第二類RDMA報(bào)文發(fā)送給所述物理網(wǎng)卡,以由所述物理網(wǎng)卡將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。[0132]進(jìn)一步地,所述初始化選路規(guī)則可包括需由所述軟件處理模塊33進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí);相應(yīng)地,所述初始化模塊31具體可用于根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
[0133]具體地,在本發(fā)明所述實(shí)施例中,若所述初始化選路規(guī)則包括需由所述軟件處理模塊33進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述初始化模塊31具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列;或者,
[0134]若所述初始化選路規(guī)則包括需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述初始化模塊31具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第二類任務(wù)隊(duì)列;或者,
[0135]若所述初始化選路規(guī)則包括需由所述軟件處理模塊33進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)以及需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述初始化模塊31具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的需由所述軟件處理模塊33進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),若確定包括在所述初始化規(guī)則所包括的需由所述軟件處理模塊33進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,若確定包括在所述初始化規(guī)則所包括的需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列,若確定未包括在所述初始化規(guī)則所包括的需由所述軟件處理模塊33進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)以及需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),則可根據(jù)實(shí)際情況,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0136]進(jìn)一步地,需要說明的是,在本發(fā)明所述實(shí)施例中,所述初始化選路規(guī)則可根據(jù)實(shí)際情況進(jìn)行調(diào)整設(shè)定,本發(fā)明實(shí)施例對(duì)此不作贅述。另外,需要說明的是,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列時(shí),通常需保證最終所得到的標(biāo)記為所述第一類任務(wù)隊(duì)列的各任務(wù)隊(duì)列所能夠占用的內(nèi)存資源之和不大于預(yù)設(shè)的資源閾值(如所述物理網(wǎng)卡所具備的最大內(nèi)存資源),本發(fā)明實(shí)施例對(duì)此也不作贅述。
[0137]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列的同時(shí)或之后,所述初始化模塊31還可用于建立自身與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
[0138]進(jìn)一步地,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列之后,即可執(zhí)行相應(yīng)的RDMA請(qǐng)求或RDMA報(bào)文等的收發(fā)操作。
[0139]具體地,與現(xiàn)有技術(shù)類似,當(dāng)有RDMA讀請(qǐng)求或RDMA寫請(qǐng)求等上層應(yīng)用請(qǐng)求時(shí),上層應(yīng)用將構(gòu)造相應(yīng)的工作隊(duì)列單元(WQE)并將其壓入相應(yīng)的任務(wù)隊(duì)列中(具體地,上層應(yīng)用可將各工作隊(duì)列單元壓入相應(yīng)的任務(wù)隊(duì)列的發(fā)送隊(duì)列中)。相應(yīng)地,所述控制模塊32可在確定所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,以及,在確定所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述軟件處理模塊33對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0140]進(jìn)一步地,所述物理網(wǎng)卡以及所述軟件處理模塊33對(duì)工作隊(duì)列單元進(jìn)行處理所得到的第一類RDMA請(qǐng)求報(bào)文以及第二類RDMA請(qǐng)求報(bào)文均可通過所述物理網(wǎng)卡發(fā)送給對(duì)端。另外需要說明的是,在本發(fā)明所述實(shí)施例中,在將所述第一類RDMA請(qǐng)求報(bào)文或所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端時(shí),所述對(duì)端通??芍傅氖撬龅谝活怰DMA請(qǐng)求報(bào)文的訪問目的端或所述第二類RDMA請(qǐng)求報(bào)文的訪問目的端,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0141 ] 進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述軟件處理模塊33還可用于接收來自所述物理網(wǎng)卡的RDMA報(bào)文,并根據(jù)所述處理邏輯對(duì)所述RDMA報(bào)文進(jìn)行處理;其中,所述RDMA報(bào)文是所述物理網(wǎng)卡根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收到的RDMA報(bào)文不需由所述物理網(wǎng)卡進(jìn)行處理時(shí),發(fā)送給所述軟件處理模塊的,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。
[0142]進(jìn)一步地,所述軟件處理模塊33接收到的來自物理網(wǎng)卡的RDMA報(bào)文為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文等,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0143]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述控制模塊32還可用于對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述軟件處理模塊33替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
[0144]進(jìn)一步地,所述控制模塊32具體可用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換;
[0145]其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
[0146]進(jìn)一步地,所述控制模塊32可用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息并提供給所述軟件處理模塊33,以及將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列。其中,所述當(dāng)前處理信息可以為所述物理網(wǎng)卡當(dāng)前處理的工作隊(duì)列單元的序列號(hào)、需要重傳的工作隊(duì)列單元的序列號(hào)等信息。
[0147]相應(yīng)地,所述軟件處理模塊33還可用于根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。
[0148]也就是說,在本發(fā)明所述實(shí)施例中,在進(jìn)行軟硬切換的過程中,滿足切換條件的任務(wù)隊(duì)列中的待處理工作隊(duì)列單元或其所對(duì)應(yīng)的待處理RDMA報(bào)文將不被處理,在切換完成后,再通過查詢被緩存住的工作隊(duì)列單元或RDMA報(bào)文,并將其作為新的請(qǐng)求轉(zhuǎn)發(fā)至切換后的業(yè)務(wù)執(zhí)行端的方式來進(jìn)行相應(yīng)的處理。
[0149]另外需要說明的是,在本發(fā)明所述實(shí)施例中,為了便于操作,可將進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為切換狀態(tài),將未進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為非切換狀態(tài)(具體地,可按照預(yù)設(shè)的初始化選路規(guī)則,將各任務(wù)隊(duì)列標(biāo)記為硬件處理狀態(tài)以及軟件處理狀態(tài)等),以便在接收到新的待處理工作隊(duì)列單元或RDMA報(bào)文等時(shí),可首先根據(jù)該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記判斷其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)是否為非切換狀態(tài),在確定其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)為非切換狀態(tài)時(shí),再執(zhí)行后續(xù)的判斷該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列等操作,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0150]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述控制模塊32還可用于在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
[0151]本發(fā)明實(shí)施例三提供了 一種數(shù)據(jù)處理裝置,由于在本發(fā)明實(shí)施例三所述技術(shù)方案中,所述數(shù)據(jù)處理裝置可根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為需由物理網(wǎng)卡進(jìn)行處理的第一類任務(wù)隊(duì)列或需由軟件處理模塊進(jìn)行處理的第二類任務(wù)隊(duì)列,并在第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示物理網(wǎng)卡對(duì)第一類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,在第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示軟件處理模塊對(duì)第二類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0152]另外,在由物理網(wǎng)卡處理的任務(wù)隊(duì)列滿足相應(yīng)的軟硬切換條件時(shí),還可將運(yùn)行在物理網(wǎng)卡上的業(yè)務(wù)平滑地切換至主機(jī)端由軟件接管,從而在形成軟硬件主備切換的基礎(chǔ)上,可進(jìn)一步達(dá)到降低傳統(tǒng)RDMA技術(shù)中存在的單點(diǎn)故障風(fēng)險(xiǎn)并進(jìn)而提高RDMA業(yè)務(wù)處理的可靠性的目的。
[0153]實(shí)施例四:
[0154]本發(fā)明實(shí)施例四提供了一種數(shù)據(jù)處理裝置,如圖4所示,其為本發(fā)明實(shí)施例四中所述數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,所述數(shù)據(jù)處理裝置可包括至少一個(gè)處理器41以及至少一個(gè)存儲(chǔ)器42等部件。本領(lǐng)域技術(shù)人員可以理解,圖4中示出的數(shù)據(jù)處理裝置的結(jié)構(gòu)并不構(gòu)成對(duì)數(shù)據(jù)處理裝置的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0155]具體地,所述處理器41可以是一個(gè)通用中央處理器、微處理器、ASIC、或一個(gè)或多個(gè)用于控制本發(fā)明方案程序執(zhí)行的集成電路,本發(fā)明實(shí)施例對(duì)此不作任何限定。[0156]進(jìn)一步地,所述存儲(chǔ)器42可以是ROM或可存儲(chǔ)靜態(tài)信息和指令的其他類型的靜態(tài)存儲(chǔ)設(shè)備,RAM或者可存儲(chǔ)信息和指令的其他類型的動(dòng)態(tài)存儲(chǔ)設(shè)備,也可以是EEPR0M,CD-ROM或其他光盤存儲(chǔ)、光碟存儲(chǔ)(包括壓縮光碟、激光碟、光碟、數(shù)字通用光碟、藍(lán)光光碟等)、磁盤存儲(chǔ)介質(zhì)或者其他磁存儲(chǔ)設(shè)備,或者能夠用于攜帶或存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計(jì)算機(jī)存取的任何其他介質(zhì),但不限于此。
[0157]進(jìn)一步地,所述存儲(chǔ)器42可用于存儲(chǔ)執(zhí)行本發(fā)明方案的各應(yīng)用程序代碼,如物理網(wǎng)卡的驅(qū)動(dòng)程序代碼、初始化程序代碼以及經(jīng)過調(diào)用后具備所述物理網(wǎng)卡所具備的相應(yīng)數(shù)據(jù)處理能力的軟件網(wǎng)卡代碼等;并且,所述存儲(chǔ)器42中所存儲(chǔ)的應(yīng)用程序代碼可由所述處理器41來控制執(zhí)行。
[0158]具體地,在本發(fā)明所述實(shí)施例中,所述處理器41可用于通過調(diào)用所述存儲(chǔ)器42中存儲(chǔ)的各應(yīng)用程序代碼,以執(zhí)行以下操作:
[0159]生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述處理器41進(jìn)行處理的任務(wù)隊(duì)列;以及,
[0160]在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡按照以下方式對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理:從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,以及,將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端;以及,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),從所述第二類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA報(bào)文,以及,將所述第二類RDMA報(bào)文發(fā)送給所述物理網(wǎng)卡,以由所述物理網(wǎng)卡將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
[0161]進(jìn)一步地,所述初始化選路規(guī)則可包括需由所述處理器41進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí);相應(yīng)地,所述處理器41具體可用于根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
[0162]具體地,在本發(fā)明所述實(shí)施例中,若所述初始化選路規(guī)則包括需由所述處理器41進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述處理器41具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列;或者,
[0163]若所述初始化選路規(guī)則包括需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述處理器41具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第二類任務(wù)隊(duì)列;或者,
[0164]若所述初始化選路規(guī)則包括需由所述處理器41進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)以及需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述處理器41具體可用于針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的需由所述處理器41進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),若確定包括在所述初始化規(guī)則所包括的需由所述處理器41進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,若確定包括在所述初始化規(guī)則所包括的需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列,若確定未包括在所述初始化規(guī)則所包括的需由所述處理器41進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)以及需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),則可根據(jù)實(shí)際情況,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0165]進(jìn)一步地,需要說明的是,在本發(fā)明所述實(shí)施例中,所述初始化選路規(guī)則可根據(jù)實(shí)際情況進(jìn)行調(diào)整設(shè)定,本發(fā)明實(shí)施例對(duì)此不作贅述。另外,需要說明的是,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列時(shí),通常需保證最終所得到的標(biāo)記為所述第一類任務(wù)隊(duì)列的各任務(wù)隊(duì)列所能夠占用的內(nèi)存資源之和不大于預(yù)設(shè)的資源閾值(如所述物理網(wǎng)卡所具備的最大內(nèi)存資源),本發(fā)明實(shí)施例對(duì)此也不作贅述。
[0166]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列的同時(shí)或之后,所述處理器41還可用于建立自身與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
[0167]進(jìn)一步地,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列之后,即可執(zhí)行相應(yīng)的RDMA請(qǐng)求或RDMA報(bào)文等的收發(fā)操作。
[0168]具體地,與現(xiàn)有技術(shù)類似,當(dāng)有RDMA讀請(qǐng)求或RDMA寫請(qǐng)求等上層應(yīng)用請(qǐng)求時(shí),上層應(yīng)用將構(gòu)造相應(yīng)的工作隊(duì)列單元(WQE)并將其壓入相應(yīng)的任務(wù)隊(duì)列中(具體地,上層應(yīng)用可將各工作隊(duì)列單元壓入相應(yīng)的任務(wù)隊(duì)列的發(fā)送隊(duì)列中)。相應(yīng)地,所述處理器41可在確定所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,以及,在確定所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由自身對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0169]進(jìn)一步地,所述物理網(wǎng)卡以及所述處理器41對(duì)工作隊(duì)列單元進(jìn)行處理所得到的第一類RDMA請(qǐng)求報(bào)文以及第二類RDMA請(qǐng)求報(bào)文均可通過所述物理網(wǎng)卡發(fā)送給對(duì)端。另外需要說明的是,在本發(fā)明所述實(shí)施例中,在將所述第一類RDMA請(qǐng)求報(bào)文或所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端時(shí),所述對(duì)端通??芍傅氖撬龅谝活怰DMA請(qǐng)求報(bào)文的訪問目的端或所述第二類RDMA請(qǐng)求報(bào)文的訪問目的端,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0170]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述處理器41還可用于接收來自所述物理網(wǎng)卡的RDMA報(bào)文,并根據(jù)所述處理邏輯對(duì)所述RDMA報(bào)文進(jìn)行處理;其中,所述RDMA報(bào)文是所述物理網(wǎng)卡根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收到的RDMA報(bào)文不需由所述物理網(wǎng)卡進(jìn)行處理時(shí),發(fā)送給所述軟件處理模塊的,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。
[0171]進(jìn)一步地,所述處理器41接收到的來自物理網(wǎng)卡的RDMA報(bào)文為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文等,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0172]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述處理器41還可用于對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述處理器41替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
[0173]進(jìn)一步地,所述處理器41具體可用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換;
[0174]其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
[0175]進(jìn)一步地,所述處理器41具體可用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息,以及將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列,并根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。其中,所述當(dāng)前處理信息可以為所述物理網(wǎng)卡當(dāng)前處理的工作隊(duì)列單元的序列號(hào)、需要重傳的工作隊(duì)列單元的序列號(hào)等信息。
[0176]也就是說,在本發(fā)明所述實(shí)施例中,在進(jìn)行軟硬切換的過程中,滿足切換條件的任務(wù)隊(duì)列中的待處理工作隊(duì)列單元或其所對(duì)應(yīng)的待處理RDMA報(bào)文將不被處理,在切換完成后,再通過查詢被緩存住的工作隊(duì)列單元或RDMA報(bào)文,并將其作為新的請(qǐng)求轉(zhuǎn)發(fā)至切換后的業(yè)務(wù)執(zhí)行端的方式來進(jìn)行相應(yīng)的處理。
[0177]另外需要說明的是,在本發(fā)明所述實(shí)施例中,為了便于操作,可將進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為切換狀態(tài),將未進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為非切換狀態(tài)(具體地,可按照預(yù)設(shè)的初始化選路規(guī)則,將各任務(wù)隊(duì)列標(biāo)記為硬件處理狀態(tài)以及軟件處理狀態(tài)等),以便在接收到新的待處理工作隊(duì)列單元或RDMA報(bào)文等時(shí),可首先根據(jù)該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記判斷其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)是否為非切換狀態(tài),在確定其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)為非切換狀態(tài)時(shí),再執(zhí)行后續(xù)的判斷該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列等操作,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0178]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述處理器41還可用于在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
[0179]本發(fā)明實(shí)施例四提供了 一種包括處理器以及存儲(chǔ)器的數(shù)據(jù)處理裝置,由于在本發(fā)明實(shí)施例四所述技術(shù)方案中,所述數(shù)據(jù)處理裝置中的處理器可根據(jù)預(yù)設(shè)的初始化選路規(guī)貝U,將生成的任一任務(wù)隊(duì)列劃分為需由物理網(wǎng)卡進(jìn)行處理的第一類任務(wù)隊(duì)列或需由處理器進(jìn)行處理的第二類任務(wù)隊(duì)列,并在第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示物理網(wǎng)卡對(duì)第一類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,在第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由自身對(duì)第二類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0180]另外,在由物理網(wǎng)卡處理的任務(wù)隊(duì)列滿足相應(yīng)的軟硬切換條件時(shí),還可將運(yùn)行在物理網(wǎng)卡上的業(yè)務(wù)平滑地切換至主機(jī)端由軟件接管,從而在形成軟硬件主備切換的基礎(chǔ)上,可進(jìn)一步達(dá)到降低傳統(tǒng)RDMA技術(shù)中存在的單點(diǎn)故障風(fēng)險(xiǎn)并進(jìn)而提高RDMA業(yè)務(wù)處理的可靠性的目的。
[0181]實(shí)施例五:
[0182]本發(fā)明實(shí)施例五提供了一種數(shù)據(jù)處理方法,如圖5所示,其為本發(fā)明實(shí)施例五中所述數(shù)據(jù)處理方法的流程示意圖,所述數(shù)據(jù)處理方法可包括以下步驟:
[0183]步驟101:數(shù)據(jù)處理裝置生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列。
[0184]具體地,在本發(fā)明所述實(shí)施例中,所述數(shù)據(jù)處理裝置可采用以下方式生成任務(wù)隊(duì)列:
[0185]在進(jìn)行計(jì)算機(jī)初始化的過程中,向所述計(jì)算機(jī)的操作系統(tǒng)申請(qǐng)內(nèi)存資源,并根據(jù)申請(qǐng)的內(nèi)存資源,注冊(cè)相應(yīng)的任務(wù)隊(duì)列。需要說明的是,所述數(shù)據(jù)處理裝置所生成的任務(wù)隊(duì)列通常可為多個(gè),并且,每個(gè)任務(wù)隊(duì)列均可包括相應(yīng)的發(fā)送隊(duì)列以及接收隊(duì)列等,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0186]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述初始化選路規(guī)則可包括需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí);其中,所述初始化選路規(guī)則中包括的各任務(wù)隊(duì)列的標(biāo)識(shí)可以是各任務(wù)隊(duì)列的QP序列號(hào)(如發(fā)送隊(duì)列號(hào))或者與各任務(wù)隊(duì)列對(duì)應(yīng)相連的通信對(duì)端的任務(wù)隊(duì)列的QP序列號(hào)等能夠唯一標(biāo)識(shí)各任務(wù)隊(duì)列的信息,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0187]相應(yīng)地,根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,可包括:
[0188]根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
[0189]具體地,在本發(fā)明所述實(shí)施例中,若所述初始化選路規(guī)則包括需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述數(shù)據(jù)處理裝置具體可針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列;或者,
[0190]若所述初始化選路規(guī)則包括需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述數(shù)據(jù)處理裝置具體可針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的標(biāo)識(shí)內(nèi),若是,則將所述任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列,否則,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第二類任務(wù)隊(duì)列;或者,
[0191]若所述初始化選路規(guī)則包括需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)以及需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí),則所述數(shù)據(jù)處理裝置具體可針對(duì)生成的任一任務(wù)隊(duì)列,根據(jù)所述任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,確定所述任一任務(wù)隊(duì)列的標(biāo)識(shí)是否包括在所述初始化規(guī)則所包括的需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),若確定包括在所述初始化規(guī)則所包括的需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為第二類任務(wù)隊(duì)列,若確定包括在所述初始化規(guī)則所包括的需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi),則將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列,若確定未包括在所述初始化規(guī)則所包括的需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)內(nèi)以及需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)標(biāo)識(shí)內(nèi),則可根據(jù)實(shí)際情況,將所述任一任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0192]進(jìn)一步地,需要說明的是,在本發(fā)明所述實(shí)施例中,所述初始化選路規(guī)則可根據(jù)實(shí)際情況進(jìn)行調(diào)整設(shè)定,本發(fā)明實(shí)施例對(duì)此不作贅述。另外,需要說明的是,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列時(shí),通常需保證最終所得到的標(biāo)記為所述第一類任務(wù)隊(duì)列的各任務(wù)隊(duì)列所能夠占用的內(nèi)存資源之和不大于預(yù)設(shè)的資源閾值(如所述物理網(wǎng)卡所具備的最大內(nèi)存資源),本發(fā)明實(shí)施例對(duì)此也不作贅述。
[0193]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,在根據(jù)所述初始化選路規(guī)則,將生成的各任務(wù)隊(duì)列標(biāo)記為所述第一類任務(wù)隊(duì)列或所述第二類任務(wù)隊(duì)列的同時(shí)或之后,所述方法還可包括:
[0194]建立所述數(shù)據(jù)處理裝置與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
[0195]具體地,所述數(shù)據(jù)處理裝置可根據(jù)標(biāo)記為所述第一類任務(wù)隊(duì)列的各任務(wù)隊(duì)列之間的先后關(guān)系(如QP序列號(hào)排序先后關(guān)系,或優(yōu)先級(jí)先后關(guān)系等),依次建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的映射關(guān)系,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0196]進(jìn)一步地,需要說明的是,在本發(fā)明所述實(shí)施例中,所述步驟101為在進(jìn)行RDMA請(qǐng)求或RDMA報(bào)文等的收發(fā)操作之前的初始化操作,并不是每次進(jìn)行RDMA請(qǐng)求或RDMA報(bào)文等的收發(fā)操作時(shí)均需執(zhí)行的操作,即,在執(zhí)行完步驟101之后,可多次執(zhí)行后續(xù)各步驟。
[0197]步驟102:數(shù)據(jù)處理裝置確定所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元還是所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元,若所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元,則執(zhí)行步驟103,若確定所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元,則執(zhí)行步驟104。
[0198]其中,與現(xiàn)有技術(shù)類似,所述工作隊(duì)列單元為與上層應(yīng)用發(fā)送的RDMA讀請(qǐng)求或RDMA寫請(qǐng)求等上層應(yīng)用請(qǐng)求相對(duì)應(yīng)的工作隊(duì)列單元,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0199]步驟103:數(shù)據(jù)處理裝置指示所述物理網(wǎng)卡按照以下方式對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理:從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,以及,將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
[0200]其中,在將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端時(shí),所述對(duì)端通??芍傅氖撬龅谝活怰DMA請(qǐng)求報(bào)文的訪問目的端,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0201]步驟104:數(shù)據(jù)處理裝置根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA請(qǐng)求報(bào)文,并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給所述物理網(wǎng)卡,以由所述物理網(wǎng)卡將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
[0202]也就是說,所述數(shù)據(jù)處理裝置對(duì)工作隊(duì)列單元進(jìn)行處理所得到的第二類RDMA請(qǐng)求報(bào)文仍需通過所述物理網(wǎng)卡發(fā)送給對(duì)端。并且,在將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端時(shí),所述對(duì)端通??芍傅氖撬龅诙怰DMA請(qǐng)求報(bào)文的訪問目的端,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0203]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述方法還可包括以下步驟:
[0204]接收來自所述物理網(wǎng)卡的RDMA報(bào)文,并根據(jù)所述處理邏輯對(duì)所述RDMA報(bào)文進(jìn)行處理;其中,所述RDMA報(bào)文是所述物理網(wǎng)卡根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收到的RDMA報(bào)文不需由所述物理網(wǎng)卡進(jìn)行處理時(shí),發(fā)送給所述數(shù)據(jù)處理裝置的,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。
[0205]具體地,在本發(fā)明所述實(shí)施例中,所接收到的來自所述物理網(wǎng)卡的RDMA報(bào)文可為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文等,本發(fā)明實(shí)施例對(duì)此不作任何限定。
[0206]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述方法還可包括以下步驟:
[0207]對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
[0208]具體地,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,可以包括:
[0209]當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換;
[0210]其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
[0211]進(jìn)一步地,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理,可以包括:
[0212]當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息,以及,將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列,并根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。其中,所述當(dāng)前處理信息可以為所述物理網(wǎng)卡當(dāng)前處理的工作隊(duì)列單元的序列號(hào)、需要重傳的工作隊(duì)列單元的序列
號(hào)等信息。
[0213]也就是說,在本發(fā)明所述實(shí)施例中,在進(jìn)行軟硬切換的過程中,滿足切換條件的任務(wù)隊(duì)列中的待處理工作隊(duì)列單元或其所對(duì)應(yīng)的待處理RDMA報(bào)文將不被處理,在切換完成后,再通過查詢被緩存住的工作隊(duì)列單元或RDMA報(bào)文,并將其作為新的請(qǐng)求轉(zhuǎn)發(fā)至切換后的業(yè)務(wù)執(zhí)行端的方式來進(jìn)行相應(yīng)的處理。
[0214]另外需要說明的是,在本發(fā)明所述實(shí)施例中,為了便于操作,可將進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為切換狀態(tài),將未進(jìn)行軟硬切換操作時(shí)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記為非切換狀態(tài)(具體地,可按照預(yù)設(shè)的初始化選路規(guī)則,將各任務(wù)隊(duì)列標(biāo)記為硬件處理狀態(tài)以及軟件處理狀態(tài)等),以便在接收到新的待處理工作隊(duì)列單元或RDMA報(bào)文等時(shí),可首先根據(jù)該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列的狀態(tài)標(biāo)記判斷其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)是否為非切換狀態(tài),在確定其所對(duì)應(yīng)的任務(wù)隊(duì)列的當(dāng)前狀態(tài)為非切換狀態(tài)時(shí),再執(zhí)行后續(xù)的判斷該新的待處理工作隊(duì)列單元或RDMA報(bào)文等所對(duì)應(yīng)的任務(wù)隊(duì)列為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列等操作,本發(fā)明實(shí)施例對(duì)此不作贅述。
[0215]進(jìn)一步地,在本發(fā)明所述實(shí)施例中,所述方法還可包括以下步驟:
[0216]在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
[0217]本發(fā)明實(shí)施例五提供了一種數(shù)據(jù)處理方法,由于在本發(fā)明實(shí)施例五所述技術(shù)方案中,所述數(shù)據(jù)處理裝置可根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為需由物理網(wǎng)卡進(jìn)行處理的第一類任務(wù)隊(duì)列或需由數(shù)據(jù)處理裝置進(jìn)行處理的第二類任務(wù)隊(duì)列,并在第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示物理網(wǎng)卡對(duì)第一類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,在第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),由自身對(duì)第二類任務(wù)隊(duì)列中的工作隊(duì)列單元進(jìn)行處理,從而在實(shí)現(xiàn)軟硬相結(jié)合、主機(jī)網(wǎng)卡負(fù)荷分擔(dān)的基礎(chǔ)上,達(dá)到了提高RDMA業(yè)務(wù)的處理效率和處理效果的目的。
[0218]另外,在由物理網(wǎng)卡處理的任務(wù)隊(duì)列滿足相應(yīng)的軟硬切換條件時(shí),還可將運(yùn)行在物理網(wǎng)卡上的業(yè)務(wù)平滑地切換至主機(jī)端由軟件接管,從而在形成軟硬件主備切換的基礎(chǔ)上,可進(jìn)一步達(dá)到降低傳統(tǒng)RDMA技術(shù)中存在的單點(diǎn)故障風(fēng)險(xiǎn)并進(jìn)而提高RDMA業(yè)務(wù)處理的可靠性的目的。
[0219]本領(lǐng)域技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、裝置(設(shè)備)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0220]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(設(shè)備)和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。[0221]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0222]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0223]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0224]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種計(jì)算機(jī),其特征在于,包括數(shù)據(jù)處理裝置以及物理網(wǎng)卡,其中: 所述數(shù)據(jù)處理裝置,用于生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列,以及,在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,得到第二類遠(yuǎn)程直接內(nèi)存訪問RDMA請(qǐng)求報(bào)文,并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給所述物理網(wǎng)卡; 所述物理網(wǎng)卡,用于在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)所述數(shù)據(jù)處理裝置的指示,從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類RDMA請(qǐng)求報(bào)文,并將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端,以及接收所述第二類RDMA請(qǐng)求報(bào)文并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于,所述初始化選路規(guī)則包括需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí); 所述數(shù)據(jù)處理裝置,具體用于根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)貝U,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列 。
3.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于,所述物理網(wǎng)卡,還用于接收RDMA報(bào)文,并根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收的RDMA報(bào)文是否需由所述物理網(wǎng)卡進(jìn)行處理,如果否,則將所述接收的RDMA報(bào)文提供給所述數(shù)據(jù)處理裝置,如果是,則根據(jù)所述處理邏輯對(duì)所述接收的RDMA報(bào)文進(jìn)行處理,其中,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合; 所述數(shù)據(jù)處理裝置,還用于接收來自所述物理網(wǎng)卡的所述接收的RDMA報(bào)文,并根據(jù)所述處理邏輯,對(duì)所述接收的RDMA報(bào)文進(jìn)行處理。
4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī),其特征在于,所述接收的RDMA報(bào)文為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文。
5.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的計(jì)算機(jī),其特征在于,所述數(shù)據(jù)處理裝置,還用于對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī),其特征在于,所述數(shù)據(jù)處理裝置,具體用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換; 其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
7.根據(jù)權(quán)利要求5或6所述的計(jì)算機(jī),其特征在于,所述數(shù)據(jù)處理裝置,具體用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息,以及,將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列,并根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī),其特征在于,所述數(shù)據(jù)處理裝置,還用于在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
9.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的計(jì)算機(jī),其特征在于,所述數(shù)據(jù)處理裝置,還用于建立自身與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
10.一種數(shù)據(jù)處理裝置,其特征在于,包括: 初始化模塊,用于生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由軟件處理模塊進(jìn)行處理的任務(wù)隊(duì)列; 控制模塊,用于在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡按照以下方式對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理:從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類遠(yuǎn)程直接內(nèi)存訪問RDMA請(qǐng)求報(bào)文,以及,將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端;以及,在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述軟件處理模塊對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理; 所述軟件處理模塊,用于在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)所述控制模塊的指示,從所述第二類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA報(bào)文,以及,將所述第二類RDMA報(bào)文發(fā)送給所述物理網(wǎng)卡,以由所述物理網(wǎng)卡將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述初始化選路規(guī)則包括需由所述軟件處理模塊進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí); 所述初始化模塊,具體用于根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)貝U,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述軟件處理模塊,還用于接收來自所述物理網(wǎng)卡的RDMA報(bào)文,并根據(jù)所述處理邏輯對(duì)所述RDMA報(bào)文進(jìn)行處理;其中,所述RDMA報(bào)文是所述物理網(wǎng)卡根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收到的RDMA報(bào)文不需由所述物理網(wǎng)卡進(jìn)行處理時(shí),發(fā)送給所述軟件處理模塊的,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述軟件處理模塊接收到的RDMA報(bào)文為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文。
14.根據(jù)權(quán)利要求10-13任一項(xiàng)所述的裝置,其特征在于,所述控制模塊,還用于對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述軟件處理模塊替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述控制模塊,具體用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換; 其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
16.根據(jù)權(quán)利要求14或15所述的裝置,其特征在于,所述控制模塊,具體用于當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息并提供給所述軟件處理模塊,以及將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列; 所述軟件處理模塊,還用于根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述控制模塊,還用于在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
18.根據(jù)權(quán)利要求10-13任一項(xiàng)所述的裝置,其特征在于,所述初始化模塊,還用于建立所述軟件處理模塊與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
19.一種數(shù)據(jù)處理方法,其特征在于,包括: 數(shù)據(jù)處理裝置生成任務(wù)隊(duì)列,并根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,所述第一類任務(wù)隊(duì)列為需由物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列,所述第二類任務(wù)隊(duì)列為需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列;以及,在所述第一類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),指示所述物理網(wǎng)卡按照以下方式對(duì)所述第一類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理:從所述第一類任務(wù)隊(duì)列中獲取所述工作隊(duì)列單元,并根據(jù)所述處理邏輯對(duì)所述工作隊(duì)列單元進(jìn)行處理,得到第一類遠(yuǎn)程直接內(nèi)存訪問RDMA請(qǐng)求報(bào)文,以及,將所述第一類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端;以及, 在所述第二類任務(wù)隊(duì)列中接收到工作隊(duì)列單元時(shí),根據(jù)處理邏輯對(duì)所述第二類任務(wù)隊(duì)列中的所述工作隊(duì)列單元進(jìn)行處理,得到第二類RDMA請(qǐng)求報(bào)文,并將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給所述物理網(wǎng)卡,以由所述物理網(wǎng)卡將所述第二類RDMA請(qǐng)求報(bào)文發(fā)送給對(duì)端。
20.根據(jù)權(quán)利要求19所述的方法,其特征在于,所述初始化選路規(guī)則包括需由所述數(shù)據(jù)處理裝置進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí)或者需由所述物理網(wǎng)卡進(jìn)行處理的任務(wù)隊(duì)列的標(biāo)識(shí); 根據(jù)預(yù)設(shè)的初始化選路規(guī)則,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列,包括: 根據(jù)生成的任一任務(wù)隊(duì)列的標(biāo)識(shí)以及所述初始化選路規(guī)則,對(duì)所述生成的任一任務(wù)隊(duì)列進(jìn)行標(biāo)記,以將所述生成的任一任務(wù)隊(duì)列標(biāo)記為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列。
21.根據(jù)權(quán)利要求19所述的方法,其特征在于,所述方法還包括:接收來自所述物理網(wǎng)卡的RDMA報(bào)文,并根據(jù)所述處理邏輯對(duì)所述RDMA報(bào)文進(jìn)行處理; 其中,所述RDMA報(bào)文是所述物理網(wǎng)卡根據(jù)物理網(wǎng)卡隊(duì)列權(quán)限信息,確定接收到的RDMA報(bào)文不需由所述物理網(wǎng)卡進(jìn)行處理時(shí),發(fā)送給所述數(shù)據(jù)處理裝置的,所述物理網(wǎng)卡隊(duì)列權(quán)限信息為所述第一類任務(wù)隊(duì)列中的各任務(wù)隊(duì)列的標(biāo)識(shí)的集合。
22.根據(jù)權(quán)利要求21所述的方法,其特征在于,接收到的來自所述物理網(wǎng)卡的RDMA報(bào)文為所述第一類RDMA報(bào)文的響應(yīng)報(bào)文,或者所述第二類RDMA報(bào)文的響應(yīng)報(bào)文,或者對(duì)端發(fā)送的RDMA讀請(qǐng)求報(bào)文,或者對(duì)端發(fā)送的RDMA寫請(qǐng)求報(bào)文。
23.根據(jù)權(quán)利要求19-22任一項(xiàng)所述的方法,其特征在于,所述方法還包括:對(duì)所述第一類任務(wù)隊(duì)列進(jìn)行監(jiān)控,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理。
24.根據(jù)權(quán)利要求23所述的方法,其特征在于,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,包括: 當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列的使用頻率小于預(yù)設(shè)頻率時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列中存在工作隊(duì)列單元的單次交互時(shí)長大于預(yù)設(shè)時(shí)長時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列占用的處理器資源大于預(yù)設(shè)資源門限時(shí),或者監(jiān)測(cè)到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列、使得所述物理網(wǎng)卡從所述任務(wù)隊(duì)列中獲取工作隊(duì)列單元的頻率與接收到所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的頻率的差值大于預(yù)設(shè)值時(shí),進(jìn)行軟硬切換; 其中,所述工作隊(duì)列單元的單次交互時(shí)長是指,對(duì)所述工作隊(duì)列單元進(jìn)行處理之后發(fā)送給對(duì)端的時(shí)間與接收到所述對(duì)端發(fā)送的、所述工作隊(duì)列單元對(duì)應(yīng)的響應(yīng)報(bào)文的時(shí)間的時(shí)間差值。
25.根據(jù)權(quán)利要求23或24所述的方法,其特征在于,當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),進(jìn)行軟硬切換,以使所述數(shù)據(jù)處理裝置替代所述物理網(wǎng)卡對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列進(jìn)行處理,包括: 當(dāng)監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù)隊(duì)列滿足切換條件時(shí),指示所述物理網(wǎng)卡停止對(duì)所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的處理,并從所述物理網(wǎng)卡處獲取所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列的當(dāng)前處理信息,以及,將所述第一類任務(wù)隊(duì)列中的滿足切換條件的任務(wù)隊(duì)列修改為第二類任務(wù)隊(duì)列,并根據(jù)所述當(dāng)前處理信息,對(duì)修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列進(jìn)行處理。
26.根據(jù)權(quán)利要求25所述的方法,其特征在于,所述方法還包括:在監(jiān)控到所述第一類任務(wù)隊(duì)列中存在任務(wù) 隊(duì)列滿足切換條件時(shí),修改所述物理網(wǎng)卡隊(duì)列權(quán)限信息,以將所述修改為第二類任務(wù)隊(duì)列的所述第一類任務(wù)隊(duì)列的標(biāo)識(shí)從所述物理網(wǎng)卡隊(duì)列權(quán)限信息中移除。
27.根據(jù)權(quán)利要求19-22任一項(xiàng)所述的方法,其特征在于,在根據(jù)預(yù)設(shè)的初始化選路規(guī)貝U,將生成的任一任務(wù)隊(duì)列劃分為第一類任務(wù)隊(duì)列或第二類任務(wù)隊(duì)列之后,所述方法還包括:建立所述數(shù)據(jù)處理裝置與所述第一類任務(wù)隊(duì)列和所述第二類任務(wù)隊(duì)列的映射關(guān)系,以及建立所述物理網(wǎng)卡與所述第一類任務(wù)隊(duì)列的映射關(guān)系。
【文檔編號(hào)】G06F9/46GK103942097SQ201410142461
【公開日】2014年7月23日 申請(qǐng)日期:2014年4月10日 優(yōu)先權(quán)日:2014年4月10日
【發(fā)明者】曲會(huì)春, 程韜, 林忠能 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
景谷| 龙海市| 杭州市| 油尖旺区| 二连浩特市| 双辽市| 杭锦旗| 玛沁县| 克山县| 新化县| 昌都县| 锦州市| 宁明县| 宁蒗| 新巴尔虎左旗| 南昌市| 松溪县| 大安市| 崇州市| 汉川市| 深水埗区| 西昌市| 张家港市| 治多县| 吴忠市| 黄龙县| 辽阳县| 保定市| 盐山县| 晋城| 集贤县| 施甸县| 宜宾县| 宁安市| 阜城县| 井陉县| 罗田县| 集贤县| 徐州市| 兖州市| 青神县|